vxe-gantt 4.0.7 → 4.0.8

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.
@@ -108,12 +108,9 @@ export default defineVxeComponent({
108
108
  const { treeConfig } = ganttProps;
109
109
  const { taskScaleList } = ganttReactData;
110
110
  const { minViewDate, maxViewDate } = reactData;
111
- const { scrollXStore } = internalData;
112
111
  const minScale = XEUtils.last(taskScaleList);
113
112
  const fullCols = [];
114
113
  const groupCols = [];
115
- scrollXStore.startIndex = 0;
116
- scrollXStore.endIndex = 1;
117
114
  if (minScale && minViewDate && maxViewDate) {
118
115
  const minSType = minScale.type;
119
116
  const weekScale = taskScaleList.find(item => item.type === 'week');
@@ -313,9 +310,12 @@ export default defineVxeComponent({
313
310
  if ($xeTable) {
314
311
  const startField = computeStartField.value;
315
312
  const endField = computeEndField.value;
316
- const { computeTreeOpts } = $xeTable.getComputeMaps();
313
+ const { computeAggregateOpts, computeTreeOpts } = $xeTable.getComputeMaps();
314
+ const tableReactData = $xeTable.reactData;
315
+ const { isRowGroupStatus } = tableReactData;
317
316
  const tableInternalData = $xeTable.internalData;
318
- const { afterFullData, afterTreeFullData } = tableInternalData;
317
+ const { afterFullData, afterTreeFullData, afterGroupFullData } = tableInternalData;
318
+ const aggregateOpts = computeAggregateOpts.value;
319
319
  const treeOpts = computeTreeOpts.value;
320
320
  const { transform } = treeOpts;
321
321
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -337,7 +337,15 @@ export default defineVxeComponent({
337
337
  };
338
338
  }
339
339
  };
340
- if (treeConfig) {
340
+ if (isRowGroupStatus) {
341
+ // 行分组
342
+ const mapChildrenField = aggregateOpts.mapChildrenField;
343
+ if (mapChildrenField) {
344
+ XEUtils.eachTree(afterGroupFullData, handleParseRender, { children: mapChildrenField });
345
+ }
346
+ }
347
+ else if (treeConfig) {
348
+ // 树结构
341
349
  XEUtils.eachTree(afterTreeFullData, handleParseRender, { children: transform ? treeOpts.mapChildrenField : childrenField });
342
350
  }
343
351
  else {
@@ -354,6 +362,7 @@ export default defineVxeComponent({
354
362
  const handleUpdateData = () => {
355
363
  const ganttProps = $xeGantt.props;
356
364
  const { treeConfig } = ganttProps;
365
+ const { scrollXStore } = internalData;
357
366
  const $xeTable = internalData.xeTable;
358
367
  const sdMaps = {};
359
368
  const edMaps = {};
@@ -362,9 +371,12 @@ export default defineVxeComponent({
362
371
  if ($xeTable) {
363
372
  const startField = computeStartField.value;
364
373
  const endField = computeEndField.value;
365
- const { computeTreeOpts } = $xeTable.getComputeMaps();
374
+ const { computeAggregateOpts, computeTreeOpts } = $xeTable.getComputeMaps();
375
+ const tableReactData = $xeTable.reactData;
376
+ const { isRowGroupStatus } = tableReactData;
366
377
  const tableInternalData = $xeTable.internalData;
367
- const { afterFullData, afterTreeFullData } = tableInternalData;
378
+ const { afterFullData, afterTreeFullData, afterGroupFullData } = tableInternalData;
379
+ const aggregateOpts = computeAggregateOpts.value;
368
380
  const treeOpts = computeTreeOpts.value;
369
381
  const { transform } = treeOpts;
370
382
  const childrenField = treeOpts.children || treeOpts.childrenField;
@@ -382,13 +394,23 @@ export default defineVxeComponent({
382
394
  }
383
395
  }
384
396
  };
385
- if (treeConfig) {
397
+ if (isRowGroupStatus) {
398
+ // 行分组
399
+ const mapChildrenField = aggregateOpts.mapChildrenField;
400
+ if (mapChildrenField) {
401
+ XEUtils.eachTree(afterGroupFullData, handleMinMaxData, { children: mapChildrenField });
402
+ }
403
+ }
404
+ else if (treeConfig) {
405
+ // 树结构
386
406
  XEUtils.eachTree(afterTreeFullData, handleMinMaxData, { children: transform ? treeOpts.mapChildrenField : childrenField });
387
407
  }
388
408
  else {
389
409
  afterFullData.forEach(handleMinMaxData);
390
410
  }
391
411
  }
412
+ scrollXStore.startIndex = 0;
413
+ scrollXStore.endIndex = Math.max(1, scrollXStore.visibleSize);
392
414
  reactData.minViewDate = minDate;
393
415
  reactData.maxViewDate = maxDate;
394
416
  internalData.startMaps = sdMaps;
@@ -429,10 +451,8 @@ export default defineVxeComponent({
429
451
  }
430
452
  const rowid = rowEl.getAttribute('rowid');
431
453
  const rowRest = rowid ? chartMaps[rowid] : null;
432
- if (rowRest) {
433
- barEl.style.left = `${viewCellWidth * rowRest.oLeftSize}px`;
434
- barEl.style.width = `${viewCellWidth * rowRest.oWidthSize}px`;
435
- }
454
+ barEl.style.left = `${rowRest ? viewCellWidth * rowRest.oLeftSize : 0}px`;
455
+ barEl.style.width = `${rowRest ? viewCellWidth * rowRest.oWidthSize : 0}px`;
436
456
  });
437
457
  }
438
458
  return nextTick();
@@ -1916,9 +1916,6 @@ export default defineVxeComponent({
1916
1916
  if (props.expandConfig) {
1917
1917
  warnLog('vxe.error.notProp', ['expand-config']);
1918
1918
  }
1919
- if (props.aggregateConfig) {
1920
- warnLog('vxe.error.notProp', ['aggregate-config']);
1921
- }
1922
1919
  if (columns && columns.length) {
1923
1920
  $xeGantt.loadColumn(columns);
1924
1921
  }
package/es/ui/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  import { errLog } from './src/log';
3
3
  const { setConfig, setIcon, checkVersion } = VxeUI;
4
- VxeUI.ganttVersion = "4.0.7";
4
+ VxeUI.ganttVersion = "4.0.8";
5
5
  setConfig({
6
6
  gantt: {
7
7
  // size: null,
package/es/ui/src/log.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
2
  const { log } = VxeUI;
3
- const version = `gantt v${"4.0.7"}`;
3
+ const version = `gantt v${"4.0.8"}`;
4
4
  export const warnLog = log.create('warn', version);
5
5
  export const errLog = log.create('error', version);
@@ -133,14 +133,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
133
133
  minViewDate,
134
134
  maxViewDate
135
135
  } = reactData;
136
- const {
137
- scrollXStore
138
- } = internalData;
139
136
  const minScale = _xeUtils.default.last(taskScaleList);
140
137
  const fullCols = [];
141
138
  const groupCols = [];
142
- scrollXStore.startIndex = 0;
143
- scrollXStore.endIndex = 1;
144
139
  if (minScale && minViewDate && maxViewDate) {
145
140
  const minSType = minScale.type;
146
141
  const weekScale = taskScaleList.find(item => item.type === 'week');
@@ -353,13 +348,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
353
348
  const startField = computeStartField.value;
354
349
  const endField = computeEndField.value;
355
350
  const {
351
+ computeAggregateOpts,
356
352
  computeTreeOpts
357
353
  } = $xeTable.getComputeMaps();
354
+ const tableReactData = $xeTable.reactData;
355
+ const {
356
+ isRowGroupStatus
357
+ } = tableReactData;
358
358
  const tableInternalData = $xeTable.internalData;
359
359
  const {
360
360
  afterFullData,
361
- afterTreeFullData
361
+ afterTreeFullData,
362
+ afterGroupFullData
362
363
  } = tableInternalData;
364
+ const aggregateOpts = computeAggregateOpts.value;
363
365
  const treeOpts = computeTreeOpts.value;
364
366
  const {
365
367
  transform
@@ -383,7 +385,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
383
385
  };
384
386
  }
385
387
  };
386
- if (treeConfig) {
388
+ if (isRowGroupStatus) {
389
+ // 行分组
390
+ const mapChildrenField = aggregateOpts.mapChildrenField;
391
+ if (mapChildrenField) {
392
+ _xeUtils.default.eachTree(afterGroupFullData, handleParseRender, {
393
+ children: mapChildrenField
394
+ });
395
+ }
396
+ } else if (treeConfig) {
397
+ // 树结构
387
398
  _xeUtils.default.eachTree(afterTreeFullData, handleParseRender, {
388
399
  children: transform ? treeOpts.mapChildrenField : childrenField
389
400
  });
@@ -403,6 +414,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
403
414
  const {
404
415
  treeConfig
405
416
  } = ganttProps;
417
+ const {
418
+ scrollXStore
419
+ } = internalData;
406
420
  const $xeTable = internalData.xeTable;
407
421
  const sdMaps = {};
408
422
  const edMaps = {};
@@ -412,13 +426,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
412
426
  const startField = computeStartField.value;
413
427
  const endField = computeEndField.value;
414
428
  const {
429
+ computeAggregateOpts,
415
430
  computeTreeOpts
416
431
  } = $xeTable.getComputeMaps();
432
+ const tableReactData = $xeTable.reactData;
433
+ const {
434
+ isRowGroupStatus
435
+ } = tableReactData;
417
436
  const tableInternalData = $xeTable.internalData;
418
437
  const {
419
438
  afterFullData,
420
- afterTreeFullData
439
+ afterTreeFullData,
440
+ afterGroupFullData
421
441
  } = tableInternalData;
442
+ const aggregateOpts = computeAggregateOpts.value;
422
443
  const treeOpts = computeTreeOpts.value;
423
444
  const {
424
445
  transform
@@ -438,7 +459,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
438
459
  }
439
460
  }
440
461
  };
441
- if (treeConfig) {
462
+ if (isRowGroupStatus) {
463
+ // 行分组
464
+ const mapChildrenField = aggregateOpts.mapChildrenField;
465
+ if (mapChildrenField) {
466
+ _xeUtils.default.eachTree(afterGroupFullData, handleMinMaxData, {
467
+ children: mapChildrenField
468
+ });
469
+ }
470
+ } else if (treeConfig) {
471
+ // 树结构
442
472
  _xeUtils.default.eachTree(afterTreeFullData, handleMinMaxData, {
443
473
  children: transform ? treeOpts.mapChildrenField : childrenField
444
474
  });
@@ -446,6 +476,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
446
476
  afterFullData.forEach(handleMinMaxData);
447
477
  }
448
478
  }
479
+ scrollXStore.startIndex = 0;
480
+ scrollXStore.endIndex = Math.max(1, scrollXStore.visibleSize);
449
481
  reactData.minViewDate = minDate;
450
482
  reactData.maxViewDate = maxDate;
451
483
  internalData.startMaps = sdMaps;
@@ -496,10 +528,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
496
528
  }
497
529
  const rowid = rowEl.getAttribute('rowid');
498
530
  const rowRest = rowid ? chartMaps[rowid] : null;
499
- if (rowRest) {
500
- barEl.style.left = `${viewCellWidth * rowRest.oLeftSize}px`;
501
- barEl.style.width = `${viewCellWidth * rowRest.oWidthSize}px`;
502
- }
531
+ barEl.style.left = `${rowRest ? viewCellWidth * rowRest.oLeftSize : 0}px`;
532
+ barEl.style.width = `${rowRest ? viewCellWidth * rowRest.oWidthSize : 0}px`;
503
533
  });
504
534
  }
505
535
  return (0, _vue.nextTick)();
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(g,x){var e=_xeUtils.default.uniqueId();let H=(0,_vue.inject)("$xeGantt",{}),{computeTaskOpts:_,computeStartField:C,computeEndField:X,computeScrollbarOpts:S,computeScrollbarXToTop:b,computeScrollbarYToLeft:w}=H.getComputeMaps(),i=(0,_vue.ref)(),T=(0,_vue.ref)(),E=(0,_vue.ref)(),d=(0,_vue.ref)(),D=(0,_vue.ref)(),R=(0,_vue.ref)(),c=(0,_vue.ref)(),I=(0,_vue.ref)(),L=(0,_vue.ref)(),M=(0,_vue.ref)(),V=(0,_vue.ref)(),n=(0,_vue.ref)(),u=(0,_vue.ref)(),Y=(0,_vue.ref)(),U=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20}),W=createInternalData(),y={refElem:i},$={},t={xID:e,props:g,context:x,reactData:U,internalData:W,getRefMaps:()=>y,getComputeMaps:()=>$},k=e=>{var t=_.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},l=()=>{var e=H.props.treeConfig,t=W.xeTable;let a=null,i=null;if(t){let l=C.value,r=X.value;var o=t.getComputeMaps().computeTreeOpts,{afterFullData:t,afterTreeFullData:s}=t.internalData,o=o.value,n=o.transform,d=o.children||o.childrenField,c=e=>{var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=k(t),(!a||a.getTime()>t.getTime())&&(a=t),t=k(e),!i||i.getTime()<t.getTime())&&(i=t)};e?_xeUtils.default.eachTree(s,c,{children:n?o.mapChildrenField:d}):t.forEach(c)}U.minViewDate=a,U.maxViewDate=i,W.startMaps={},W.endMaps={},(()=>{var e=H.props.treeConfig,t=H.reactData.taskScaleList;let{minViewDate:c,maxViewDate:l}=U;var r=W.scrollXStore,a=_xeUtils.default.last(t);let u=[],v=[];if(r.startIndex=0,r.endIndex=1,a&&c&&l){let i=a.type;var h=t.find(e=>"week"===e.type);let n=864e5;switch(a.type){case"hour":n=36e5;break;case"minute":n=6e4;break;case"second":n=1e3}var f=c.getTime(),r=l.getTime()-c.getTime(),m=Math.max(5,Math.floor(r/n)+1);let o={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var p=(t,l,r)=>{if(i!==t){var l=l[t],a=""+l.field;let e=s[t][a];e||(e=l,s[t][a]=e,o[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(r))}};for(let e=0;e<m;e++){var g=new Date(f+e*n),[x,_,y,S,b,w]=_xeUtils.default.toDateString(g,"yyyy-M-d-H-m-s").split("-"),T=g.getDay(),E=T+1,D=Math.ceil((g.getMonth()+1)/3),g=_xeUtils.default.getYearWeek(g,h?h.startDay:void 0),T={yy:x,M:_,d:y,H:S,m:b,s:w,q:D,W:g,E:E,e:T},D={year:{field:x,title:x,dateObj:T},quarter:{field:x+"_q"+D,title:""+D,dateObj:T},month:{field:x+"_"+_,title:_,dateObj:T},week:{field:x+"_W"+g,title:""+g,dateObj:T},day:{field:x+`_${_}_${y}_E`+E,title:""+E,dateObj:T},date:{field:x+`_${_}_`+y,title:y,dateObj:T},hour:{field:x+`_${_}_${y}_`+S,title:S,dateObj:T},minute:{field:x+`_${_}_${y}_${S}_`+b,title:b,dateObj:T},second:{field:x+`_${_}_${y}_${S}_${b}_`+w,title:w,dateObj:T}},g=D[i];a.level<19&&p("year",D,g),a.level<17&&p("quarter",D,g),a.level<14&&p("month",D,g),a.level<13&&p("week",D,g),a.level<11&&p("day",D,g),a.level<12&&p("date",D,g),a.level<7&&p("hour",D,g),a.level<5&&p("minute",D,g),u.push(g)}t.forEach(e=>{var t;e.type===i?v.push({scaleItem:e,columns:u}):((t=o[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),v.push({scaleItem:e,columns:t}))});let d=W.xeTable;if(d){let i=C.value,o=X.value;var r=d.getComputeMaps().computeTreeOpts,{afterFullData:t,afterTreeFullData:R}=d.internalData,r=r.value,I=r.transform,L=r.children||r.childrenField;let s={};var M=e=>{var t,l=d.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=k(r),a=k(a),t=Math.floor((r.getTime()-c.getTime())/n),a=Math.floor((a.getTime()-r.getTime())/n)+1,s[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})};e?_xeUtils.default.eachTree(R,M,{children:I?r.mapChildrenField:L}):t.forEach(M),W.chartMaps=s}}W.visibleColumn=u,U.headerGroups=v,O(),B()})()},v=()=>{var{scrollXWidth:e,scrollYHeight:t}=U,l=W.elemStore,r=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),a=d.value,i=c.value;l&&(t=t>l.clientHeight,i&&(U.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),U.overflowY=t,i=e>l.clientWidth,a&&(U.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),U.overflowX=i)},q=()=>{let l=U.viewCellWidth,{elemStore:e,chartMaps:r}=W;var t=(0,_util.getRefElem)(e["main-chart-wrapper"]);return t&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null)&&(t.style.left=l*e.oLeftSize+"px",t.style.width=l*e.oWidthSize+"px")}),(0,_vue.nextTick)()},h=()=>{var{scrollbarWidth:s,scrollbarHeight:n,headerGroups:d,tableColumn:c}=U,{elemStore:u,visibleColumn:v}=W,h=W.xeTable,f=i.value;if(f&&f.clientHeight){var m=S.value,p=b.value,g=w.value,x=D.value,_=R.value,y=T.value;let e=s;s=n;let t=0,l=0,r=0,a=(h&&(n=h.internalData,t=n.tBodyHeight,l=n.tHeaderHeight,r=n.tFooterHeight),"visible");(g||m.y&&!1===m.y.visible)&&(e=0,a="hidden");h=(0,_util.getRefElem)(u["main-header-scroll"]),n=(h&&(h.style.height=l+"px",h.style.setProperty("--vxe-ui-gantt-view-cell-height",l/d.length+"px")),(0,_util.getRefElem)(u["main-body-scroll"])),g=(n&&(n.style.height=t+"px"),(0,_util.getRefElem)(u["main-footer-scroll"])),m=(g&&(g.style.height=r+"px"),y&&(y.style.height=s+"px",y.style.visibility="visible"),L.value),h=(m&&(m.style.left=p?e+"px":"",m.style.width=f.clientWidth-e+"px"),x&&(x.style.width=p?e+"px":"",x.style.display=p&&s?"block":""),_&&(_.style.width=p?"":e+"px",_.style.display=!p&&s?"block":""),E.value),d=(h&&(h.style.width=e+"px",h.style.height=t+l+r+"px",h.style.visibility=a),I.value),g=(d&&(d.style.height=l+"px",d.style.display=l?"block":""),M.value),y=(g&&(g.style.height=t+"px",g.style.top=l+"px"),V.value),m=(y&&(y.style.height=r+"px",y.style.top=l+t+"px",y.style.display=r?"block":""),Y.value);let i=40,o=(i=m?m.clientWidth||40:i)*v.length;n&&0<(x=(f=n.clientWidth)-o)&&(i+=Math.floor(x/v.length),o=f),U.viewCellWidth=i;_=(0,_util.getRefElem)(u["main-header-table"]),p=(0,_util.getRefElem)(u["main-body-table"]),s=i*c.length;return _&&(_.style.width=o+"px"),p&&(p.style.width=s+"px"),U.scrollXWidth=o,q()}},o=()=>{var e=i.value;return W.rceRunTime=Date.now(),(e&&e.clientWidth?(v(),h(),q(),z):(0,_vue.nextTick))()},r=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=W,r=W.xeTable;let a=50;r&&(r=r.getComputeMaps().computeResizeOpts,r=r.value,a=r.refreshDelay||50),!t||(clearTimeout(t),l&&l+(a-5)<Date.now())?e(o()):(0,_vue.nextTick)(()=>{e()}),W.rceTimeout=setTimeout(()=>{W.rceTimeout=void 0,o()},a)}),z=()=>(0,_vue.nextTick)().then(()=>{var e,t=U.scrollXLoad,l=W.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=f(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),F().then(()=>{a()})):s()}),f=()=>{var e,t=U.viewCellWidth,l=W.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},a=()=>{var e=U.isScrollXBig,t=W.scrollXStore,{preloadSize:l,startIndex:r,endIndex:a,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=f(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=r||a-s-1<=o)||r===i&&a===l||(t.startIndex=i,t.endIndex=l,F())},F=()=>(B(),s(),(0,_vue.nextTick)()),O=()=>U.scrollXLoad=!0,B=()=>{var e=U.scrollXLoad,{visibleColumn:t,scrollXStore:l}=W,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);U.tableColumn=e},s=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=U,{elemStore:r,scrollXStore:a}=W;var i=(0,_util.getRefElem)(r["main-body-table"]),o=a.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${U.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(r[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=n.value;return o&&(o.style.width=l+"px"),v(),(0,_vue.nextTick)()},j=()=>{a()},m=(e,t,l,r,a)=>{l&&(W.lastScrollLeft=a),t&&(W.lastScrollTop=r),U.lastScrollTime=Date.now(),l=W.lcsTimeout,U.lazScrollLoading=!0,l&&clearTimeout(l),W.lcsTimeout=setTimeout(()=>{W.lcsRunTime=Date.now(),W.lcsTimeout=void 0,W.intoRunScroll=!1,W.inVirtualScroll=!1,W.inWheelScroll=!1,W.inHeaderScroll=!1,W.inBodyScroll=!1,W.inFooterScroll=!1,U.lazScrollLoading=!1},200)},G=e=>{var t=W.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:h,handleLazyRecalculate:r,handleUpdateCurrentRow(e){var t,l,r=W.xeTable,a=i.value;r&&a&&(e?(t=r.props.highlightCurrentRow,l=r.getComputeMaps().computeRowOpts,(l.value.isCurrent||t)&&_xeUtils.default.arrayEach(a.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${r.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=W.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:r,inFooterScroll:a}=W;l||r||a||(l=e.currentTarget,r=(0,_util.getRefElem)(t["main-body-scroll"]),a=d.value,r&&l&&(e=l.scrollLeft,W.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),m(0,!1,!0,l.scrollTop,e)))},triggerBodyScrollEvent(e){var t,l=U.scrollXLoad,{elemStore:r,inVirtualScroll:a,inHeaderScroll:i,inFooterScroll:o,lastScrollLeft:s,lastScrollTop:n}=W;a||i||o||(a=e.currentTarget,i=(0,_util.getRefElem)(r["main-header-scroll"]),o=d.value,e=c.value,s=(r=a.scrollLeft)!==s,n=(t=a.scrollTop)!==n,W.inBodyScroll=!0,W.scrollRenderType="",n&&((0,_dom.setScrollTop)(e,t),G(t)),s&&(W.inBodyScroll=!0,(0,_dom.setScrollLeft)(o,r),(0,_dom.setScrollLeft)(i,r),l)&&j(),m(0,n,s,a.scrollTop,r))},triggerVirtualScrollXEvent(e){var t=U.scrollXLoad,{elemStore:l,inHeaderScroll:r,inBodyScroll:a}=W;r||a||(r=e.currentTarget,a=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),r&&(l=r.scrollLeft,W.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(e,l),t&&j(),m(0,!1,!0,r.scrollTop,l)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:r}=W;l||r||(l=e.currentTarget,r=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,W.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),G(e),m(0,!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return s()},handleUpdateSYSpace(){return(()=>{var e=W.elemStore,t=W.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),r=(0,_util.getRefElem)(e["main-body-table"]);let a=0,i=0,o=!1,s=(t&&(t=t.reactData,a=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),n=a,d=0;l&&(d=l.clientHeight),o&&(n=l&&r&&l.scrollTop+d>=maxYHeight?maxYHeight-r.clientHeight:(maxYHeight-d)*(a/(i-d)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-wrapper"]),r&&(r.style.transform=`translate(${U.scrollXLeft||0}px, ${n}px)`),t&&(t.style.transform=`translate(${U.scrollXLeft||0}px, ${n}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),r=u.value;return r&&(r.style.height=s?s+"px":""),U.scrollYTop=n,U.scrollYHeight=i,U.isScrollYBig=o,v(),(0,_vue.nextTick)().then(()=>{h()})})()},handleUpdateSYStatus(e){U.scrollYLoad=e}};let A=()=>{r()},P=(Object.assign(t,{refreshData(){return l(),r()},updateViewData(){var e=W.xeTable;return e&&(e=e.reactData.tableData,U.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(W.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:T,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:D,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-x-handle",onScroll:t.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-right-corner"})])),N=()=>(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:I,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:M,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:c,class:"vxe-gantt-view--scroll-y-handle",onScroll:t.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:V,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),J=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),K=()=>{var e=w.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[N(),J()]:[J(),N()])};let p=(0,_vue.ref)(0);return(0,_vue.watch)(()=>U.tableData,()=>{p.value++}),(0,_vue.watch)(()=>U.tableData.length,()=>{p.value++}),(0,_vue.watch)(p,()=>{l()}),(0,_vue.onMounted)(()=>{globalEvents.on(t,"resize",A)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(t,"keydown"),_xeUtils.default.assign(W,createInternalData())}),t.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:r}=U,a=b.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},a?[P(),K()]:[K(),P()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",t),t},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(g,x){var e=_xeUtils.default.uniqueId();let U=(0,_vue.inject)("$xeGantt",{}),{computeTaskOpts:_,computeStartField:V,computeEndField:Y,computeScrollbarOpts:S,computeScrollbarXToTop:w,computeScrollbarYToLeft:b}=U.getComputeMaps(),i=(0,_vue.ref)(),T=(0,_vue.ref)(),D=(0,_vue.ref)(),d=(0,_vue.ref)(),E=(0,_vue.ref)(),R=(0,_vue.ref)(),u=(0,_vue.ref)(),I=(0,_vue.ref)(),L=(0,_vue.ref)(),M=(0,_vue.ref)(),C=(0,_vue.ref)(),n=(0,_vue.ref)(),c=(0,_vue.ref)(),H=(0,_vue.ref)(),W=(0,_vue.reactive)({scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:20}),$=createInternalData(),y={refElem:i},q={},t={xID:e,props:g,context:x,reactData:W,internalData:$,getRefMaps:()=>y,getComputeMaps:()=>q},k=e=>{var t=_.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},l=()=>{var e=U.props.treeConfig,t=$.scrollXStore,a=$.xeTable;let i=null,o=null;if(a){let l=V.value,r=Y.value;var{computeAggregateOpts:s,computeTreeOpts:n}=a.getComputeMaps(),d=a.reactData.isRowGroupStatus,{afterFullData:a,afterTreeFullData:u,afterGroupFullData:c}=a.internalData,s=s.value,n=n.value,v=n.transform,h=n.children||n.childrenField,p=e=>{var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=k(t),(!i||i.getTime()>t.getTime())&&(i=t),t=k(e),!o||o.getTime()<t.getTime())&&(o=t)};d?(d=s.mapChildrenField)&&_xeUtils.default.eachTree(c,p,{children:d}):e?_xeUtils.default.eachTree(u,p,{children:v?n.mapChildrenField:h}):a.forEach(p)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),W.minViewDate=i,W.maxViewDate=o,$.startMaps={},$.endMaps={},(()=>{var e=U.props.treeConfig,t=U.reactData.taskScaleList;let{minViewDate:u,maxViewDate:l}=W;var r=_xeUtils.default.last(t);let a=[],c=[];if(r&&u&&l){let i=r.type;var v=t.find(e=>"week"===e.type);let n=864e5;switch(r.type){case"hour":n=36e5;break;case"minute":n=6e4;break;case"second":n=1e3}var h=u.getTime(),p=l.getTime()-u.getTime(),m=Math.max(5,Math.floor(p/n)+1);let o={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var f=(t,l,r)=>{if(i!==t){var l=l[t],a=""+l.field;let e=s[t][a];e||(e=l,s[t][a]=e,o[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(r))}};for(let e=0;e<m;e++){var g=new Date(h+e*n),[x,_,y,S,w,b]=_xeUtils.default.toDateString(g,"yyyy-M-d-H-m-s").split("-"),T=g.getDay(),D=T+1,E=Math.ceil((g.getMonth()+1)/3),g=_xeUtils.default.getYearWeek(g,v?v.startDay:void 0),T={yy:x,M:_,d:y,H:S,m:w,s:b,q:E,W:g,E:D,e:T},E={year:{field:x,title:x,dateObj:T},quarter:{field:x+"_q"+E,title:""+E,dateObj:T},month:{field:x+"_"+_,title:_,dateObj:T},week:{field:x+"_W"+g,title:""+g,dateObj:T},day:{field:x+`_${_}_${y}_E`+D,title:""+D,dateObj:T},date:{field:x+`_${_}_`+y,title:y,dateObj:T},hour:{field:x+`_${_}_${y}_`+S,title:S,dateObj:T},minute:{field:x+`_${_}_${y}_${S}_`+w,title:w,dateObj:T},second:{field:x+`_${_}_${y}_${S}_${w}_`+b,title:b,dateObj:T}},g=E[i];r.level<19&&f("year",E,g),r.level<17&&f("quarter",E,g),r.level<14&&f("month",E,g),r.level<13&&f("week",E,g),r.level<11&&f("day",E,g),r.level<12&&f("date",E,g),r.level<7&&f("hour",E,g),r.level<5&&f("minute",E,g),a.push(g)}t.forEach(e=>{var t;e.type===i?c.push({scaleItem:e,columns:a}):((t=o[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),c.push({scaleItem:e,columns:t}))});let d=$.xeTable;if(d){let i=V.value,o=Y.value;var{computeAggregateOpts:p,computeTreeOpts:t}=d.getComputeMaps(),R=d.reactData.isRowGroupStatus,{afterFullData:I,afterTreeFullData:L,afterGroupFullData:M}=d.internalData,p=p.value,t=t.value,C=t.transform,H=t.children||t.childrenField;let s={};var X=e=>{var t,l=d.getRowid(e),r=_xeUtils.default.get(e,i),a=_xeUtils.default.get(e,o);r&&a&&(r=k(r),a=k(a),t=Math.floor((r.getTime()-u.getTime())/n),a=Math.floor((a.getTime()-r.getTime())/n)+1,s[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:a})};R?(R=p.mapChildrenField)&&_xeUtils.default.eachTree(M,X,{children:R}):e?_xeUtils.default.eachTree(L,X,{children:C?t.mapChildrenField:H}):I.forEach(X),$.chartMaps=s}}$.visibleColumn=a,W.headerGroups=c,O(),B()})()},v=()=>{var{scrollXWidth:e,scrollYHeight:t}=W,l=$.elemStore,r=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),a=d.value,i=u.value;l&&(t=t>l.clientHeight,i&&(W.scrollbarWidth=r.width||i.offsetWidth-i.clientWidth||14),W.overflowY=t,i=e>l.clientWidth,a&&(W.scrollbarHeight=r.height||a.offsetHeight-a.clientHeight||14),W.overflowX=i)},X=()=>{let l=W.viewCellWidth,{elemStore:e,chartMaps:r}=$;var t=(0,_util.getRefElem)(e["main-chart-wrapper"]);return t&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left=`${e?l*e.oLeftSize:0}px`,t.style.width=`${e?l*e.oWidthSize:0}px`)}),(0,_vue.nextTick)()},h=()=>{var{scrollbarWidth:s,scrollbarHeight:n,headerGroups:d,tableColumn:u}=W,{elemStore:c,visibleColumn:v}=$,h=$.xeTable,p=i.value;if(p&&p.clientHeight){var m=S.value,f=w.value,g=b.value,x=E.value,_=R.value,y=T.value;let e=s;s=n;let t=0,l=0,r=0,a=(h&&(n=h.internalData,t=n.tBodyHeight,l=n.tHeaderHeight,r=n.tFooterHeight),"visible");(g||m.y&&!1===m.y.visible)&&(e=0,a="hidden");h=(0,_util.getRefElem)(c["main-header-scroll"]),n=(h&&(h.style.height=l+"px",h.style.setProperty("--vxe-ui-gantt-view-cell-height",l/d.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),g=(n&&(n.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),m=(g&&(g.style.height=r+"px"),y&&(y.style.height=s+"px",y.style.visibility="visible"),L.value),h=(m&&(m.style.left=f?e+"px":"",m.style.width=p.clientWidth-e+"px"),x&&(x.style.width=f?e+"px":"",x.style.display=f&&s?"block":""),_&&(_.style.width=f?"":e+"px",_.style.display=!f&&s?"block":""),D.value),d=(h&&(h.style.width=e+"px",h.style.height=t+l+r+"px",h.style.visibility=a),I.value),g=(d&&(d.style.height=l+"px",d.style.display=l?"block":""),M.value),y=(g&&(g.style.height=t+"px",g.style.top=l+"px"),C.value),m=(y&&(y.style.height=r+"px",y.style.top=l+t+"px",y.style.display=r?"block":""),H.value);let i=40,o=(i=m?m.clientWidth||40:i)*v.length;n&&0<(x=(p=n.clientWidth)-o)&&(i+=Math.floor(x/v.length),o=p),W.viewCellWidth=i;_=(0,_util.getRefElem)(c["main-header-table"]),f=(0,_util.getRefElem)(c["main-body-table"]),s=i*u.length;return _&&(_.style.width=o+"px"),f&&(f.style.width=s+"px"),W.scrollXWidth=o,X()}},o=()=>{var e=i.value;return $.rceRunTime=Date.now(),(e&&e.clientWidth?(v(),h(),X(),z):(0,_vue.nextTick))()},r=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=$,r=$.xeTable;let a=50;r&&(r=r.getComputeMaps().computeResizeOpts,r=r.value,a=r.refreshDelay||50),!t||(clearTimeout(t),l&&l+(a-5)<Date.now())?e(o()):(0,_vue.nextTick)(()=>{e()}),$.rceTimeout=setTimeout(()=>{$.rceTimeout=void 0,o()},a)}),z=()=>(0,_vue.nextTick)().then(()=>{var e,t=W.scrollXLoad,l=$.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=p(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),F().then(()=>{a()})):s()}),p=()=>{var e,t=W.viewCellWidth,l=$.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},a=()=>{var e=W.isScrollXBig,t=$.scrollXStore,{preloadSize:l,startIndex:r,endIndex:a,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=p(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=r||a-s-1<=o)||r===i&&a===l||(t.startIndex=i,t.endIndex=l,F())},F=()=>(B(),s(),(0,_vue.nextTick)()),O=()=>W.scrollXLoad=!0,B=()=>{var e=W.scrollXLoad,{visibleColumn:t,scrollXStore:l}=$,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);W.tableColumn=e},s=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=W,{elemStore:r,scrollXStore:a}=$;var i=(0,_util.getRefElem)(r["main-body-table"]),o=a.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${W.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(r[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=n.value;return o&&(o.style.width=l+"px"),v(),(0,_vue.nextTick)()},j=()=>{a()},m=(e,t,l,r,a)=>{l&&($.lastScrollLeft=a),t&&($.lastScrollTop=r),W.lastScrollTime=Date.now(),l=$.lcsTimeout,W.lazScrollLoading=!0,l&&clearTimeout(l),$.lcsTimeout=setTimeout(()=>{$.lcsRunTime=Date.now(),$.lcsTimeout=void 0,$.intoRunScroll=!1,$.inVirtualScroll=!1,$.inWheelScroll=!1,$.inHeaderScroll=!1,$.inBodyScroll=!1,$.inFooterScroll=!1,W.lazScrollLoading=!1},200)},G=e=>{var t=$.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:h,handleLazyRecalculate:r,handleUpdateCurrentRow(e){var t,l,r=$.xeTable,a=i.value;r&&a&&(e?(t=r.props.highlightCurrentRow,l=r.getComputeMaps().computeRowOpts,(l.value.isCurrent||t)&&_xeUtils.default.arrayEach(a.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${r.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=$.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:r,inFooterScroll:a}=$;l||r||a||(l=e.currentTarget,r=(0,_util.getRefElem)(t["main-body-scroll"]),a=d.value,r&&l&&(e=l.scrollLeft,$.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,e),(0,_dom.setScrollLeft)(r,e),m(0,!1,!0,l.scrollTop,e)))},triggerBodyScrollEvent(e){var t,l=W.scrollXLoad,{elemStore:r,inVirtualScroll:a,inHeaderScroll:i,inFooterScroll:o,lastScrollLeft:s,lastScrollTop:n}=$;a||i||o||(a=e.currentTarget,i=(0,_util.getRefElem)(r["main-header-scroll"]),o=d.value,e=u.value,s=(r=a.scrollLeft)!==s,n=(t=a.scrollTop)!==n,$.inBodyScroll=!0,$.scrollRenderType="",n&&((0,_dom.setScrollTop)(e,t),G(t)),s&&($.inBodyScroll=!0,(0,_dom.setScrollLeft)(o,r),(0,_dom.setScrollLeft)(i,r),l)&&j(),m(0,n,s,a.scrollTop,r))},triggerVirtualScrollXEvent(e){var t=W.scrollXLoad,{elemStore:l,inHeaderScroll:r,inBodyScroll:a}=$;r||a||(r=e.currentTarget,a=(0,_util.getRefElem)(l["main-header-scroll"]),e=(0,_util.getRefElem)(l["main-body-scroll"]),r&&(l=r.scrollLeft,$.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(e,l),t&&j(),m(0,!1,!0,r.scrollTop,l)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:r}=$;l||r||(l=e.currentTarget,r=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,$.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,e),G(e),m(0,!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return s()},handleUpdateSYSpace(){return(()=>{var e=$.elemStore,t=$.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),r=(0,_util.getRefElem)(e["main-body-table"]);let a=0,i=0,o=!1,s=(t&&(t=t.reactData,a=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),n=a,d=0;l&&(d=l.clientHeight),o&&(n=l&&r&&l.scrollTop+d>=maxYHeight?maxYHeight-r.clientHeight:(maxYHeight-d)*(a/(i-d)),s=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-wrapper"]),r&&(r.style.transform=`translate(${W.scrollXLeft||0}px, ${n}px)`),t&&(t.style.transform=`translate(${W.scrollXLeft||0}px, ${n}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),r=c.value;return r&&(r.style.height=s?s+"px":""),W.scrollYTop=n,W.scrollYHeight=i,W.isScrollYBig=o,v(),(0,_vue.nextTick)().then(()=>{h()})})()},handleUpdateSYStatus(e){W.scrollYLoad=e}};let A=()=>{r()},P=(Object.assign(t,{refreshData(){return l(),r()},updateViewData(){var e=$.xeTable;return e&&(e=e.reactData.tableData,W.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&($.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:T,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--scroll-x-handle",onScroll:t.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-x-space"})])]),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-right-corner"})])),N=()=>(0,_vue.h)("div",{ref:D,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:I,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:M,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-y-handle",onScroll:t.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:c,class:"vxe-gantt-view--scroll-y-space"})])]),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),J=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),K=()=>{var e=b.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[N(),J()]:[J(),N()])};let f=(0,_vue.ref)(0);return(0,_vue.watch)(()=>W.tableData,()=>{f.value++}),(0,_vue.watch)(()=>W.tableData.length,()=>{f.value++}),(0,_vue.watch)(f,()=>{l()}),(0,_vue.onMounted)(()=>{globalEvents.on(t,"resize",A)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(t,"keydown"),_xeUtils.default.assign($,createInternalData())}),t.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:r}=W,a=w.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":r}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},a?[P(),K()]:[K(),P()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",t),t},render(){return this.renderVN()}});
@@ -2227,9 +2227,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2227
2227
  if (props.expandConfig) {
2228
2228
  (0, _log.warnLog)('vxe.error.notProp', ['expand-config']);
2229
2229
  }
2230
- if (props.aggregateConfig) {
2231
- (0, _log.warnLog)('vxe.error.notProp', ['aggregate-config']);
2232
- }
2233
2230
  if (columns && columns.length) {
2234
2231
  $xeGantt.loadColumn(columns);
2235
2232
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_core=require("@vxe-ui/core"),_emits=require("./emits"),_tableEmits=require("./table-emits"),_log=require("../../ui/src/log"),_ganttView=_interopRequireDefault(require("./gantt-view")),_vxeTable=require("vxe-table");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getIcon,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_core.VxeUI,tableProps=_vxeTable.VxeTable.props,tableComponentPropKeys=Object.keys(tableProps),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","recalcRowHeight","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","setFilterByEvent","sort","setSort","setSortByEvent","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],defaultLayouts=[["Form"],["Toolbar","Top","Gantt","Bottom","Pager"]];function createInternalData(){return{resizeTableWidth:0}}let viewTypeLevelMaps={year:19,quarter:17,month:15,week:13,day:11,date:9,hour:7,minute:5,second:3};function getViewTypeLevel(e){return viewTypeLevelMaps[e||"date"]||viewTypeLevelMaps.date}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGantt",props:Object.assign(Object.assign({},tableProps),{columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,layouts:Array,taskConfig:Object,taskViewScaleConfs:Object,taskViewConfig:Object,taskBarConfig:Object,taskSplitConfig:Object,size:{type:String,default:()=>getConfig().gantt.size||getConfig().size}}),emits:_emits.ganttEmits,setup(c,e){let t,{slots:u,emit:r}=e;var T=_xeUtils.default.uniqueId();let n=_core.VxeUI.getComponent("VxeForm"),l=_core.VxeUI.getComponent("VxePager"),P=_core.VxeUI.getComponent("VxeTable"),O=_core.VxeUI.getComponent("VxeToolbar"),S=useFns.useSize(c).computeSize,V=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1},showLeftView:!0,showRightView:!0,taskScaleList:[]}),a=createInternalData(),s=(0,_vue.ref)(),U=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),d=(0,_vue.ref)(),o=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),I=(0,_vue.ref)(),q=(0,_vue.ref)(),z=(0,_vue.ref)(),A=(0,_vue.ref)(),G=(0,_vue.ref)(),H=(0,_vue.ref)();var N=e=>{let t={};return e.forEach(a=>{t[a]=(...e)=>{var t=U.value;if(t&&t[a])return t[a](...e)}}),t};let Z=N(tableComponentMethodKeys),j=(tableComponentMethodKeys.forEach(a=>{Z[a]=(...e)=>{var t=U.value;if(t&&t[a])return t&&t[a](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().gantt.proxyConfig,!0),c.proxyConfig))),K=(0,_vue.computed)(()=>{var e=j.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),L=(0,_vue.computed)(()=>{var e=j.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),M=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.pagerConfig,c.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.formConfig,c.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.toolbarConfig,c.toolbarConfig)),W=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.zoomConfig,c.zoomConfig)),h=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskConfig,c.taskConfig)),Y=(0,_vue.computed)(()=>_xeUtils.default.merge({},getConfig().gantt.taskViewScaleConfs,c.taskViewScaleConfs)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskViewConfig,c.taskViewConfig)),X=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskBarConfig,c.taskBarConfig)),Q=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskSplitConfig,c.taskSplitConfig)),_=(0,_vue.computed)(()=>{var e=b.value.scales;return e});var C=(0,_vue.computed)(()=>h.value.titleField||"title"),J=(0,_vue.computed)(()=>h.value.startField||"start"),ee=(0,_vue.computed)(()=>h.value.endField||"end"),te=(0,_vue.computed)(()=>h.value.progressField||"progress");let w=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.scrollbarConfig,c.scrollbarConfig)),ae=(0,_vue.computed)(()=>{var e=w.value;return!(!e.x||"top"!==e.x.position)}),re=(0,_vue.computed)(()=>{var e=w.value;return!(!e.y||"left"!==e.y.position)}),oe=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=c,{isZMax:a,tZindex:r}=V,o=b.value.tableStyle,l=X.value.barStyle,n={};return a?n.zIndex=r:(e&&(n.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(n.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),l&&!_xeUtils.default.isFunction(l)&&({bgColor:a,completedBgColor:r}=l,a&&(n["--vxe-ui-gantt-view-task-bar-background-color"]=a),r)&&(n["--vxe-ui-gantt-view-task-bar-completed-background-color"]=r),o&&(e=o.width,e)&&(n["--vxe-ui-gantt-view-table-default-width"]=(0,_dom.toCssUnit)(e)),n}),le=(0,_vue.computed)(()=>{let t={};return tableComponentPropKeys.forEach(e=>{t[e]=c[e]}),t}),ne=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:a,proxyConfig:r}=c,{isZMax:o,tablePage:l}=V,n=b.value.tableStyle,i=le.value,s=j.value,u=M.value,g=ce.value,d=Object.assign({},i,{showOverflow:!0,showHeaderOverflow:!0,showFooterOverflow:!0});return n&&(n=n.border,_xeUtils.default.eqNull(n)||(d.border=n)),o&&(i.maxHeight?d.maxHeight="100%":d.height="100%"),r&&(0,_utils.isEnableConf)(s)&&(d.loading=g,t)&&s.seq&&(0,_utils.isEnableConf)(u)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),a&&(d.editConfig=Object.assign({},a)),d}),ie=(0,_vue.computed)(()=>{var e=c.layouts;let t=[],a=[],r=[],o=[];return(t=e&&e.length?e:getConfig().gantt.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(a=t[0],r=t[1]||[],o=t[2]||[]):r=t),{headKeys:a,bodyKeys:r,footKeys:o}});var se=(0,_vue.computed)(()=>M.value.currentPage),ue=(0,_vue.computed)(()=>M.value.pageSize),ge=(0,_vue.computed)(()=>M.value.total);let de=(0,_vue.computed)(()=>{var e=V.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)}),ce=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=c,a=V.tableLoading,r=j.value,o=r.showLoading;return e||a&&o&&t&&(0,_utils.isEnableConf)(r)}),ve=(0,_vue.computed)(()=>{let e=c.border;var t=b.value.viewStyle;return!0===(e=t&&!_xeUtils.default.eqNull(t.border)?t.border:e)?"full":e||"default"}),pe={refElem:s,refTable:U,refForm:i,refToolbar:g,refPager:d,refGanttContainerElem:o,refClassifyWrapperElem:v},me={computeProxyOpts:j,computePagerOpts:M,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:W,computeTaskOpts:h,computeTaskViewScaleMapsOpts:Y,computeTaskViewOpts:b,computeTaskBarOpts:X,computeTaskSplitOpts:Q,computeTaskScaleConfs:_,computeTitleField:C,computeStartField:J,computeEndField:ee,computeProgressField:te,computeScrollbarOpts:w,computeScrollbarXToTop:ae,computeScrollbarYToLeft:re},$={xID:T,props:c,context:e,reactData:V,internalData:a,getRefMaps:()=>pe,getComputeMaps:()=>me},fe=()=>{var e=_.value;let r=Y.value,o=[];if(e){let a={};e.forEach(e=>{var e=!e||_xeUtils.default.isString(e)?{type:e}:e,t=e.type;t&&viewTypeLevelMaps[t]?a[t]?(0,_log.errLog)("vxe.error.repeatProp",["type",t]):(a[t]=!0,o.push(Object.assign({},t&&r[t]||{},e,{level:getViewTypeLevel(t)}))):(0,_log.errLog)("vxe.error.errProp",["type="+t,_xeUtils.default.keys(viewTypeLevelMaps).join(",")])})}o.length||o.push({type:"month",level:viewTypeLevelMaps.month},{type:"date",level:viewTypeLevelMaps.date}),V.taskScaleList=_xeUtils.default.orderBy(o,{field:"level",order:"desc"})},xe=()=>{var e=F.value;c.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=U.value,t=g.value;e&&t&&e.connectToolbar(t)})},B=()=>{var e=c.proxyConfig,t=V.formData,a=j.value,r=x.value;return e&&(0,_utils.isEnableConf)(a)&&a.form?t:r.data},y=e=>{var t=V.tablePage,a=c.pagerConfig,r=M.value;a&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:a,pageSize:e,total:r}=r,a&&(t.currentPage=a),e&&(t.pageSize=e),r&&(t.total=r)))},D=(e,t)=>{var a=j.value,a=(a.response||a.props||{}).message,r=U.value;let o;return(o=e&&a?_xeUtils.default.isFunction(a)?a({data:e,$table:r,$grid:null,$gantt:$}):_xeUtils.default.get(e,a):o)||getI18n(t)},he=(e,t,a)=>{var r=L.value,o=$.getCheckboxRecords();if(r)if(o.length){if(_core.VxeUI.modal)return _core.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return a()})}else _core.VxeUI.modal&&_core.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else o.length&&a();return Promise.resolve()},be=e=>{var t=c.proxyConfig,a=V.tablePage;let{$event:r,currentPage:o,pageSize:l}=e;var n=j.value;a.currentPage=o,a.pageSize=l,$.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(n)&&$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,r)})},_e=t=>{var e,a=U.value,r=c.proxyConfig;a&&(a=a.getComputeMaps().computeSortOpts,e=j.value,a.value.remote)&&(V.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(e)&&(V.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)}))},Ce=e=>{_e(e),$.dispatchEvent("sort-change",e,e.$event)},we=e=>{_e(e),$.dispatchEvent("clear-all-sort",e,e.$event)},ye=t=>{var e,a=U.value,r=c.proxyConfig;a&&(a=a.getComputeMaps().computeFilterOpts,e=j.value,a.value.remote)&&(V.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(e)&&(V.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)}))},Ee=e=>{ye(e),$.dispatchEvent("filter-change",e,e.$event)},Re=e=>{ye(e),$.dispatchEvent("clear-all-filter",e,e.$event)},ke=t=>{var e=c.proxyConfig,a=j.value;V.tableLoading||(e&&(0,_utils.isEnableConf)(a)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event))},Te=e=>{var t=U.value,a=c.proxyConfig;let r=e.$event;var o=j.value;a&&(0,_utils.isEnableConf)(o)&&(t&&t.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),$.dispatchEvent("form-reset",e,r)},Pe=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},Oe=e=>{var t=e.$event;$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},Se=e=>{var t=V.isZMax;return(e?!t:t)&&(V.isZMax=!t,V.tZindex<(0,_utils.getLastZIndex)())&&(V.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>$.recalculate(!0)).then(()=>(setTimeout(()=>$.recalculate(!0),15),V.isZMax))},E=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},Ie=e=>{let a={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?a[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):a[t]=e)}),a},Ve=e=>{let c=s.value;if(c){var v=o.value;if(v){let d=A.value;if(d){let g=H.value;if(g){var p=b.value;let o=v.getBoundingClientRect(),l=g.children[0],t=e.clientX,a=v.clientWidth,r=d.clientWidth,n=p.tableStyle&&_xeUtils.default.toNumber(p.tableStyle.minWidth)||80,i=r,s=-1,u=((0,_dom.addClass)(c,"is--split-drag"),e=>{var t=l.children[0],a=l.children[1];let r=0;t&&(s<0?t.style.display="none":(t.textContent=i+"px",t.style.display="block",r=t.offsetHeight)),a&&(s<0?(a.textContent=Math.floor(o.width-i)+"px",a.style.display="block",r=a.offsetHeight):a.style.display="none");t=e.clientY-o.top-r/2;g.style.left=i+"px",l.style.top=Math.min(o.height-r-1,Math.max(1,t))+"px"});document.onmousemove=e=>{e.preventDefault(),s=e.clientX-t,i=Math.min(a-80,Math.max(n,r+s)),u(e)},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,g.style.display="",d.style.width=i+"px",(0,_dom.removeClass)(c,"is--split-drag");var e=U.value;e&&e.recalculate(!0)},g.style.display="block",u(e)}}}}},Ue=()=>{V.showLeftView=!V.showLeftView},je=()=>{V.showRightView=!V.showRightView},Le={},Me=(_tableEmits.tableEmits.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);Le[e]=(...e)=>r(t,...e)}),()=>{var e=x.value;if(e.items){let o={};return e.items.forEach(t=>{var{field:a,itemRender:r}=t;if(a){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),o[a]=e}}),o}return{}}),Fe=()=>{var{proxyConfig:e,formConfig:t}=c,a=V.proxyInited,r=j.value,o=x.value;e&&(0,_utils.isEnableConf)(r)&&(t&&(0,_utils.isEnableConf)(o)&&r.form&&o.items&&(V.formData=Me()),a||!(V.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("initial")).then(e=>{Be("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},$e=e=>{var t=W.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&V.isZMax&&!1!==t.escRestore&&$.triggerZoomEvent(e)},Be=(e,t,a)=>{r(e,createEvent(a,{$grid:null,$gantt:$},t))};C={dispatchEvent:Be,getEl(){return s.value},commitProxy(t,...v){let{proxyConfig:r,toolbarConfig:e,pagerConfig:i,editRules:p,validConfig:m}=c,s=V.tablePage,f=L.value,x=K.value;var u=j.value;let h=M.value;var a=F.value;let{beforeQuery:b,afterQuery:_,beforeDelete:n,afterDelete:C,beforeSave:w,afterSave:y,ajax:E={}}=u,R=u.response||u.props||{},k=U.value;if(k){let g=B(),d=null,c=null;c=_xeUtils.default.isString(t)?(o=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,d=a?a.item:null,t):(d=t).code;var o,l=d?d.params:null;switch(c){case"insert":return k.insert({});case"insert_edit":return k.insert({}).then(({row:e})=>k.setEditRow(e,!0));case"insert_actived":return k.insert({}).then(({row:e})=>k.setEditRow(e,!0));case"mark_cancel":S=c,O=L.value,T=U.value,(P=T?T.getCheckboxRecords():[]).length?(T&&T.togglePendingRow(P),$.clearCheckboxRow()):O&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:S,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return he(c,"vxe.grid.removeSelectRecord",()=>k.removeCheckboxRow());case"import":k.importData(l);break;case"open_import":k.openImport(l);break;case"export":k.exportData(l);break;case"open_export":k.openExport(l);break;case"reset_custom":return k.resetCustom(!0);case"initial":case"reload":case"query":{var T=E.query;let n=E.querySuccess,t=E.queryError;if(T){var P="initial"===c,O="reload"===c;if(!P&&V.tableLoading)return(0,_vue.nextTick)();let a=[],o=[],e={};if(i&&((P||O)&&(s.currentPage=1),(0,_utils.isEnableConf)(h))&&(e=Object.assign({},s)),P){if(r&&(0,_utils.isEnableConf)(u)&&u.form&&(g=Me(),V.formData=g),k){let{tableFullColumn:e,fullColumnFieldData:r}=k.internalData;var S=k.getComputeMaps().computeSortOpts;let t=S.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),a=t.map(e=>{var{field:e,order:t}=e,a=r[e];return a&&(a=a.column)&&(a.order=t),{field:e,property:e,order:t}})),o=k.getCheckedFilters()}}else k&&(O?k.clearAll():(a=k.getSortColumns(),o=k.getCheckedFilters()));let l={$table:k,$grid:null,$gantt:$,code:c,button:d,isInited:P,isReload:O,page:e,sort:a.length?a[0]:{},sorts:a,filters:o,form:g,options:T};return V.sortData=a,V.filterData=o,V.tableLoading=!0,Promise.resolve((b||T)(l,...v)).then(e=>{let t=[];var a,r;return V.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(h)?(r=R.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,r||"page.total"))||0,s.total=_xeUtils.default.toNumber(r),a=R.result,t=(_xeUtils.default.isFunction(a)?a({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,a||"result"))||[],a=Math.max(Math.ceil(r/s.pageSize),1),s.currentPage>a&&(s.currentPage=a)):(r=R.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,r):e)||[])),k?k.loadData(t):(0,_vue.nextTick)(()=>{k&&k.loadData(t)}),_&&_(l,...v),n&&n(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(V.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=E.delete,o=E.deleteSuccess,l=E.deleteError;if(r){let e=$.getCheckboxRecords(),t=e.filter(e=>!k.isInsertByRow(e));var I={removeRecords:t};let a={$table:k,$grid:null,$gantt:$,code:c,button:d,body:I,form:g,options:r};if(e.length)return he(c,"vxe.grid.deleteSelectRecord",()=>t.length?(V.tableLoading=!0,Promise.resolve((n||r)(a,...v)).then(e=>(V.tableLoading=!1,k.setPendingRow(t,!1),x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({content:D(e,"vxe.grid.delSuccess"),status:"success"}),C?C(a,...v):$.commitProxy("query"),o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(V.tableLoading=!1,x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:D(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):k.remove(e));f&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let i=E.save,s=E.saveSuccess,u=E.saveError;if(i){let t=k.getRecordset(),{insertRecords:a,removeRecords:r,updateRecords:o,pendingRecords:l}=t,n={$table:k,$grid:null,$gantt:$,code:c,button:d,body:t,form:g,options:i},e=(a.length&&(t.pendingRecords=l.filter(e=>-1===k.findRowIndexOf(a,e))),l.length&&(t.insertRecords=a.filter(e=>-1===k.findRowIndexOf(l,e))),Promise.resolve());return(e=p?k[m&&"full"===m.msgMode?"fullValidate":"validate"](t.insertRecords.concat(o)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||o.length||t.pendingRecords.length?(V.tableLoading=!0,Promise.resolve((w||i)(n,...v)).then(e=>(V.tableLoading=!1,k.clearPendingRow(),x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({content:D(e,"vxe.grid.saveSuccess"),status:"success"}),y?y(n,...v):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(V.tableLoading=!1,x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:D(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},n),{response:e})),{status:!1}))):void(f&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var I=commands.get(c);I&&((I=I.tableCommandMethod||I.commandMethod)?I({code:c,button:d,$table:k,$grid:null,$gantt:$},...v):(0,_log.errLog)("vxe.error.notCommands",[c]))}}return(0,_vue.nextTick)()},getParams(){return c.params},zoom(){return V.isZMax?$.revert():$.maximize()},isMaximized(){return V.isZMax},maximize(){return Se(!0)},revert(){return Se()},getFormData:B,getFormItems(e){var t=x.value,a=c.formConfig,r=t.items;let o=[];return _xeUtils.default.eachTree(a&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},resetForm(){var e=i.value;return e?e.reset():(0,_vue.nextTick)()},validateForm(){var e=i.value;return e?e.validate():(0,_vue.nextTick)()},validateFormField(e){var t=i.value;return t?t.validateField(e):(0,_vue.nextTick)()},clearFormValidate(e){var t=i.value;return t?t.clearValidate(e):(0,_vue.nextTick)()},homePage(){var e=V.tablePage;return e.currentPage=1,(0,_vue.nextTick)()},homePageByEvent(e){var t=d.value;t&&t.homePageByEvent(e)},endPage(){var e=V.tablePage,t=de.value;return e.currentPage=t,(0,_vue.nextTick)()},endPageByEvent(e){var t=d.value;t&&t.endPageByEvent(e)},setCurrentPage(e){var t=V.tablePage,a=de.value;return t.currentPage=Math.min(a,Math.max(1,_xeUtils.default.toNumber(e))),(0,_vue.nextTick)()},setCurrentPageByEvent(e,t){var a=d.value;a&&a.setCurrentPageByEvent(e,t)},setPageSize(e){var t=V.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),(0,_vue.nextTick)()},setPageSizeByEvent(e,t){var a=d.value;a&&a.setPageSizeByEvent(e,t)},getProxyInfo(){var e,t=U.value;return c.proxyConfig?(e=V.sortData,{data:t?t.getFullData():[],filter:V.filterData,form:B(),sort:e.length?e[0]:{},sorts:e,pager:V.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null},refreshTaskView(){var e=p.value;return e?e.refreshData():(0,_vue.nextTick)()},hasTableViewVisible(){return V.showLeftView},showTableView(){return V.showLeftView=!0,(0,_vue.nextTick)()},hideTableView(){return(V.showLeftView=!1,_vue.nextTick)()},hasTaskViewVisible(){return V.showRightView},showTaskView(){return V.showRightView=!0,(0,_vue.nextTick)()},hideTaskView(){return(V.showRightView=!1,_vue.nextTick)()}};let De={extendTableMethods:N,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,a,r,o,l,n=V.isZMax,i=s.value;return i?(e=m.value,t=f.value,a=I.value,r=q.value,o=z.value,l=i.parentElement,(!n&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(i)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(V.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-De.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let a=e.code;return $.commitProxy(e,t).then(e=>{a&&e&&e.status&&["query","reload","delete","save"].includes(a)&&$.dispatchEvent("delete"===a||"save"===a?"proxy-"+a:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===a}),t)})},triggerToolbarBtnEvent(e,t){$.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){$.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:V.isZMax?"max":"revert"},e)},handleTaskCellClickEvent(e,t){var a,r,o,l,n,i,s,u=U.value;u&&(a=u.props.highlightCurrentRow,{radioColumn:r,checkboxColumn:o}=u.reactData,{computeRadioOpts:n,computeCheckboxOpts:i,computeRowOpts:l}=u.getComputeMaps(),n=n.value,i=i.value,s=t.row,(l.value.isCurrent||a)&&u.triggerCurrentRowEvent(e,Object.assign({$table:u,rowIndex:u.getRowIndex(s),$rowIndex:u.getVMRowIndex(s)},t)),r&&"row"===n.trigger&&u.triggerRadioRowEvent(e,t),o)&&"row"===i.trigger&&u.handleToggleCheckRowEvent(e,t),$.dispatchEvent("task-cell-click",t,e)},handleTaskCellDblclickEvent(e,t){$.dispatchEvent("task-cell-dblclick",t,e)},handleTaskBarClickEvent(e,t){$.dispatchEvent("task-bar-click",t,e)},handleTaskBarDblclickEvent(e,t){$.dispatchEvent("task-bar-dblclick",t,e)}},qe=(Object.assign($,Z,C,De,{loadColumn(e){var t=U.value;return _xeUtils.default.eachTree(e,e=>{var t=e.type;e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])}),"expand"===t&&(0,_log.errLog)("vxe.error.errProp",["type=expand","type=seq,radio,checkbox,html"])}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return $.clearAll(),$.loadColumn(e)}}),()=>{var{formConfig:e,proxyConfig:a}=c,r=V.formData,o=j.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:null,$gantt:$});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=o.beforeItem;o&&t&&l.items.forEach(e=>{t({$grid:null,$gantt:$,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:i},Object.assign({},l,{data:a&&(0,_utils.isEnableConf)(o)&&o.form?r:l.data})),{onSubmit:ke,onReset:Te,onSubmitInvalid:Pe,onCollapse:Oe}),t))}return(0,_vue.h)("div",{ref:m,key:"form",class:"vxe-gantt--form-wrapper"},e)}return renderEmptyElement($)}),ze=()=>{var t,a,r,o,l,n=c.toolbarConfig,i=F.value,s=u.toolbar;if(n&&(0,_utils.isEnableConf)(i)||s){let e=[];return u.toolbar?e=u.toolbar({$grid:null,$gantt:$}):(n={},(s=i.slots)&&(t=E(s,"buttons"),a=E(s,"buttonPrefix"),r=E(s,"buttonSuffix"),o=E(s,"tools"),l=E(s,"toolPrefix"),s=E(s,"toolSuffix"),t&&(n.buttons=t),a&&(n.buttonPrefix=a),r&&(n.buttonSuffix=r),o&&(n.tools=o),l&&(n.toolPrefix=l),s)&&(n.toolSuffix=s),e.push((0,_vue.h)(O,Object.assign(Object.assign({ref:g},i),{slots:void 0}),n))),(0,_vue.h)("div",{ref:f,key:"toolbar",class:"vxe-gantt--toolbar-wrapper"},e)}return renderEmptyElement($)},Ae=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:I,key:"top",class:"vxe-gantt--top-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},Ge=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-gantt--left-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},He=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-gantt--right-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},Ne=()=>{var e=c.proxyConfig,t=ne.value,a=j.value,r=Object.assign({},Le),o=u.empty,l=u.loading,n=u.rowDragIcon||u["row-drag-icon"],i=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(a)&&(a.sort&&(r.onSortChange=Ce,r.onClearAllSort=we),a.filter)&&(r.onFilterChange=Ee,r.onClearAllFilter=Re),{});return o&&(e.empty=o),l&&(e.loading=l),n&&(e.rowDragIcon=n),i&&(e.columnDragIcon=i),(0,_vue.h)("div",{ref:A,class:"vxe-gantt--table-wrapper"},[(0,_vue.h)(P,Object.assign(Object.assign({ref:U},t),r),e)])},Ze=()=>u.bottom?(0,_vue.h)("div",{ref:q,key:"bottom",class:"vxe-gantt--bottom-wrapper"},u.bottom({$grid:null,$gantt:$})):renderEmptyElement($),Ke=()=>{var{proxyConfig:e,pagerConfig:t}=c,a=j.value,r=M.value,o=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:z,key:"pager",class:"vxe-gantt--pager-wrapper"},o?o({$grid:null,$gantt:$}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:d},r),e&&(0,_utils.isEnableConf)(a)?V.tablePage:{}),{onPageChange:be}),Ie(r.slots)):renderEmptyElement($)]):renderEmptyElement($)},We=()=>(0,_vue.h)("div",{ref:G,class:"vxe-gantt--view-wrapper"},[(0,_vue.h)(_ganttView.default,{ref:p})]),Ye=()=>{var{showLeftView:e,showRightView:t}=V,{enabled:a,resize:r,showCollapseTableButton:o,showCollapseTaskButton:l}=Q.value;return a?(a={},(r=r&&e&&t)&&(a.onMousedown=Ve),(0,_vue.h)("div",{class:["vxe-gantt--view-split-bar",{"is--resize":r}]},[(0,_vue.h)("div",Object.assign({class:"vxe-gantt--view-split-bar-handle"},a)),o||l?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-btn-wrapper"},[o&&t?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-left-btn",onClick:Ue},[(0,_vue.h)("i",{class:e?getIcon().GANTT_VIEW_LEFT_OPEN:getIcon().GANTT_VIEW_LEFT_CLOSE})]):renderEmptyElement($),l&&e?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-right-btn",onClick:je},[(0,_vue.h)("i",{class:t?getIcon().GANTT_VIEW_RIGHT_OPEN:getIcon().GANTT_VIEW_RIGHT_CLOSE})]):renderEmptyElement($)]):renderEmptyElement($)])):renderEmptyElement($)},R=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(qe());break;case"Toolbar":t.push(ze());break;case"Top":t.push(Ae());break;case"Gantt":t.push((0,_vue.h)("div",{ref:o,key:"tv",class:"vxe-gantt--gantt-container"},[Ge(),Ne(),Ye(),We(),He(),(0,_vue.h)("div",{ref:v}),(0,_vue.h)("div",{ref:H,class:"vxe-gantt--resizable-split-tip"},[(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-tip-number"},[(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-number-left"}),(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-number-right"})])]),(0,_vue.h)("div",{class:"vxe-gantt--border-line"})]));break;case"Bottom":t.push(Ze());break;case"Pager":t.push(Ke());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t};let k=(0,_vue.ref)(0);return(0,_vue.watch)(()=>c.columns?c.columns.length:-1,()=>{k.value++}),(0,_vue.watch)(()=>c.columns,()=>{k.value++}),(0,_vue.watch)(k,()=>{(0,_vue.nextTick)(()=>$.loadColumn(c.columns||[]))}),(0,_vue.watch)(()=>c.toolbarConfig,()=>{xe()}),(0,_vue.watch)(se,()=>{y("currentPage")}),(0,_vue.watch)(ue,()=>{y("pageSize")}),(0,_vue.watch)(ge,()=>{y("total")}),(0,_vue.watch)(()=>c.proxyConfig,()=>{Fe()}),(0,_vue.watch)(_,()=>{fe()}),hooks.forEach(e=>{var e=e.setupGantt;e&&(e=e($))&&_xeUtils.default.isObject(e)&&Object.assign($,e)}),fe(),y(),(0,_vue.onMounted)(()=>{var e,t;(0,_vue.nextTick)(()=>{var e=c.columns,t=j.value;c.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),c.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),c.expandConfig&&(0,_log.warnLog)("vxe.error.notProp",["expand-config"]),c.aggregateConfig&&(0,_log.warnLog)("vxe.error.notProp",["aggregate-config"]),e&&e.length&&$.loadColumn(e),xe(),Fe()}),e=U.value,t=p.value,e&&t&&e.handleConnectGanttView(t),globalEvents.on($,"keydown",$e)}),(0,_vue.onUnmounted)(()=>{globalEvents.off($,"keydown"),_xeUtils.default.assign(a,createInternalData())}),$.renderVN=()=>{var{showLeftView:e,showRightView:t}=V,a=S.value,r=oe.value,o=ce.value,l=ve.value,n=ae.value,i=re.value;return(0,_vue.h)("div",{ref:s,class:["vxe-gantt","border--"+l,"sx-pos--"+(n?"top":"bottom"),"sy-pos--"+(i?"left":"right"),{["size--"+a]:a,"is--round":c.round,"is--maximize":V.isZMax,"is--loading":o,"show--left":e,"show--right":t}],style:r},(()=>{var{headKeys:e,bodyKeys:t,footKeys:a}=ie.value,r=u.asideLeft||u["aside-left"],o=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-gantt--layout-header-wrapper"},R(e)),(0,_vue.h)("div",{class:"vxe-gantt--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-gantt--layout-aside-left-wrapper"},r({})):renderEmptyElement($),(0,_vue.h)("div",{class:"vxe-gantt--layout-body-content-wrapper"},R(t)),o?(0,_vue.h)("div",{class:"vxe-gantt--layout-aside-right-wrapper"},o({})):renderEmptyElement($)]),(0,_vue.h)("div",{class:"vxe-gantt--layout-footer-wrapper"},R(a))]})())},(0,_vue.provide)("$xeGrid",null),(0,_vue.provide)("$xeGantt",$),$},render(){return this.renderVN()}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn"),_core=require("@vxe-ui/core"),_emits=require("./emits"),_tableEmits=require("./table-emits"),_log=require("../../ui/src/log"),_ganttView=_interopRequireDefault(require("./gantt-view")),_vxeTable=require("vxe-table");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,getIcon,getI18n,commands,hooks,useFns,createEvent,globalEvents,GLOBAL_EVENT_KEYS,renderEmptyElement}=_core.VxeUI,tableProps=_vxeTable.VxeTable.props,tableComponentPropKeys=Object.keys(tableProps),tableComponentMethodKeys=["clearAll","syncData","updateData","loadData","reloadData","reloadRow","loadColumn","reloadColumn","getRowNode","getColumnNode","getRowIndex","getVTRowIndex","getVMRowIndex","getColumnIndex","getVTColumnIndex","getVMColumnIndex","setRow","createData","createRow","revertData","clearData","isRemoveByRow","isInsertByRow","isUpdateByRow","getColumns","getColumnById","getColumnByField","getTableColumn","getFullColumns","getData","getCheckboxRecords","getParentRow","getTreeRowChildren","getTreeParentRow","getRowSeq","getRowById","getRowid","getTableData","getFullData","setColumnFixed","clearColumnFixed","setColumnWidth","getColumnWidth","recalcRowHeight","setRowHeightConf","getRowHeightConf","setRowHeight","getRowHeight","hideColumn","showColumn","resetColumn","refreshColumn","refreshScroll","recalculate","closeTooltip","isAllCheckboxChecked","isAllCheckboxIndeterminate","getCheckboxIndeterminateRecords","setCheckboxRow","setCheckboxRowKey","isCheckedByCheckboxRow","isCheckedByCheckboxRowKey","isIndeterminateByCheckboxRow","isIndeterminateByCheckboxRowKey","toggleCheckboxRow","setAllCheckboxRow","getRadioReserveRecord","clearRadioReserve","getCheckboxReserveRecords","clearCheckboxReserve","toggleAllCheckboxRow","clearCheckboxRow","setCurrentRow","isCheckedByRadioRow","isCheckedByRadioRowKey","setRadioRow","setRadioRowKey","clearCurrentRow","clearRadioRow","getCurrentRecord","getRadioRecord","getCurrentColumn","setCurrentColumn","clearCurrentColumn","setPendingRow","togglePendingRow","hasPendingByRow","isPendingByRow","getPendingRecords","clearPendingRow","setFilterByEvent","sort","setSort","setSortByEvent","clearSort","clearSortByEvent","isSort","getSortColumns","closeFilter","isFilter","clearFilterByEvent","isActiveFilterByColumn","isRowExpandLoaded","clearRowExpandLoaded","reloadRowExpand","reloadRowExpand","toggleRowExpand","setAllRowExpand","setRowExpand","isExpandByRow","isRowExpandByRow","clearRowExpand","clearRowExpandReserve","getRowExpandRecords","getTreeExpandRecords","isTreeExpandLoaded","clearTreeExpandLoaded","reloadTreeExpand","reloadTreeChilds","toggleTreeExpand","setAllTreeExpand","setTreeExpand","isTreeExpandByRow","clearTreeExpand","clearTreeExpandReserve","getScroll","scrollTo","scrollToRow","scrollToColumn","clearScroll","updateFooter","updateStatus","setMergeCells","removeInsertRow","removeMergeCells","getMergeCells","clearMergeCells","setMergeFooterItems","removeMergeFooterItems","getMergeFooterItems","clearMergeFooterItems","getCustomStoreData","setRowGroupExpand","setAllRowGroupExpand","clearRowGroupExpand","isRowGroupExpandByRow","isRowGroupRecord","isAggregateRecord","isAggregateExpandByRow","getAggregateContentByRow","getAggregateRowChildren","setRowGroups","clearRowGroups","openTooltip","moveColumnTo","moveRowTo","getCellLabel","getCellElement","focus","blur","connect"],defaultLayouts=[["Form"],["Toolbar","Top","Gantt","Bottom","Pager"]];function createInternalData(){return{resizeTableWidth:0}}let viewTypeLevelMaps={year:19,quarter:17,month:15,week:13,day:11,date:9,hour:7,minute:5,second:3};function getViewTypeLevel(e){return viewTypeLevelMaps[e||"date"]||viewTypeLevelMaps.date}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGantt",props:Object.assign(Object.assign({},tableProps),{columns:Array,pagerConfig:Object,proxyConfig:Object,toolbarConfig:Object,formConfig:Object,zoomConfig:Object,layouts:Array,taskConfig:Object,taskViewScaleConfs:Object,taskViewConfig:Object,taskBarConfig:Object,taskSplitConfig:Object,size:{type:String,default:()=>getConfig().gantt.size||getConfig().size}}),emits:_emits.ganttEmits,setup(c,e){let t,{slots:u,emit:r}=e;var T=_xeUtils.default.uniqueId();let n=_core.VxeUI.getComponent("VxeForm"),l=_core.VxeUI.getComponent("VxePager"),P=_core.VxeUI.getComponent("VxeTable"),O=_core.VxeUI.getComponent("VxeToolbar"),S=useFns.useSize(c).computeSize,V=(0,_vue.reactive)({tableLoading:!1,proxyInited:!1,isZMax:!1,tableData:[],filterData:[],formData:{},sortData:[],tZindex:0,tablePage:{total:0,pageSize:(null==(t=getConfig().pager)?void 0:t.pageSize)||10,currentPage:1},showLeftView:!0,showRightView:!0,taskScaleList:[]}),a=createInternalData(),s=(0,_vue.ref)(),U=(0,_vue.ref)(),i=(0,_vue.ref)(),g=(0,_vue.ref)(),d=(0,_vue.ref)(),o=(0,_vue.ref)(),v=(0,_vue.ref)(),p=(0,_vue.ref)(),m=(0,_vue.ref)(),f=(0,_vue.ref)(),I=(0,_vue.ref)(),q=(0,_vue.ref)(),z=(0,_vue.ref)(),A=(0,_vue.ref)(),G=(0,_vue.ref)(),H=(0,_vue.ref)();var N=e=>{let t={};return e.forEach(a=>{t[a]=(...e)=>{var t=U.value;if(t&&t[a])return t[a](...e)}}),t};let Z=N(tableComponentMethodKeys),j=(tableComponentMethodKeys.forEach(a=>{Z[a]=(...e)=>{var t=U.value;if(t&&t[a])return t&&t[a](...e)}}),(0,_vue.computed)(()=>_xeUtils.default.merge({},_xeUtils.default.clone(getConfig().gantt.proxyConfig,!0),c.proxyConfig))),K=(0,_vue.computed)(()=>{var e=j.value;return!!(_xeUtils.default.isBoolean(e.message)?e.message:e.showResponseMsg)}),L=(0,_vue.computed)(()=>{var e=j.value;return _xeUtils.default.isBoolean(e.showActionMsg)?e.showActionMsg:!!e.showActiveMsg}),M=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.pagerConfig,c.pagerConfig)),x=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.formConfig,c.formConfig)),F=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.toolbarConfig,c.toolbarConfig)),W=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.zoomConfig,c.zoomConfig)),h=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskConfig,c.taskConfig)),Y=(0,_vue.computed)(()=>_xeUtils.default.merge({},getConfig().gantt.taskViewScaleConfs,c.taskViewScaleConfs)),b=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskViewConfig,c.taskViewConfig)),X=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskBarConfig,c.taskBarConfig)),Q=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.taskSplitConfig,c.taskSplitConfig)),_=(0,_vue.computed)(()=>{var e=b.value.scales;return e});var C=(0,_vue.computed)(()=>h.value.titleField||"title"),J=(0,_vue.computed)(()=>h.value.startField||"start"),ee=(0,_vue.computed)(()=>h.value.endField||"end"),te=(0,_vue.computed)(()=>h.value.progressField||"progress");let w=(0,_vue.computed)(()=>Object.assign({},getConfig().gantt.scrollbarConfig,c.scrollbarConfig)),ae=(0,_vue.computed)(()=>{var e=w.value;return!(!e.x||"top"!==e.x.position)}),re=(0,_vue.computed)(()=>{var e=w.value;return!(!e.y||"left"!==e.y.position)}),oe=(0,_vue.computed)(()=>{var{height:e,maxHeight:t}=c,{isZMax:a,tZindex:r}=V,o=b.value.tableStyle,l=X.value.barStyle,n={};return a?n.zIndex=r:(e&&(n.height="auto"===e||"100%"===e?"100%":(0,_dom.toCssUnit)(e)),t&&(n.maxHeight="auto"===t||"100%"===t?"100%":(0,_dom.toCssUnit)(t))),l&&!_xeUtils.default.isFunction(l)&&({bgColor:a,completedBgColor:r}=l,a&&(n["--vxe-ui-gantt-view-task-bar-background-color"]=a),r)&&(n["--vxe-ui-gantt-view-task-bar-completed-background-color"]=r),o&&(e=o.width,e)&&(n["--vxe-ui-gantt-view-table-default-width"]=(0,_dom.toCssUnit)(e)),n}),le=(0,_vue.computed)(()=>{let t={};return tableComponentPropKeys.forEach(e=>{t[e]=c[e]}),t}),ne=(0,_vue.computed)(()=>{var{seqConfig:e,pagerConfig:t,editConfig:a,proxyConfig:r}=c,{isZMax:o,tablePage:l}=V,n=b.value.tableStyle,i=le.value,s=j.value,u=M.value,g=ce.value,d=Object.assign({},i,{showOverflow:!0,showHeaderOverflow:!0,showFooterOverflow:!0});return n&&(n=n.border,_xeUtils.default.eqNull(n)||(d.border=n)),o&&(i.maxHeight?d.maxHeight="100%":d.height="100%"),r&&(0,_utils.isEnableConf)(s)&&(d.loading=g,t)&&s.seq&&(0,_utils.isEnableConf)(u)&&(d.seqConfig=Object.assign({},e,{startIndex:(l.currentPage-1)*l.pageSize})),a&&(d.editConfig=Object.assign({},a)),d}),ie=(0,_vue.computed)(()=>{var e=c.layouts;let t=[],a=[],r=[],o=[];return(t=e&&e.length?e:getConfig().gantt.layouts||defaultLayouts).length&&(_xeUtils.default.isArray(t[0])?(a=t[0],r=t[1]||[],o=t[2]||[]):r=t),{headKeys:a,bodyKeys:r,footKeys:o}});var se=(0,_vue.computed)(()=>M.value.currentPage),ue=(0,_vue.computed)(()=>M.value.pageSize),ge=(0,_vue.computed)(()=>M.value.total);let de=(0,_vue.computed)(()=>{var e=V.tablePage;return Math.max(Math.ceil(e.total/e.pageSize),1)}),ce=(0,_vue.computed)(()=>{var{loading:e,proxyConfig:t}=c,a=V.tableLoading,r=j.value,o=r.showLoading;return e||a&&o&&t&&(0,_utils.isEnableConf)(r)}),ve=(0,_vue.computed)(()=>{let e=c.border;var t=b.value.viewStyle;return!0===(e=t&&!_xeUtils.default.eqNull(t.border)?t.border:e)?"full":e||"default"}),pe={refElem:s,refTable:U,refForm:i,refToolbar:g,refPager:d,refGanttContainerElem:o,refClassifyWrapperElem:v},me={computeProxyOpts:j,computePagerOpts:M,computeFormOpts:x,computeToolbarOpts:F,computeZoomOpts:W,computeTaskOpts:h,computeTaskViewScaleMapsOpts:Y,computeTaskViewOpts:b,computeTaskBarOpts:X,computeTaskSplitOpts:Q,computeTaskScaleConfs:_,computeTitleField:C,computeStartField:J,computeEndField:ee,computeProgressField:te,computeScrollbarOpts:w,computeScrollbarXToTop:ae,computeScrollbarYToLeft:re},$={xID:T,props:c,context:e,reactData:V,internalData:a,getRefMaps:()=>pe,getComputeMaps:()=>me},fe=()=>{var e=_.value;let r=Y.value,o=[];if(e){let a={};e.forEach(e=>{var e=!e||_xeUtils.default.isString(e)?{type:e}:e,t=e.type;t&&viewTypeLevelMaps[t]?a[t]?(0,_log.errLog)("vxe.error.repeatProp",["type",t]):(a[t]=!0,o.push(Object.assign({},t&&r[t]||{},e,{level:getViewTypeLevel(t)}))):(0,_log.errLog)("vxe.error.errProp",["type="+t,_xeUtils.default.keys(viewTypeLevelMaps).join(",")])})}o.length||o.push({type:"month",level:viewTypeLevelMaps.month},{type:"date",level:viewTypeLevelMaps.date}),V.taskScaleList=_xeUtils.default.orderBy(o,{field:"level",order:"desc"})},xe=()=>{var e=F.value;c.toolbarConfig&&(0,_utils.isEnableConf)(e)&&(0,_vue.nextTick)(()=>{var e=U.value,t=g.value;e&&t&&e.connectToolbar(t)})},B=()=>{var e=c.proxyConfig,t=V.formData,a=j.value,r=x.value;return e&&(0,_utils.isEnableConf)(a)&&a.form?t:r.data},y=e=>{var t=V.tablePage,a=c.pagerConfig,r=M.value;a&&(0,_utils.isEnableConf)(r)&&(e?r[e]&&(t[e]=_xeUtils.default.toNumber(r[e])):({currentPage:a,pageSize:e,total:r}=r,a&&(t.currentPage=a),e&&(t.pageSize=e),r&&(t.total=r)))},D=(e,t)=>{var a=j.value,a=(a.response||a.props||{}).message,r=U.value;let o;return(o=e&&a?_xeUtils.default.isFunction(a)?a({data:e,$table:r,$grid:null,$gantt:$}):_xeUtils.default.get(e,a):o)||getI18n(t)},he=(e,t,a)=>{var r=L.value,o=$.getCheckboxRecords();if(r)if(o.length){if(_core.VxeUI.modal)return _core.VxeUI.modal.confirm({id:"cfm_"+e,content:getI18n(t),escClosable:!0}).then(e=>{if("confirm"===e)return a()})}else _core.VxeUI.modal&&_core.VxeUI.modal.message({id:"msg_"+e,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});else o.length&&a();return Promise.resolve()},be=e=>{var t=c.proxyConfig,a=V.tablePage;let{$event:r,currentPage:o,pageSize:l}=e;var n=j.value;a.currentPage=o,a.pageSize=l,$.dispatchEvent("page-change",e,r),t&&(0,_utils.isEnableConf)(n)&&$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,r)})},_e=t=>{var e,a=U.value,r=c.proxyConfig;a&&(a=a.getComputeMaps().computeSortOpts,e=j.value,a.value.remote)&&(V.sortData=t.sortList,r)&&(0,_utils.isEnableConf)(e)&&(V.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)}))},Ce=e=>{_e(e),$.dispatchEvent("sort-change",e,e.$event)},we=e=>{_e(e),$.dispatchEvent("clear-all-sort",e,e.$event)},ye=t=>{var e,a=U.value,r=c.proxyConfig;a&&(a=a.getComputeMaps().computeFilterOpts,e=j.value,a.value.remote)&&(V.filterData=t.filterList,r)&&(0,_utils.isEnableConf)(e)&&(V.tablePage.currentPage=1,$.commitProxy("query").then(e=>{$.dispatchEvent("proxy-query",e,t.$event)}))},Ee=e=>{ye(e),$.dispatchEvent("filter-change",e,e.$event)},Re=e=>{ye(e),$.dispatchEvent("clear-all-filter",e,e.$event)},ke=t=>{var e=c.proxyConfig,a=j.value;V.tableLoading||(e&&(0,_utils.isEnableConf)(a)&&$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),t.$event)}),$.dispatchEvent("form-submit",t,t.$event))},Te=e=>{var t=U.value,a=c.proxyConfig;let r=e.$event;var o=j.value;a&&(0,_utils.isEnableConf)(o)&&(t&&t.clearScroll(),$.commitProxy("reload").then(e=>{$.dispatchEvent("proxy-query",Object.assign(Object.assign({},e),{isReload:!0}),r)})),$.dispatchEvent("form-reset",e,r)},Pe=e=>{$.dispatchEvent("form-submit-invalid",e,e.$event)},Oe=e=>{var t=e.$event;$.dispatchEvent("form-toggle-collapse",e,t),$.dispatchEvent("form-collapse",e,t)},Se=e=>{var t=V.isZMax;return(e?!t:t)&&(V.isZMax=!t,V.tZindex<(0,_utils.getLastZIndex)())&&(V.tZindex=(0,_utils.nextZIndex)()),(0,_vue.nextTick)().then(()=>$.recalculate(!0)).then(()=>(setTimeout(()=>$.recalculate(!0),15),V.isZMax))},E=(e,t)=>{e=e[t];if(e){if(!_xeUtils.default.isString(e))return e;if(u[e])return u[e];(0,_log.errLog)("vxe.error.notSlot",[e])}return null},Ie=e=>{let a={};return _xeUtils.default.objectMap(e,(e,t)=>{e&&(_xeUtils.default.isString(e)?u[e]?a[t]=u[e]:(0,_log.errLog)("vxe.error.notSlot",[e]):a[t]=e)}),a},Ve=e=>{let c=s.value;if(c){var v=o.value;if(v){let d=A.value;if(d){let g=H.value;if(g){var p=b.value;let o=v.getBoundingClientRect(),l=g.children[0],t=e.clientX,a=v.clientWidth,r=d.clientWidth,n=p.tableStyle&&_xeUtils.default.toNumber(p.tableStyle.minWidth)||80,i=r,s=-1,u=((0,_dom.addClass)(c,"is--split-drag"),e=>{var t=l.children[0],a=l.children[1];let r=0;t&&(s<0?t.style.display="none":(t.textContent=i+"px",t.style.display="block",r=t.offsetHeight)),a&&(s<0?(a.textContent=Math.floor(o.width-i)+"px",a.style.display="block",r=a.offsetHeight):a.style.display="none");t=e.clientY-o.top-r/2;g.style.left=i+"px",l.style.top=Math.min(o.height-r-1,Math.max(1,t))+"px"});document.onmousemove=e=>{e.preventDefault(),s=e.clientX-t,i=Math.min(a-80,Math.max(n,r+s)),u(e)},document.onmouseup=()=>{document.onmousemove=null,document.onmouseup=null,g.style.display="",d.style.width=i+"px",(0,_dom.removeClass)(c,"is--split-drag");var e=U.value;e&&e.recalculate(!0)},g.style.display="block",u(e)}}}}},Ue=()=>{V.showLeftView=!V.showLeftView},je=()=>{V.showRightView=!V.showRightView},Le={},Me=(_tableEmits.tableEmits.forEach(t=>{var e=_xeUtils.default.camelCase("on-"+t);Le[e]=(...e)=>r(t,...e)}),()=>{var e=x.value;if(e.items){let o={};return e.items.forEach(t=>{var{field:a,itemRender:r}=t;if(a){let e=null;r&&(r=r.defaultValue,_xeUtils.default.isFunction(r)?e=r({item:t}):_xeUtils.default.isUndefined(r)||(e=r)),o[a]=e}}),o}return{}}),Fe=()=>{var{proxyConfig:e,formConfig:t}=c,a=V.proxyInited,r=j.value,o=x.value;e&&(0,_utils.isEnableConf)(r)&&(t&&(0,_utils.isEnableConf)(o)&&r.form&&o.items&&(V.formData=Me()),a||!(V.proxyInited=!0)!==r.autoLoad&&(0,_vue.nextTick)().then(()=>$.commitProxy("initial")).then(e=>{Be("proxy-query",Object.assign(Object.assign({},e),{isInited:!0}),new Event("initial"))}))},$e=e=>{var t=W.value;globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ESCAPE)&&V.isZMax&&!1!==t.escRestore&&$.triggerZoomEvent(e)},Be=(e,t,a)=>{r(e,createEvent(a,{$grid:null,$gantt:$},t))};C={dispatchEvent:Be,getEl(){return s.value},commitProxy(t,...v){let{proxyConfig:r,toolbarConfig:e,pagerConfig:i,editRules:p,validConfig:m}=c,s=V.tablePage,f=L.value,x=K.value;var u=j.value;let h=M.value;var a=F.value;let{beforeQuery:b,afterQuery:_,beforeDelete:n,afterDelete:C,beforeSave:w,afterSave:y,ajax:E={}}=u,R=u.response||u.props||{},k=U.value;if(k){let g=B(),d=null,c=null;c=_xeUtils.default.isString(t)?(o=a.buttons,a=e&&(0,_utils.isEnableConf)(a)&&o?_xeUtils.default.findTree(o,e=>e.code===t,{children:"dropdowns"}):null,d=a?a.item:null,t):(d=t).code;var o,l=d?d.params:null;switch(c){case"insert":return k.insert({});case"insert_edit":return k.insert({}).then(({row:e})=>k.setEditRow(e,!0));case"insert_actived":return k.insert({}).then(({row:e})=>k.setEditRow(e,!0));case"mark_cancel":S=c,O=L.value,T=U.value,(P=T?T.getCheckboxRecords():[]).length?(T&&T.togglePendingRow(P),$.clearCheckboxRow()):O&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:S,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"});break;case"remove":return he(c,"vxe.grid.removeSelectRecord",()=>k.removeCheckboxRow());case"import":k.importData(l);break;case"open_import":k.openImport(l);break;case"export":k.exportData(l);break;case"open_export":k.openExport(l);break;case"reset_custom":return k.resetCustom(!0);case"initial":case"reload":case"query":{var T=E.query;let n=E.querySuccess,t=E.queryError;if(T){var P="initial"===c,O="reload"===c;if(!P&&V.tableLoading)return(0,_vue.nextTick)();let a=[],o=[],e={};if(i&&((P||O)&&(s.currentPage=1),(0,_utils.isEnableConf)(h))&&(e=Object.assign({},s)),P){if(r&&(0,_utils.isEnableConf)(u)&&u.form&&(g=Me(),V.formData=g),k){let{tableFullColumn:e,fullColumnFieldData:r}=k.internalData;var S=k.getComputeMaps().computeSortOpts;let t=S.value.defaultSort;e.forEach(e=>{e.order=null}),t&&(_xeUtils.default.isArray(t)||(t=[t]),a=t.map(e=>{var{field:e,order:t}=e,a=r[e];return a&&(a=a.column)&&(a.order=t),{field:e,property:e,order:t}})),o=k.getCheckedFilters()}}else k&&(O?k.clearAll():(a=k.getSortColumns(),o=k.getCheckedFilters()));let l={$table:k,$grid:null,$gantt:$,code:c,button:d,isInited:P,isReload:O,page:e,sort:a.length?a[0]:{},sorts:a,filters:o,form:g,options:T};return V.sortData=a,V.filterData=o,V.tableLoading=!0,Promise.resolve((b||T)(l,...v)).then(e=>{let t=[];var a,r;return V.tableLoading=!1,e&&(i&&(0,_utils.isEnableConf)(h)?(r=R.total,r=(_xeUtils.default.isFunction(r)?r({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,r||"page.total"))||0,s.total=_xeUtils.default.toNumber(r),a=R.result,t=(_xeUtils.default.isFunction(a)?a({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,a||"result"))||[],a=Math.max(Math.ceil(r/s.pageSize),1),s.currentPage>a&&(s.currentPage=a)):(r=R.list,t=(r?_xeUtils.default.isFunction(r)?r({data:e,$table:k,$grid:null,$gantt:$}):_xeUtils.default.get(e,r):e)||[])),k?k.loadData(t):(0,_vue.nextTick)(()=>{k&&k.loadData(t)}),_&&_(l,...v),n&&n(Object.assign(Object.assign({},l),{response:e})),{status:!0}}).catch(e=>(V.tableLoading=!1,t&&t(Object.assign(Object.assign({},l),{response:e})),{status:!1}))}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.query"]);break}case"delete":{let r=E.delete,o=E.deleteSuccess,l=E.deleteError;if(r){let e=$.getCheckboxRecords(),t=e.filter(e=>!k.isInsertByRow(e));var I={removeRecords:t};let a={$table:k,$grid:null,$gantt:$,code:c,button:d,body:I,form:g,options:r};if(e.length)return he(c,"vxe.grid.deleteSelectRecord",()=>t.length?(V.tableLoading=!0,Promise.resolve((n||r)(a,...v)).then(e=>(V.tableLoading=!1,k.setPendingRow(t,!1),x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({content:D(e,"vxe.grid.delSuccess"),status:"success"}),C?C(a,...v):$.commitProxy("query"),o&&o(Object.assign(Object.assign({},a),{response:e})),{status:!0})).catch(e=>(V.tableLoading=!1,x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:D(e,"vxe.grid.operError"),status:"error"}),l&&l(Object.assign(Object.assign({},a),{response:e})),{status:!1}))):k.remove(e));f&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.selectOneRecord"),status:"warning"})}else(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.delete"]);break}case"save":{let i=E.save,s=E.saveSuccess,u=E.saveError;if(i){let t=k.getRecordset(),{insertRecords:a,removeRecords:r,updateRecords:o,pendingRecords:l}=t,n={$table:k,$grid:null,$gantt:$,code:c,button:d,body:t,form:g,options:i},e=(a.length&&(t.pendingRecords=l.filter(e=>-1===k.findRowIndexOf(a,e))),l.length&&(t.insertRecords=a.filter(e=>-1===k.findRowIndexOf(l,e))),Promise.resolve());return(e=p?k[m&&"full"===m.msgMode?"fullValidate":"validate"](t.insertRecords.concat(o)):e).then(e=>{if(!e)return t.insertRecords.length||r.length||o.length||t.pendingRecords.length?(V.tableLoading=!0,Promise.resolve((w||i)(n,...v)).then(e=>(V.tableLoading=!1,k.clearPendingRow(),x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({content:D(e,"vxe.grid.saveSuccess"),status:"success"}),y?y(n,...v):$.commitProxy("query"),s&&s(Object.assign(Object.assign({},n),{response:e})),{status:!0})).catch(e=>(V.tableLoading=!1,x&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:D(e,"vxe.grid.operError"),status:"error"}),u&&u(Object.assign(Object.assign({},n),{response:e})),{status:!1}))):void(f&&_core.VxeUI.modal&&_core.VxeUI.modal.message({id:c,content:getI18n("vxe.grid.dataUnchanged"),status:"info"}))})}(0,_log.errLog)("vxe.error.notFunc",["proxy-config.ajax.save"]);break}default:var I=commands.get(c);I&&((I=I.tableCommandMethod||I.commandMethod)?I({code:c,button:d,$table:k,$grid:null,$gantt:$},...v):(0,_log.errLog)("vxe.error.notCommands",[c]))}}return(0,_vue.nextTick)()},getParams(){return c.params},zoom(){return V.isZMax?$.revert():$.maximize()},isMaximized(){return V.isZMax},maximize(){return Se(!0)},revert(){return Se()},getFormData:B,getFormItems(e){var t=x.value,a=c.formConfig,r=t.items;let o=[];return _xeUtils.default.eachTree(a&&(0,_utils.isEnableConf)(t)&&r?r:[],e=>{o.push(e)},{children:"children"}),_xeUtils.default.isUndefined(e)?o:o[e]},resetForm(){var e=i.value;return e?e.reset():(0,_vue.nextTick)()},validateForm(){var e=i.value;return e?e.validate():(0,_vue.nextTick)()},validateFormField(e){var t=i.value;return t?t.validateField(e):(0,_vue.nextTick)()},clearFormValidate(e){var t=i.value;return t?t.clearValidate(e):(0,_vue.nextTick)()},homePage(){var e=V.tablePage;return e.currentPage=1,(0,_vue.nextTick)()},homePageByEvent(e){var t=d.value;t&&t.homePageByEvent(e)},endPage(){var e=V.tablePage,t=de.value;return e.currentPage=t,(0,_vue.nextTick)()},endPageByEvent(e){var t=d.value;t&&t.endPageByEvent(e)},setCurrentPage(e){var t=V.tablePage,a=de.value;return t.currentPage=Math.min(a,Math.max(1,_xeUtils.default.toNumber(e))),(0,_vue.nextTick)()},setCurrentPageByEvent(e,t){var a=d.value;a&&a.setCurrentPageByEvent(e,t)},setPageSize(e){var t=V.tablePage;return t.pageSize=Math.max(1,_xeUtils.default.toNumber(e)),(0,_vue.nextTick)()},setPageSizeByEvent(e,t){var a=d.value;a&&a.setPageSizeByEvent(e,t)},getProxyInfo(){var e,t=U.value;return c.proxyConfig?(e=V.sortData,{data:t?t.getFullData():[],filter:V.filterData,form:B(),sort:e.length?e[0]:{},sorts:e,pager:V.tablePage,pendingRecords:t?t.getPendingRecords():[]}):null},refreshTaskView(){var e=p.value;return e?e.refreshData():(0,_vue.nextTick)()},hasTableViewVisible(){return V.showLeftView},showTableView(){return V.showLeftView=!0,(0,_vue.nextTick)()},hideTableView(){return(V.showLeftView=!1,_vue.nextTick)()},hasTaskViewVisible(){return V.showRightView},showTaskView(){return V.showRightView=!0,(0,_vue.nextTick)()},hideTaskView(){return(V.showRightView=!1,_vue.nextTick)()}};let De={extendTableMethods:N,callSlot(e,t){return e&&(_xeUtils.default.isString(e)&&(e=u[e]||null),_xeUtils.default.isFunction(e))?(0,_vn.getSlotVNs)(e(t)):[]},getExcludeHeight(){var e,t,a,r,o,l,n=V.isZMax,i=s.value;return i?(e=m.value,t=f.value,a=I.value,r=q.value,o=z.value,l=i.parentElement,(!n&&l?(0,_dom.getPaddingTopBottomSize)(l):0)+(0,_dom.getPaddingTopBottomSize)(i)+(0,_dom.getOffsetHeight)(e)+(0,_dom.getOffsetHeight)(t)+(0,_dom.getOffsetHeight)(a)+(0,_dom.getOffsetHeight)(r)+(0,_dom.getOffsetHeight)(o)):0},getParentHeight(){var e=s.value;return e?(e=e.parentElement,(V.isZMax?(0,_dom.getDomNode)().visibleHeight:e?_xeUtils.default.toNumber(getComputedStyle(e).height):0)-De.getExcludeHeight()):0},triggerToolbarCommitEvent(e,t){let a=e.code;return $.commitProxy(e,t).then(e=>{a&&e&&e.status&&["query","reload","delete","save"].includes(a)&&$.dispatchEvent("delete"===a||"save"===a?"proxy-"+a:"proxy-query",Object.assign(Object.assign({},e),{isReload:"reload"===a}),t)})},triggerToolbarBtnEvent(e,t){$.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-button-click",{code:e.code,button:e},t)},triggerToolbarTolEvent(e,t){$.triggerToolbarCommitEvent(e,t),$.dispatchEvent("toolbar-tool-click",{code:e.code,tool:e},t)},triggerZoomEvent(e){$.zoom(),$.dispatchEvent("zoom",{type:V.isZMax?"max":"revert"},e)},handleTaskCellClickEvent(e,t){var a,r,o,l,n,i,s,u=U.value;u&&(a=u.props.highlightCurrentRow,{radioColumn:r,checkboxColumn:o}=u.reactData,{computeRadioOpts:n,computeCheckboxOpts:i,computeRowOpts:l}=u.getComputeMaps(),n=n.value,i=i.value,s=t.row,(l.value.isCurrent||a)&&u.triggerCurrentRowEvent(e,Object.assign({$table:u,rowIndex:u.getRowIndex(s),$rowIndex:u.getVMRowIndex(s)},t)),r&&"row"===n.trigger&&u.triggerRadioRowEvent(e,t),o)&&"row"===i.trigger&&u.handleToggleCheckRowEvent(e,t),$.dispatchEvent("task-cell-click",t,e)},handleTaskCellDblclickEvent(e,t){$.dispatchEvent("task-cell-dblclick",t,e)},handleTaskBarClickEvent(e,t){$.dispatchEvent("task-bar-click",t,e)},handleTaskBarDblclickEvent(e,t){$.dispatchEvent("task-bar-dblclick",t,e)}},qe=(Object.assign($,Z,C,De,{loadColumn(e){var t=U.value;return _xeUtils.default.eachTree(e,e=>{var t=e.type;e.slots&&_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]||(0,_log.errLog)("vxe.error.notSlot",[e])}),"expand"===t&&(0,_log.errLog)("vxe.error.errProp",["type=expand","type=seq,radio,checkbox,html"])}),t?t.loadColumn(e):(0,_vue.nextTick)()},reloadColumn(e){return $.clearAll(),$.loadColumn(e)}}),()=>{var{formConfig:e,proxyConfig:a}=c,r=V.formData,o=j.value,l=x.value;if(e&&(0,_utils.isEnableConf)(l)||u.form){let e=[];if(u.form)e=u.form({$grid:null,$gantt:$});else if(l.items){let t={};if(!l.inited){l.inited=!0;let t=o.beforeItem;o&&t&&l.items.forEach(e=>{t({$grid:null,$gantt:$,item:e})})}l.items.forEach(e=>{_xeUtils.default.each(e.slots,e=>{_xeUtils.default.isFunction(e)||u[e]&&(t[e]=u[e])})}),n&&e.push((0,_vue.h)(n,Object.assign(Object.assign({ref:i},Object.assign({},l,{data:a&&(0,_utils.isEnableConf)(o)&&o.form?r:l.data})),{onSubmit:ke,onReset:Te,onSubmitInvalid:Pe,onCollapse:Oe}),t))}return(0,_vue.h)("div",{ref:m,key:"form",class:"vxe-gantt--form-wrapper"},e)}return renderEmptyElement($)}),ze=()=>{var t,a,r,o,l,n=c.toolbarConfig,i=F.value,s=u.toolbar;if(n&&(0,_utils.isEnableConf)(i)||s){let e=[];return u.toolbar?e=u.toolbar({$grid:null,$gantt:$}):(n={},(s=i.slots)&&(t=E(s,"buttons"),a=E(s,"buttonPrefix"),r=E(s,"buttonSuffix"),o=E(s,"tools"),l=E(s,"toolPrefix"),s=E(s,"toolSuffix"),t&&(n.buttons=t),a&&(n.buttonPrefix=a),r&&(n.buttonSuffix=r),o&&(n.tools=o),l&&(n.toolPrefix=l),s)&&(n.toolSuffix=s),e.push((0,_vue.h)(O,Object.assign(Object.assign({ref:g},i),{slots:void 0}),n))),(0,_vue.h)("div",{ref:f,key:"toolbar",class:"vxe-gantt--toolbar-wrapper"},e)}return renderEmptyElement($)},Ae=()=>{var e=u.top;return e?(0,_vue.h)("div",{ref:I,key:"top",class:"vxe-gantt--top-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},Ge=()=>{var e=u.left;return e?(0,_vue.h)("div",{class:"vxe-gantt--left-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},He=()=>{var e=u.right;return e?(0,_vue.h)("div",{class:"vxe-gantt--right-wrapper"},e({$grid:null,$gantt:$})):renderEmptyElement($)},Ne=()=>{var e=c.proxyConfig,t=ne.value,a=j.value,r=Object.assign({},Le),o=u.empty,l=u.loading,n=u.rowDragIcon||u["row-drag-icon"],i=u.columnDragIcon||u["column-drag-icon"],e=(e&&(0,_utils.isEnableConf)(a)&&(a.sort&&(r.onSortChange=Ce,r.onClearAllSort=we),a.filter)&&(r.onFilterChange=Ee,r.onClearAllFilter=Re),{});return o&&(e.empty=o),l&&(e.loading=l),n&&(e.rowDragIcon=n),i&&(e.columnDragIcon=i),(0,_vue.h)("div",{ref:A,class:"vxe-gantt--table-wrapper"},[(0,_vue.h)(P,Object.assign(Object.assign({ref:U},t),r),e)])},Ze=()=>u.bottom?(0,_vue.h)("div",{ref:q,key:"bottom",class:"vxe-gantt--bottom-wrapper"},u.bottom({$grid:null,$gantt:$})):renderEmptyElement($),Ke=()=>{var{proxyConfig:e,pagerConfig:t}=c,a=j.value,r=M.value,o=u.pager;return t&&(0,_utils.isEnableConf)(r)||u.pager?(0,_vue.h)("div",{ref:z,key:"pager",class:"vxe-gantt--pager-wrapper"},o?o({$grid:null,$gantt:$}):[l?(0,_vue.h)(l,Object.assign(Object.assign(Object.assign({ref:d},r),e&&(0,_utils.isEnableConf)(a)?V.tablePage:{}),{onPageChange:be}),Ie(r.slots)):renderEmptyElement($)]):renderEmptyElement($)},We=()=>(0,_vue.h)("div",{ref:G,class:"vxe-gantt--view-wrapper"},[(0,_vue.h)(_ganttView.default,{ref:p})]),Ye=()=>{var{showLeftView:e,showRightView:t}=V,{enabled:a,resize:r,showCollapseTableButton:o,showCollapseTaskButton:l}=Q.value;return a?(a={},(r=r&&e&&t)&&(a.onMousedown=Ve),(0,_vue.h)("div",{class:["vxe-gantt--view-split-bar",{"is--resize":r}]},[(0,_vue.h)("div",Object.assign({class:"vxe-gantt--view-split-bar-handle"},a)),o||l?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-btn-wrapper"},[o&&t?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-left-btn",onClick:Ue},[(0,_vue.h)("i",{class:e?getIcon().GANTT_VIEW_LEFT_OPEN:getIcon().GANTT_VIEW_LEFT_CLOSE})]):renderEmptyElement($),l&&e?(0,_vue.h)("div",{class:"vxe-gantt--view-split-bar-right-btn",onClick:je},[(0,_vue.h)("i",{class:t?getIcon().GANTT_VIEW_RIGHT_OPEN:getIcon().GANTT_VIEW_RIGHT_CLOSE})]):renderEmptyElement($)]):renderEmptyElement($)])):renderEmptyElement($)},R=e=>{let t=[];return e.forEach(e=>{switch(e){case"Form":t.push(qe());break;case"Toolbar":t.push(ze());break;case"Top":t.push(Ae());break;case"Gantt":t.push((0,_vue.h)("div",{ref:o,key:"tv",class:"vxe-gantt--gantt-container"},[Ge(),Ne(),Ye(),We(),He(),(0,_vue.h)("div",{ref:v}),(0,_vue.h)("div",{ref:H,class:"vxe-gantt--resizable-split-tip"},[(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-tip-number"},[(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-number-left"}),(0,_vue.h)("div",{class:"vxe-gantt--resizable-split-number-right"})])]),(0,_vue.h)("div",{class:"vxe-gantt--border-line"})]));break;case"Bottom":t.push(Ze());break;case"Pager":t.push(Ke());break;default:(0,_log.errLog)("vxe.error.notProp",["layouts -> "+e])}}),t};let k=(0,_vue.ref)(0);return(0,_vue.watch)(()=>c.columns?c.columns.length:-1,()=>{k.value++}),(0,_vue.watch)(()=>c.columns,()=>{k.value++}),(0,_vue.watch)(k,()=>{(0,_vue.nextTick)(()=>$.loadColumn(c.columns||[]))}),(0,_vue.watch)(()=>c.toolbarConfig,()=>{xe()}),(0,_vue.watch)(se,()=>{y("currentPage")}),(0,_vue.watch)(ue,()=>{y("pageSize")}),(0,_vue.watch)(ge,()=>{y("total")}),(0,_vue.watch)(()=>c.proxyConfig,()=>{Fe()}),(0,_vue.watch)(_,()=>{fe()}),hooks.forEach(e=>{var e=e.setupGantt;e&&(e=e($))&&_xeUtils.default.isObject(e)&&Object.assign($,e)}),fe(),y(),(0,_vue.onMounted)(()=>{var e,t;(0,_vue.nextTick)(()=>{var e=c.columns,t=j.value;c.formConfig&&!n&&(0,_log.errLog)("vxe.error.reqComp",["vxe-form"]),c.pagerConfig&&!l&&(0,_log.errLog)("vxe.error.reqComp",["vxe-pager"]),t.props&&(0,_log.warnLog)("vxe.error.delProp",["proxy-config.props","proxy-config.response"]),c.expandConfig&&(0,_log.warnLog)("vxe.error.notProp",["expand-config"]),e&&e.length&&$.loadColumn(e),xe(),Fe()}),e=U.value,t=p.value,e&&t&&e.handleConnectGanttView(t),globalEvents.on($,"keydown",$e)}),(0,_vue.onUnmounted)(()=>{globalEvents.off($,"keydown"),_xeUtils.default.assign(a,createInternalData())}),$.renderVN=()=>{var{showLeftView:e,showRightView:t}=V,a=S.value,r=oe.value,o=ce.value,l=ve.value,n=ae.value,i=re.value;return(0,_vue.h)("div",{ref:s,class:["vxe-gantt","border--"+l,"sx-pos--"+(n?"top":"bottom"),"sy-pos--"+(i?"left":"right"),{["size--"+a]:a,"is--round":c.round,"is--maximize":V.isZMax,"is--loading":o,"show--left":e,"show--right":t}],style:r},(()=>{var{headKeys:e,bodyKeys:t,footKeys:a}=ie.value,r=u.asideLeft||u["aside-left"],o=u.asideRight||u["aside-right"];return[(0,_vue.h)("div",{class:"vxe-gantt--layout-header-wrapper"},R(e)),(0,_vue.h)("div",{class:"vxe-gantt--layout-body-wrapper"},[r?(0,_vue.h)("div",{class:"vxe-gantt--layout-aside-left-wrapper"},r({})):renderEmptyElement($),(0,_vue.h)("div",{class:"vxe-gantt--layout-body-content-wrapper"},R(t)),o?(0,_vue.h)("div",{class:"vxe-gantt--layout-aside-right-wrapper"},o({})):renderEmptyElement($)]),(0,_vue.h)("div",{class:"vxe-gantt--layout-footer-wrapper"},R(a))]})())},(0,_vue.provide)("$xeGrid",null),(0,_vue.provide)("$xeGantt",$),$},render(){return this.renderVN()}});