This library provides a datatype to model and validate input field data.
For an example, take a look at the README
The field type, it represents all the possible state that a field can be in. It has take parameters of an error type and a value type.
Unless you're trying to model some unique data you probably won't be using this
type, but one with the value
and error
arguements already applied. Take a look at the Field.String
, Field.Int
and Field.Float
modules to see some common types already appplied and for examples to modeling your own data.
{ active : Basics.Bool
, touched : Basics.Bool
, disabled : Basics.Bool
}
A type to reperesent various bits of data about any individiual field. You can get this record
from a field with extractMetadata
, and set this record with resetMetadata
{ valid : Metadata -> value -> Html msg
, invalid : Metadata -> value -> error -> Html msg
}
A mapping from different field statuses to Html
view : ViewConfig value error msg -> Field value error -> Html msg
Takes a ViewConfig
and a field and uses the different possible Html
based on the field's status
init : value -> Field value error
Create a new field with the given value that is in a valid status
resetValue : Field value error -> value -> Field value error
Reset a field with a new value, and set it to the valid status
extractValue : Field value error -> value
Extract the metadata from a field, regardless of the field's status
resetMetadata : Field value error -> Metadata -> Field value error
Reset a field with new metadata
extractMetadata : Field value error -> Metadata
Extract the value from a field, regardless of the field's status
withDefault : value -> Field value error -> value
Return the value of a field if it is in a valid status, otherwise get the default value provided
toMaybe : Field value error -> Maybe value
Convert a field to a Maybe
. This discards the error
.
toResult : Field value error -> Result error value
Convert a field to a Result
isValid : Field value error -> Basics.Bool
Returns true if the field in currently in a valid state, false otherwise
isInvalid : Field value error -> Basics.Bool
Returns true if the field in currently in a invalid state, false otherwise
Field value error -> Field value error
Type alias that takes a field, and returns a field
test : (value -> Basics.Bool) -> error -> ValidationFunc value error
Alias to createValidator
. Deprecated.
createValidator : (value -> Basics.Bool) -> error -> Field value error -> Field value error
Create a validator by testing a field against the provided function. If the field passes then return the field the exact same, otherwise return a field marked as invalid with the provided error. If the field is already invalid, then this function just returns the field as it got it. This is to keep the exisitng error, so you can chain together validation functions easily.
Look to the Field.String
, Field.Int
and Field.Float
modules in this package. for pre-created validation functions.