unit React_select;

interface

//"react-select"

type
  JOption = class external
    &label: String;
    value: String;
  end;

  JReactSelectProps = class external(JReact.Props {JReactSelectClass} )
    addLabelText: String; // nullable
    allowCreate: Boolean; // nullable
    autoload: Boolean; // nullable
    backspaceRemoves: Boolean; // nullable
    cacheAsyncResults: Boolean; // nullable
    className: String; // nullable
    clearable: Boolean; // nullable
    clearAllText: String; // nullable
    clearValueText: String; // nullable
    delimiter: String; // nullable
    disabled: Boolean; // nullable
    filterOption: (option: JOption; filterString: String): JOption; // nullable
    filterOptions: (options: JArray{<JOption>}; filterString: String; values: JArray{<JObject>}): JArray{<JOption>}; // nullable
    ignoreCase: Boolean; // nullable
    inputProps: JObject; // nullable
    isLoading: Boolean; // nullable
    labelKey: String; // nullable
    matchPos: String; // nullable
    matchProp: String; // nullable
    multi: Boolean; // nullable
    name: String; // nullable
    newOptionCreator: : JOption; // nullable
    noResultsText: String; // nullable
    onBlur: (event: JEvent); // nullable
    onChange: (newValue: String); // nullable
    onFocus: (event: JEvent); // nullable
    onInputChange: (inputValue: String); // nullable
    onOptionLabelClick: (value: String; event: JEvent); // nullable
    optionRenderer: ; // nullable
    options: JArray{<JOption>}; // nullable
    placeholder: String; // nullable
    searchable: Boolean; // nullable
    searchingText: String; // nullable
    searchPromptText: String; // nullable
    value: JOption; // nullable
    valueKey: String; // nullable
    valueRenderer: ; // nullable
  end;

  JReactSelect = class external(JReact.ReactElement {JReactSelectProps} )
  end;

  JReactSelectClass = class external(JReact.ComponentClass {JReactSelectProps} )
  end;

var
  ReactSelect: JReactSelectClass;


