[{"name":"MultiSelect","comment":" A select component for multi selection with local data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, subscriptions, update\n\n\n# Settings and Configuration\n\n@docs Settings\n\n\n# Query\n\n@docs selected\n\n\n# Externally Triggered Actions\n\n@docs setSelected\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SmartSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[{"name":"Settings","comment":" The type facilitating the configuration of the smart select.\n\n  - The `internalMsg` field takes a function that expects a SmartSelect.Msg and returns an externally defined msg.\n  - `optionType` is a string that indicates what kind of data is being selected, i.e. \"Product\" or \"Client\"\n  - `optionLabelFn` expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\"\n  - `optionDescriptionFn` expects an instance of the data being selected from and returns a string describing the instance, i.e. if the label is \"Garden Hose\", the description may be \"30 ft\"\n      - Because the smart select is unaware of the type and structure of the data it is processing, these functions are necessary to help render the options in the select dropdown.\n  - The `optionsContainerMaxHeight` field specifies the height of the container of the selectable options. This field helps facilitate scroll functionality.\n  - The `searchFn` field expects a function taking the search text and the items to search and returning the filtered items.\n  - `closeOnSelect` indicates whether or not the `SmartSelect` should close itself after a selection has been made.\n\n","args":["msg","a"],"type":"{ internalMsg : MultiSelect.Msg a -> msg, optionType : String.String, optionLabelFn : a -> String.String, optionDescriptionFn : a -> String.String, optionsContainerMaxHeight : Basics.Float, searchFn : String.String -> List.List a -> List.List a, closeOnSelect : Basics.Bool }"}],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n","type":"MultiSelect.Settings msg a -> MultiSelect.SmartSelect msg a"},{"name":"selected","comment":" Get the currently selected entities, if any.\n","type":"MultiSelect.SmartSelect msg a -> List.List a"},{"name":"setSelected","comment":" It is possible that the select is instantiated on your model before data representing\na previous selection is loaded. Use this function to update the picked selection in\nthe select when the appropriate data is received. Use this method sparingly, if at all.\nThe selected state should ideally only change due to user input.\n","type":"List.List a -> MultiSelect.SmartSelect msg a -> MultiSelect.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"MultiSelect.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"MultiSelect.Msg a -> MultiSelect.SmartSelect msg a -> ( MultiSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting multiple options at a time with local data. It expects the following arguments (in order):\n\n  - a boolean indicating if the select is disabled or not\n  - a list of the items from which to select\n  - a function that takes in an instance of the data being selected from and returns html for rendering selected items. This allows the end user to define how they would like to render selected items.\n  - the smart select instance\n\n","type":"Basics.Bool -> List.List a -> (a -> Html.Html msg) -> MultiSelect.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"MultiSelectRemote","comment":" A select component for multi selection with remote data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, subscriptions, update\n\n\n# Settings and Configuration\n\n@docs Settings\n\n\n# Query\n\n@docs selected\n\n\n# Externally Triggered Actions\n\n@docs setSelected\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SmartSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[{"name":"Settings","comment":" The type facilitating the configuration of the smart select.\n\n  - The `internalMsg` field takes a function that expects a SmartSelect.Msg and returns an externally defined msg.\n  - `optionType` is a string that indicates what kind of data is being selected, i.e. \"Product\" or \"Client\"\n  - `optionLabelFn` expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\"\n  - `optionDescriptionFn` expects an instance of the data being selected from and returns a string describing the instance, i.e. if the label is \"Garden Hose\", the description may be \"30 ft\"\n      - Because the smart select is unaware of the type and structure of the data it is processing, these functions are necessary to help render the options in the select dropdown.\n  - The `optionsContainerMaxHeight` field specifies the height of the container of the selectable options. This field helps facilitate scroll functionality.\n  - The `searchFn` field expects an instance of `RemoteSearchAttrs`, seen below. This type helps facilitate the remote request for data.\n  - `debounceDuration` indicates how long if at all to wait between the last keypress and executing a search. This is particularly useful if the search being executed is pinging an external source.\n  - `spinnerColor` indicates the color that the loading spinner should be.\n  - `characterThreshold` indicates how many if any characters should be typed before a search is executed.\n  - `closeOnSelect` indicates whether or not the `SmartSelect` should close itself after a selection has been made.\n\n```elm\ntype alias RemoteSearchAttrs a =\n    { headers : List Header\n    , url : String -> String\n    , optionDecoder : Decoder a\n    }\n```\n\n","args":["msg","a"],"type":"{ internalMsg : MultiSelectRemote.Msg a -> msg, optionType : String.String, optionLabelFn : a -> String.String, optionDescriptionFn : a -> String.String, optionsContainerMaxHeight : Basics.Float, searchAttrs : SmartSelect.Utilities.RemoteSearchAttrs a, spinnerColor : Color.Color, debounceDuration : Basics.Float, characterSearchThreshold : Basics.Int, closeOnSelect : Basics.Bool }"}],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n","type":"MultiSelectRemote.Settings msg a -> MultiSelectRemote.SmartSelect msg a"},{"name":"selected","comment":" Get the currently selected entities if any.\n","type":"MultiSelectRemote.SmartSelect msg a -> List.List a"},{"name":"setSelected","comment":" It is possible that the select is instantiated on your model before data representing\na previous selection is loaded. Use this function to update the picked selection in\nthe select when the appropriate data is received. Use this method sparingly, if at all.\nThe selected state should ideally only change due to user input.\n","type":"List.List a -> MultiSelectRemote.SmartSelect msg a -> MultiSelectRemote.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"MultiSelectRemote.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"MultiSelectRemote.Msg a -> MultiSelectRemote.SmartSelect msg a -> ( MultiSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting multiple options at a time with remote data. It expects the following arguments (in order):\n\n  - a boolean indicating if the select is disabled or not\n  - a function that takes in an instance of the data being selected from and returns html for rendering selected items. This allows the end user to define how they would like to render selected items.\n  - the smart select instance\n\n","type":"Basics.Bool -> (a -> Html.Html msg) -> MultiSelectRemote.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"SingleSelect","comment":" A select component for a single selection with local data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, subscriptions, update\n\n\n# Settings and Configuration\n\n@docs Settings\n\n\n# Query\n\n@docs selected\n\n\n# Externally Triggered Actions\n\n@docs setSelected\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SmartSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[{"name":"Settings","comment":" The type facilitating the configuration of the smart select.\n\n  - The `internalMsg` field takes a function that expects a SmartSelect.Msg and returns an externally defined msg.\n  - `optionType` is a string that indicates what kind of data is being selected, i.e. \"Product\" or \"Client\"\n  - `optionLabelFn` expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\"\n  - `optionDescriptionFn` expects an instance of the data being selected from and returns a string describing the instance, i.e. if the label is \"Garden Hose\", the description may be \"30 ft\"\n      - Because the smart select is unaware of the type and structure of the data it is processing, these functions are necessary to help render the options in the select dropdown.\n  - The `optionsContainerMaxHeight` field specifies the height of the container of the selectable options. This field helps facilitate scroll functionality.\n  - The `searchFn` field expects a function taking the search text and the items to search and returning the filtered items.\n  - `closeOnSelect` indicates whether or not the `SmartSelect` should close itself after a selection has been made.\n\n","args":["msg","a"],"type":"{ internalMsg : SingleSelect.Msg a -> msg, optionType : String.String, optionLabelFn : a -> String.String, optionDescriptionFn : a -> String.String, optionsContainerMaxHeight : Basics.Float, searchFn : String.String -> List.List a -> List.List a, closeOnSelect : Basics.Bool }"}],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n","type":"SingleSelect.Settings msg a -> SingleSelect.SmartSelect msg a"},{"name":"selected","comment":" Get the currently selected entity if any.\n","type":"SingleSelect.SmartSelect msg a -> Maybe.Maybe a"},{"name":"setSelected","comment":" It is possible that the select is instantiated on your model before data representing\na previous selection is loaded. Use this function to update the picked selection in\nthe select when the appropriate data is received. Use this method sparingly, if at all.\nThe selected state should ideally only change due to user input.\n","type":"a -> SingleSelect.SmartSelect msg a -> SingleSelect.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"SingleSelect.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"SingleSelect.Msg a -> SingleSelect.SmartSelect msg a -> ( SingleSelect.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting one option at a time with local data. It expects the following arguments (in order):\n\n  - a boolean indicating if the select is disabled or not\n  - a list of the items from which to select\n  - the smart select instance\n\n","type":"Basics.Bool -> List.List a -> SingleSelect.SmartSelect msg a -> Html.Html msg"}],"binops":[]},{"name":"SingleSelectRemote","comment":" A select component for a single selection with remote data.\n\n\n# Architecture\n\n@docs SmartSelect, Msg, init, view, subscriptions, update\n\n\n# Settings and Configuration\n\n@docs Settings\n\n\n# Query\n\n@docs selected\n\n\n# Externally Triggered Actions\n\n@docs setSelected\n\n","unions":[{"name":"Msg","comment":" Opaque type representing cases to be passed to SmartSelect.update\n","args":["a"],"cases":[]},{"name":"SmartSelect","comment":" The opaque type representing a particular smart select instance.\n","args":["msg","a"],"cases":[]}],"aliases":[{"name":"Settings","comment":" The type facilitating the configuration of the smart select.\n\n  - The `internalMsg` field takes a function that expects a SmartSelect.Msg and returns an externally defined msg.\n  - `optionType` is a string that indicates what kind of data is being selected, i.e. \"Product\" or \"Client\"\n  - `optionLabelFn` expects an instance of the data being selected from and returns a string naming/labeling the instance, i.e. if it is a \"Product\" being selected, the label may be \"Garden Hose\"\n  - `optionDescriptionFn` expects an instance of the data being selected from and returns a string describing the instance, i.e. if the label is \"Garden Hose\", the description may be \"30 ft\"\n      - Because the smart select is unaware of the type and structure of the data it is processing, these functions are necessary to help render the options in the select dropdown.\n  - The `optionsContainerMaxHeight` field specifies the height of the container of the selectable options. This field helps facilitate scroll functionality.\n  - The `searchFn` field expects an instance of `RemoteSearchAttrs`, seen below. This type helps facilitate the remote request for data.\n  - `debounceDuration` indicates how long if at all to wait between the last keypress and executing a search. This is particularly useful if the search being executed is pinging an external source.\n  - `spinnerColor` indicates the color that the loading spinner should be.\n  - `characterThreshold` indicates how many if any characters should be typed before a search is executed.\n  - `closeOnSelect` indicates whether or not the `SmartSelect` should close itself after a selection has been made.\n\n```elm\ntype alias RemoteSearchAttrs a =\n    { headers : List Header\n    , url : String -> String\n    , optionDecoder : Decoder a\n    }\n```\n\n","args":["msg","a"],"type":"{ internalMsg : SingleSelectRemote.Msg a -> msg, optionType : String.String, optionLabelFn : a -> String.String, optionDescriptionFn : a -> String.String, optionsContainerMaxHeight : Basics.Float, searchAttrs : SmartSelect.Utilities.RemoteSearchAttrs a, spinnerColor : Color.Color, debounceDuration : Basics.Float, characterSearchThreshold : Basics.Int, closeOnSelect : Basics.Bool }"}],"values":[{"name":"init","comment":" Instantiates and returns a smart select.\n","type":"SingleSelectRemote.Settings msg a -> SingleSelectRemote.SmartSelect msg a"},{"name":"selected","comment":" Get the currently selected entity if any.\n","type":"SingleSelectRemote.SmartSelect msg a -> Maybe.Maybe a"},{"name":"setSelected","comment":" It is possible that the select is instantiated on your model before data representing\na previous selection is loaded. Use this function to update the picked selection in\nthe select when the appropriate data is received. Use this method sparingly, if at all.\nThe selected state should ideally only change due to user input.\n","type":"a -> SingleSelectRemote.SmartSelect msg a -> SingleSelectRemote.SmartSelect msg a"},{"name":"subscriptions","comment":" Events external to the smart select to which it is subscribed.\n","type":"SingleSelectRemote.SmartSelect msg a -> Platform.Sub.Sub msg"},{"name":"update","comment":" Update the provided smart select and receive the updated select instance and a cmd to run.\n","type":"SingleSelectRemote.Msg a -> SingleSelectRemote.SmartSelect msg a -> ( SingleSelectRemote.SmartSelect msg a, Platform.Cmd.Cmd msg )"},{"name":"view","comment":" The smart select view for selecting one option at a time with remote data. It expects the following arguments (in order):\n\n  - a boolean indicating if the select is disabled or not\n  - the smart select instance\n\n","type":"Basics.Bool -> SingleSelectRemote.SmartSelect msg a -> Html.Html msg"}],"binops":[]}]