vxe-gantt 4.0.0-beta.6 → 4.0.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 (51) hide show
  1. package/es/gantt/src/gantt-body.js +23 -6
  2. package/es/gantt/src/gantt-chart.js +6 -1
  3. package/es/gantt/src/gantt-footer.js +35 -0
  4. package/es/gantt/src/gantt-header.js +2 -16
  5. package/es/gantt/src/gantt-view.js +35 -48
  6. package/es/gantt/src/gantt.js +30 -8
  7. package/es/gantt/src/util.js +0 -6
  8. package/es/gantt/style.css +25 -3
  9. package/es/gantt/style.min.css +1 -1
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-gantt/style.css +25 -3
  15. package/es/vxe-gantt/style.min.css +1 -1
  16. package/lib/gantt/src/gantt-body.js +30 -5
  17. package/lib/gantt/src/gantt-body.min.js +1 -1
  18. package/lib/gantt/src/gantt-chart.js +8 -1
  19. package/lib/gantt/src/gantt-chart.min.js +1 -1
  20. package/lib/gantt/src/gantt-footer.js +45 -0
  21. package/lib/gantt/src/gantt-footer.min.js +1 -0
  22. package/lib/gantt/src/gantt-header.js +2 -19
  23. package/lib/gantt/src/gantt-header.min.js +1 -1
  24. package/lib/gantt/src/gantt-view.js +39 -48
  25. package/lib/gantt/src/gantt-view.min.js +1 -1
  26. package/lib/gantt/src/gantt.js +35 -6
  27. package/lib/gantt/src/gantt.min.js +1 -1
  28. package/lib/gantt/src/util.js +0 -7
  29. package/lib/gantt/src/util.min.js +1 -1
  30. package/lib/gantt/style/style.css +25 -3
  31. package/lib/gantt/style/style.min.css +1 -1
  32. package/lib/index.umd.js +273 -136
  33. package/lib/index.umd.min.js +1 -1
  34. package/lib/style.css +1 -1
  35. package/lib/style.min.css +1 -1
  36. package/lib/ui/index.js +1 -1
  37. package/lib/ui/index.min.js +1 -1
  38. package/lib/ui/src/log.js +1 -1
  39. package/lib/ui/src/log.min.js +1 -1
  40. package/lib/vxe-gantt/style/style.css +25 -3
  41. package/lib/vxe-gantt/style/style.min.css +1 -1
  42. package/package.json +3 -3
  43. package/packages/gantt/src/gantt-body.ts +23 -6
  44. package/packages/gantt/src/gantt-chart.ts +7 -1
  45. package/packages/gantt/src/gantt-footer.ts +44 -0
  46. package/packages/gantt/src/gantt-header.ts +2 -20
  47. package/packages/gantt/src/gantt-view.ts +40 -55
  48. package/packages/gantt/src/gantt.ts +32 -8
  49. package/packages/gantt/src/util.ts +0 -7
  50. package/styles/components/gantt-module/gantt-chart.scss +1 -3
  51. package/styles/components/gantt.scss +26 -0
@@ -14,6 +14,8 @@ export default defineVxeComponent({
14
14
  const refBodyXSpace = ref();
15
15
  const refBodyYSpace = ref();
16
16
  const renderColumn = ($xeTable, row, rowid, $rowIndex, column, $columnIndex) => {
17
+ const tableReactData = $xeTable.reactData;
18
+ const { resizeHeightFlag } = tableReactData;
17
19
  const tableInternalData = $xeTable.internalData;
18
20
  const { fullAllDataRowIdData } = tableInternalData;
19
21
  const { computeCellOpts, computeRowOpts, computeDefaultRowHeight } = $xeTable.getComputeMaps();
@@ -21,10 +23,14 @@ export default defineVxeComponent({
21
23
  const rowOpts = computeRowOpts.value;
22
24
  const defaultRowHeight = computeDefaultRowHeight.value;
23
25
  const rowRest = fullAllDataRowIdData[rowid] || {};
26
+ const resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
27
+ const isRsHeight = resizeHeight > 0;
24
28
  const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
25
29
  return h('td', {
26
30
  key: $columnIndex,
27
- class: 'vxe-gantt-view--body-column',
31
+ class: ['vxe-gantt-view--body-column', {
32
+ 'col--rs-height': isRsHeight
33
+ }],
28
34
  style: {
29
35
  height: `${cellHeight}px`
30
36
  },
@@ -38,12 +44,14 @@ export default defineVxeComponent({
38
44
  };
39
45
  const renderRows = ($xeTable, tableData) => {
40
46
  const tableProps = $xeTable.props;
41
- const { treeConfig, stripe, highlightHoverRow } = tableProps;
47
+ const { treeConfig, stripe, highlightHoverRow, editConfig } = tableProps;
42
48
  const tableReactData = $xeTable.reactData;
43
- const { treeExpandedFlag } = tableReactData;
49
+ const { treeExpandedFlag, selectRadioRow, pendingRowFlag } = tableReactData;
44
50
  const tableInternalData = $xeTable.internalData;
45
- const { fullAllDataRowIdData, treeExpandedMaps } = tableInternalData;
46
- const { computeTreeOpts, computeRowOpts } = $xeTable.getComputeMaps();
51
+ const { fullAllDataRowIdData, treeExpandedMaps, pendingRowMaps } = tableInternalData;
52
+ const { computeRadioOpts, computeCheckboxOpts, computeTreeOpts, computeRowOpts } = $xeTable.getComputeMaps();
53
+ const radioOpts = computeRadioOpts.value;
54
+ const checkboxOpts = computeCheckboxOpts.value;
47
55
  const rowOpts = computeRowOpts.value;
48
56
  const treeOpts = computeTreeOpts.value;
49
57
  const { transform } = treeOpts;
@@ -60,6 +68,11 @@ export default defineVxeComponent({
60
68
  rowIndex = rowRest.index;
61
69
  _rowIndex = rowRest._index;
62
70
  }
71
+ // 是否新增行
72
+ let isNewRow = false;
73
+ if (editConfig) {
74
+ isNewRow = $xeTable.isInsertByRow(row);
75
+ }
63
76
  // 当前行事件
64
77
  if (rowOpts.isHover || highlightHoverRow) {
65
78
  trOns.onMouseenter = (evnt) => {
@@ -70,7 +83,11 @@ export default defineVxeComponent({
70
83
  };
71
84
  }
72
85
  trVNs.push(h('tr', Object.assign({ key: treeConfig ? rowid : $rowIndex, class: ['vxe-gantt-view--body-row', {
73
- 'row--stripe': stripe && (_rowIndex + 1) % 2 === 0
86
+ 'row--stripe': stripe && (_rowIndex + 1) % 2 === 0,
87
+ 'is--new': isNewRow,
88
+ 'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
89
+ 'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
90
+ 'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid]
74
91
  }], rowid }, trOns), tableColumn.map((column, $columnIndex) => renderColumn($xeTable, row, rowid, $rowIndex, column, $columnIndex))));
75
92
  let isExpandTree = false;
76
93
  let rowChildren = [];
@@ -16,6 +16,8 @@ export default defineVxeComponent({
16
16
  const renderTaskBar = ($xeTable, row, rowid, $rowIndex) => {
17
17
  const tableProps = $xeTable.props;
18
18
  const { treeConfig } = tableProps;
19
+ const tableReactData = $xeTable.reactData;
20
+ const { resizeHeightFlag } = tableReactData;
19
21
  const tableInternalData = $xeTable.internalData;
20
22
  const { fullAllDataRowIdData } = tableInternalData;
21
23
  const { computeCellOpts, computeRowOpts, computeDefaultRowHeight } = $xeTable.getComputeMaps();
@@ -28,6 +30,8 @@ export default defineVxeComponent({
28
30
  const { showProgress, showContent, contentMethod, barStyle } = taskBarOpts;
29
31
  const { round } = barStyle || {};
30
32
  const rowRest = fullAllDataRowIdData[rowid] || {};
33
+ const resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
34
+ const isRsHeight = resizeHeight > 0;
31
35
  const cellHeight = getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight);
32
36
  let title = getStringValue(XEUtils.get(row, titleField));
33
37
  const progressValue = showProgress ? Math.min(100, Math.max(0, XEUtils.toNumber(XEUtils.get(row, progressField)))) : 0;
@@ -38,7 +42,8 @@ export default defineVxeComponent({
38
42
  key: treeConfig ? rowid : $rowIndex,
39
43
  rowid,
40
44
  class: ['vxe-gantt-view--chart-row', {
41
- 'is--round': round
45
+ 'is--round': round,
46
+ 'col--rs-height': isRsHeight
42
47
  }],
43
48
  style: {
44
49
  height: `${cellHeight}px`
@@ -0,0 +1,35 @@
1
+ import { h, inject, ref, onMounted, onUnmounted } from 'vue';
2
+ import { defineVxeComponent } from '../../ui/src/comp';
3
+ export default defineVxeComponent({
4
+ name: 'VxeGanttViewFooter',
5
+ setup() {
6
+ const $xeGanttView = inject('$xeGanttView', {});
7
+ const { internalData } = $xeGanttView;
8
+ const refElem = ref();
9
+ const refHeaderScroll = ref();
10
+ const renderVN = () => {
11
+ return h('div', {
12
+ ref: refElem,
13
+ class: 'vxe-gantt-view--footer-wrapper'
14
+ }, [
15
+ h('div', {
16
+ ref: refHeaderScroll,
17
+ class: 'vxe-gantt-view--footer-inner-wrapper'
18
+ })
19
+ ]);
20
+ };
21
+ onMounted(() => {
22
+ const { elemStore } = internalData;
23
+ const prefix = 'main-footer-';
24
+ elemStore[`${prefix}wrapper`] = refElem;
25
+ elemStore[`${prefix}scroll`] = refHeaderScroll;
26
+ });
27
+ onUnmounted(() => {
28
+ const { elemStore } = internalData;
29
+ const prefix = 'main-footer-';
30
+ elemStore[`${prefix}wrapper`] = null;
31
+ elemStore[`${prefix}scroll`] = null;
32
+ });
33
+ return renderVN;
34
+ }
35
+ });
@@ -1,8 +1,7 @@
1
1
  import { h, inject, ref, onMounted, onUnmounted } from 'vue';
2
2
  import { defineVxeComponent } from '../../ui/src/comp';
3
- import { getCellHeight } from './util';
4
3
  export default defineVxeComponent({
5
- name: 'VxeGanttView',
4
+ name: 'VxeGanttViewHeader',
6
5
  setup() {
7
6
  const $xeGanttView = inject('$xeGanttView', {});
8
7
  const { reactData, internalData } = $xeGanttView;
@@ -11,17 +10,7 @@ export default defineVxeComponent({
11
10
  const refHeaderTable = ref();
12
11
  const refHeaderXSpace = ref();
13
12
  const renderVN = () => {
14
- const $xeTable = $xeGanttView.internalData.xeTable;
15
13
  const { tableColumn, headerGroups, viewCellWidth } = reactData;
16
- let defaultRowHeight = 0;
17
- let headerCellOpts = {};
18
- let currCellHeight = 0;
19
- if ($xeTable) {
20
- const { computeDefaultRowHeight, computeHeaderCellOpts } = $xeTable.getComputeMaps();
21
- defaultRowHeight = computeDefaultRowHeight.value;
22
- headerCellOpts = computeHeaderCellOpts.value;
23
- currCellHeight = getCellHeight(headerCellOpts.height) || defaultRowHeight;
24
- }
25
14
  return h('div', {
26
15
  ref: refElem,
27
16
  class: 'vxe-gantt-view--header-wrapper'
@@ -37,10 +26,7 @@ export default defineVxeComponent({
37
26
  }),
38
27
  h('table', {
39
28
  ref: refHeaderTable,
40
- class: 'vxe-gantt-view--header-table',
41
- style: {
42
- height: `${currCellHeight}px`
43
- }
29
+ class: 'vxe-gantt-view--header-table'
44
30
  }, [
45
31
  h('colgroup', {}, tableColumn.map((column, cIndex) => {
46
32
  return h('col', {
@@ -6,6 +6,7 @@ import { getRefElem } from './util';
6
6
  import XEUtils from 'xe-utils';
7
7
  import GanttViewHeaderComponent from './gantt-header';
8
8
  import GanttViewBodyComponent from './gantt-body';
9
+ import GanttViewFooterComponent from './gantt-footer';
9
10
  const { globalEvents } = VxeUI;
10
11
  function createInternalData() {
11
12
  return {
@@ -294,11 +295,13 @@ export default defineVxeComponent({
294
295
  if (!el || !el.clientHeight) {
295
296
  return;
296
297
  }
298
+ const scrollbarOpts = computeScrollbarOpts.value;
297
299
  const scrollbarXToTop = computeScrollbarXToTop.value;
300
+ const scrollbarYToLeft = computeScrollbarYToLeft.value;
298
301
  const xLeftCornerEl = refScrollXLeftCornerElem.value;
299
302
  const xRightCornerEl = refScrollXRightCornerElem.value;
300
303
  const scrollXVirtualEl = refScrollXVirtualElem.value;
301
- const osbWidth = scrollbarWidth;
304
+ let osbWidth = scrollbarWidth;
302
305
  const osbHeight = scrollbarHeight;
303
306
  let tbHeight = 0;
304
307
  let tHeaderHeight = 0;
@@ -309,6 +312,11 @@ export default defineVxeComponent({
309
312
  tHeaderHeight = tableInternalData.tHeaderHeight;
310
313
  tFooterHeight = tableInternalData.tFooterHeight;
311
314
  }
315
+ let yScrollbarVisible = 'visible';
316
+ if (scrollbarYToLeft || (scrollbarOpts.y && scrollbarOpts.y.visible === false)) {
317
+ osbWidth = 0;
318
+ yScrollbarVisible = 'hidden';
319
+ }
312
320
  const headerScrollElem = getRefElem(elemStore['main-header-scroll']);
313
321
  if (headerScrollElem) {
314
322
  headerScrollElem.style.height = `${tHeaderHeight}px`;
@@ -317,6 +325,10 @@ export default defineVxeComponent({
317
325
  if (bodyScrollElem) {
318
326
  bodyScrollElem.style.height = `${tbHeight}px`;
319
327
  }
328
+ const footerScrollElem = getRefElem(elemStore['main-footer-scroll']);
329
+ if (footerScrollElem) {
330
+ footerScrollElem.style.height = `${tFooterHeight}px`;
331
+ }
320
332
  if (scrollXVirtualEl) {
321
333
  scrollXVirtualEl.style.height = `${osbHeight}px`;
322
334
  scrollXVirtualEl.style.visibility = 'visible';
@@ -338,7 +350,7 @@ export default defineVxeComponent({
338
350
  if (scrollYVirtualEl) {
339
351
  scrollYVirtualEl.style.width = `${osbWidth}px`;
340
352
  scrollYVirtualEl.style.height = `${tbHeight + tHeaderHeight + tFooterHeight}px`;
341
- scrollYVirtualEl.style.visibility = 'visible';
353
+ scrollYVirtualEl.style.visibility = yScrollbarVisible;
342
354
  }
343
355
  const yTopCornerEl = refScrollYTopCornerElem.value;
344
356
  if (yTopCornerEl) {
@@ -387,49 +399,6 @@ export default defineVxeComponent({
387
399
  return nextTick();
388
400
  };
389
401
  // const updateScrollXSpace = () => {
390
- // const { scrollXLoad, scrollXWidth } = reactData
391
- // const { elemStore } = internalData
392
- // const bodyScrollElem = getRefElem(elemStore['main-body-scroll'])
393
- // const bodyTableElem = getRefElem(elemStore['main-body-table'])
394
- // let xSpaceLeft = 0
395
- // let clientWidth = 0
396
- // if (bodyScrollElem) {
397
- // clientWidth = bodyScrollElem.clientWidth
398
- // }
399
- // // 虚拟渲染
400
- // let isScrollXBig = false
401
- // let ySpaceWidth = scrollXWidth
402
- // if (scrollXWidth > maxXWidth) {
403
- // // 触右
404
- // if (bodyScrollElem && bodyTableElem && bodyScrollElem.scrollLeft + clientWidth >= maxXWidth) {
405
- // xSpaceLeft = maxXWidth - bodyTableElem.clientWidth
406
- // } else {
407
- // xSpaceLeft = (maxXWidth - clientWidth) * (xSpaceLeft / (scrollXWidth - clientWidth))
408
- // }
409
- // ySpaceWidth = maxXWidth
410
- // isScrollXBig = true
411
- // }
412
- // if (bodyTableElem) {
413
- // bodyTableElem.style.transform = `translate(${xSpaceLeft}px, ${reactData.scrollYTop || 0}px)`
414
- // }
415
- // const layoutList = ['header', 'body', 'footer']
416
- // layoutList.forEach(layout => {
417
- // const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`])
418
- // if (xSpaceElem) {
419
- // xSpaceElem.style.width = scrollXLoad ? `${ySpaceWidth}px` : ''
420
- // }
421
- // })
422
- // reactData.scrollXLeft = xSpaceLeft
423
- // reactData.scrollXWidth = ySpaceWidth
424
- // reactData.isScrollXBig = isScrollXBig
425
- // const scrollXSpaceEl = refScrollXSpaceElem.value
426
- // if (scrollXSpaceEl) {
427
- // scrollXSpaceEl.style.width = `${ySpaceWidth}px`
428
- // }
429
- // calcScrollbar()
430
- // return nextTick().then(() => {
431
- // updateStyle()
432
- // })
433
402
  // }
434
403
  const updateScrollYSpace = () => {
435
404
  const { elemStore } = internalData;
@@ -672,8 +641,25 @@ export default defineVxeComponent({
672
641
  handleScrollEvent(evnt, isRollY, isRollX, currTopNum, wrapperEl.scrollLeft);
673
642
  }
674
643
  },
675
- updateScrollYSpace,
676
- updateScrollYStatus(sYLoad) {
644
+ handleUpdateSXSpace() {
645
+ const { scrollXLoad, scrollXWidth } = reactData;
646
+ const { elemStore } = internalData;
647
+ const layoutList = ['header', 'body', 'footer'];
648
+ layoutList.forEach(layout => {
649
+ const xSpaceElem = getRefElem(elemStore[`main-${layout}-xSpace`]);
650
+ if (xSpaceElem) {
651
+ xSpaceElem.style.width = scrollXLoad ? `${scrollXWidth}px` : '';
652
+ }
653
+ });
654
+ const scrollXSpaceEl = refScrollXSpaceElem.value;
655
+ if (scrollXSpaceEl) {
656
+ scrollXSpaceEl.style.width = `${scrollXWidth}px`;
657
+ }
658
+ calcScrollbar();
659
+ return nextTick();
660
+ },
661
+ handleUpdateSYSpace: updateScrollYSpace,
662
+ handleUpdateSYStatus(sYLoad) {
677
663
  reactData.scrollYLoad = sYLoad;
678
664
  }
679
665
  };
@@ -747,7 +733,8 @@ export default defineVxeComponent({
747
733
  class: 'vxe-gantt-view--viewport-wrapper'
748
734
  }, [
749
735
  h(GanttViewHeaderComponent),
750
- h(GanttViewBodyComponent)
736
+ h(GanttViewBodyComponent),
737
+ h(GanttViewFooterComponent)
751
738
  ]);
752
739
  };
753
740
  const renderBody = () => {
@@ -204,10 +204,10 @@ export default defineVxeComponent({
204
204
  const pagerOpts = computePagerOpts.value;
205
205
  const isLoading = computeIsLoading.value;
206
206
  const tProps = Object.assign({}, tableExtendProps, {
207
+ // 不支持修改的属性
207
208
  showOverflow: true,
208
209
  showHeaderOverflow: true,
209
- showFooterOverflow: true,
210
- showFooter: false
210
+ showFooterOverflow: true
211
211
  });
212
212
  if (isZMax) {
213
213
  if (tableExtendProps.maxHeight) {
@@ -1312,7 +1312,11 @@ export default defineVxeComponent({
1312
1312
  if ($xeTable) {
1313
1313
  const tableProps = $xeTable.props;
1314
1314
  const { highlightCurrentRow } = tableProps;
1315
- const { computeRowOpts } = $xeTable.getComputeMaps();
1315
+ const tableReactData = $xeTable.reactData;
1316
+ const { radioColumn, checkboxColumn } = tableReactData;
1317
+ const { computeRadioOpts, computeCheckboxOpts, computeRowOpts } = $xeTable.getComputeMaps();
1318
+ const radioOpts = computeRadioOpts.value;
1319
+ const checkboxOpts = computeCheckboxOpts.value;
1316
1320
  const rowOpts = computeRowOpts.value;
1317
1321
  const { row } = params;
1318
1322
  // 如果是当前行
@@ -1323,6 +1327,14 @@ export default defineVxeComponent({
1323
1327
  $rowIndex: $xeTable.getVMRowIndex(row)
1324
1328
  }, params));
1325
1329
  }
1330
+ // 如果是单选框
1331
+ if ((radioColumn && radioOpts.trigger === 'row')) {
1332
+ $xeTable.triggerRadioRowEvent(evnt, params);
1333
+ }
1334
+ // 如果是复选框
1335
+ if ((checkboxColumn && checkboxOpts.trigger === 'row')) {
1336
+ $xeTable.handleToggleCheckRowEvent(evnt, params);
1337
+ }
1326
1338
  }
1327
1339
  $xeGantt.dispatchEvent('task-cell-click', params, evnt);
1328
1340
  },
@@ -1341,6 +1353,7 @@ export default defineVxeComponent({
1341
1353
  loadColumn(columns) {
1342
1354
  const $xeTable = refTable.value;
1343
1355
  XEUtils.eachTree(columns, (column) => {
1356
+ const { type } = column;
1344
1357
  if (column.slots) {
1345
1358
  XEUtils.each(column.slots, (func) => {
1346
1359
  if (!XEUtils.isFunction(func)) {
@@ -1350,6 +1363,9 @@ export default defineVxeComponent({
1350
1363
  }
1351
1364
  });
1352
1365
  }
1366
+ if (type === 'expand') {
1367
+ errLog('vxe.error.errProp', ['type=expand', 'type=seq,radio,checkbox,html']);
1368
+ }
1353
1369
  });
1354
1370
  if ($xeTable) {
1355
1371
  return $xeTable.loadColumn(columns);
@@ -1669,7 +1685,10 @@ export default defineVxeComponent({
1669
1685
  class: 'vxe-gantt--resizable-split-number-right'
1670
1686
  }, '20px')
1671
1687
  ])
1672
- ])
1688
+ ]),
1689
+ h('div', {
1690
+ class: 'vxe-gantt--border-line'
1691
+ })
1673
1692
  ]));
1674
1693
  break;
1675
1694
  case 'Bottom':
@@ -1713,10 +1732,7 @@ export default defineVxeComponent({
1713
1732
  ]),
1714
1733
  h('div', {
1715
1734
  class: 'vxe-gantt--layout-footer-wrapper'
1716
- }, renderChildLayout(footKeys)),
1717
- h('div', {
1718
- class: 'vxe-gantt--border-line'
1719
- })
1735
+ }, renderChildLayout(footKeys))
1720
1736
  ];
1721
1737
  };
1722
1738
  const renderVN = () => {
@@ -1797,6 +1813,12 @@ export default defineVxeComponent({
1797
1813
  if (proxyOpts.props) {
1798
1814
  warnLog('vxe.error.delProp', ['proxy-config.props', 'proxy-config.response']);
1799
1815
  }
1816
+ if (props.expandConfig) {
1817
+ warnLog('vxe.error.notProp', ['expand-config']);
1818
+ }
1819
+ if (props.aggregateConfig) {
1820
+ warnLog('vxe.error.notProp', ['aggregate-config']);
1821
+ }
1800
1822
  if (columns && columns.length) {
1801
1823
  $xeGantt.loadColumn(columns);
1802
1824
  }
@@ -7,12 +7,6 @@ export function getRefElem(refEl) {
7
7
  }
8
8
  return null;
9
9
  }
10
- export function getCellHeight(height) {
11
- if (height === 'unset') {
12
- return 0;
13
- }
14
- return height || 0;
15
- }
16
10
  export function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
17
11
  return rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
18
12
  }
@@ -15,9 +15,6 @@
15
15
  .vxe-gantt-view--chart-row.is--round > .vxe-gantt-view--chart-bar:hover::after {
16
16
  border-radius: var(--vxe-ui-gantt-view-task-bar-border-radius);
17
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
- }
21
18
 
22
19
  .vxe-gantt-view--chart-bar {
23
20
  display: flex;
@@ -30,6 +27,7 @@
30
27
  transform: translateY(-50%);
31
28
  height: var(--vxe-ui-gantt-view-chart-bar-height);
32
29
  background-color: var(--vxe-ui-gantt-view-task-bar-background-color);
30
+ overflow: hidden;
33
31
  pointer-events: all;
34
32
  }
35
33
  .vxe-gantt-view--chart-bar:hover::after {
@@ -277,6 +275,9 @@
277
275
  background-size: 100% var(--vxe-ui-table-border-width);
278
276
  background-position: right bottom;
279
277
  }
278
+ .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 {
279
+ border-top: var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color);
280
+ }
280
281
  .vxe-gantt.border--inner .vxe-gantt--border-line {
281
282
  border-width: 0 0 1px 0;
282
283
  }
@@ -555,6 +556,10 @@
555
556
  float: left;
556
557
  }
557
558
 
559
+ .vxe-gantt-view--header-table {
560
+ height: 100%;
561
+ }
562
+
558
563
  .vxe-gantt-view--header-table,
559
564
  .vxe-gantt-view--body-table {
560
565
  border: 0;
@@ -571,6 +576,11 @@
571
576
  background-color: var(--vxe-ui-table-header-background-color);
572
577
  }
573
578
 
579
+ .vxe-gantt-view--footer-wrapper {
580
+ margin-top: calc(var(--vxe-ui-table-border-width) * -1);
581
+ background-color: var(--vxe-ui-table-footer-background-color);
582
+ }
583
+
574
584
  .vxe-gantt-view--header-wrapper,
575
585
  .vxe-gantt-view--body-wrapper {
576
586
  overflow: hidden;
@@ -613,6 +623,12 @@
613
623
  .vxe-gantt-view--body-row.row--stripe {
614
624
  background-color: var(--vxe-ui-table-row-striped-background-color);
615
625
  }
626
+ .vxe-gantt-view--body-row.row--radio {
627
+ background-color: var(--vxe-ui-table-row-radio-checked-background-color);
628
+ }
629
+ .vxe-gantt-view--body-row.row--checked {
630
+ background-color: var(--vxe-ui-table-row-checkbox-checked-background-color);
631
+ }
616
632
  .vxe-gantt-view--body-row.row--current {
617
633
  background-color: var(--vxe-ui-table-row-current-background-color);
618
634
  }
@@ -622,6 +638,12 @@
622
638
  .vxe-gantt-view--body-row.row--hover.row--stripe {
623
639
  background-color: var(--vxe-ui-table-row-hover-striped-background-color);
624
640
  }
641
+ .vxe-gantt-view--body-row.row--hover.row--radio {
642
+ background-color: var(--vxe-ui-table-row-hover-radio-checked-background-color);
643
+ }
644
+ .vxe-gantt-view--body-row.row--hover.row--checked {
645
+ background-color: var(--vxe-ui-table-row-hover-checkbox-checked-background-color);
646
+ }
625
647
  .vxe-gantt-view--body-row.row--hover.row--current {
626
648
  background-color: var(--vxe-ui-table-row-hover-current-background-color);
627
649
  }
@@ -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-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);pointer-events:none}.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--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.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--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.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--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--header-wrapper{background-color:var(--vxe-ui-table-header-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: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,.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--stripe{background-color:var(--vxe-ui-table-row-striped-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--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.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-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);overflow:hidden;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);pointer-events:none}.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--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.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--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--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: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,.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--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.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)}