import React from "react";
import { TreeListProps } from "./TreeListProps";
import { TreeList as KendoTreeList } from "@progress/kendo-react-treelist";

const TreeList: React.FC<TreeListProps> = ({
  dataTestId,
  className,
  columnMenu,
  columnMenuFilter,
  columns,
  columnVirtualization,
  data,
  dataItemKey,
  editField,
  editRow,
  expandField,
  filter,
  filterRow,
  navigatable,
  noRecords,
  pager,
  reorderable,
  resizable,
  row,
  rowDraggable,
  rowHeight,
  scrollable,
  selectable,
  selectedField,
  skip,
  sort,
  sortable,
  style,
  subItemsField,
  tableProps,
  take,
  toolbar,
  cellRender,
  headerCellRender,
  onColumnMenuFilterChange,
  onColumnReorder,
  onColumnResize,
  onDataStateChange,
  onExpandChange,
  onFilterChange,
  onHeaderSelectionChange,
  onItemChange,
  onKeyDown,
  onPageChange,
  onRowClick,
  onRowContextMenu,
  onRowDoubleClick,
  onRowDrag,
  onRowDrop,
  onSelectionChange,
  onSortChange,
  rowRender,
}) => (
  <div data-test-id={dataTestId}>
    <KendoTreeList
      className={className}
      columnMenu={columnMenu}
      columnMenuFilter={columnMenuFilter}
      columns={columns}
      columnVirtualization={columnVirtualization}
      data={data}
      dataItemKey={dataItemKey}
      editField={editField}
      editRow={editRow}
      expandField={expandField}
      filter={filter}
      filterRow={filterRow}
      navigatable={navigatable}
      noRecords={noRecords}
      pager={pager}
      reorderable={reorderable}
      resizable={resizable}
      row={row}
      rowDraggable={rowDraggable}
      rowHeight={rowHeight}
      scrollable={scrollable}
      selectable={selectable}
      selectedField={selectedField}
      skip={skip}
      sort={sort}
      sortable={sortable}
      style={style}
      subItemsField={subItemsField}
      tableProps={tableProps}
      take={take}
      toolbar={toolbar}
      cellRender={cellRender}
      headerCellRender={headerCellRender}
      onColumnMenuFilterChange={onColumnMenuFilterChange}
      onColumnReorder={onColumnReorder}
      onColumnResize={onColumnResize}
      onDataStateChange={onDataStateChange}
      onExpandChange={onExpandChange}
      onFilterChange={onFilterChange}
      onHeaderSelectionChange={onHeaderSelectionChange}
      onItemChange={onItemChange}
      onKeyDown={onKeyDown}
      onPageChange={onPageChange}
      onRowClick={onRowClick}
      onRowContextMenu={onRowContextMenu}
      onRowDoubleClick={onRowDoubleClick}
      onRowDrag={onRowDrag}
      onRowDrop={onRowDrop}
      onSelectionChange={onSelectionChange}
      onSortChange={onSortChange}
      rowRender={rowRender}
    />
  </div>
);
export default TreeList;
