mercurymedia/elm-datetime-picker/2.0.0

NOTE: the latest version is 12.0.1

SingleDatePicker

A date picker component for a single datetime.

Architecture

The opaque type representing a particular date picker instance.

Instantiates and returns a date picker.

view : Settings msg -> DatePicker -> Html msg

The date picker view. Simply pass it the configured settings and the date picker instance you wish to view.

Settings msg
-> (( DatePicker, Maybe Posix ) -> msg)
-> Sub msg

Events external to the picker to which it is subscribed.

Settings

type alias Settings msg =
{ formattedDay : Weekday -> String
, formattedMonth : Month -> String
, focusedDate : Maybe Posix
, dateTimeProcessor :
{ isDayDisabled : Zone -> Posix -> Bool
, allowedTimesOfDay :
Zone
-> Posix
-> { startHour : Int
, startMinute : Int
, endHour : Int
, endMinute : Int
}
}
, internalMsg : ( DatePicker, Maybe Posix ) -> msg
, dateStringFn : Zone -> Posix -> String
, timeStringFn : Zone -> Posix -> String
, zone : Zone
}

The type facilitating the configuration of the datepicker settings.

Because it could be the case that a picker is being used in a different timezone than the home timezone of the implementor, the subfunctions of the dateTimeProcessor both ingest a Zone in addition to a Posix. The Zone represents the time zone in which the picker is being used. An implementor can leverage this to compare against a base time zone when enforcing allowable times of day, etc.

More information can be found in the examples.

defaultSettings : Zone -> (( DatePicker, Maybe Posix ) -> msg) -> Settings msg

A record of default settings for the date picker. Extend this if you want to further customize the date picker.

Requires a Zone to inform the picker in which time zone it should display the picked time as well as a msg that expects a tuple containing a datepicker instance and a Maybe Posix representing a selected datetime.

( DatePicker, Maybe ( Posix, Posix ) ) -> msg

Externally Triggered Actions

openPicker : Zone -> Posix -> Maybe Posix -> DatePicker -> DatePicker

Open the provided date picker and receive the updated picker instance. Also takes a default time the picker should center on (in the event a time has not yet been picked) as well as the picked time. A common example of a default time would be the datetime for the current day.

Close the provided date picker and receive the updated picker instance.

Query

isOpen : DatePicker -> Bool

Indicates whether the DatePicker is open