elm-athlete / athlete / BodyBuilder.Events

This module entirely replaces Html.Events, providing a type-safer alternative. This is designed to work with BodyBuilder. It is not compatible with Html, though.

checkEventToHtmlEvent : OnCheckEvent msg a -> List (Html.Attribute msg)

focusEventToHtmlAttributes : msg -> List (Html.Attribute msg)

inputEventToHtmlEvent : ( Maybe (a -> msg), String -> a ) -> List (Html.Attribute msg)

mouseEventsToHtmlAttributes : OnMouseEventsInside msg -> List (Html.Attribute msg)

on : String -> Json.Decode.Decoder msg -> OnEvent msg a -> OnEvent msg a

onCustom : String -> Json.Decode.Decoder { message : msg, stopPropagation : Basics.Bool, preventDefault : Basics.Bool } -> OnEvent msg a -> OnEvent msg a

onBlur : msg -> OnBlurEvent msg a -> OnBlurEvent msg a


type alias OnBlurEvent msg a =
{ a | onBlurEvent : Maybe msg }

onBlurEventToHtmlAttributes : msg -> List (Html.Attribute msg)

onCheck : (Basics.Bool -> msg) -> OnCheckEvent msg a -> OnCheckEvent msg a


type alias OnCheckEvent msg a =
{ a | onCheckEvent : Maybe (Basics.Bool -> msg) }

onClick : msg -> Modifiers.Modifier (OnMouseEvents msg a)


type alias OnColorInputEvent msg a =
OnInputEvent Color msg a

onDoubleClick : msg -> Modifiers.Modifier (OnMouseEvents msg a)

onContextMenu : msg -> Modifiers.Modifier (OnMouseEvents msg a)


type alias OnEvent msg a =
{ a | onEvent : Maybe ( String
, VirtualDom.Handler msg ) 
}

onEventToHtmlAttributes : ( String, VirtualDom.Handler msg ) -> List (Html.Attribute msg)

onFocus : msg -> OnFocusEvent msg a -> OnFocusEvent msg a


type alias OnFocusEvent msg a =
{ a | onFocusEvent : Maybe msg }

onInput : (a -> msg) -> OnInputEvent a msg b -> OnInputEvent a msg b


type alias OnInputEvent b msg a =
{ a | onInputEvent : Maybe (b -> msg)
, fromStringInput : String -> b 
}


type alias OnIntInputEvent msg a =
OnInputEvent Basics.Int msg a

onMouseDown : msg -> Modifiers.Modifier (OnMouseEvents msg a)

onMouseEnter : msg -> Modifiers.Modifier (OnMouseEvents msg a)


type alias OnMouseEvents msg a =
{ a | onMouseEvents : Maybe (OnMouseEventsInside msg) }


type alias OnMouseEventsInside msg =
{ click : Maybe msg
, doubleClick : Maybe msg
, contextMenu : Maybe msg
, mouseDown : Maybe msg
, mouseUp : Maybe msg
, mouseEnter : Maybe msg
, mouseLeave : Maybe msg
, mouseOver : Maybe msg
, mouseOut : Maybe msg 
}

onMouseLeave : msg -> Modifiers.Modifier (OnMouseEvents msg a)

onMouseOut : msg -> Modifiers.Modifier (OnMouseEvents msg a)

onMouseOver : msg -> Modifiers.Modifier (OnMouseEvents msg a)

onMouseUp : msg -> Modifiers.Modifier (OnMouseEvents msg a)


type alias OnStringInputEvent msg a =
OnInputEvent String msg a

onSubmit : msg -> OnSubmitEvent msg a -> OnSubmitEvent msg a


type alias OnSubmitEvent msg a =
{ a | onSubmitEvent : Maybe msg }

submitEventToHtmlEvent : OnSubmitEvent msg a -> List (Html.Attribute msg)