vxe-gantt 0.0.3 → 4.0.0-beta.1

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 (69) hide show
  1. package/README.md +1 -1
  2. package/es/gantt/src/emits.js +5 -1
  3. package/es/gantt/src/gantt-body.js +11 -2
  4. package/es/gantt/src/gantt-chart.js +35 -14
  5. package/es/gantt/src/gantt-header.js +5 -2
  6. package/es/gantt/src/gantt-view.js +5 -1
  7. package/es/gantt/src/gantt.js +84 -32
  8. package/es/gantt/src/grid-props.js +1 -1
  9. package/es/gantt/src/props.js +1 -1
  10. package/es/gantt/src/table-props.js +1 -1
  11. package/es/gantt/style.css +36 -17
  12. package/es/gantt/style.min.css +1 -1
  13. package/es/style.css +1 -1
  14. package/es/style.min.css +1 -1
  15. package/es/ui/index.js +9 -2
  16. package/es/ui/src/log.js +3 -2
  17. package/es/ui/src/utils.js +3 -0
  18. package/es/vxe-gantt/style.css +36 -17
  19. package/es/vxe-gantt/style.min.css +1 -1
  20. package/helper/vetur/attributes.json +1 -1
  21. package/helper/vetur/tags.json +1 -1
  22. package/lib/gantt/src/emits.js +1 -1
  23. package/lib/gantt/src/emits.min.js +1 -1
  24. package/lib/gantt/src/gantt-body.js +16 -2
  25. package/lib/gantt/src/gantt-body.min.js +1 -1
  26. package/lib/gantt/src/gantt-chart.js +47 -10
  27. package/lib/gantt/src/gantt-chart.min.js +1 -1
  28. package/lib/gantt/src/gantt-header.js +6 -2
  29. package/lib/gantt/src/gantt-header.min.js +1 -1
  30. package/lib/gantt/src/gantt-view.js +6 -2
  31. package/lib/gantt/src/gantt-view.min.js +1 -1
  32. package/lib/gantt/src/gantt.js +101 -35
  33. package/lib/gantt/src/gantt.min.js +1 -1
  34. package/lib/gantt/src/grid-props.js +2 -2
  35. package/lib/gantt/src/grid-props.min.js +1 -1
  36. package/lib/gantt/src/props.js +2 -1
  37. package/lib/gantt/src/props.min.js +1 -1
  38. package/lib/gantt/src/table-props.js +2 -2
  39. package/lib/gantt/src/table-props.min.js +1 -1
  40. package/lib/gantt/style/style.css +36 -17
  41. package/lib/gantt/style/style.min.css +1 -1
  42. package/lib/index.umd.js +214 -73
  43. package/lib/index.umd.min.js +1 -1
  44. package/lib/style.css +1 -1
  45. package/lib/style.min.css +1 -1
  46. package/lib/ui/index.js +13 -3
  47. package/lib/ui/index.min.js +1 -1
  48. package/lib/ui/src/log.js +6 -3
  49. package/lib/ui/src/log.min.js +1 -1
  50. package/lib/ui/src/utils.js +4 -0
  51. package/lib/ui/src/utils.min.js +1 -1
  52. package/lib/vxe-gantt/style/style.css +36 -17
  53. package/lib/vxe-gantt/style/style.min.css +1 -1
  54. package/package.json +4 -4
  55. package/packages/gantt/src/emits.ts +6 -1
  56. package/packages/gantt/src/gantt-body.ts +11 -2
  57. package/packages/gantt/src/gantt-chart.ts +37 -15
  58. package/packages/gantt/src/gantt-header.ts +5 -2
  59. package/packages/gantt/src/gantt-view.ts +5 -1
  60. package/packages/gantt/src/gantt.ts +90 -32
  61. package/packages/gantt/src/grid-props.ts +1 -1
  62. package/packages/gantt/src/props.ts +2 -1
  63. package/packages/gantt/src/table-props.ts +1 -1
  64. package/packages/ui/index.ts +9 -1
  65. package/packages/ui/src/log.ts +3 -1
  66. package/packages/ui/src/utils.ts +4 -0
  67. package/styles/components/gantt-module/gantt-chart.scss +28 -9
  68. package/styles/components/gantt.scss +12 -7
  69. package/styles/theme/base.scss +5 -1
package/README.md CHANGED
@@ -58,7 +58,7 @@
58
58
  版本:[vue](https://www.npmjs.com/package/vue) 3.x
59
59
 
60
60
  ```shell
61
- npm install vxe-gantt
61
+ npm install vxe-pc-ui vxe-table vxe-gantt
62
62
  ```
63
63
 
64
64
  Get on [unpkg](https://unpkg.com/vxe-gantt/) and [cdnjs](https://cdn.jsdelivr.net/npm/vxe-gantt/)
@@ -1,4 +1,8 @@
1
1
  import { gridEmits } from './grid-emits';
2
2
  export const ganttEmits = [
3
- ...gridEmits
3
+ ...gridEmits,
4
+ 'task-cell-click',
5
+ 'task-cell-dblclick',
6
+ 'task-bar-click',
7
+ 'task-bar-dblclick'
4
8
  ];
@@ -40,6 +40,12 @@ export default defineVxeComponent({
40
40
  class: 'vxe-gantt-view--body-column',
41
41
  style: {
42
42
  height: `${cellHeight}px`
43
+ },
44
+ onClick(evnt) {
45
+ $xeGantt.handleTaskCellClickEvent(evnt, { row });
46
+ },
47
+ onDblclick(evnt) {
48
+ $xeGantt.handleTaskCellDblclickEvent(evnt, { row });
43
49
  }
44
50
  });
45
51
  })));
@@ -47,7 +53,7 @@ export default defineVxeComponent({
47
53
  return trVNs;
48
54
  };
49
55
  const renderVN = () => {
50
- const { tableColumn } = reactData;
56
+ const { tableColumn, viewCellWidth } = reactData;
51
57
  return h('div', {
52
58
  ref: refElem,
53
59
  class: 'vxe-gantt-view--body-wrapper'
@@ -71,7 +77,10 @@ export default defineVxeComponent({
71
77
  }, [
72
78
  h('colgroup', {}, tableColumn.map((column, cIndex) => {
73
79
  return h('col', {
74
- key: cIndex
80
+ key: cIndex,
81
+ style: {
82
+ width: `${viewCellWidth}px`
83
+ }
75
84
  });
76
85
  })),
77
86
  h('tbody', {}, renderRows())
@@ -1,7 +1,10 @@
1
1
  import { h, inject, ref, onMounted, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
+ import { VxeUI } from '@vxe-ui/core';
3
4
  import XEUtils from 'xe-utils';
4
5
  import { getCellRestHeight } from './util';
6
+ import { getStringValue } from '../../ui/src/utils';
7
+ const { renderEmptyElement } = VxeUI;
5
8
  export default defineVxeComponent({
6
9
  name: 'VxeGanttViewChart',
7
10
  setup() {
@@ -9,7 +12,7 @@ export default defineVxeComponent({
9
12
  const $xeGanttView = inject('$xeGanttView', {});
10
13
  const { reactData, internalData } = $xeGanttView;
11
14
  const { refTable } = $xeGantt.getRefMaps();
12
- const { computeProgressField } = $xeGantt.getComputeMaps();
15
+ const { computeProgressField, computeTitleField, computeTaskBarOpts } = $xeGantt.getComputeMaps();
13
16
  const refElem = ref();
14
17
  const renderVN = () => {
15
18
  const $xeTable = refTable.value;
@@ -24,36 +27,54 @@ export default defineVxeComponent({
24
27
  defaultRowHeight = computeDefaultRowHeight.value;
25
28
  }
26
29
  const { tableData } = reactData;
30
+ const titleField = computeTitleField.value;
27
31
  const progressField = computeProgressField.value;
32
+ const taskBarOpts = computeTaskBarOpts.value;
33
+ const { showProgress, showContent, contentMethod, barStyle } = taskBarOpts;
34
+ const { round } = barStyle || {};
28
35
  const trVNs = [];
29
36
  tableData.forEach((row, rIndex) => {
30
37
  const rowid = $xeTable ? $xeTable.getRowid(row) : '';
31
38
  const rowRest = fullAllDataRowIdData[rowid] || {};
32
39
  const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
33
- const progressValue = XEUtils.get(row, progressField);
40
+ let title = getStringValue(XEUtils.get(row, titleField));
41
+ const progressValue = showProgress ? Math.min(100, Math.max(0, XEUtils.toNumber(XEUtils.get(row, progressField)))) : 0;
42
+ if (contentMethod) {
43
+ title = getStringValue(contentMethod({ row, title }));
44
+ }
34
45
  trVNs.push(h('div', {
35
46
  key: rIndex,
36
47
  rowid,
37
- class: 'vxe-gantt-view--chart-row',
48
+ class: ['vxe-gantt-view--chart-row', {
49
+ 'is--round': round
50
+ }],
38
51
  style: {
39
52
  height: `${cellHeight}px`
40
53
  }
41
54
  }, [
42
55
  h('div', {
43
56
  class: 'vxe-gantt-view--chart-bar',
44
- rowid
57
+ rowid,
58
+ onClick(evnt) {
59
+ $xeGantt.handleTaskBarClickEvent(evnt, { row });
60
+ },
61
+ onDblclick(evnt) {
62
+ $xeGantt.handleTaskBarDblclickEvent(evnt, { row });
63
+ }
45
64
  }, [
46
- h('div', {
47
- class: 'vxe-gantt-view--chart-progress',
48
- style: progressValue
49
- ? {
50
- width: `${progressValue}%`
65
+ showProgress
66
+ ? h('div', {
67
+ class: 'vxe-gantt-view--chart-progress',
68
+ style: {
69
+ width: `${progressValue || 0}%`
51
70
  }
52
- : undefined
53
- }),
54
- h('div', {
55
- class: 'vxe-gantt-view--chart-content'
56
- })
71
+ })
72
+ : renderEmptyElement($xeGantt),
73
+ showContent
74
+ ? h('div', {
75
+ class: 'vxe-gantt-view--chart-content'
76
+ }, title)
77
+ : renderEmptyElement($xeGantt)
57
78
  ])
58
79
  ]));
59
80
  });
@@ -10,7 +10,7 @@ export default defineVxeComponent({
10
10
  const refHeaderTable = ref();
11
11
  const refHeaderXSpace = ref();
12
12
  const renderVN = () => {
13
- const { tableColumn, headerGroups } = reactData;
13
+ const { tableColumn, headerGroups, viewCellWidth } = reactData;
14
14
  return h('div', {
15
15
  ref: refElem,
16
16
  class: 'vxe-gantt-view--header-wrapper'
@@ -30,7 +30,10 @@ export default defineVxeComponent({
30
30
  }, [
31
31
  h('colgroup', {}, tableColumn.map((column, cIndex) => {
32
32
  return h('col', {
33
- key: cIndex
33
+ key: cIndex,
34
+ style: {
35
+ width: `${viewCellWidth}px`
36
+ }
34
37
  });
35
38
  })),
36
39
  h('thead', {}, headerGroups.map((cols, rIndex) => {
@@ -1,7 +1,7 @@
1
1
  import { h, ref, reactive, nextTick, inject, watch, provide, onMounted, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import { setScrollTop, setScrollLeft } from '../../ui/src/dom';
4
- import { VxeUI } from '../../ui';
4
+ import { VxeUI } from '@vxe-ui/core';
5
5
  import { getRefElem } from './util';
6
6
  import XEUtils from 'xe-utils';
7
7
  import GanttViewHeaderComponent from './gantt-header';
@@ -487,6 +487,10 @@ export default defineVxeComponent({
487
487
  checkLastSyncScroll(isRollX, isRollY);
488
488
  };
489
489
  const ganttViewMethods = {
490
+ refreshData() {
491
+ handleUpdateData();
492
+ return handleLazyRecalculate();
493
+ },
490
494
  updateViewData() {
491
495
  const $xeTable = internalData.xeTable;
492
496
  if ($xeTable) {
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import XEUtils from 'xe-utils';
4
4
  import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils';
5
5
  import { getOffsetHeight, getPaddingTopBottomSize, getDomNode, toCssUnit, addClass, removeClass } from '../../ui/src/dom';
6
- import { VxeUI } from '../../ui';
6
+ import { VxeUI } from '@vxe-ui/core';
7
7
  import { ganttProps } from './props';
8
8
  import { ganttEmits } from './emits';
9
9
  import { tableEmits } from './table-emits';
@@ -119,17 +119,20 @@ export default defineVxeComponent({
119
119
  const computeTaskBarOpts = computed(() => {
120
120
  return Object.assign({}, getConfig().gantt.taskBarConfig, props.taskBarConfig);
121
121
  });
122
+ const computeTaskSplitOpts = computed(() => {
123
+ return Object.assign({}, getConfig().gantt.taskSplitConfig, props.taskSplitConfig);
124
+ });
122
125
  const computeTitleField = computed(() => {
123
126
  const taskOpts = computeTaskOpts.value;
124
127
  return taskOpts.titleField || 'title';
125
128
  });
126
129
  const computeStartField = computed(() => {
127
130
  const taskOpts = computeTaskOpts.value;
128
- return taskOpts.startField || 'startDate';
131
+ return taskOpts.startField || 'start';
129
132
  });
130
133
  const computeEndField = computed(() => {
131
134
  const taskOpts = computeTaskOpts.value;
132
- return taskOpts.endField || 'endDate';
135
+ return taskOpts.endField || 'end';
133
136
  });
134
137
  const computeProgressField = computed(() => {
135
138
  const taskOpts = computeTaskOpts.value;
@@ -149,6 +152,10 @@ export default defineVxeComponent({
149
152
  const computeStyles = computed(() => {
150
153
  const { height, maxHeight } = props;
151
154
  const { isZMax, tZindex } = reactData;
155
+ const taskViewOpts = computeTaskViewOpts.value;
156
+ const { tableStyle } = taskViewOpts;
157
+ const taskBarOpts = computeTaskBarOpts.value;
158
+ const { barStyle } = taskBarOpts;
152
159
  const stys = {};
153
160
  if (isZMax) {
154
161
  stys.zIndex = tZindex;
@@ -161,6 +168,21 @@ export default defineVxeComponent({
161
168
  stys.maxHeight = maxHeight === 'auto' || maxHeight === '100%' ? '100%' : toCssUnit(maxHeight);
162
169
  }
163
170
  }
171
+ if (barStyle) {
172
+ const { bgColor, completedBgColor } = barStyle;
173
+ if (bgColor) {
174
+ stys['--vxe-ui-gantt-view-task-bar-background-color'] = bgColor;
175
+ }
176
+ if (completedBgColor) {
177
+ stys['--vxe-ui-gantt-view-task-bar-completed-background-color'] = completedBgColor;
178
+ }
179
+ }
180
+ if (tableStyle) {
181
+ const { width: defTbWidth } = tableStyle;
182
+ if (defTbWidth) {
183
+ stys['--vxe-ui-gantt-view-table-default-width'] = toCssUnit(defTbWidth);
184
+ }
185
+ }
164
186
  return stys;
165
187
  });
166
188
  const computeTableExtendProps = computed(() => {
@@ -279,6 +301,7 @@ export default defineVxeComponent({
279
301
  computeTaskOpts,
280
302
  computeTaskViewOpts,
281
303
  computeTaskBarOpts,
304
+ computeTaskSplitOpts,
282
305
  computeTitleField,
283
306
  computeStartField,
284
307
  computeEndField,
@@ -1194,7 +1217,7 @@ export default defineVxeComponent({
1194
1217
  };
1195
1218
  }
1196
1219
  return null;
1197
- }
1220
+ },
1198
1221
  // setProxyInfo (options) {
1199
1222
  // if (props.proxyConfig && options) {
1200
1223
  // const { pager, form } = options
@@ -1212,7 +1235,14 @@ export default defineVxeComponent({
1212
1235
  // }
1213
1236
  // }
1214
1237
  // return nextTick()
1215
- // }
1238
+ // },
1239
+ refreshTaskView() {
1240
+ const $ganttView = refGanttView.value;
1241
+ if ($ganttView) {
1242
+ return $ganttView.refreshData();
1243
+ }
1244
+ return nextTick();
1245
+ }
1216
1246
  };
1217
1247
  const ganttPrivateMethods = {
1218
1248
  extendTableMethods,
@@ -1272,6 +1302,18 @@ export default defineVxeComponent({
1272
1302
  triggerZoomEvent(evnt) {
1273
1303
  $xeGantt.zoom();
1274
1304
  $xeGantt.dispatchEvent('zoom', { type: reactData.isZMax ? 'max' : 'revert' }, evnt);
1305
+ },
1306
+ handleTaskCellClickEvent(evnt, params) {
1307
+ $xeGantt.dispatchEvent('task-cell-click', params, evnt);
1308
+ },
1309
+ handleTaskCellDblclickEvent(evnt, params) {
1310
+ $xeGantt.dispatchEvent('task-cell-dblclick', params, evnt);
1311
+ },
1312
+ handleTaskBarClickEvent(evnt, params) {
1313
+ $xeGantt.dispatchEvent('task-bar-click', params, evnt);
1314
+ },
1315
+ handleTaskBarDblclickEvent(evnt, params) {
1316
+ $xeGantt.dispatchEvent('task-bar-dblclick', params, evnt);
1275
1317
  }
1276
1318
  };
1277
1319
  Object.assign($xeGantt, ganttExtendTableMethods, ganttMethods, ganttPrivateMethods, {
@@ -1524,37 +1566,47 @@ export default defineVxeComponent({
1524
1566
  };
1525
1567
  const renderSplitBar = () => {
1526
1568
  const { showLeftView, showRightView } = reactData;
1569
+ const taskSplitOpts = computeTaskSplitOpts.value;
1570
+ const { enabled, resize, showCollapseTableButton, showCollapseTaskButton } = taskSplitOpts;
1571
+ if (!enabled) {
1572
+ return renderEmptyElement($xeGantt);
1573
+ }
1574
+ const ons = {};
1575
+ if (resize) {
1576
+ ons.onMousedown = dragSplitEvent;
1577
+ }
1527
1578
  return h('div', {
1528
- class: 'vxe-gantt--view-split-bar'
1579
+ class: ['vxe-gantt--view-split-bar', Object.assign({ 'is--resize': resize }, ons)]
1529
1580
  }, [
1530
1581
  h('div', {
1531
- class: 'vxe-gantt--view-split-bar-handle',
1532
- onMousedown: dragSplitEvent
1582
+ class: 'vxe-gantt--view-split-bar-handle'
1533
1583
  }),
1534
- h('div', {
1535
- class: 'vxe-gantt--view-split-bar-btn-wrapper'
1536
- }, [
1537
- showRightView
1538
- ? h('div', {
1539
- class: 'vxe-gantt--view-split-bar-left-btn',
1540
- onClick: handleSplitLeftViewEvent
1541
- }, [
1542
- h('i', {
1543
- class: showLeftView ? getIcon().GANTT_VIEW_LEFT_OPEN : getIcon().GANTT_VIEW_LEFT_CLOSE
1544
- })
1545
- ])
1546
- : renderEmptyElement($xeGantt),
1547
- showLeftView
1548
- ? h('div', {
1549
- class: 'vxe-gantt--view-split-bar-right-btn',
1550
- onClick: handleSplitRightViewEvent
1551
- }, [
1552
- h('i', {
1553
- class: showRightView ? getIcon().GANTT_VIEW_RIGHT_OPEN : getIcon().GANTT_VIEW_RIGHT_CLOSE
1554
- })
1555
- ])
1556
- : renderEmptyElement($xeGantt)
1557
- ])
1584
+ showCollapseTableButton || showCollapseTaskButton
1585
+ ? h('div', {
1586
+ class: 'vxe-gantt--view-split-bar-btn-wrapper'
1587
+ }, [
1588
+ showCollapseTableButton && showRightView
1589
+ ? h('div', {
1590
+ class: 'vxe-gantt--view-split-bar-left-btn',
1591
+ onClick: handleSplitLeftViewEvent
1592
+ }, [
1593
+ h('i', {
1594
+ class: showLeftView ? getIcon().GANTT_VIEW_LEFT_OPEN : getIcon().GANTT_VIEW_LEFT_CLOSE
1595
+ })
1596
+ ])
1597
+ : renderEmptyElement($xeGantt),
1598
+ showCollapseTaskButton && showLeftView
1599
+ ? h('div', {
1600
+ class: 'vxe-gantt--view-split-bar-right-btn',
1601
+ onClick: handleSplitRightViewEvent
1602
+ }, [
1603
+ h('i', {
1604
+ class: showRightView ? getIcon().GANTT_VIEW_RIGHT_OPEN : getIcon().GANTT_VIEW_RIGHT_CLOSE
1605
+ })
1606
+ ])
1607
+ : renderEmptyElement($xeGantt)
1608
+ ])
1609
+ : renderEmptyElement($xeGantt)
1558
1610
  ]);
1559
1611
  };
1560
1612
  const renderChildLayout = (layoutKeys) => {
@@ -1,4 +1,4 @@
1
- import { VxeUI } from '../../ui';
1
+ import { VxeUI } from '@vxe-ui/core';
2
2
  import { tableProps } from './table-props';
3
3
  const { getConfig } = VxeUI;
4
4
  export const gridProps = Object.assign(Object.assign({}, tableProps), { layouts: Array, columns: Array, pagerConfig: Object, proxyConfig: Object, toolbarConfig: Object, formConfig: Object, zoomConfig: Object, size: {
@@ -1,2 +1,2 @@
1
1
  import { gridProps } from './grid-props';
2
- export const ganttProps = Object.assign(Object.assign({}, gridProps), { layouts: Array, taskConfig: Object, taskViewConfig: Object, taskBarConfig: Object });
2
+ export const ganttProps = Object.assign(Object.assign({}, gridProps), { layouts: Array, taskConfig: Object, taskViewConfig: Object, taskBarConfig: Object, taskSplitConfig: Object });
@@ -1,4 +1,4 @@
1
- import { VxeUI } from '../../ui';
1
+ import { VxeUI } from '@vxe-ui/core';
2
2
  const { getConfig } = VxeUI;
3
3
  export const tableProps = {
4
4
  /** 基本属性 */
@@ -9,19 +9,27 @@
9
9
  .vxe-gantt-view--chart-row {
10
10
  position: relative;
11
11
  }
12
+ .vxe-gantt-view--chart-row.is--round > .vxe-gantt-view--chart-bar {
13
+ border-radius: var(--vxe-ui-gantt-view-task-bar-border-radius);
14
+ }
15
+ .vxe-gantt-view--chart-row.is--round > .vxe-gantt-view--chart-bar:hover::after {
16
+ border-radius: var(--vxe-ui-gantt-view-task-bar-border-radius);
17
+ }
18
+ .vxe-gantt-view--chart-row.is--round > .vxe-gantt-view--chart-bar > .vxe-gantt-view--chart-progress {
19
+ border-radius: var(--vxe-ui-gantt-view-task-bar-border-radius) 0 0 var(--vxe-ui-gantt-view-task-bar-border-radius);
20
+ }
12
21
 
13
22
  .vxe-gantt-view--chart-bar {
14
23
  display: flex;
15
24
  flex-direction: row;
25
+ align-items: center;
16
26
  position: absolute;
17
- width: 100px;
18
27
  top: 50%;
19
28
  left: 0;
20
29
  color: #ffffff;
21
30
  transform: translateY(-50%);
22
- border-radius: var(--vxe-ui-base-border-radius);
23
31
  height: var(--vxe-ui-gantt-view-chart-bar-height);
24
- background-color: var(--vxe-ui-font-primary-lighten-color);
32
+ background-color: var(--vxe-ui-gantt-view-task-bar-background-color);
25
33
  pointer-events: all;
26
34
  }
27
35
  .vxe-gantt-view--chart-bar:hover::after {
@@ -32,20 +40,27 @@
32
40
  width: 100%;
33
41
  height: 100%;
34
42
  background-color: rgba(0, 0, 0, 0.1);
35
- border-radius: var(--vxe-ui-base-border-radius);
36
43
  }
37
44
 
38
45
  .vxe-gantt-view--chart-progress {
39
46
  flex-shrink: 0;
40
- width: 40px;
47
+ width: 0;
48
+ height: 100%;
41
49
  text-align: left;
42
- border-radius: var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius);
43
- background-color: var(--vxe-ui-font-primary-color);
50
+ background-color: var(--vxe-ui-gantt-view-task-bar-completed-background-color);
51
+ overflow: hidden;
52
+ text-overflow: ellipsis;
53
+ white-space: nowrap;
44
54
  }
45
55
 
46
56
  .vxe-gantt-view--chart-content {
47
- flex-grow: 1;
48
- text-align: right;
57
+ position: absolute;
58
+ width: 100%;
59
+ overflow: hidden;
60
+ text-overflow: ellipsis;
61
+ white-space: nowrap;
62
+ font-size: 0.9em;
63
+ padding: 0 0.6em;
49
64
  }
50
65
 
51
66
  .vxe-gantt {
@@ -121,17 +136,19 @@
121
136
  }
122
137
  .vxe-gantt .vxe-gantt--view-split-bar {
123
138
  flex-shrink: 0;
124
- cursor: col-resize;
125
139
  width: var(--vxe-ui-gantt-view-split-bar-width);
126
140
  background-color: var(--vxe-ui-gantt-view-split-bar-background-color);
127
141
  }
142
+ .vxe-gantt .vxe-gantt--view-split-bar.is--resize {
143
+ cursor: col-resize;
144
+ }
128
145
  .vxe-gantt.show--left .vxe-gantt--table-wrapper {
129
146
  display: block;
130
147
  }
131
148
  .vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper {
132
149
  flex-grow: unset;
133
150
  flex-shrink: 0;
134
- width: 30%;
151
+ width: var(--vxe-ui-gantt-view-table-default-width);
135
152
  }
136
153
  .vxe-gantt.show--right .vxe-gantt--view-wrapper {
137
154
  display: block;
@@ -281,6 +298,12 @@
281
298
  z-index: 15;
282
299
  pointer-events: none;
283
300
  }
301
+ .vxe-gantt--view-split-bar-btn-wrapper > div {
302
+ margin-top: 1em;
303
+ }
304
+ .vxe-gantt--view-split-bar-btn-wrapper > div:first-child {
305
+ margin-top: 0;
306
+ }
284
307
 
285
308
  .vxe-gantt--view-split-bar-left-btn,
286
309
  .vxe-gantt--view-split-bar-right-btn {
@@ -311,10 +334,6 @@
311
334
  transform: scale(0.9);
312
335
  }
313
336
 
314
- .vxe-gantt--view-split-bar-right-btn {
315
- margin-top: 1em;
316
- }
317
-
318
337
  .vxe-gantt--resizable-split-tip {
319
338
  display: none;
320
339
  position: absolute;
@@ -505,7 +524,7 @@
505
524
  }
506
525
 
507
526
  .vxe-gantt-view--column-info {
508
- width: var(--vxe-ui-gantt-view-column-width);
527
+ width: var(--vxe-ui-gantt-view-default-cell-width);
509
528
  }
510
529
 
511
530
  .vxe-gantt-view {
@@ -535,7 +554,7 @@
535
554
  }
536
555
  .vxe-gantt-view--header-table col,
537
556
  .vxe-gantt-view--body-table col {
538
- width: var(--vxe-ui-gantt-view-column-width);
557
+ width: var(--vxe-ui-gantt-view-default-cell-width);
539
558
  }
540
559
 
541
560
  .vxe-gantt-view--header-wrapper,
@@ -1 +1 @@
1
- @charset "UTF-8";.vxe-gantt-view--chart-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative}.vxe-gantt-view--chart-bar{display:flex;flex-direction:row;position:absolute;width:100px;top:50%;left:0;color:#fff;transform:translateY(-50%);border-radius:var(--vxe-ui-base-border-radius);height:var(--vxe-ui-gantt-view-chart-bar-height);background-color:var(--vxe-ui-font-primary-lighten-color);pointer-events:all}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);border-radius:var(--vxe-ui-base-border-radius)}.vxe-gantt-view--chart-progress{flex-shrink:0;width:40px;text-align:left;border-radius:var(--vxe-ui-base-border-radius) 0 0 var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-content{flex-grow:1;text-align:right}.vxe-gantt{position:relative;overflow:auto;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;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;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}.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{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;cursor:col-resize;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.show--left.show--right .vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:30%}.vxe-gantt.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{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--default .vxe-gantt-view--header-wrapper,.vxe-gantt.border--full .vxe-gantt-view--header-wrapper,.vxe-gantt.border--outer .vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-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-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";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-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{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-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{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-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";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-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{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-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{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--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:13}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-right-btn{margin-top:1em}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:18;pointer-events:none;-webkit-user-select:none;-moz-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;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-column-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--header-table{height:100%}.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-column-width)}.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:auto;overflow-x:auto}.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--header-column{text-align:center;font-size:1em}.vxe-gantt-view--body-column{height:48px}.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.mode--day .vxe-gantt-view--header-column{height:50%}.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-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row{position:relative}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar{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{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-progress{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius) 0 0 var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-bar{display:flex;flex-direction:row;align-items:center;position:absolute;top:50%;left:0;color:#fff;transform:translateY(-50%);height:var(--vxe-ui-gantt-view-chart-bar-height);background-color:var(--vxe-ui-gantt-view-task-bar-background-color);pointer-events:all}.vxe-gantt-view--chart-bar:hover::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1)}.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{position:relative;overflow:auto;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;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;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}.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{display:none;position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar{flex-shrink:0;width:var(--vxe-ui-gantt-view-split-bar-width);background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt.show--left .vxe-gantt--table-wrapper{display:block}.vxe-gantt.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.show--right .vxe-gantt--view-wrapper{display:block}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{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--default .vxe-gantt-view--header-wrapper,.vxe-gantt.border--full .vxe-gantt-view--header-wrapper,.vxe-gantt.border--outer .vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-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-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-wrapper::after{content:"";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-wrapper::after,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-wrapper::after{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-wrapper::after,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-wrapper::after{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-wrapper::after,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-wrapper::after{content:"";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-wrapper::after,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-wrapper::after{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-wrapper::after,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-wrapper::after{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--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:13}.vxe-gantt--view-split-bar-btn-wrapper{display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;pointer-events:none}.vxe-gantt--view-split-bar-btn-wrapper>div{margin-top:1em}.vxe-gantt--view-split-bar-btn-wrapper>div:first-child{margin-top:0}.vxe-gantt--view-split-bar-left-btn,.vxe-gantt--view-split-bar-right-btn{display:flex;flex-direction:row;align-items:center;justify-content:center;font-size:.5em;height:var(--vxe-ui-gantt-view-split-bar-height);width:var(--vxe-ui-gantt-view-split-bar-width);color:var(--vxe-ui-layout-background-color);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-left-btn:hover,.vxe-gantt--view-split-bar-right-btn:hover{background-color:var(--vxe-ui-font-primary-lighten-color)}.vxe-gantt--view-split-bar-left-btn:active,.vxe-gantt--view-split-bar-right-btn:active{transform:scale(.9)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:18;pointer-events:none;-webkit-user-select:none;-moz-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;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--header-table{height:100%}.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-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:auto;overflow-x:auto}.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--header-column{text-align:center;font-size:1em}.vxe-gantt-view--body-column{height:48px}.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.mode--day .vxe-gantt-view--header-column{height:50%}.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)}