Generates HTML <select> tags and option lists for localized unit-of-measure display.
Units are displayed with their localized display name. The list of units, display style (long, short, narrow), sort order, and display format are all configurable.
Summary
Functions
Generates an HTML select tag for a unit list that can be used with a Phoenix.HTML.Form.t/0.
Generates a list of options for a unit list that can be used with Phoenix.HTML.Form.options_for_select/2 or to create a <datalist>.
Types
@type select_options() :: [ units: [atom() | binary(), ...], locale: Localize.locale() | Localize.LanguageTag.t(), collator: function(), mapper: (tuple() -> String.t()), selected: atom() | binary(), style: :long | :short | :narrow ]
Functions
@spec select( form :: Phoenix.HTML.Form.t(), field :: Phoenix.HTML.Form.field(), select_options() ) :: Phoenix.HTML.safe() | {:error, {module(), binary()}}
Generates an HTML select tag for a unit list that can be used with a Phoenix.HTML.Form.t/0.
Arguments
formis aPhoenix.HTML.Form.t/0form.fieldis aPhoenix.HTML.Form.field/0field.optionsis aKeyword.t/0list of options.
Options
:unitsis a list of units to be displayed in the select.:styleis the style of unit name to be displayed. The options are:long,:shortand:narrow. The default is:long.:localedefines the locale to be used to localise the description of the units. The default is the locale returned byLocalize.get_locale/0.:collatoris a function used to sort the units. The default collator sorts by display name.:mapperis a function that creates the text to be displayed in the select tag for each unit. It receives a tuple{display_name, unit_code}. The default is the identity function.:selectedidentifies the unit to be selected by default in the select tag. The default isnil.:promptis a prompt displayed at the top of the select box.
Returns
A
Phoenix.HTML.safe/0select tag, or{:error, {module(), binary()}}if validation fails.
Examples
iex> Localize.HTML.Unit.select(:my_form, :unit, selected: :foot)
@spec unit_options(select_options()) :: [tuple()] | {:error, {module(), binary()}}
Generates a list of options for a unit list that can be used with Phoenix.HTML.Form.options_for_select/2 or to create a <datalist>.
Arguments
optionsis aKeyword.t/0list of options.
Options
See Localize.HTML.Unit.select/3 for options.
Returns
A list of
{display_name, unit_code}tuples, or{:error, {module(), binary()}}if validation fails.