jordium-gantt-vue3
Version:
A Vue 3 Gantt chart component for project management, task scheduling, resource planning, calendar, resource usage and timeline visualization.
78 lines (77 loc) • 3.05 kB
TypeScript
import { StyleValue } from 'vue';
import { Task } from '../../../models/classes/Task';
import { TaskListColumnConfig } from '../../../models/configs/TaskListConfig';
import { DeclarativeColumnConfig } from '../composables/taskList/useTaskListColumns';
interface TaskRowSlotProps {
isRowContent: boolean;
task: Task;
level: number;
indent: string;
isHovered: boolean;
hoveredTaskId: number | string | null;
isParent: boolean;
hasChildren: boolean;
collapsed: boolean;
formattedTimer: string;
timerRunning: boolean;
timerElapsed: number;
isOvertime: number | boolean | undefined;
overdueDays: number;
overtimeText: string;
overdueText: string;
daysText: string;
progressClass: string;
type?: string;
}
interface Props {
task: Task;
level: number;
rowIndex?: number;
isHovered?: boolean;
hoveredTaskId?: number | string | null;
onHover?: (taskId: number | string | null) => void;
columns: TaskListColumnConfig[];
declarativeColumns?: DeclarativeColumnConfig[];
renderMode?: 'default' | 'declarative';
getColumnWidthStyle?: (column: {
width?: number | string;
}) => StyleValue;
disableChildrenRender?: boolean;
showTaskIcon?: boolean;
enableDrag?: boolean;
dragStart?: (task: Task, element: HTMLElement, event: MouseEvent) => void;
dragOver?: (task: Task, element: HTMLElement, event: MouseEvent) => void;
taskListRowClassName?: string | ((row: Task, rowIndex: number) => string);
taskListRowStyle?: StyleValue | ((row: Task, rowIndex: number) => StyleValue);
}
type __VLS_Slots = {
'custom-task-content'(props: TaskRowSlotProps): unknown;
};
declare const __VLS_component: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
delete: (...args: any[]) => void;
"start-timer": (...args: any[]) => void;
"stop-timer": (...args: any[]) => void;
"add-predecessor": (...args: any[]) => void;
"add-successor": (...args: any[]) => void;
contextmenu: (...args: any[]) => void;
dblclick: (...args: any[]) => void;
toggle: (...args: any[]) => void;
}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
onDelete?: ((...args: any[]) => any) | undefined;
"onStart-timer"?: ((...args: any[]) => any) | undefined;
"onStop-timer"?: ((...args: any[]) => any) | undefined;
"onAdd-predecessor"?: ((...args: any[]) => any) | undefined;
"onAdd-successor"?: ((...args: any[]) => any) | undefined;
onContextmenu?: ((...args: any[]) => any) | undefined;
onDblclick?: ((...args: any[]) => any) | undefined;
onToggle?: ((...args: any[]) => any) | undefined;
}>, {
renderMode: "default" | "declarative";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
new (): {
$slots: S;
};
};