Packages
corex
0.1.2
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
lib/components/checkable/helpers.ex
defmodule Corex.Checkable.Helpers do
@moduledoc false
def normalize_checked(true), do: true
def normalize_checked(false), do: false
def normalize_checked(:indeterminate), do: :indeterminate
def normalize_checked("indeterminate"), do: :indeterminate
def normalize_checked("true"), do: true
def normalize_checked("false"), do: false
def normalize_checked(nil), do: false
def normalize_checked(_), do: false
def checked_attr_value(true), do: "true"
def checked_attr_value(false), do: "false"
def checked_attr_value(:indeterminate), do: "indeterminate"
def checked_controlled_attr(controlled, checked) do
if controlled, do: checked_attr_value(normalize_checked(checked)), else: nil
end
def checked_default_attr(controlled, checked) do
c = normalize_checked(checked)
if controlled do
nil
else
if c == false, do: nil, else: checked_attr_value(c)
end
end
def checked_form_field_default_attr(checked) do
checked |> normalize_checked() |> checked_attr_value()
end
def native_checked(checked) do
normalize_checked(checked) == true
end
def visual_state(checked) do
case normalize_checked(checked) do
true -> "checked"
false -> "unchecked"
:indeterminate -> "indeterminate"
end
end
end