import React from "react";
import { Gantt as KendoGantt } from "@progress/kendo-react-gantt";
import { GanttProps } from "./GanttProps";

const Gantt: React.FC<GanttProps> = ({
  dataTestId,
  children,
  className,
  columnMenu,
  columnMenuFilter,
  columns,
  defaultView,
  dependencyData,
  dependencyModelFields,
  filter,
  navigatable,
  noRecords,
  reorderable,
  resizable,
  row,
  rowHeight,
  selectable,
  sort,
  sortable,
  style,
  taskData,
  taskModelFields,
  timezone,
  toolbar,
  view,
  onAddClick,
  onColumnMenuFilterChange,
  onColumnReorder,
  onColumnResize,
  onDataStateChange,
  onDependencyCreate,
  onExpandChange,
  onFilterChange,
  onHeaderSelectionChange,
  onKeyDown,
  onRowClick,
  onRowContextMenu,
  onRowDoubleClick,
  onSelectionChange,
  onSortChange,
  onTaskClick,
  onTaskContextMenu,
  onTaskDoubleClick,
  onTaskRemoveClick,
  onViewChange,
}) => {
  return (
    <div data-test-id={dataTestId}>
      <KendoGantt
        className={className}
        columnMenu={columnMenu}
        columnMenuFilter={columnMenuFilter}
        columns={columns}
        defaultView={defaultView}
        dependencyData={dependencyData}
        dependencyModelFields={dependencyModelFields}
        filter={filter}
        navigatable={navigatable}
        noRecords={noRecords}
        reorderable={reorderable}
        resizable={resizable}
        row={row}
        rowHeight={rowHeight}
        selectable={selectable}
        sort={sort}
        sortable={sortable}
        style={style}
        taskData={taskData}
        taskModelFields={taskModelFields}
        timezone={timezone}
        toolbar={toolbar}
        view={view}
        onAddClick={onAddClick}
        onColumnMenuFilterChange={onColumnMenuFilterChange}
        onColumnReorder={onColumnReorder}
        onColumnResize={onColumnResize}
        onDataStateChange={onDataStateChange}
        onDependencyCreate={onDependencyCreate}
        onExpandChange={onExpandChange}
        onFilterChange={onFilterChange}
        onHeaderSelectionChange={onHeaderSelectionChange}
        onKeyDown={onKeyDown}
        onRowClick={onRowClick}
        onRowContextMenu={onRowContextMenu}
        onRowDoubleClick={onRowDoubleClick}
        onSelectionChange={onSelectionChange}
        onSortChange={onSortChange}
        onTaskClick={onTaskClick}
        onTaskContextMenu={onTaskContextMenu}
        onTaskDoubleClick={onTaskDoubleClick}
        onTaskRemoveClick={onTaskRemoveClick}
        onViewChange={onViewChange}
      >
        {children}
      </KendoGantt>
    </div>
  );
};

export default Gantt;
