jmpavlick / elm-html-form / Html.Form

Form

Module instance


type alias Module error editor model fieldset msg =
{ init : ( Model editor -> model
, Platform.Cmd.Cmd msg ) -> ( model
, Platform.Cmd.Cmd msg )
, submitMsg : msg
, update : Msg editor -> model -> ( model
, Platform.Cmd.Cmd msg )
, fieldset : model -> fieldset
, errors : model -> List { editor : editor
, errors : List error } 
}


type Config error editor record fieldset model msg
    = Config ({ toModel : model -> Model editor -> model, fromModel : model -> Model editor, toMsg : Msg editor -> msg, toRecord : List editor -> Maybe record, onSubmit : Result (List error) record -> msg, index : Basics.Int, initModel : Model editor -> Model editor, fieldset : Fieldset model fieldset, errors : model -> List { editor : editor, errors : List error } -> List { editor : editor, errors : List error } })

init : fieldset -> { toModel : model -> Model editor -> model, fromModel : model -> Model editor, toMsg : Msg editor -> msg, toRecord : List editor -> Maybe record, onSubmit : Result (List error) record -> msg } -> Config error editor record fieldset model msg

withField : (Maybe value -> editor) -> FieldConfig error value editor msg -> Config error editor record (Field error msg -> fieldset) model msg -> Config error editor record fieldset model msg

build : Config error editor record fieldset model msg -> Module error editor model fieldset msg


type alias Model editor =
Internals.Model editor


type alias Msg editor =
Internals.Msg editor

Field configuration


type alias Field error msg =
{ element : List (Html.Attribute msg) -> Html msg
, errors : List error
, toAttrs : List (Html.Attribute msg) -> List (Html.Attribute msg)
, attrs : { onFocus : Html.Attribute msg
, onBlur : Html.Attribute msg
, onEvent : Html.Attribute msg
, value : Html.Attribute msg } 
}


type alias FieldConfig error value editor msg =
Internals.FieldConfig error value editor msg


type Fieldset model fieldset
    = Fieldset (model -> fieldset)


type alias Element msg =
Internals.Element msg

Fields

input : FieldConfig error String editor msg

checkbox : FieldConfig error Basics.Bool editor msg

custom : { eventName : String, decoder : Json.Decode.Decoder value, element : Element msg, valueAttr : { wrap : Maybe value -> editor, initialValue : Maybe value } -> editor -> Html.Attribute msg } -> FieldConfig error value editor msg

Field builders

withInitialValue : Maybe value -> FieldConfig error value editor msg -> FieldConfig error value editor msg


type alias Validation error value editor =
Internals.Validation error value editor

withValidation : Validation error value editor -> FieldConfig error value editor msg -> FieldConfig error value editor msg

withStopPropagation : Basics.Bool -> FieldConfig error value editor msg -> FieldConfig error value editor msg

withPreventDefault : Basics.Bool -> FieldConfig error value editor msg -> FieldConfig error value editor msg