Class: StimulusPlumbers::Components::Combobox

Inherits:
Plumber::Base show all
Defined in:
lib/stimulus_plumbers/components/combobox.rb,
lib/stimulus_plumbers/components/combobox/date.rb,
lib/stimulus_plumbers/components/combobox/time.rb,
lib/stimulus_plumbers/components/combobox/builder.rb,
lib/stimulus_plumbers/components/combobox/options.rb,
lib/stimulus_plumbers/components/combobox/trigger.rb,
lib/stimulus_plumbers/components/combobox/dropdown.rb,
lib/stimulus_plumbers/components/combobox/time/drum.rb,
lib/stimulus_plumbers/components/combobox/typeahead.rb,
lib/stimulus_plumbers/components/combobox/date/navigator.rb,
lib/stimulus_plumbers/components/combobox/options/option.rb,
lib/stimulus_plumbers/components/combobox/date/navigation.rb,
lib/stimulus_plumbers/components/combobox/options/option_group.rb

Defined Under Namespace

Classes: Builder, Date, Dropdown, Options, Time, Trigger, Typeahead

Constant Summary collapse

STIMULUS_CONTROLLER =
"input-combobox"
FORMAT_CONTROLLER =
"input-formatter"
FORMAT_ACTION =
"input-combobox:changed->input-formatter#format"

Instance Attribute Summary

Attributes inherited from Plumber::Base

#template

Instance Method Summary collapse

Methods inherited from Plumber::Base

#initialize, #theme

Methods included from Plumber::Renderer

#set_slots, #slot_block_for, #slot_kwargs_for, #slot_renderable?

Methods included from Plumber::Options::Aria

#labelled_aria

Methods included from Plumber::Options::Html

#merge_html_options

Constructor Details

This class inherits a constructor from StimulusPlumbers::Plumber::Base

Instance Method Details

#render(trigger: {}, input: {}, id: nil, label: nil, close_on_select: nil, **kwargs, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/stimulus_plumbers/components/combobox.rb', line 10

def render(trigger: {}, input: {}, id: nil, label: nil, close_on_select: nil, **kwargs, &block)
  trigger_opts = trigger.dup
  builder      = resolve_builder(&block)
  trigger_id   = id || trigger_opts.delete(:id) || template.sp_dom_id
  panel_id     = Popover.panel_id_for(trigger_id)

  template.(:div, **combobox_attrs(input, close_on_select, builder, panel_id, kwargs)) do
    build_popover(trigger_opts, input, builder, trigger_id, panel_id, label)
  end
end