Skip to content

Commit

Permalink
master -> main
Browse files Browse the repository at this point in the history
  • Loading branch information
FabHof committed Mar 24, 2022
1 parent d909ff5 commit 55ed064
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 5 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Docs
on:
push:
branches:
- master
- main

jobs:
build-docs:
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Date Picker [![release](https://github-basic-badges.herokuapp.com/release/FabHof/elm-ui-datepicker.svg)](https://package.elm-lang.org/packages/fabhof/elm-ui-datepicker/latest/) [![codecov](https://codecov.io/gh/FabHof/elm-ui-datepicker/branch/master/graph/badge.svg)](https://codecov.io/gh/FabHof/elm-ui-datepicker) ![CI](https://github.com/FabHof/elm-ui-datepicker/workflows/CI/badge.svg?branch=master)
# Date Picker [![release](https://github-basic-badges.herokuapp.com/release/FabHof/elm-ui-datepicker.svg)](https://package.elm-lang.org/packages/fabhof/elm-ui-datepicker/latest/) [![codecov](https://codecov.io/gh/FabHof/elm-ui-datepicker/branch/main/graph/badge.svg)](https://codecov.io/gh/FabHof/elm-ui-datepicker) ![CI](https://github.com/FabHof/elm-ui-datepicker/workflows/CI/badge.svg?branch=main)

A reasonable date picker for the awesome [elm-ui](https://package.elm-lang.org/packages/mdgriffith/elm-ui/latest/).

Expand All @@ -8,9 +8,11 @@ It also depends on [justinmimbs/date](https://package.elm-lang.org/packages/just

[See it in action here.](https://fabhof.github.io/elm-ui-datepicker/)

For a rough changelog please see the [release page on github](https://github.com/FabHof/elm-ui-datepicker/releases).

## Usage

It makes the most sense if you look at the [simple example](https://github.com/FabHof/elm-ui-datepicker/blob/master/examples/Simple.elm) and the [other examples](https://github.com/FabHof/elm-ui-datepicker/tree/master/examples).
It makes the most sense if you look at the [simple example](https://github.com/FabHof/elm-ui-datepicker/blob/main/examples/Simple.elm) and the [other examples](https://github.com/FabHof/elm-ui-datepicker/tree/main/examples).

The date picker *has* an internal Model, but it does hold neither the selected date, nor the text of the underlying `Element.Input.text`. Therefore your minimal working model looks like this:

Expand Down
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[{"name":"DatePicker","comment":"\n\n\n# Basic Usage\n\n@docs input, Model, init, setToday, ChangeEvent, update, Settings, defaultSettings, initWithToday\n\n\n# Helpers\n\nFor when you want to be more in control\n\n@docs close, open, setVisibleMonth, SelectorLevel, setSelectorLevel, Language\n\n","unions":[{"name":"ChangeEvent","comment":" Use in your update function:\n\n update msg model =\n case msg of\n ChangePicker changeEvent ->\n case changeEvent of\n DateChanged date ->\n -- update both date and text\n ( { model\n | date = Just date\n , dateText = Date.toIsoString date\n }\n , Cmd.none\n )\n\n TextChanged text ->\n ( { model\n | date =\n -- parse the text in any way you like\n Date.fromIsoString text\n |> Result.toMaybe\n |> Maybe.Extra.orElse model.date\n , dateText = text\n }\n , Cmd.none\n )\n\n DateCleared ->\n ( { model\n | date =\n Nothing\n , dateText = \"\"\n }\n , Cmd.none\n )\n\n PickerChanged subMsg ->\n -- internal stuff changed\n -- call DatePicker.update\n ( { model\n | pickerModel =\n model.pickerModel\n |> DatePicker.update subMsg\n }\n , Cmd.none\n )\n\n","args":[],"cases":[["DateChanged",["Date.Date"]],["TextChanged",["String.String"]],["PickerChanged",["DatePicker.Msg"]]]},{"name":"Model","comment":" ","args":[],"cases":[]},{"name":"SelectorLevel","comment":" The different selector levels the date picker can show.\n","args":[],"cases":[["DaysLevel",[]],["MonthsLevel",[]],["YearsLevel",[]]]}],"aliases":[{"name":"Language","comment":" Alias of [`Language`][dateLanguage] from `justinmimbs/date`.\n[dateLanguage]: <https://package.elm-lang.org/packages/justinmimbs/date/latest/Date#Language>\n","args":[],"type":"Date.Language"},{"name":"Settings","comment":" All the possible configuration settings.\nYou probably want to start at the [defaultSettings](DatePicker#defaultSettings) and only change what you need.\nIt's probably easiest to look at the [`code`][githubCode] to see where each attribute list is used for.\n[githubCode]: <https://github.com/FabHof/elm-ui-datepicker/blob/master/src/DatePicker.elm#L308>\n","args":[],"type":"{ firstDayOfWeek : Time.Weekday, language : Maybe.Maybe DatePicker.Language, disabled : Date.Date -> Basics.Bool, pickerAttributes : List.List (Element.Attribute Basics.Never), headerAttributes : List.List (Element.Attribute Basics.Never), tableAttributes : List.List (Element.Attribute Basics.Never), weekdayAttributes : List.List (Element.Attribute Basics.Never), dayAttributes : List.List (Element.Attribute Basics.Never), monthYearAttribute : List.List (Element.Attribute Basics.Never), wrongMonthDayAttributes : List.List (Element.Attribute Basics.Never), todayDayAttributes : List.List (Element.Attribute Basics.Never), selectedDayAttributes : List.List (Element.Attribute Basics.Never), disabledDayAttributes : List.List (Element.Attribute Basics.Never), monthsTableAttributes : List.List (Element.Attribute Basics.Never), yearsTableAttributes : List.List (Element.Attribute Basics.Never), headerButtonsAttributes : List.List (Element.Attribute Basics.Never), previousMonthElement : Element.Element Basics.Never, nextMonthElement : Element.Element Basics.Never }"}],"values":[{"name":"close","comment":" Closes the date picker.\n\nExample: close date picker on date input:\n\n DateChanged date ->\n ( { model\n | date = Just date\n , dateText = Date.toIsoString date\n , pickerModel =\n model.pickerModel\n |> DatePicker.close\n }\n , Cmd.none\n )\n\n**Note**: the date picker will reopen on _focus_ and _click_.\nTo prevent this, close the date picker on every update:\n\n PickerChanged subMsg ->\n ( { model\n | pickerModel =\n model.pickerModel\n |> DatePicker.update subMsg\n --picker will never open\n |> DatePicker.close\n }\n , Cmd.none\n )\n\n","type":"DatePicker.Model -> DatePicker.Model"},{"name":"defaultSettings","comment":" Reasonable default settings.\n","type":"DatePicker.Settings"},{"name":"init","comment":" The initial model of the date picker.\nEasy to us in your own init function:\n\n(You probably want to get todays date to give it to the date picker using [DatePicker.setToday](DatePicker#setToday))\n\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel = DatePicker.init\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.Model"},{"name":"initWithToday","comment":" The initial model of the date picker and sets the given date as today.\n","type":"Date.Date -> DatePicker.Model"},{"name":"input","comment":" Use it like you would `Input.text`, the attributes, `text`, `placeholder` and `label` will behave\nexactly like for `Input.text`. It has however a more complex `onChange`, a `selected` date, the internal `model` and some `settings`.\n\n**Note**: `Events.onClick`, `Events.onFocus` and `Events.onLoseFocus` are used internally by the date picker.\nThis means, that **your own `Events.onClick`, `Events.onFocus` and `Events.onLoseFocus` attributes have no effect and will not fire**.\n\n","type":"List.List (Element.Attribute msg) -> { onChange : DatePicker.ChangeEvent -> msg, selected : Maybe.Maybe Date.Date, text : String.String, label : Element.Input.Label msg, placeholder : Maybe.Maybe (Element.Input.Placeholder msg), model : DatePicker.Model, settings : DatePicker.Settings } -> Element.Element msg"},{"name":"open","comment":" Opens the date picker.\n\nExample: start with open picker:\n\n init : ( Model, Cmd Msg )\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel =\n DatePicker.init\n |> DatePicker.open\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.Model -> DatePicker.Model"},{"name":"setSelectorLevel","comment":" Sets the selector level that is visible when date picker is open.\n\nExample: start on the year level:\n\n init : ( Model, Cmd Msg )\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel =\n DatePicker.init\n |> DatePicker.setSelectorLevel DatePicker.YearsLevel\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.SelectorLevel -> DatePicker.Model -> DatePicker.Model"},{"name":"setToday","comment":" Sets the day that should be marked as today.\n","type":"Date.Date -> DatePicker.Model -> DatePicker.Model"},{"name":"setVisibleMonth","comment":" Sets the current visible month of the date picker.\n","type":"Date.Date -> DatePicker.Model -> DatePicker.Model"},{"name":"update","comment":" ","type":"DatePicker.Msg -> DatePicker.Model -> DatePicker.Model"}],"binops":[]}]
[{"name":"DatePicker","comment":"\n\n\n# Basic Usage\n\n@docs input, Model, init, setToday, ChangeEvent, update, Settings, defaultSettings, initWithToday\n\n\n# Helpers\n\nFor when you want to be more in control\n\n@docs close, open, setVisibleMonth, SelectorLevel, setSelectorLevel, Language\n\n","unions":[{"name":"ChangeEvent","comment":" Use in your update function:\n\n update msg model =\n case msg of\n ChangePicker changeEvent ->\n case changeEvent of\n DateChanged date ->\n -- update both date and text\n ( { model\n | date = Just date\n , dateText = Date.toIsoString date\n }\n , Cmd.none\n )\n\n TextChanged text ->\n ( { model\n | date =\n -- parse the text in any way you like\n Date.fromIsoString text\n |> Result.toMaybe\n |> Maybe.Extra.orElse model.date\n , dateText = text\n }\n , Cmd.none\n )\n\n DateCleared ->\n ( { model\n | date =\n Nothing\n , dateText = \"\"\n }\n , Cmd.none\n )\n\n PickerChanged subMsg ->\n -- internal stuff changed\n -- call DatePicker.update\n ( { model\n | pickerModel =\n model.pickerModel\n |> DatePicker.update subMsg\n }\n , Cmd.none\n )\n\n","args":[],"cases":[["DateChanged",["Date.Date"]],["TextChanged",["String.String"]],["PickerChanged",["DatePicker.Msg"]]]},{"name":"Model","comment":" ","args":[],"cases":[]},{"name":"SelectorLevel","comment":" The different selector levels the date picker can show.\n","args":[],"cases":[["DaysLevel",[]],["MonthsLevel",[]],["YearsLevel",[]]]}],"aliases":[{"name":"Language","comment":" Alias of [`Language`][dateLanguage] from `justinmimbs/date`.\n[dateLanguage]: <https://package.elm-lang.org/packages/justinmimbs/date/latest/Date#Language>\n","args":[],"type":"Date.Language"},{"name":"Settings","comment":" All the possible configuration settings.\nYou probably want to start at the [defaultSettings](DatePicker#defaultSettings) and only change what you need.\nIt's probably easiest to look at the [`code`][githubCode] to see where each attribute list is used for.\n[githubCode]: <https://github.com/FabHof/elm-ui-datepicker/blob/main/src/DatePicker.elm#L308>\n","args":[],"type":"{ firstDayOfWeek : Time.Weekday, language : Maybe.Maybe DatePicker.Language, disabled : Date.Date -> Basics.Bool, pickerAttributes : List.List (Element.Attribute Basics.Never), headerAttributes : List.List (Element.Attribute Basics.Never), tableAttributes : List.List (Element.Attribute Basics.Never), weekdayAttributes : List.List (Element.Attribute Basics.Never), dayAttributes : List.List (Element.Attribute Basics.Never), monthYearAttribute : List.List (Element.Attribute Basics.Never), wrongMonthDayAttributes : List.List (Element.Attribute Basics.Never), todayDayAttributes : List.List (Element.Attribute Basics.Never), selectedDayAttributes : List.List (Element.Attribute Basics.Never), disabledDayAttributes : List.List (Element.Attribute Basics.Never), monthsTableAttributes : List.List (Element.Attribute Basics.Never), yearsTableAttributes : List.List (Element.Attribute Basics.Never), headerButtonsAttributes : List.List (Element.Attribute Basics.Never), previousMonthElement : Element.Element Basics.Never, nextMonthElement : Element.Element Basics.Never }"}],"values":[{"name":"close","comment":" Closes the date picker.\n\nExample: close date picker on date input:\n\n DateChanged date ->\n ( { model\n | date = Just date\n , dateText = Date.toIsoString date\n , pickerModel =\n model.pickerModel\n |> DatePicker.close\n }\n , Cmd.none\n )\n\n**Note**: the date picker will reopen on _focus_ and _click_.\nTo prevent this, close the date picker on every update:\n\n PickerChanged subMsg ->\n ( { model\n | pickerModel =\n model.pickerModel\n |> DatePicker.update subMsg\n --picker will never open\n |> DatePicker.close\n }\n , Cmd.none\n )\n\n","type":"DatePicker.Model -> DatePicker.Model"},{"name":"defaultSettings","comment":" Reasonable default settings.\n","type":"DatePicker.Settings"},{"name":"init","comment":" The initial model of the date picker.\nEasy to us in your own init function:\n\n(You probably want to get todays date to give it to the date picker using [DatePicker.setToday](DatePicker#setToday))\n\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel = DatePicker.init\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.Model"},{"name":"initWithToday","comment":" The initial model of the date picker and sets the given date as today.\n","type":"Date.Date -> DatePicker.Model"},{"name":"input","comment":" Use it like you would `Input.text`, the attributes, `text`, `placeholder` and `label` will behave\nexactly like for `Input.text`. It has however a more complex `onChange`, a `selected` date, the internal `model` and some `settings`.\n\n**Note**: `Events.onClick`, `Events.onFocus` and `Events.onLoseFocus` are used internally by the date picker.\nThis means, that **your own `Events.onClick`, `Events.onFocus` and `Events.onLoseFocus` attributes have no effect and will not fire**.\n\n","type":"List.List (Element.Attribute msg) -> { onChange : DatePicker.ChangeEvent -> msg, selected : Maybe.Maybe Date.Date, text : String.String, label : Element.Input.Label msg, placeholder : Maybe.Maybe (Element.Input.Placeholder msg), model : DatePicker.Model, settings : DatePicker.Settings } -> Element.Element msg"},{"name":"open","comment":" Opens the date picker.\n\nExample: start with open picker:\n\n init : ( Model, Cmd Msg )\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel =\n DatePicker.init\n |> DatePicker.open\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.Model -> DatePicker.Model"},{"name":"setSelectorLevel","comment":" Sets the selector level that is visible when date picker is open.\n\nExample: start on the year level:\n\n init : ( Model, Cmd Msg )\n init =\n ( { date = Nothing\n , dateText = \"\"\n , pickerModel =\n DatePicker.init\n |> DatePicker.setSelectorLevel DatePicker.YearsLevel\n }\n , Task.perform SetToday Date.today\n )\n\n","type":"DatePicker.SelectorLevel -> DatePicker.Model -> DatePicker.Model"},{"name":"setToday","comment":" Sets the day that should be marked as today.\n","type":"Date.Date -> DatePicker.Model -> DatePicker.Model"},{"name":"setVisibleMonth","comment":" Sets the current visible month of the date picker.\n","type":"Date.Date -> DatePicker.Model -> DatePicker.Model"},{"name":"update","comment":" ","type":"DatePicker.Msg -> DatePicker.Model -> DatePicker.Model"}],"binops":[]}]
2 changes: 1 addition & 1 deletion src/DatePicker.elm
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ update msg model =
{-| All the possible configuration settings.
You probably want to start at the [defaultSettings](DatePicker#defaultSettings) and only change what you need.
It's probably easiest to look at the [`code`][githubCode] to see where each attribute list is used for.
[githubCode]: <https://github.com/FabHof/elm-ui-datepicker/blob/master/src/DatePicker.elm#L308>
[githubCode]: <https://github.com/FabHof/elm-ui-datepicker/blob/main/src/DatePicker.elm#L308>
-}
type alias Settings =
{ firstDayOfWeek : Weekday
Expand Down

0 comments on commit 55ed064

Please sign in to comment.