Generates HTML <select> tags and option lists for localized territory display.
Territories are displayed with their Unicode flag emoji and localized name. The list of territories, display style, sort order, and display format are all configurable.
Summary
Types
Territory type passed to a collator for ordering in the select box.
Functions
Generates an HTML select tag for a territory list that can be used with a Phoenix.HTML.Form.t.
Generates a list of options for a territory list that can be used with Phoenix.HTML.Form.options_for_select/2 or to create a <datalist>.
Types
@type select_options() :: [ territories: [atom() | binary(), ...], locale: Localize.locale() | Localize.LanguageTag.t(), collator: function(), mapper: (territory() -> String.t()), selected: atom() | binary(), style: :standard | :short | :variant ]
Territory type passed to a collator for ordering in the select box.
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 territory list that can be used with a Phoenix.HTML.Form.t.
Arguments
formis aPhoenix.HTML.Form.t/0form.fieldis aPhoenix.HTML.Form.field/0field.optionsis aKeyword.t/0list of options.
Options
:territoriesdefines the list of territories to be displayed in the select tag. The default isLocalize.Territory.territory_codes/0.:styleis the format of the territory name. The options are:standard(the default),:shortand:variant.:localedefines the locale to be used to localise the description of the territories. The default is the locale returned byLocalize.get_locale/0.:collatoris a function used to sort the territories. The default collator sorts by name.:mapperis a function that creates the text to be displayed in the select tag for each territory. The default function is&({&1.flag <> " " <> &1.name, &1.territory_code}).:selectedidentifies the territory that is 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.Territory.select(:my_form, :territory, selected: :AU)
@spec territory_options(select_options()) :: [tuple()] | {:error, {module(), binary()}}
Generates a list of options for a territory 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.Territory.select/3 for options.
Returns
A list of
{display_name, territory_code}tuples, or{:error, {module(), binary()}}if validation fails.