vxe-gantt 4.7.3 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/all.esm.js +341 -51
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/gantt/src/gantt-chart.js +5 -2
  5. package/es/gantt/src/gantt-view.js +224 -6
  6. package/es/gantt/src/gantt.js +67 -4
  7. package/es/gantt/style.css +23 -13
  8. package/es/gantt/style.min.css +1 -1
  9. package/es/style.css +1 -1
  10. package/es/style.min.css +1 -1
  11. package/es/ui/index.js +8 -1
  12. package/es/ui/src/log.js +1 -1
  13. package/es/vxe-gantt/style.css +23 -13
  14. package/es/vxe-gantt/style.min.css +1 -1
  15. package/lib/gantt/src/gantt-chart.js +8 -1
  16. package/lib/gantt/src/gantt-chart.min.js +1 -1
  17. package/lib/gantt/src/gantt-view.js +233 -8
  18. package/lib/gantt/src/gantt-view.min.js +1 -1
  19. package/lib/gantt/src/gantt.js +74 -3
  20. package/lib/gantt/src/gantt.min.js +1 -1
  21. package/lib/gantt/style/style.css +23 -13
  22. package/lib/gantt/style/style.min.css +1 -1
  23. package/lib/index.umd.js +1191 -121
  24. package/lib/index.umd.min.js +1 -1
  25. package/lib/style.css +1 -1
  26. package/lib/style.min.css +1 -1
  27. package/lib/ui/index.js +8 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/lib/vxe-gantt/style/style.css +23 -13
  32. package/lib/vxe-gantt/style/style.min.css +1 -1
  33. package/package.json +3 -3
  34. package/packages/gantt/src/gantt-chart.ts +5 -2
  35. package/packages/gantt/src/gantt-view.ts +261 -8
  36. package/packages/gantt/src/gantt.ts +70 -3
  37. package/packages/gantt/src/util.ts +1 -1
  38. package/packages/ui/index.ts +7 -0
  39. package/styles/components/gantt-module/gantt-chart.scss +12 -0
  40. package/styles/components/gantt.scss +17 -13
  41. package/styles/theme/base.scss +2 -0
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- :root{--vxe-ui-gantt-view-default-cell-width:2.6em;--vxe-ui-gantt-view-chart-bar-height:1.6em;--vxe-ui-gantt-view-split-bar-width:2px;--vxe-ui-gantt-view-split-bar-action-btn-width:1.2em;--vxe-ui-gantt-view-split-bar-action-btn-height:2.4em;--vxe-ui-gantt-view-handle-button-background-color:var(--vxe-ui-gantt-view-split-bar-background-color);--vxe-ui-gantt-view-table-default-width:30%;--vxe-ui-gantt-view-task-bar-border-radius:calc(var(--vxe-ui-gantt-view-chart-bar-height)/2);--vxe-ui-gantt-view-task-bar-background-color:var(--vxe-ui-font-primary-lighten-color);--vxe-ui-gantt-view-task-bar-completed-background-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-bar-overview-background-color:var(--vxe-ui-font-disabled-color);--vxe-ui-gantt-view-task-line-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-line-width:2px;--vxe-ui-gantt-view-task-line-arrow-width:5}[data-vxe-ui-theme=light]{--vxe-ui-gantt-view-split-bar-background-color:#e2e2e3;--vxe-ui-gantt-view-split-bar-hover-background-color:#d8d8d8}[data-vxe-ui-theme=dark]{--vxe-ui-gantt-view-split-bar-background-color:#444;--vxe-ui-gantt-view-split-bar-hover-background-color:#606060}.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover:after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover:after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover:after,.vxe-gantt-view--chart-custom-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em}.vxe-gantt-view--chart-milestone-icon,.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;position:relative;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;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:transparent;-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;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:100% 0,100% 100%}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-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{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:100% 100%}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--left.hide--left,.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;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--layout-wrapper>.vxe-gantt-view--scroll-y-virtual,.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner:before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner:before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner:before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width)*-1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column:after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line:before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ :root{--vxe-ui-gantt-view-default-cell-width:2.6em;--vxe-ui-gantt-view-chart-bar-height:1.6em;--vxe-ui-gantt-view-split-bar-width:2px;--vxe-ui-gantt-view-split-bar-action-btn-width:1.2em;--vxe-ui-gantt-view-split-bar-action-btn-height:2.4em;--vxe-ui-gantt-view-handle-button-background-color:var(--vxe-ui-gantt-view-split-bar-background-color);--vxe-ui-gantt-view-table-default-width:30%;--vxe-ui-gantt-view-task-bar-border-radius:calc(var(--vxe-ui-gantt-view-chart-bar-height)/2);--vxe-ui-gantt-view-task-bar-background-color:var(--vxe-ui-font-primary-lighten-color);--vxe-ui-gantt-view-task-bar-completed-background-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-bar-overview-background-color:var(--vxe-ui-font-disabled-color);--vxe-ui-gantt-view-bar-critical-path-line-color:var(--vxe-ui-status-error-darken-color);--vxe-ui-gantt-view-task-line-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-line-width:2px;--vxe-ui-gantt-view-task-line-arrow-width:5}[data-vxe-ui-theme=light]{--vxe-ui-gantt-view-split-bar-background-color:#e2e2e3;--vxe-ui-gantt-view-split-bar-hover-background-color:#d8d8d8}[data-vxe-ui-theme=dark]{--vxe-ui-gantt-view-split-bar-background-color:#444;--vxe-ui-gantt-view-split-bar-hover-background-color:#606060}.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover:after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover:after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover:after,.vxe-gantt-view--chart-custom-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em}.vxe-gantt-view--chart-milestone-icon,.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--xlarge{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-xlarge)}.vxe-gantt.size--large{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-large)}.vxe-gantt.size--medium{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-mini)}.vxe-gantt{position:relative;display:flex;flex-direction:column;font-size:var(--vxe-ui-gantt-current-font-size)}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;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:transparent;-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;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:100% 0,100% 100%}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-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{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:100% 100%}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--left.hide--left,.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;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--layout-wrapper>.vxe-gantt-view--scroll-y-virtual,.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner:before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner:before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner:before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width)*-1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column:after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line:before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}
@@ -1 +1 @@
1
- :root{--vxe-ui-gantt-view-default-cell-width:2.6em;--vxe-ui-gantt-view-chart-bar-height:1.6em;--vxe-ui-gantt-view-split-bar-width:2px;--vxe-ui-gantt-view-split-bar-action-btn-width:1.2em;--vxe-ui-gantt-view-split-bar-action-btn-height:2.4em;--vxe-ui-gantt-view-handle-button-background-color:var(--vxe-ui-gantt-view-split-bar-background-color);--vxe-ui-gantt-view-table-default-width:30%;--vxe-ui-gantt-view-task-bar-border-radius:calc(var(--vxe-ui-gantt-view-chart-bar-height)/2);--vxe-ui-gantt-view-task-bar-background-color:var(--vxe-ui-font-primary-lighten-color);--vxe-ui-gantt-view-task-bar-completed-background-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-bar-overview-background-color:var(--vxe-ui-font-disabled-color);--vxe-ui-gantt-view-task-line-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-line-width:2px;--vxe-ui-gantt-view-task-line-arrow-width:5}[data-vxe-ui-theme=light]{--vxe-ui-gantt-view-split-bar-background-color:#e2e2e3;--vxe-ui-gantt-view-split-bar-hover-background-color:#d8d8d8}[data-vxe-ui-theme=dark]{--vxe-ui-gantt-view-split-bar-background-color:#444;--vxe-ui-gantt-view-split-bar-hover-background-color:#606060}.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover:after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover:after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover:after,.vxe-gantt-view--chart-custom-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em}.vxe-gantt-view--chart-milestone-icon,.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;position:relative;display:flex;flex-direction:column}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;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:transparent;-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;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:100% 0,100% 100%}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-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{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:100% 100%}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--left.hide--left,.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;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--layout-wrapper>.vxe-gantt-view--scroll-y-virtual,.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner:before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner:before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner:before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width)*-1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column:after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line:before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}.vxe-gantt{font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--medium{font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{font-size:var(--vxe-ui-font-size-mini)}
1
+ :root{--vxe-ui-gantt-view-default-cell-width:2.6em;--vxe-ui-gantt-view-chart-bar-height:1.6em;--vxe-ui-gantt-view-split-bar-width:2px;--vxe-ui-gantt-view-split-bar-action-btn-width:1.2em;--vxe-ui-gantt-view-split-bar-action-btn-height:2.4em;--vxe-ui-gantt-view-handle-button-background-color:var(--vxe-ui-gantt-view-split-bar-background-color);--vxe-ui-gantt-view-table-default-width:30%;--vxe-ui-gantt-view-task-bar-border-radius:calc(var(--vxe-ui-gantt-view-chart-bar-height)/2);--vxe-ui-gantt-view-task-bar-background-color:var(--vxe-ui-font-primary-lighten-color);--vxe-ui-gantt-view-task-bar-completed-background-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-bar-overview-background-color:var(--vxe-ui-font-disabled-color);--vxe-ui-gantt-view-bar-critical-path-line-color:var(--vxe-ui-status-error-darken-color);--vxe-ui-gantt-view-task-line-color:var(--vxe-ui-font-primary-color);--vxe-ui-gantt-view-task-line-width:2px;--vxe-ui-gantt-view-task-line-arrow-width:5}[data-vxe-ui-theme=light]{--vxe-ui-gantt-view-split-bar-background-color:#e2e2e3;--vxe-ui-gantt-view-split-bar-hover-background-color:#d8d8d8}[data-vxe-ui-theme=dark]{--vxe-ui-gantt-view-split-bar-background-color:#444;--vxe-ui-gantt-view-split-bar-hover-background-color:#606060}.vxe-gantt-view--chart-task-wrapper{position:absolute;top:0;left:0;pointer-events:none}.vxe-gantt-view--chart-row,.vxe-gantt-view--chart-subview-row{position:relative;width:100%;height:0}.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--critical>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper{border:var(--vxe-ui-gantt-view-task-line-width) solid var(--vxe-ui-gantt-view-bar-critical-path-line-color)}.vxe-gantt-view--chart-row.row--pending .vxe-gantt-view--chart-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-bar:hover:after,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar .vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-row.is--round>.vxe-gantt-view--chart-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.row--pending .vxe-gantt-view--chart-subview-custom-bar{color:var(--vxe-ui-font-disabled-color);opacity:.5;text-decoration:line-through}.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-bar:hover:after,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar .vxe-gantt-view--chart-subview-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-row.is--round>.vxe-gantt-view--chart-subview-custom-bar:hover:after{border-radius:var(--vxe-ui-gantt-view-task-bar-border-radius)}.vxe-gantt-view--chart-subview-wrapper.is--overview>.vxe-gantt-view--chart-subview-row .vxe-gantt-view--chart-subview-bar{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{display:flex;flex-direction:row;position:absolute;top:50%;left:0;transform:translateY(-50%);pointer-events:all}.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-bar.is--default,.vxe-gantt-view--chart-row>.vxe-gantt-view--chart-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--subview,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--subview{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-overview-background-color)}.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-bar.is--default,.vxe-gantt-view--chart-subview-row>.vxe-gantt-view--chart-subview-custom-bar.is--default{color:#fff;background-color:var(--vxe-ui-gantt-view-task-bar-background-color)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{min-height:var(--vxe-ui-gantt-view-chart-bar-height)}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-custom-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper,.vxe-gantt-view--chart-subview-custom-bar-content-wrapper{width:100%;overflow:hidden}.vxe-gantt-view--chart-bar-content-wrapper,.vxe-gantt-view--chart-subview-bar-content-wrapper{width:100%;display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-bar,.vxe-gantt-view--chart-custom-bar,.vxe-gantt-view--chart-subview-bar,.vxe-gantt-view--chart-subview-custom-bar{align-items:center}.vxe-gantt-view--chart-bar.is--default:hover:after,.vxe-gantt-view--chart-custom-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-bar.is--default:hover:after,.vxe-gantt-view--chart-subview-custom-bar.is--default:hover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.1);pointer-events:none}.vxe-gantt-view--chart-bar.is--milestone,.vxe-gantt-view--chart-custom-bar.is--milestone,.vxe-gantt-view--chart-subview-bar.is--milestone,.vxe-gantt-view--chart-subview-custom-bar.is--milestone{white-space:nowrap}.vxe-gantt-view--chart-progress{flex-shrink:0;width:0;height:100%;text-align:left;background-color:var(--vxe-ui-gantt-view-task-bar-completed-background-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--chart-content{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9em;padding:0 .6em}.vxe-gantt-view--chart-milestone-wrapper{display:flex;flex-direction:row;align-items:center}.vxe-gantt-view--chart-milestone-icon{flex-shrink:0;padding:0 .3em}.vxe-gantt-view--chart-milestone-icon,.vxe-gantt-view--chart-milestone-icon.theme--primary{color:var(--vxe-ui-font-primary-color)}.vxe-gantt-view--chart-milestone-icon.theme--success{color:var(--vxe-ui-status-success-color)}.vxe-gantt-view--chart-milestone-icon.theme--info{color:var(--vxe-ui-status-info-color)}.vxe-gantt-view--chart-milestone-icon.theme--warning{color:var(--vxe-ui-status-warning-color)}.vxe-gantt-view--chart-milestone-icon.theme--danger{color:var(--vxe-ui-status-danger-color)}.vxe-gantt-view--chart-milestone-icon.theme--error{color:var(--vxe-ui-status-error-color)}.vxe-gantt-view--chart-milestone-icon i{display:inline-block}.vxe-gantt-view--chart-milestone-content{flex-grow:1}.vxe-gantt-view--chart-row.row--drag-move,.vxe-gantt-view--chart-subview-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--chart-row.row--drag-origin,.vxe-gantt-view--chart-subview-row.row--drag-origin{opacity:.3}.vxe-gantt{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:0px;--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-default)}.vxe-gantt.size--xlarge{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-xlarge)}.vxe-gantt.size--large{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-large)}.vxe-gantt.size--medium{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-medium)}.vxe-gantt.size--small{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-small)}.vxe-gantt.size--mini{--vxe-ui-gantt-current-font-size:var(--vxe-ui-font-size-mini)}.vxe-gantt{position:relative;display:flex;flex-direction:column;font-size:var(--vxe-ui-gantt-current-font-size)}.vxe-gantt.is--loading:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:99;-webkit-user-select:none;-moz-user-select:none;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:transparent;-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;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--left-wrapper,.vxe-gantt .vxe-gantt--right-wrapper{flex-shrink:0;overflow:auto;outline:0}.vxe-gantt .vxe-gantt--table-wrapper,.vxe-gantt .vxe-gantt--view-wrapper{position:relative;flex-grow:1;overflow:hidden}.vxe-gantt .vxe-gantt--view-split-bar-handle{background-color:var(--vxe-ui-gantt-view-split-bar-background-color)}.vxe-gantt .vxe-gantt--view-split-bar-handle:active,.vxe-gantt .vxe-gantt--view-split-bar-handle:hover{background-color:var(--vxe-ui-gantt-view-split-bar-hover-background-color)}.vxe-gantt.is--animat .vxe-gantt--table-wrapper{transition:width .3s ease-in-out}.vxe-gantt.show--animat.hide--right .vxe-gantt--table-wrapper{width:calc(100% - var(--vxe-ui-gantt-view-split-bar-width))!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.hide--left>.vxe-gantt--table-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right>.vxe-gantt--table-wrapper{flex-grow:unset;flex-shrink:0;width:var(--vxe-ui-gantt-view-table-default-width)}.vxe-gantt--gantt-container.hide--right>.vxe-gantt--view-wrapper{width:0!important;flex-shrink:0;flex-grow:unset}.vxe-gantt--gantt-container.show--left.show--right .vxe-gantt--view-split-bar{width:var(--vxe-ui-gantt-view-split-bar-width)}.vxe-gantt--view-split-bar{width:0;flex-shrink:0}.vxe-gantt--view-split-bar.is--resize{cursor:col-resize}.vxe-gantt--layout-body-wrapper{display:flex;flex-direction:row;overflow:auto;flex-grow:1}.vxe-gantt--layout-body-content-wrapper{display:flex;flex-direction:column;flex-grow:1;overflow:hidden}.vxe-gantt--layout-aside-left-wrapper,.vxe-gantt--layout-footer-wrapper,.vxe-gantt--layout-header-wrapper{flex-shrink:0;overflow:auto}.vxe-gantt--border-line{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--full .vxe-gantt-view--body-column,.vxe-gantt.border--full .vxe-gantt-view--footer-column,.vxe-gantt.border--full .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color)),linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:var(--vxe-ui-table-border-width) 100%,100% var(--vxe-ui-table-border-width);background-position:100% 0,100% 100%}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:0;border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-top-corner:before{border-bottom-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--inner .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt.border--outer .vxe-gantt-view--scroll-y-bottom-corner{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer .vxe-gantt-view--scroll-x-handle-appearance{position:absolute;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--top .vxe-gantt-view--scroll-x-handle-appearance{top:0;border-bottom:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--full.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--inner.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance,.vxe-gantt.border--outer.sx-pos--bottom .vxe-gantt-view--scroll-x-handle-appearance{bottom:0;height:calc(100% + var(--vxe-ui-table-border-width));border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-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{border-left-width:var(--vxe-ui-table-border-width);border-right-width:var(--vxe-ui-table-border-width)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-bottom-corner:before,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-top-corner:before{width:calc(100% + 1px);left:-1px}.vxe-gantt.border--default .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full .vxe-gantt-view--scroll-y-handle-appearance{position:absolute;top:0;width:100%;height:100%;z-index:1;pointer-events:none}.vxe-gantt.border--default.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--left .vxe-gantt-view--scroll-y-handle-appearance{left:0;border-right:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance,.vxe-gantt.border--full.sy-pos--right .vxe-gantt-view--scroll-y-handle-appearance{right:0;width:calc(100% + var(--vxe-ui-table-border-width));border-left:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--default .vxe-gantt-view--body-column,.vxe-gantt.border--default .vxe-gantt-view--footer-column,.vxe-gantt.border--default .vxe-gantt-view--header-column,.vxe-gantt.border--inner .vxe-gantt-view--body-column,.vxe-gantt.border--inner .vxe-gantt-view--footer-column,.vxe-gantt.border--inner .vxe-gantt-view--header-column{background-image:linear-gradient(var(--vxe-ui-table-border-color),var(--vxe-ui-table-border-color));background-repeat:no-repeat;background-size:100% var(--vxe-ui-table-border-width);background-position:100% 100%}.vxe-gantt.border--default .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--full .vxe-gantt-view--footer-wrapper,.vxe-gantt.border--inner .vxe-gantt-view--footer-wrapper{border-top:var(--vxe-ui-table-border-width) solid var(--vxe-ui-table-border-color)}.vxe-gantt.border--inner .vxe-gantt--border-line{border-width:0 0 1px 0}.vxe-gantt.border--none .vxe-gantt--border-line{display:none}.vxe-gantt--gantt-container.is--ah-split-btn>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:0}.vxe-gantt--gantt-container.is--ah-split-btn:hover>.vxe-gantt--view-split-bar .vxe-gantt--view-split-bar-action-btn{opacity:1}.vxe-gantt--view-split-bar{position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt--view-split-bar-handle{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3}.vxe-gantt--view-split-bar-btn-wrapper{position:absolute;width:100%;top:50%;transform:translateY(-50%);z-index:5;pointer-events:none}.vxe-gantt--view-split-bar-action-btn{position:absolute;display:flex;flex-direction:row;align-items:center;justify-content:center;height:var(--vxe-ui-gantt-view-split-bar-action-btn-height);width:var(--vxe-ui-gantt-view-split-bar-action-btn-width);border-radius:var(--vxe-ui-base-border-radius);background-color:var(--vxe-ui-gantt-view-handle-button-background-color);border:1px solid var(--vxe-ui-input-border-color);pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .1s ease-in-out}.vxe-gantt--view-split-bar-action-btn:hover{color:#fff;background-color:var(--vxe-ui-font-primary-color)}.vxe-gantt--view-split-bar-action-btn:active{transform:scale(.9)}.vxe-gantt--view-split-bar-action-btn.is--prev{left:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn.is--next{right:calc(var(--vxe-ui-gantt-view-split-bar-action-btn-width)*-1 - var(--vxe-ui-gantt-current-split-bar-action-btn-offset-left) - .2em)}.vxe-gantt--view-split-bar-action-btn i{font-size:.5em}.vxe-gantt--gantt-container.sy-pos--left.hide--left,.vxe-gantt--gantt-container.sy-pos--right.hide--right{--vxe-ui-gantt-current-split-bar-action-btn-offset-left:var(--vxe-ui-gantt-scrollbar-width)}.vxe-gantt--resizable-split-tip{display:none;position:absolute;top:0;left:0;width:1px;height:100%;z-index:7;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;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--layout-wrapper>.vxe-gantt-view--scroll-y-virtual,.vxe-gantt.is--loading>.vxe-gantt-view--scroll-x-virtual{visibility:hidden}.vxe-gantt .vxe-gantt-view--scroll-x-virtual{height:0}.vxe-gantt .vxe-gantt-view--scroll-y-virtual{width:0}.vxe-gantt .vxe-gantt-view--scroll-x-virtual,.vxe-gantt .vxe-gantt-view--scroll-y-virtual{visibility:hidden;position:relative;flex-shrink:0;z-index:7}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-handle,.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{width:100%;left:0;bottom:0}.vxe-gantt .vxe-gantt-view--scroll-x-handle{overflow-y:hidden;overflow-x:scroll;height:18px}.vxe-gantt .vxe-gantt-view--scroll-x-wrapper{height:100%}.vxe-gantt .vxe-gantt-view--scroll-y-handle,.vxe-gantt .vxe-gantt-view--scroll-y-wrapper{width:100%;height:100%;right:0;top:0}.vxe-gantt .vxe-gantt-view--scroll-y-handle{overflow-y:scroll;overflow-x:hidden;width:18px;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-space{height:1px}.vxe-gantt .vxe-gantt-view--scroll-y-space{width:1px}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner,.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{display:none;position:absolute}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{bottom:0;width:0;height:100%}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner:before,.vxe-gantt .vxe-gantt-view--scroll-x-right-corner:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;border-width:var(--vxe-ui-table-border-width);border-style:solid;border-color:var(--vxe-ui-table-border-color)}.vxe-gantt .vxe-gantt-view--scroll-x-left-corner{left:0}.vxe-gantt .vxe-gantt-view--scroll-x-right-corner{right:0}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner{right:1px}.vxe-gantt.sy-pos--right .vxe-gantt-view--scroll-x-right-corner:before{border-right:0}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner{bottom:1px}.vxe-gantt.sx-pos--bottom .vxe-gantt-view--scroll-x-right-corner:before{border-bottom:0}.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner,.vxe-gantt .vxe-gantt-view--scroll-y-top-corner{top:0;right:0;width:100%;height:0}.vxe-gantt .vxe-gantt-view--scroll-y-bottom-corner{margin-top:-1px}.vxe-gantt-view--layout-wrapper{display:flex;flex-direction:row;background-color:var(--vxe-ui-layout-background-color)}.vxe-gantt-view--viewport-wrapper{position:relative;overflow:hidden;flex-grow:1}.vxe-gantt-view--render-vars{width:0;height:0;overflow:hidden}.vxe-gantt-view--column-info{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view{flex-grow:1;overflow:hidden}.vxe-gantt-view .vxe-body--x-space{width:100%;height:1px;margin-bottom:-1px}.vxe-gantt-view .vxe-body--y-space{width:0;float:left}.vxe-gantt-view--body-table,.vxe-gantt-view--header-table{border:0;border-spacing:0;border-collapse:separate;table-layout:fixed}.vxe-gantt-view--body-table col,.vxe-gantt-view--header-table col{width:var(--vxe-ui-gantt-view-default-cell-width)}.vxe-gantt-view--body-table{-webkit-user-select:none;-moz-user-select:none;user-select:none}.vxe-gantt-view--header-wrapper{background-color:var(--vxe-ui-table-header-background-color)}.vxe-gantt-view--footer-wrapper{margin-top:calc(var(--vxe-ui-table-border-width)*-1);background-color:var(--vxe-ui-table-footer-background-color)}.vxe-gantt-view--body-wrapper,.vxe-gantt-view--header-wrapper{overflow:hidden}.vxe-gantt-view--header-inner-wrapper{overflow-y:hidden;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper{overflow-y:scroll;overflow-x:scroll}.vxe-gantt-view--body-inner-wrapper,.vxe-gantt-view--header-inner-wrapper{position:relative;width:100%;height:100%;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.vxe-gantt-view--body-inner-wrapper::-webkit-scrollbar,.vxe-gantt-view--header-inner-wrapper::-webkit-scrollbar{display:none}.vxe-gantt-view--header-column{text-align:center;font-size:1em;height:var(--vxe-ui-gantt-view-cell-height,var(--vxe-ui-table-row-line-height))}.vxe-gantt-view--header-column.is--now{color:var(--vxe-ui-gantt-view-task-now-line-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-column,.vxe-gantt-view--footer-column,.vxe-gantt-view--header-column{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vxe-gantt-view--body-row.row--pending>.vxe-gantt-view--body-column:after{content:"";position:absolute;top:50%;left:0;width:100%;height:0;border-bottom:1px solid var(--vxe-ui-table-validate-error-color);z-index:1}.vxe-gantt-view--chart-now-line{position:absolute;left:0;top:0;height:100%}.vxe-gantt-view--chart-now-line:before{content:"";display:block;width:var(--vxe-ui-gantt-view-task-now-line-width,1px);height:100%;background-color:var(--vxe-ui-gantt-view-task-now-line-background-color,var(--vxe-ui-font-primary-color))}.vxe-gantt-view--body-row.row--stripe{background-color:var(--vxe-ui-table-row-striped-background-color)}.vxe-gantt-view--body-row.row--radio{background-color:var(--vxe-ui-table-row-radio-checked-background-color)}.vxe-gantt-view--body-row.row--checked{background-color:var(--vxe-ui-table-row-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--current{background-color:var(--vxe-ui-table-row-current-background-color)}.vxe-gantt-view--body-row.row--hover{background-color:var(--vxe-ui-table-row-hover-background-color)}.vxe-gantt-view--body-row.row--hover.row--stripe{background-color:var(--vxe-ui-table-row-hover-striped-background-color)}.vxe-gantt-view--body-row.row--hover.row--radio{background-color:var(--vxe-ui-table-row-hover-radio-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--checked{background-color:var(--vxe-ui-table-row-hover-checkbox-checked-background-color)}.vxe-gantt-view--body-row.row--hover.row--current{background-color:var(--vxe-ui-table-row-hover-current-background-color)}.vxe-gantt-view--body-row.row--drag-move{transition:transform .5s ease}.vxe-gantt-view--body-row.row--drag-origin>.vxe-gantt-view--body-column{opacity:.3}.vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{position:absolute;left:0;bottom:-.4em;height:.8em;width:100%;text-align:center;z-index:1;cursor:row-resize}.vxe-gantt-view--body-row:last-child .vxe-gantt-view--body-column .vxe-gantt-view-cell--row-resizable{height:.4em;bottom:0}
@@ -37,7 +37,8 @@ export default defineVxeComponent({
37
37
  const taskBarSlot = ganttSlots.taskBar || ganttSlots['task-bar'];
38
38
  const taskBarOverviewSlot = ganttSlots.taskBarOverview || ganttSlots['task-bar-overview'];
39
39
  const { treeConfig, taskBarMilestoneConfig, taskBarSubviewConfig } = ganttProps;
40
- const { activeLink, activeBarRowid } = ganttReactData;
40
+ const { activeLink, activeBarRowid, criticalPathFlag } = ganttReactData;
41
+ const { criticalRowMaps } = ganttInternalData;
41
42
  const titleField = computeTitleField.value;
42
43
  const progressField = computeProgressField.value;
43
44
  const typeField = computeTypeField.value;
@@ -56,7 +57,7 @@ export default defineVxeComponent({
56
57
  rowIndex,
57
58
  _rowIndex
58
59
  };
59
- const { showProgress, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
60
+ const { showProgress, showCriticalPath, showContent, contentMethod, barStyle, moveable, showTooltip } = taskBarOpts;
60
61
  const isBarRowStyle = XEUtils.isFunction(barStyle);
61
62
  const barStyObj = (barStyle ? (isBarRowStyle ? barStyle(barParams) || undefined : barStyle) : {}) || {};
62
63
  const barRound = barStyObj.round;
@@ -215,6 +216,7 @@ export default defineVxeComponent({
215
216
  rowid: childRowid,
216
217
  class: ['vxe-gantt-view--chart-subview-row', `is--${childRenderTaskType}`, {
217
218
  'is--progress': showProgress,
219
+ 'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(childRowid),
218
220
  'is--round': childRound,
219
221
  'is--move': moveable,
220
222
  'row--pending': !!pendingRowFlag && !!pendingRowMaps[childRowid]
@@ -308,6 +310,7 @@ export default defineVxeComponent({
308
310
  rowid,
309
311
  class: ['vxe-gantt-view--chart-row', `is--${renderTaskType}`, {
310
312
  'is--progress': showProgress,
313
+ 'is--critical': showCriticalPath && criticalPathFlag && criticalRowMaps.has(rowid),
311
314
  'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid],
312
315
  'is--round': barRound,
313
316
  'is--move': moveable
@@ -3,16 +3,21 @@ import { defineVxeComponent } from '../../ui/src/comp';
3
3
  import { setScrollTop, setScrollLeft, removeClass, addClass, hasClass } from '../../ui/src/dom';
4
4
  import { VxeUI } from '@vxe-ui/core';
5
5
  import { getRefElem, getTaskBarLeft, getTaskBarWidth, hasMilestoneTask, getTaskType, hasSubviewTask } from './util';
6
+ import { VxeGanttDependencyType } from './static';
6
7
  import XEUtils from 'xe-utils';
7
8
  import GanttViewHeaderComponent from './gantt-header';
8
9
  import GanttViewBodyComponent from './gantt-body';
9
10
  import GanttViewFooterComponent from './gantt-footer';
10
11
  const { globalEvents } = VxeUI;
12
+ const { FinishToStart, StartToFinish, StartToStart, FinishToFinish } = VxeGanttDependencyType;
11
13
  const sourceType = 'gantt';
12
14
  const secondMs = 1000;
13
15
  const minuteMs = 1000 * 60;
14
16
  const hourMs = 1000 * 60 * 60;
15
17
  const dayMs = hourMs * 24;
18
+ function getTaskLinkKey(from, to, type) {
19
+ return from + '_' + to + '_' + (type || 0);
20
+ }
16
21
  function createInternalData() {
17
22
  return {
18
23
  xeTable: null,
@@ -76,8 +81,10 @@ export default defineVxeComponent({
76
81
  setup(props, context) {
77
82
  const xID = XEUtils.uniqueId();
78
83
  const $xeGantt = inject('$xeGantt', {});
79
- const { reactData: ganttReactData, internalData: ganttInternalData } = $xeGantt;
80
- const { computeDateFormat, computeTaskViewOpts, computeStartField, computeEndField, computeTypeField, computeScrollbarOpts, computeScrollbarXToTop, computeScrollbarYToLeft, computeScaleUnit, computeWeekScale, computeMinScale, computeTaskNowLineOpts, computeScaleStep } = $xeGantt.getComputeMaps();
84
+ const ganttProps = $xeGantt.props;
85
+ const ganttReactData = $xeGantt.reactData;
86
+ const ganttInternalData = $xeGantt.internalData;
87
+ const { computeDateFormat, computeTaskBarOpts, computeTaskViewOpts, computeStartField, computeEndField, computeTypeField, computeScrollbarOpts, computeScrollbarXToTop, computeScrollbarYToLeft, computeScaleUnit, computeWeekScale, computeMinScale, computeTaskNowLineOpts, computeScaleStep } = $xeGantt.getComputeMaps();
81
88
  const refElem = ref();
82
89
  const refScrollXVirtualElem = ref();
83
90
  const refScrollYVirtualElem = ref();
@@ -202,7 +209,6 @@ export default defineVxeComponent({
202
209
  return dateList;
203
210
  });
204
211
  const computeNowLineLeft = computed(() => {
205
- const ganttReactData = $xeGantt.reactData;
206
212
  const { minViewDate, maxViewDate, viewCellWidth } = reactData;
207
213
  const { visibleColumn, todayDateMaps } = internalData;
208
214
  const minScale = computeMinScale.value;
@@ -263,7 +269,6 @@ export default defineVxeComponent({
263
269
  return XEUtils.toStringDate(dateValue, dateFormat);
264
270
  };
265
271
  const updateTodayData = () => {
266
- const ganttReactData = $xeGantt.reactData;
267
272
  const { taskScaleList } = ganttReactData;
268
273
  const minScale = computeMinScale.value;
269
274
  if (minScale) {
@@ -295,7 +300,6 @@ export default defineVxeComponent({
295
300
  }
296
301
  };
297
302
  const handleColumnHeader = () => {
298
- const ganttReactData = $xeGantt.reactData;
299
303
  const { taskScaleList } = ganttReactData;
300
304
  const scaleUnit = computeScaleUnit.value;
301
305
  const minScale = computeMinScale.value;
@@ -970,7 +974,7 @@ export default defineVxeComponent({
970
974
  handleTableColumn();
971
975
  };
972
976
  const handleUpdateData = () => {
973
- const ganttProps = $xeGantt.props;
977
+ const { linkList } = ganttReactData;
974
978
  const { treeConfig } = ganttProps;
975
979
  const { scrollXStore } = internalData;
976
980
  const $xeTable = internalData.xeTable;
@@ -978,6 +982,7 @@ export default defineVxeComponent({
978
982
  const edMaps = {};
979
983
  let minDate = null;
980
984
  let maxDate = null;
985
+ const allList = [];
981
986
  if ($xeTable) {
982
987
  const startField = computeStartField.value;
983
988
  const endField = computeEndField.value;
@@ -1014,6 +1019,7 @@ export default defineVxeComponent({
1014
1019
  maxDate = endDate;
1015
1020
  }
1016
1021
  }
1022
+ allList.push(row);
1017
1023
  };
1018
1024
  if (isRowGroupStatus) {
1019
1025
  // 行分组
@@ -1037,7 +1043,219 @@ export default defineVxeComponent({
1037
1043
  internalData.startMaps = sdMaps;
1038
1044
  internalData.endMaps = edMaps;
1039
1045
  handleParseColumn();
1046
+ handleCriticalPath(allList, linkList);
1040
1047
  };
1048
+ /**
1049
+ * 正向:后置 ES 的下连接线
1050
+ */
1051
+ function forwardCriticalPathLowerBound(linkType, predES, predEF, duration) {
1052
+ switch (linkType) {
1053
+ case FinishToStart:
1054
+ return predEF;
1055
+ case StartToFinish:
1056
+ return predES - duration;
1057
+ case StartToStart:
1058
+ return predES;
1059
+ case FinishToFinish:
1060
+ return predEF - duration;
1061
+ default:
1062
+ return 0;
1063
+ }
1064
+ }
1065
+ /**
1066
+ * 反向:前置 LF 的上连接线
1067
+ */
1068
+ function backwardCriticalPathUpperBound(linkType, succLS, succLF, duration) {
1069
+ switch (linkType) {
1070
+ case FinishToStart:
1071
+ return succLS;
1072
+ case StartToFinish:
1073
+ return succLF + duration;
1074
+ case StartToStart:
1075
+ return succLS + duration;
1076
+ case FinishToFinish:
1077
+ return succLF;
1078
+ default:
1079
+ return -1;
1080
+ }
1081
+ }
1082
+ /**
1083
+ * 关键边:两端都关键时,约束是否连接
1084
+ */
1085
+ function isCriticalPathLinkTight(linkType, fromES, fromEF, toES, toEF, tolerance) {
1086
+ switch (linkType) {
1087
+ case FinishToStart:
1088
+ return Math.abs(fromEF - toES) < tolerance;
1089
+ case StartToFinish:
1090
+ return Math.abs(fromES - toEF) < tolerance;
1091
+ case StartToStart:
1092
+ return Math.abs(fromES - toES) < tolerance;
1093
+ case FinishToFinish:
1094
+ return Math.abs(fromEF - toEF) < tolerance;
1095
+ default:
1096
+ return false;
1097
+ }
1098
+ }
1099
+ function handleCriticalPath(data, links) {
1100
+ const taskBarOpts = computeTaskBarOpts.value;
1101
+ const $xeTable = internalData.xeTable;
1102
+ const criticalRowList = [];
1103
+ const criticalRowMaps = new Map();
1104
+ const criticalLinkKeyMaps = new Map();
1105
+ ganttInternalData.criticalRowList = criticalRowList;
1106
+ ganttInternalData.criticalRowMaps = criticalRowMaps;
1107
+ ganttInternalData.criticalLinkKeyMaps = criticalLinkKeyMaps;
1108
+ if (!taskBarOpts.showCriticalPath || !links.length || !data.length || !$xeTable) {
1109
+ if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
1110
+ ganttReactData.criticalPathFlag++;
1111
+ }
1112
+ ganttReactData.criticalLinks = [];
1113
+ ganttReactData.criticalRowIds = [];
1114
+ return;
1115
+ }
1116
+ const { chartMaps } = internalData;
1117
+ const tolerance = 1e-6;
1118
+ const nodeMap = new Map();
1119
+ for (const row of data) {
1120
+ const rowid = $xeTable.getRowid(row);
1121
+ const chartRest = chartMaps[rowid];
1122
+ nodeMap.set(rowid, {
1123
+ row,
1124
+ rowid: rowid,
1125
+ duration: chartRest ? chartRest.oWidthSize : 0,
1126
+ incoming: [],
1127
+ outgoing: [],
1128
+ indeg: 0,
1129
+ ES: 0,
1130
+ EF: 0,
1131
+ LS: 0,
1132
+ LF: 0
1133
+ });
1134
+ }
1135
+ // 边界
1136
+ const linkList = [];
1137
+ for (const link of links) {
1138
+ const fromKey = '' + link.from;
1139
+ const toKey = '' + link.to;
1140
+ if (!nodeMap.has(fromKey) || !nodeMap.has(toKey) || fromKey === toKey) {
1141
+ continue;
1142
+ }
1143
+ const lkItemitem = {
1144
+ from: link.from,
1145
+ to: link.to,
1146
+ type: XEUtils.toNumber(link.type) || 0,
1147
+ raw: link
1148
+ };
1149
+ linkList.push(lkItemitem);
1150
+ const toObjItem = nodeMap.get('' + link.to);
1151
+ const fromObjItem = nodeMap.get('' + link.from);
1152
+ if (fromObjItem) {
1153
+ fromObjItem.outgoing.push(lkItemitem);
1154
+ }
1155
+ if (toObjItem) {
1156
+ toObjItem.incoming.push(lkItemitem);
1157
+ toObjItem.indeg++;
1158
+ }
1159
+ }
1160
+ // 拓扑排序 + 环检测
1161
+ const queueList = [];
1162
+ nodeMap.forEach(nodeitem => {
1163
+ if (nodeitem.indeg === 0) {
1164
+ queueList.push(nodeitem);
1165
+ }
1166
+ });
1167
+ const orderList = [];
1168
+ for (let head = 0; head < queueList.length; head++) {
1169
+ const node = queueList[head];
1170
+ orderList.push(node);
1171
+ for (const lkItemitem of node.outgoing) {
1172
+ const toObjItem = nodeMap.get('' + lkItemitem.to);
1173
+ if (toObjItem) {
1174
+ const nextDeg = toObjItem.indeg - 1;
1175
+ toObjItem.indeg = nextDeg;
1176
+ if (nextDeg === 0) {
1177
+ queueList.push(nodeMap.get('' + lkItemitem.to));
1178
+ }
1179
+ }
1180
+ }
1181
+ }
1182
+ if (orderList.length !== nodeMap.size) {
1183
+ // 异常数据,依赖图中存在环
1184
+ if (ganttReactData.criticalRowIds.length || ganttReactData.criticalLinks.length) {
1185
+ ganttReactData.criticalPathFlag++;
1186
+ }
1187
+ ganttReactData.criticalLinks = [];
1188
+ ganttReactData.criticalRowIds = [];
1189
+ return;
1190
+ }
1191
+ // 正向:ES / EF
1192
+ let criticalDuration = 0;
1193
+ for (const node of orderList) {
1194
+ let earliestStart = 0;
1195
+ for (const lkItem of node.incoming) {
1196
+ const fromObjItem = nodeMap.get('' + lkItem.from);
1197
+ if (fromObjItem) {
1198
+ const need = forwardCriticalPathLowerBound(lkItem.type, fromObjItem.ES, fromObjItem.EF, node.duration);
1199
+ if (need > earliestStart) {
1200
+ earliestStart = need;
1201
+ }
1202
+ }
1203
+ }
1204
+ node.ES = earliestStart;
1205
+ node.EF = earliestStart + node.duration;
1206
+ if (node.EF > criticalDuration) {
1207
+ criticalDuration = node.EF;
1208
+ }
1209
+ }
1210
+ // 反向:LS / LF
1211
+ for (let i = orderList.length - 1; i >= 0; i--) {
1212
+ const node = orderList[i];
1213
+ let latestFinish = criticalDuration;
1214
+ for (const lkItem of node.outgoing) {
1215
+ const toObjItem = nodeMap.get('' + lkItem.to);
1216
+ if (toObjItem) {
1217
+ const need = backwardCriticalPathUpperBound(lkItem.type, toObjItem.LS, toObjItem.LF, node.duration);
1218
+ if (need < latestFinish) {
1219
+ latestFinish = need;
1220
+ }
1221
+ }
1222
+ }
1223
+ node.LF = latestFinish;
1224
+ node.LS = latestFinish - node.duration;
1225
+ }
1226
+ // 关键任务
1227
+ const criticalSet = new Set();
1228
+ const criticalRowIds = [];
1229
+ for (const nodeItem of orderList) {
1230
+ if (Math.abs(nodeItem.LS - nodeItem.ES) < tolerance) {
1231
+ criticalSet.add(nodeItem.rowid);
1232
+ criticalRowIds.push(nodeItem.rowid);
1233
+ criticalRowList.push(nodeItem.row);
1234
+ criticalRowMaps.set(nodeItem.rowid, nodeItem.row);
1235
+ }
1236
+ }
1237
+ // 关键连接线
1238
+ const criticalLinks = [];
1239
+ for (const lkItem of linkList) {
1240
+ const toObjItem = nodeMap.get('' + lkItem.to);
1241
+ const fromObjItem = nodeMap.get('' + lkItem.from);
1242
+ if (!toObjItem || !fromObjItem) {
1243
+ continue;
1244
+ }
1245
+ // 两端必须都是关键任务
1246
+ if (!criticalSet.has(fromObjItem.rowid) || !criticalSet.has(toObjItem.rowid)) {
1247
+ continue;
1248
+ }
1249
+ // 约束必须是连接的
1250
+ if (isCriticalPathLinkTight(lkItem.type, fromObjItem.ES, fromObjItem.EF, toObjItem.ES, toObjItem.EF, tolerance)) {
1251
+ criticalLinks.push(lkItem.raw);
1252
+ criticalLinkKeyMaps.set(getTaskLinkKey(lkItem.from, lkItem.to, lkItem.type), lkItem.raw);
1253
+ }
1254
+ }
1255
+ ganttReactData.criticalLinks = criticalLinks;
1256
+ ganttReactData.criticalRowIds = criticalRowIds;
1257
+ ganttReactData.criticalPathFlag++;
1258
+ }
1041
1259
  const calcScrollbar = () => {
1042
1260
  const { scrollXWidth, scrollYHeight } = reactData;
1043
1261
  const { elemStore } = internalData;