import React from "react";
import { MultiSelect as KendoMultiSelect } from "@progress/kendo-react-dropdowns";
import { MultiSelectProps } from "./MultiSelectProps";

const MultiSelect: React.FC<MultiSelectProps> = ({
  dataTestId,
  accessKey,
  adaptive,
  adaptiveFilter,
  adaptiveTitle,
  allowCustom,
  ariaDescribedBy,
  ariaLabelledBy,
  autoClose,
  className,
  data,
  dataItemKey,
  defaultValue,
  dir,
  disabled,
  fillMode,
  filter,
  filterable,
  footer,
  groupField,
  header,
  id,
  label,
  loading,
  name,
  opened,
  placeholder,
  popupSettings,
  required,
  rounded,
  size,
  skipDisabledItems,
  style,
  tabIndex,
  tags,
  textField,
  valid,
  validationMessage,
  validityStyles,
  value,
  virtual,
  focusedItemIndex,
  groupHeaderItemRender,
  groupStickyHeaderItemRender,
  itemRender,
  listNoDataRender,
  onBlur,
  onCancel,
  onChange,
  onClose,
  onFilterChange,
  onFocus,
  onOpen,
  onPageChange,
  tagRender,
}) => (
  <div data-test-id={dataTestId}>
    <KendoMultiSelect
      accessKey={accessKey}
      adaptive={adaptive}
      adaptiveFilter={adaptiveFilter}
      adaptiveTitle={adaptiveTitle}
      allowCustom={allowCustom}
      ariaDescribedBy={ariaDescribedBy}
      ariaLabelledBy={ariaLabelledBy}
      autoClose={autoClose}
      className={className}
      data={data}
      dataItemKey={dataItemKey}
      defaultValue={defaultValue}
      dir={dir}
      disabled={disabled}
      fillMode={fillMode}
      filter={filter}
      filterable={filterable}
      footer={footer}
      groupField={groupField}
      header={header}
      id={id}
      label={label}
      loading={loading}
      name={name}
      opened={opened}
      placeholder={placeholder}
      popupSettings={popupSettings}
      required={required}
      rounded={rounded}
      size={size}
      skipDisabledItems={skipDisabledItems}
      style={style}
      tabIndex={tabIndex}
      tags={tags}
      textField={textField}
      valid={valid}
      validationMessage={validationMessage}
      validityStyles={validityStyles}
      value={value}
      virtual={virtual}
      focusedItemIndex={focusedItemIndex}
      groupHeaderItemRender={groupHeaderItemRender}
      groupStickyHeaderItemRender={groupStickyHeaderItemRender}
      itemRender={itemRender}
      listNoDataRender={listNoDataRender}
      onBlur={onBlur}
      onCancel={onCancel}
      onChange={onChange}
      onClose={onClose}
      onFilterChange={onFilterChange}
      onFocus={onFocus}
      onOpen={onOpen}
      onPageChange={onPageChange}
      tagRender={tagRender}
    />
  </div>
);

export default MultiSelect;
