2023-05-20 17:30:15 +05:30
|
|
|
import { FC } from "react";
|
|
|
|
|
// components
|
|
|
|
|
import { ChartViewRoot } from "./chart";
|
|
|
|
|
// context
|
|
|
|
|
import { ChartContextProvider } from "./contexts";
|
2023-08-11 15:59:13 +05:30
|
|
|
// types
|
|
|
|
|
import { IBlockUpdateData, IGanttBlock } from "./types";
|
2023-05-20 17:30:15 +05:30
|
|
|
|
|
|
|
|
type GanttChartRootProps = {
|
2023-05-21 19:38:33 +05:30
|
|
|
border?: boolean;
|
2023-08-28 13:25:47 +05:30
|
|
|
title: string;
|
2023-05-20 17:30:15 +05:30
|
|
|
loaderTitle: string;
|
2023-08-11 15:59:13 +05:30
|
|
|
blocks: IGanttBlock[] | null;
|
|
|
|
|
blockUpdateHandler: (block: any, payload: IBlockUpdateData) => void;
|
2023-08-28 13:25:47 +05:30
|
|
|
SidebarBlockRender: FC<any>;
|
|
|
|
|
BlockRender: FC<any>;
|
|
|
|
|
enableBlockLeftResize?: boolean;
|
|
|
|
|
enableBlockRightResize?: boolean;
|
|
|
|
|
enableBlockMove?: boolean;
|
2023-08-11 15:59:13 +05:30
|
|
|
enableReorder?: boolean;
|
2023-08-28 13:25:47 +05:30
|
|
|
bottomSpacing?: boolean;
|
2023-05-20 17:30:15 +05:30
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const GanttChartRoot: FC<GanttChartRootProps> = ({
|
2023-05-21 19:27:08 +05:30
|
|
|
border = true,
|
2023-08-28 13:25:47 +05:30
|
|
|
title,
|
2023-05-20 17:30:15 +05:30
|
|
|
blocks,
|
|
|
|
|
loaderTitle = "blocks",
|
|
|
|
|
blockUpdateHandler,
|
2023-08-28 13:25:47 +05:30
|
|
|
SidebarBlockRender,
|
|
|
|
|
BlockRender,
|
|
|
|
|
enableBlockLeftResize = true,
|
|
|
|
|
enableBlockRightResize = true,
|
|
|
|
|
enableBlockMove = true,
|
2023-08-11 15:59:13 +05:30
|
|
|
enableReorder = true,
|
2023-08-28 13:25:47 +05:30
|
|
|
bottomSpacing = false,
|
2023-05-20 17:30:15 +05:30
|
|
|
}) => (
|
|
|
|
|
<ChartContextProvider>
|
|
|
|
|
<ChartViewRoot
|
2023-05-21 19:27:08 +05:30
|
|
|
border={border}
|
2023-05-20 17:30:15 +05:30
|
|
|
title={title}
|
|
|
|
|
blocks={blocks}
|
|
|
|
|
loaderTitle={loaderTitle}
|
|
|
|
|
blockUpdateHandler={blockUpdateHandler}
|
2023-08-28 13:25:47 +05:30
|
|
|
SidebarBlockRender={SidebarBlockRender}
|
|
|
|
|
BlockRender={BlockRender}
|
|
|
|
|
enableBlockLeftResize={enableBlockLeftResize}
|
|
|
|
|
enableBlockRightResize={enableBlockRightResize}
|
|
|
|
|
enableBlockMove={enableBlockMove}
|
2023-08-11 15:59:13 +05:30
|
|
|
enableReorder={enableReorder}
|
2023-08-28 13:25:47 +05:30
|
|
|
bottomSpacing={bottomSpacing}
|
2023-05-20 17:30:15 +05:30
|
|
|
/>
|
|
|
|
|
</ChartContextProvider>
|
|
|
|
|
);
|