// Path: src/gwt/react/client/api/ReactRef.java
// @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
// public class ReactRef<T> {
// 	@JsProperty
// 	public T current;
// }
// 
// Path: src/gwt/react/client/proptypes/ReactRefCallback.java
// @JsFunction
// public interface ReactRefCallback {
//     void passRef(Object refElement);
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/YesNo.java
// public enum YesNo {
//     yes, no
// }


import elemental2.dom.HTMLSelectElement;
import gwt.react.client.api.ReactRef;
import gwt.react.client.events.*;
import gwt.react.client.proptypes.ReactRefCallback;
import gwt.react.client.proptypes.html.attributeTypes.YesNo;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;

    //Applicable Event Handlers

    // Focus Events
    @JsOverlay public final SelectProps onBlur(FocusEventHandler handler) { onBlur = handler; return this; }
    @JsOverlay public final SelectProps onFocus(FocusEventHandler handler) { onFocus = handler; return this; }

    // Form Events
    @JsOverlay public final SelectProps onChange(FormEventHandler handler) { onChange = handler; return this; }

    // Keyboard Events
    @JsOverlay public final SelectProps onKeyDown(KeyboardEventHandler handler) { onKeyDown = handler; return this; }
    @JsOverlay public final SelectProps onKeyPress(KeyboardEventHandler handler) { onKeyPress = handler; return this; }
    @JsOverlay public final SelectProps onKeyUp(KeyboardEventHandler handler) { onKeyUp = handler; return this; }

    @JsOverlay public final SelectProps onClick(MouseEventHandler handler) { onClick = handler; return this; }
    @JsOverlay public final SelectProps onContextMenu(MouseEventHandler handler) { onContextMenu = handler; return this; }
    @JsOverlay public final SelectProps onDoubleClick(MouseEventHandler handler) { onDoubleClick = handler; return this; }
    @JsOverlay public final SelectProps onDrag(DragEventHandler handler) { onDrag = handler; return this; }
    @JsOverlay public final SelectProps onDragEnd(DragEventHandler handler) { onDragEnd = handler; return this; }
    @JsOverlay public final SelectProps onDragEnter(DragEventHandler handler) { onDragEnter = handler; return this; }
    @JsOverlay public final SelectProps onDragExit(DragEventHandler handler) { onDragExit = handler; return this; }
    @JsOverlay public final SelectProps onDragLeave(DragEventHandler handler) { onDragLeave = handler; return this; }
    @JsOverlay public final SelectProps onDragOver(DragEventHandler handler) { onDragOver = handler; return this; }
    @JsOverlay public final SelectProps onDragStart(DragEventHandler handler) { onDragStart = handler; return this; }
    @JsOverlay public final SelectProps onDrop(DragEventHandler handler) { onDrop = handler; return this; }
    @JsOverlay public final SelectProps onMouseDown(MouseEventHandler handler) { onMouseDown = handler; return this; }
    @JsOverlay public final SelectProps onMouseEnter(MouseEventHandler handler) { onMouseEnter = handler; return this; }
    @JsOverlay public final SelectProps onMouseLeave(MouseEventHandler handler) { onMouseLeave = handler; return this; }
    @JsOverlay public final SelectProps onMouseMove(MouseEventHandler handler) { onMouseMove = handler; return this; }
// Path: src/gwt/react/client/api/ReactRef.java
// @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
// public class ReactRef<T> {
// 	@JsProperty
// 	public T current;
// }
// 
// Path: src/gwt/react/client/proptypes/ReactRefCallback.java
// @JsFunction
// public interface ReactRefCallback {
//     void passRef(Object refElement);
// }
// 
// Path: src/gwt/react/client/proptypes/html/attributeTypes/YesNo.java
// public enum YesNo {
//     yes, no
// }


// Path: src/gwt/react/client/proptypes/html/SelectProps.java
import elemental2.dom.HTMLSelectElement;
import gwt.react.client.api.ReactRef;
import gwt.react.client.events.*;
import gwt.react.client.proptypes.ReactRefCallback;
import gwt.react.client.proptypes.html.attributeTypes.YesNo;
import jsinterop.annotations.JsOverlay;
import jsinterop.annotations.JsPackage;
import jsinterop.annotations.JsType;


    //Applicable Event Handlers

    // Focus Events
    @JsOverlay public final SelectProps onBlur(FocusEventHandler handler) { onBlur = handler; return this; }
    @JsOverlay public final SelectProps onFocus(FocusEventHandler handler) { onFocus = handler; return this; }

    // Form Events
    @JsOverlay public final SelectProps onChange(FormEventHandler handler) { onChange = handler; return this; }

    // Keyboard Events
    @JsOverlay public final SelectProps onKeyDown(KeyboardEventHandler handler) { onKeyDown = handler; return this; }
    @JsOverlay public final SelectProps onKeyPress(KeyboardEventHandler handler) { onKeyPress = handler; return this; }
    @JsOverlay public final SelectProps onKeyUp(KeyboardEventHandler handler) { onKeyUp = handler; return this; }

    @JsOverlay public final SelectProps onClick(MouseEventHandler handler) { onClick = handler; return this; }
    @JsOverlay public final SelectProps onContextMenu(MouseEventHandler handler) { onContextMenu = handler; return this; }
    @JsOverlay public final SelectProps onDoubleClick(MouseEventHandler handler) { onDoubleClick = handler; return this; }
    @JsOverlay public final SelectProps onDrag(DragEventHandler handler) { onDrag = handler; return this; }
    @JsOverlay public final SelectProps onDragEnd(DragEventHandler handler) { onDragEnd = handler; return this; }
    @JsOverlay public final SelectProps onDragEnter(DragEventHandler handler) { onDragEnter = handler; return this; }
    @JsOverlay public final SelectProps onDragExit(DragEventHandler handler) { onDragExit = handler; return this; }
    @JsOverlay public final SelectProps onDragLeave(DragEventHandler handler) { onDragLeave = handler; return this; }
    @JsOverlay public final SelectProps onDragOver(DragEventHandler handler) { onDragOver = handler; return this; }
    @JsOverlay public final SelectProps onDragStart(DragEventHandler handler) { onDragStart = handler; return this; }
    @JsOverlay public final SelectProps onDrop(DragEventHandler handler) { onDrop = handler; return this; }
    @JsOverlay public final SelectProps onMouseDown(MouseEventHandler handler) { onMouseDown = handler; return this; }
    @JsOverlay public final SelectProps onMouseEnter(MouseEventHandler handler) { onMouseEnter = handler; return this; }
    @JsOverlay public final SelectProps onMouseLeave(MouseEventHandler handler) { onMouseLeave = handler; return this; }
    @JsOverlay public final SelectProps onMouseMove(MouseEventHandler handler) { onMouseMove = handler; return this; }
    @JsOverlay public final SelectProps onMouseOut(MouseEventHandler handler) { onMouseOut = handler; return this; }