vxe-gantt 3.7.3 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/es/gantt/src/gantt-chart.js +5 -2
  2. package/es/gantt/src/gantt-view.js +225 -0
  3. package/es/gantt/src/gantt.js +78 -5
  4. package/es/gantt/style.css +23 -13
  5. package/es/gantt/style.min.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/ui/index.js +8 -1
  9. package/es/ui/src/log.js +1 -1
  10. package/es/vxe-gantt/style.css +23 -13
  11. package/es/vxe-gantt/style.min.css +1 -1
  12. package/lib/gantt/src/gantt-chart.js +6 -1
  13. package/lib/gantt/src/gantt-chart.min.js +1 -1
  14. package/lib/gantt/src/gantt-view.js +278 -0
  15. package/lib/gantt/src/gantt-view.min.js +1 -1
  16. package/lib/gantt/src/gantt.js +79 -4
  17. package/lib/gantt/src/gantt.min.js +1 -1
  18. package/lib/gantt/style/style.css +23 -13
  19. package/lib/gantt/style/style.min.css +1 -1
  20. package/lib/index.umd.js +1813 -71
  21. package/lib/index.umd.min.js +1 -1
  22. package/lib/style.css +1 -1
  23. package/lib/style.min.css +1 -1
  24. package/lib/ui/index.js +8 -1
  25. package/lib/ui/index.min.js +1 -1
  26. package/lib/ui/src/log.js +1 -1
  27. package/lib/ui/src/log.min.js +1 -1
  28. package/lib/vxe-gantt/style/style.css +23 -13
  29. package/lib/vxe-gantt/style/style.min.css +1 -1
  30. package/package.json +3 -3
  31. package/packages/gantt/src/gantt-chart.ts +5 -2
  32. package/packages/gantt/src/gantt-view.ts +263 -1
  33. package/packages/gantt/src/gantt.ts +87 -4
  34. package/packages/gantt/src/util.ts +1 -1
  35. package/packages/ui/index.ts +7 -0
  36. package/styles/components/gantt-module/gantt-chart.scss +12 -0
  37. package/styles/components/gantt.scss +17 -13
  38. package/styles/theme/base.scss +2 -0
@@ -44,7 +44,8 @@ export default defineVxeComponent({
44
44
  const taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
45
45
  const taskBarOverviewSlot = ganttSlots.taskBarOverview || ganttSlots['task-bar-overview'];
46
46
  const { treeConfig, taskBarMilestoneConfig, taskBarSubviewConfig } = ganttProps;
47
- const { activeLink, activeBarRowid } = ganttReactData;
47
+ const { activeLink, activeBarRowid, criticalPathFlag } = ganttReactData;
48
+ const { criticalRowMaps } = ganttInternalData;
48
49
  const titleField = $xeGantt.computeTitleField;
49
50
  const progressField = $xeGantt.computeProgressField;
50
51
  const typeField = $xeGantt.computeTypeField;
@@ -63,7 +64,7 @@ export default defineVxeComponent({
63
64
  rowIndex,
64
65
  _rowIndex
65
66
  };
66
- const { showProgress, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
67
+ const { showProgress, showCriticalPath, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
67
68
  const isBarRowStyle = XEUtils.isFunction(barStyle);
68
69
  const barStyObj = (barStyle ? (isBarRowStyle ? barStyle(barParams) : barStyle) : {}) || {};
69
70
  const barRound = barStyObj.round;
@@ -228,6 +229,7 @@ export default defineVxeComponent({
228
229
  },
229
230
  class: ['vxe-gantt-view--chart-subview-row', `is--${childRenderTaskType}`, {
230
231
  'is--progress': showProgress,
232
+ 'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(childRowid),
231
233
  'is--round': childRound,
232
234
  'is--move': moveable,
233
235
  'row--pending': !!pendingRowFlag && !!pendingRowMaps[childRowid]
@@ -346,6 +348,7 @@ export default defineVxeComponent({
346
348
  },
347
349
  class: ['vxe-gantt-view--chart-row', `is--${renderTaskType}`, {
348
350
  'is--progress': showProgress,
351
+ 'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(rowid),
349
352
  'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid],
350
353
  'is--round': barRound,
351
354
  'is--move': moveable
@@ -2,16 +2,21 @@ import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import { VxeUI } from '@vxe-ui/core';
3
3
  import { setScrollTop, setScrollLeft, removeClass, addClass, hasClass } from '../../ui/src/dom';
4
4
  import { getRefElem, getTaskBarLeft, getTaskBarWidth, hasMilestoneTask, getTaskType, hasSubviewTask } from './util';
5
+ import { VxeGanttDependencyType } from './static';
5
6
  import XEUtils from 'xe-utils';
6
7
  import GanttViewHeaderComponent from './gantt-header';
7
8
  import GanttViewBodyComponent from './gantt-body';
8
9
  import GanttViewFooterComponent from './gantt-footer';
9
10
  const { globalEvents } = VxeUI;
11
+ const { FinishToStart, StartToFinish, StartToStart, FinishToFinish } = VxeGanttDependencyType;
10
12
  const sourceType = 'gantt';
11
13
  const secondMs = 1000;
12
14
  const minuteMs = 1000 * 60;
13
15
  const hourMs = 1000 * 60 * 60;
14
16
  const dayMs = hourMs * 24;
17
+ function getTaskLinkKey(from, to, type) {
18
+ return from + '_' + to + '_' + (type || 0);
19
+ }
15
20
  function createInternalData() {
16
21
  return {
17
22
  xeTable: null,
@@ -793,6 +798,8 @@ function handleUpdateData($xeGanttView) {
793
798
  const reactData = $xeGanttView.reactData;
794
799
  const internalData = $xeGanttView.internalData;
795
800
  const ganttProps = $xeGantt;
801
+ const ganttReactData = $xeGantt.reactData;
802
+ const { linkList } = ganttReactData;
796
803
  const { treeConfig } = ganttProps;
797
804
  const { scrollXStore } = internalData;
798
805
  const $xeTable = internalData.xeTable;
@@ -800,6 +807,7 @@ function handleUpdateData($xeGanttView) {
800
807
  const edMaps = {};
801
808
  let minDate = null;
802
809
  let maxDate = null;
810
+ const allList = [];
803
811
  if ($xeTable) {
804
812
  const startField = $xeGantt.computeStartField;
805
813
  const endField = $xeGantt.computeEndField;
@@ -835,6 +843,7 @@ function handleUpdateData($xeGanttView) {
835
843
  maxDate = endDate;
836
844
  }
837
845
  }
846
+ allList.push(row);
838
847
  };
839
848
  if (isRowGroupStatus) {
840
849
  // 行分组
@@ -858,6 +867,222 @@ function handleUpdateData($xeGanttView) {
858
867
  internalData.startMaps = sdMaps;
859
868
  internalData.endMaps = edMaps;
860
869
  handleParseColumn($xeGanttView);
870
+ handleCriticalPath($xeGanttView, allList, linkList);
871
+ }
872
+ /**
873
+ * 正向:后置 ES 的下连接线
874
+ */
875
+ function forwardCriticalPathLowerBound(linkType, predES, predEF, duration) {
876
+ switch (linkType) {
877
+ case FinishToStart:
878
+ return predEF;
879
+ case StartToFinish:
880
+ return predES - duration;
881
+ case StartToStart:
882
+ return predES;
883
+ case FinishToFinish:
884
+ return predEF - duration;
885
+ default:
886
+ return 0;
887
+ }
888
+ }
889
+ /**
890
+ * 反向:前置 LF 的上连接线
891
+ */
892
+ function backwardCriticalPathUpperBound(linkType, succLS, succLF, duration) {
893
+ switch (linkType) {
894
+ case FinishToStart:
895
+ return succLS;
896
+ case StartToFinish:
897
+ return succLF + duration;
898
+ case StartToStart:
899
+ return succLS + duration;
900
+ case FinishToFinish:
901
+ return succLF;
902
+ default:
903
+ return -1;
904
+ }
905
+ }
906
+ /**
907
+ * 关键边:两端都关键时,约束是否连接
908
+ */
909
+ function isCriticalPathLinkTight(linkType, fromES, fromEF, toES, toEF, tolerance) {
910
+ switch (linkType) {
911
+ case FinishToStart:
912
+ return Math.abs(fromEF - toES) < tolerance;
913
+ case StartToFinish:
914
+ return Math.abs(fromES - toEF) < tolerance;
915
+ case StartToStart:
916
+ return Math.abs(fromES - toES) < tolerance;
917
+ case FinishToFinish:
918
+ return Math.abs(fromEF - toEF) < tolerance;
919
+ default:
920
+ return false;
921
+ }
922
+ }
923
+ export function handleCriticalPath($xeGanttView, data, links) {
924
+ const $xeGantt = $xeGanttView.$xeGantt;
925
+ const internalData = $xeGanttView.internalData;
926
+ const ganttReactData = $xeGantt.reactData;
927
+ const ganttInternalData = $xeGantt.internalData;
928
+ const taskBarOpts = $xeGantt.computeTaskBarOpts;
929
+ const $xeTable = internalData.xeTable;
930
+ const criticalRowList = [];
931
+ const criticalRowMaps = new Map();
932
+ const criticalLinkKeyMaps = new Map();
933
+ ganttInternalData.criticalRowList = criticalRowList;
934
+ ganttInternalData.criticalRowMaps = criticalRowMaps;
935
+ ganttInternalData.criticalLinkKeyMaps = criticalLinkKeyMaps;
936
+ if (!taskBarOpts.showCriticalPath || !links.length || !data.length || !$xeTable) {
937
+ if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
938
+ ganttReactData.criticalPathFlag++;
939
+ }
940
+ ganttReactData.criticalLinks = [];
941
+ ganttReactData.criticalRowIds = [];
942
+ return;
943
+ }
944
+ const { chartMaps } = internalData;
945
+ const tolerance = 1e-6;
946
+ const nodeMap = new Map();
947
+ for (const row of data) {
948
+ const rowid = $xeTable.getRowid(row);
949
+ const chartRest = chartMaps[rowid];
950
+ nodeMap.set(rowid, {
951
+ row,
952
+ rowid: rowid,
953
+ duration: chartRest ? chartRest.oWidthSize : 0,
954
+ incoming: [],
955
+ outgoing: [],
956
+ indeg: 0,
957
+ ES: 0,
958
+ EF: 0,
959
+ LS: 0,
960
+ LF: 0
961
+ });
962
+ }
963
+ // 边界
964
+ const linkList = [];
965
+ for (const link of links) {
966
+ const fromKey = '' + link.from;
967
+ const toKey = '' + link.to;
968
+ if (!nodeMap.has(fromKey) || !nodeMap.has(toKey) || fromKey === toKey) {
969
+ continue;
970
+ }
971
+ const lkItemitem = {
972
+ from: link.from,
973
+ to: link.to,
974
+ type: XEUtils.toNumber(link.type) || 0,
975
+ raw: link
976
+ };
977
+ linkList.push(lkItemitem);
978
+ const toObjItem = nodeMap.get('' + link.to);
979
+ const fromObjItem = nodeMap.get('' + link.from);
980
+ if (fromObjItem) {
981
+ fromObjItem.outgoing.push(lkItemitem);
982
+ }
983
+ if (toObjItem) {
984
+ toObjItem.incoming.push(lkItemitem);
985
+ toObjItem.indeg++;
986
+ }
987
+ }
988
+ // 拓扑排序 + 环检测
989
+ const queueList = [];
990
+ nodeMap.forEach(nodeitem => {
991
+ if (nodeitem.indeg === 0) {
992
+ queueList.push(nodeitem);
993
+ }
994
+ });
995
+ const orderList = [];
996
+ for (let head = 0; head < queueList.length; head++) {
997
+ const node = queueList[head];
998
+ orderList.push(node);
999
+ for (const lkItemitem of node.outgoing) {
1000
+ const toObjItem = nodeMap.get('' + lkItemitem.to);
1001
+ if (toObjItem) {
1002
+ const nextDeg = toObjItem.indeg - 1;
1003
+ toObjItem.indeg = nextDeg;
1004
+ if (nextDeg === 0) {
1005
+ queueList.push(nodeMap.get('' + lkItemitem.to));
1006
+ }
1007
+ }
1008
+ }
1009
+ }
1010
+ if (orderList.length !== nodeMap.size) {
1011
+ // 异常数据,依赖图中存在环
1012
+ if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
1013
+ ganttReactData.criticalPathFlag++;
1014
+ }
1015
+ ganttReactData.criticalLinks = [];
1016
+ ganttReactData.criticalRowIds = [];
1017
+ return;
1018
+ }
1019
+ // 正向:ES / EF
1020
+ let criticalDuration = 0;
1021
+ for (const node of orderList) {
1022
+ let earliestStart = 0;
1023
+ for (const lkItem of node.incoming) {
1024
+ const fromObjItem = nodeMap.get('' + lkItem.from);
1025
+ if (fromObjItem) {
1026
+ const need = forwardCriticalPathLowerBound(lkItem.type, fromObjItem.ES, fromObjItem.EF, node.duration);
1027
+ if (need > earliestStart) {
1028
+ earliestStart = need;
1029
+ }
1030
+ }
1031
+ }
1032
+ node.ES = earliestStart;
1033
+ node.EF = earliestStart + node.duration;
1034
+ if (node.EF > criticalDuration) {
1035
+ criticalDuration = node.EF;
1036
+ }
1037
+ }
1038
+ // 反向:LS / LF
1039
+ for (let i = orderList.length - 1; i >= 0; i--) {
1040
+ const node = orderList[i];
1041
+ let latestFinish = criticalDuration;
1042
+ for (const lkItem of node.outgoing) {
1043
+ const toObjItem = nodeMap.get('' + lkItem.to);
1044
+ if (toObjItem) {
1045
+ const need = backwardCriticalPathUpperBound(lkItem.type, toObjItem.LS, toObjItem.LF, node.duration);
1046
+ if (need < latestFinish) {
1047
+ latestFinish = need;
1048
+ }
1049
+ }
1050
+ }
1051
+ node.LF = latestFinish;
1052
+ node.LS = latestFinish - node.duration;
1053
+ }
1054
+ // 关键任务
1055
+ const criticalSet = new Set();
1056
+ const criticalRowIds = [];
1057
+ for (const nodeItem of orderList) {
1058
+ if (Math.abs(nodeItem.LS - nodeItem.ES) < tolerance) {
1059
+ criticalSet.add(nodeItem.rowid);
1060
+ criticalRowIds.push(nodeItem.rowid);
1061
+ criticalRowList.push(nodeItem.row);
1062
+ criticalRowMaps.set(nodeItem.rowid, nodeItem.row);
1063
+ }
1064
+ }
1065
+ // 关键连接线
1066
+ const criticalLinks = [];
1067
+ for (const lkItem of linkList) {
1068
+ const toObjItem = nodeMap.get('' + lkItem.to);
1069
+ const fromObjItem = nodeMap.get('' + lkItem.from);
1070
+ if (!toObjItem || !fromObjItem) {
1071
+ continue;
1072
+ }
1073
+ // 两端必须都是关键任务
1074
+ if (!criticalSet.has(fromObjItem.rowid) || !criticalSet.has(toObjItem.rowid)) {
1075
+ continue;
1076
+ }
1077
+ // 约束必须是连接的
1078
+ if (isCriticalPathLinkTight(lkItem.type, fromObjItem.ES, fromObjItem.EF, toObjItem.ES, toObjItem.EF, tolerance)) {
1079
+ criticalLinks.push(lkItem.raw);
1080
+ criticalLinkKeyMaps.set(getTaskLinkKey(lkItem.from, lkItem.to, lkItem.type), lkItem.raw);
1081
+ }
1082
+ }
1083
+ ganttReactData.criticalLinks = criticalLinks;
1084
+ ganttReactData.criticalRowIds = criticalRowIds;
1085
+ ganttReactData.criticalPathFlag++;
861
1086
  }
862
1087
  function calcScrollbar($xeGanttView) {
863
1088
  const $xeGantt = $xeGanttView.$xeGantt;
@@ -72,7 +72,11 @@ function createInternalData() {
72
72
  dragLinkToStore: {
73
73
  rowid: null,
74
74
  type: 0
75
- }
75
+ },
76
+ // 关键路径
77
+ criticalRowList: [],
78
+ criticalRowMaps: new Map(),
79
+ criticalLinkKeyMaps: new Map()
76
80
  };
77
81
  }
78
82
  function createReactData() {
@@ -122,7 +126,11 @@ function createReactData() {
122
126
  showSplitAnimat: false,
123
127
  nowTime: 0,
124
128
  currLeftSpacing: 0,
125
- currRightSpacing: 0
129
+ currRightSpacing: 0,
130
+ // 关键路径
131
+ criticalLinks: [],
132
+ criticalRowIds: [],
133
+ criticalPathFlag: 0
126
134
  };
127
135
  }
128
136
  export default {
@@ -130,7 +138,7 @@ export default {
130
138
  mixins: [
131
139
  globalMixins.sizeMixin
132
140
  ],
133
- props: Object.assign(Object.assign({}, tableProps), { columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, links: Array, layouts: Array, taskConfig: Object, taskViewScaleConfig: Object, taskNowLineConfig: Object, taskViewConfig: Object, taskLinkConfig: Object, taskBarConfig: Object, taskBarMilestoneConfig: Object, taskBarSubviewConfig: Object, taskBarTooltipConfig: Object, taskSplitConfig: Object, taskBarResizeConfig: Object, taskBarResizeTooltipConfig: Object, taskBarMoveConfig: Object, taskBarMoveTooltipConfig: Object, size: {
141
+ props: Object.assign(Object.assign({}, tableProps), { columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, links: Array, layouts: Array, taskConfig: Object, taskViewScaleConfig: Object, taskNowLineConfig: Object, taskViewConfig: Object, taskLinkConfig: Object, taskBarConfig: Object, taskBarMilestoneConfig: Object, taskCriticalPathConfig: Object, taskBarSubviewConfig: Object, taskBarTooltipConfig: Object, taskSplitConfig: Object, taskBarResizeConfig: Object, taskBarResizeTooltipConfig: Object, taskBarMoveConfig: Object, taskBarMoveTooltipConfig: Object, size: {
134
142
  type: String,
135
143
  default: () => getConfig().gantt.size || getConfig().size
136
144
  } }),
@@ -149,7 +157,8 @@ export default {
149
157
  return {
150
158
  xID,
151
159
  reactData,
152
- internalData
160
+ internalData,
161
+ reViewFlag: 0
153
162
  };
154
163
  },
155
164
  computed: Object.assign(Object.assign({}, {}), { computeProxyOpts() {
@@ -242,6 +251,11 @@ export default {
242
251
  const props = $xeGantt;
243
252
  return Object.assign({}, getConfig().gantt.taskBarMilestoneConfig, props.taskBarMilestoneConfig);
244
253
  },
254
+ computeTaskCriticalPathOpts() {
255
+ const $xeGantt = this;
256
+ const props = $xeGantt;
257
+ return Object.assign({}, getConfig().gantt.taskCriticalPathConfig, props.taskCriticalPathConfig);
258
+ },
245
259
  computeTaskBarSubviewOpts() {
246
260
  const $xeGantt = this;
247
261
  const props = $xeGantt;
@@ -344,6 +358,11 @@ export default {
344
358
  const scrollbarOpts = $xeGantt.computeScrollbarOpts;
345
359
  return !!(scrollbarOpts.y && scrollbarOpts.y.position === 'left');
346
360
  },
361
+ computeCriticalPathVisible() {
362
+ const $xeGantt = this;
363
+ const taskBarOpts = $xeGantt.computeTaskBarOpts;
364
+ return taskBarOpts.showCriticalPath;
365
+ },
347
366
  computeWrapperStyle() {
348
367
  const $xeGantt = this;
349
368
  const props = $xeGantt;
@@ -354,12 +373,17 @@ export default {
354
373
  const { viewStyle, tableStyle } = taskViewOpts;
355
374
  const taskBarOpts = $xeGantt.computeTaskBarOpts;
356
375
  const { barStyle } = taskBarOpts;
376
+ const taskCriticalPathOpts = $xeGantt.computeTaskCriticalPathOpts;
377
+ const { lineColor: cpLineColor } = taskCriticalPathOpts;
357
378
  const taskBarSubviewOpts = $xeGantt.computeTaskBarSubviewOpts;
358
379
  const taskNowLineOpts = $xeGantt.computeTaskNowLineOpts;
359
380
  const { fontColor: nlfColor, bgColor: nlbgColor, width: nlWidth } = taskNowLineOpts;
360
381
  const stys = {
361
382
  '--vxe-ui-gantt-scrollbar-width': (overflowY && scrollbarWidth ? scrollbarWidth : 0) + 'px'
362
383
  };
384
+ if (cpLineColor) {
385
+ stys['--vxe-ui-gantt-view-bar-critical-path-line-color'] = cpLineColor;
386
+ }
363
387
  if (isZMax) {
364
388
  stys.zIndex = tZindex;
365
389
  }
@@ -582,6 +606,14 @@ export default {
582
606
  computeTaskViewScales() {
583
607
  const $xeGantt = this;
584
608
  $xeGantt.handleTaskScaleConfig();
609
+ $xeGantt.reViewFlag++;
610
+ },
611
+ computeCriticalPathVisible() {
612
+ const $xeGantt = this;
613
+ $xeGantt.reViewFlag++;
614
+ },
615
+ reViewFlag() {
616
+ const $xeGantt = this;
585
617
  $xeGantt.refreshTaskView();
586
618
  },
587
619
  computeTaskLinkStyle() {
@@ -1618,6 +1650,10 @@ export default {
1618
1650
  const formOpts = $xeGantt.computeFormOpts;
1619
1651
  return proxyConfig && isEnableConf(proxyOpts) && proxyOpts.form ? formData : formOpts.data;
1620
1652
  },
1653
+ /**
1654
+ * 已废弃,被 getFormFlatItems 替换
1655
+ * @deprecated
1656
+ */
1621
1657
  getFormItems(itemIndex) {
1622
1658
  const $xeGantt = this;
1623
1659
  const props = $xeGantt;
@@ -1628,8 +1664,33 @@ export default {
1628
1664
  XEUtils.eachTree(formConfig && isEnableConf(formOpts) && items ? items : [], item => {
1629
1665
  itemList.push(item);
1630
1666
  }, { children: 'children' });
1667
+ // errLog('vxe.error.delFunc', ['getFormItems', 'getFormFlatItems'])
1631
1668
  return XEUtils.isUndefined(itemIndex) ? itemList : itemList[itemIndex];
1632
1669
  },
1670
+ getFormFlatItems() {
1671
+ const $xeGantt = this;
1672
+ const $form = $xeGantt.$refs.refForm;
1673
+ if ($form) {
1674
+ return $form.getFlatItems();
1675
+ }
1676
+ return [];
1677
+ },
1678
+ getFormNestedItems() {
1679
+ const $xeGantt = this;
1680
+ const $form = $xeGantt.$refs.refForm;
1681
+ if ($form) {
1682
+ return $form.getNestedItems();
1683
+ }
1684
+ return [];
1685
+ },
1686
+ getFormItemByField(field) {
1687
+ const $xeGantt = this;
1688
+ const $form = $xeGantt.$refs.refForm;
1689
+ if ($form) {
1690
+ return $form.getItemByField(field);
1691
+ }
1692
+ return null;
1693
+ },
1633
1694
  resetForm() {
1634
1695
  const $xeGantt = this;
1635
1696
  const $form = $xeGantt.$refs.refForm;
@@ -1891,6 +1952,18 @@ export default {
1891
1952
  }
1892
1953
  return $xeGantt.$nextTick();
1893
1954
  },
1955
+ getCriticalPath() {
1956
+ const $xeGantt = this;
1957
+ const reactData = $xeGantt.reactData;
1958
+ const internalData = $xeGantt.internalData;
1959
+ const { criticalRowIds, criticalLinks } = reactData;
1960
+ const { criticalRowMaps } = internalData;
1961
+ return {
1962
+ rowIds: criticalRowIds.slice(0),
1963
+ rows: Array.from(criticalRowMaps.values()),
1964
+ links: criticalLinks.slice(0)
1965
+ };
1966
+ },
1894
1967
  /**
1895
1968
  * 获取需要排除的高度
1896
1969
  */
@@ -2285,7 +2358,7 @@ export default {
2285
2358
  // 处理插槽
2286
2359
  formOpts.items.forEach((item) => {
2287
2360
  XEUtils.each(item.slots, (func) => {
2288
- if (!XEUtils.isFunction(func)) {
2361
+ if (func && !XEUtils.isFunction(func)) {
2289
2362
  if (slots[func]) {
2290
2363
  formSlots[func] = slots[func];
2291
2364
  }
@@ -13,6 +13,12 @@
13
13
  height: 0;
14
14
  }
15
15
 
16
+ .vxe-gantt-view--chart-row.is--critical > .vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper {
17
+ border: var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color);
18
+ }
19
+ .vxe-gantt-view--chart-row.is--critical > .vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper {
20
+ border: var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color);
21
+ }
16
22
  .vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar {
17
23
  color: var(--vxe-ui-font-disabled-color);
18
24
  opacity: 0.5;
@@ -202,12 +208,29 @@
202
208
 
203
209
  .vxe-gantt {
204
210
  --vxe-ui-gantt-current-split-bar-action-btn-offset-left: 0px;
211
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-default);
212
+ }
213
+ .vxe-gantt.size--xlarge {
214
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-xlarge);
215
+ }
216
+ .vxe-gantt.size--large {
217
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-large);
218
+ }
219
+ .vxe-gantt.size--medium {
220
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-medium);
221
+ }
222
+ .vxe-gantt.size--small {
223
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-small);
224
+ }
225
+ .vxe-gantt.size--mini {
226
+ --vxe-ui-gantt-current-font-size: var(--vxe-ui-font-size-mini);
205
227
  }
206
228
 
207
229
  .vxe-gantt {
208
230
  position: relative;
209
231
  display: flex;
210
232
  flex-direction: column;
233
+ font-size: var(--vxe-ui-gantt-current-font-size);
211
234
  }
212
235
  .vxe-gantt.is--loading:before {
213
236
  content: "";
@@ -887,17 +910,4 @@
887
910
  .vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable {
888
911
  height: 0.4em;
889
912
  bottom: 0px;
890
- }
891
-
892
- .vxe-gantt {
893
- font-size: var(--vxe-ui-font-size-default);
894
- }
895
- .vxe-gantt.size--medium {
896
- font-size: var(--vxe-ui-font-size-medium);
897
- }
898
- .vxe-gantt.size--small {
899
- font-size: var(--vxe-ui-font-size-small);
900
- }
901
- .vxe-gantt.size--mini {
902
- font-size: var(--vxe-ui-font-size-mini);
903
913
  }
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover::after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover::after,.vxe-gantt-view--chart-custom-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em;color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px}.vxe-gantt{position:relative;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--gantt-container.sy-pos--left.hide--left{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column::after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line::before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ @charset "UTF-8";.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover::after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover::after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover::after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover::after,.vxe-gantt-view--chart-custom-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-bar.is--default:hover::after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em;color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--xlarge{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-xlarge)}.vxe-gantt.size--large{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-large)}.vxe-gantt.size--medium{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-mini)}.vxe-gantt{position:relative;display:flex;flex-direction:column;font-size:var(--vxe-ui-gantt-current-font-size)}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:var(--vxe-ui-loading-background-color)}.vxe-gantt.is--loading>.vxe-gantt-view .vxe-loading{background-color:transparent}.vxe-gantt.is--maximize{position:fixed;top:0;left:0;width:100%;height:100%;padding:.5em 1em;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt.is--split-drag{cursor:col-resize}.vxe-gantt.is--split-drag .vxe-gantt--table-wrapper::after,.vxe-gantt.is--split-drag .vxe-gantt--view-wrapper::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:0 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt .vxe-gantt--bottom-wrapper,.vxe-gantt .vxe-gantt--form-wrapper,.vxe-gantt .vxe-gantt--top-wrapper{position:relative}.vxe-gantt .vxe-gantt--gantt-container{position:relative;display:flex;flex-direction:row;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:right top,right bottom}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner::before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner::before{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner::before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner::before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:right bottom}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width) * -1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--gantt-container.sy-pos--left.hide--left{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:col-resize}.vxe-gantt--resizable-split-tip:before{content:"";display:block;height:100%;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-tip-number{position:absolute;top:0;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.vxe-gantt--resizable-split-number-left,.vxe-gantt--resizable-split-number-right{position:absolute;padding:.25em .25em;font-size:12px;border-radius:var(--vxe-ui-border-radius);white-space:nowrap;color:#fff;background-color:var(--vxe-ui-table-resizable-drag-line-color)}.vxe-gantt--resizable-split-number-left{right:0}.vxe-gantt--resizable-split-number-right{left:1px}.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt.is--loading>.vxe-gantt-view--layout-wrapper>.vxe-gantt-view--scroll-y-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner::before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner::before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner::before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner::before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width) * -1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column::after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line::before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}