Skip to content

Limitations And MSP Differences

Source code
src/components/gantt/GanttBasic.ts
import { defineCustomElements } from '@revolist/revogrid/loader';
defineCustomElements();
import { GanttPlugin, createDefaultTaskTableColumn } from '@revolist/gantt';
import { currentTheme } from '../composables/useRandomData';
import {
calendars,
dependencies,
ganttConfig,
initiallyHiddenColumnProps,
tasks,
taskTableColumnProps,
} from './gantt-basic-data';
import './gantt-basic.css';
const { isDark } = currentTheme();
const columns = taskTableColumnProps.map((prop) =>
createDefaultTaskTableColumn(prop),
);
export function load(parentSelector: string) {
const parent = document.querySelector(parentSelector);
if (!parent) {
return () => {};
}
const root = document.createElement('section');
const grid = document.createElement('revo-grid');
root.className = 'gantt-basic-demo';
grid.className = 'gantt-basic-grid';
grid.theme = isDark() ? 'darkCompact' : 'compact';
grid.hideAttribution = true;
grid.canMoveColumns = true;
grid.plugins = [GanttPlugin];
grid.gantt = ganttConfig;
grid.ganttCalendars = calendars;
grid.ganttDependencies = dependencies;
grid.columns = columns;
grid.hideColumns = [...initiallyHiddenColumnProps];
root.appendChild(grid);
parent.appendChild(root);
grid.source = tasks.map((task) => ({ ...task }));
return () => root.remove();
}

Implemented behavior is MSP-inspired, not full MSP parity.

Current boundaries:

  • Remote Gantt pages direct children and leaves edit permissions and server persistence to the application. Built-in remote writes, date-window paging, baselines, resource planning and complete-project export are not supported in that mode.
  • Auto-leveling is forward-schedule oriented; backward mode stays warning-only.
  • Leveling is delay-based and does not auto-insert new split ranges.
  • Constraint and validation coverage is deterministic but narrower than full MSP option matrix.
  • Docs describe current code behavior in packages/gantt/src/gantt, not aspirational features.