Current section
Files
Jump to
Current section
Files
lib/live_select/component.html.heex
<div
id={@id}
class={class(@style, :container, @container_class, @container_extra_class)}
name="live-select"
phx-hook="LiveSelect"
phx-target={@myself}
phx-click-away="click_away"
>
<%= text_input(@form, @text_input_field,
value: @input,
class:
"#{class(@style, :text_input, @text_input_class, @text_input_extra_class)}#{if @selected, do: " #{class(@style, :text_input_selected, @text_input_selected_class)}"}",
phx_click: "click",
placeholder: @placeholder,
phx_debounce: @debounce,
phx_keyup: "keyup",
phx_target: @myself,
phx_change: "change",
disabled: @disabled,
readonly: !is_nil(@selected),
autocomplete: "off",
phx_focus: "focus",
phx_blur: "blur"
) %>
<%= hidden_input(@form, @field, disabled: @disabled) %>
<ul
class={class(@style, :dropdown, @dropdown_class, @dropdown_extra_class)}
style={if Enum.empty?(@options) || @hide_dropdown, do: "display: none;", else: ""}
name="live-select-dropdown"
>
<%= for {{label, _}, idx} <- Enum.with_index(@options) do %>
<li
phx-click="option-click"
phx-value-idx={idx}
phx-target={@myself}
name={"option-#{idx + 1}"}
>
<div class={[
class(@style, :option, @option_class, @option_extra_class),
if(idx == @current_focus, do: class(@style, :active_option, @active_option_class))
]}>
<%= label %>
</div>
</li>
<% end %>
</ul>
</div>