Module: StimulusPlumbers::Helpers::ComboboxHelper
- Included in:
- StimulusPlumbers::Helpers
- Defined in:
- lib/stimulus_plumbers/helpers/combobox_helper.rb
Instance Method Summary collapse
- #sp_combobox_date(**kwargs) ⇒ Object
- #sp_combobox_dropdown(**kwargs) ⇒ Object
- #sp_combobox_time(**kwargs) ⇒ Object
- #sp_combobox_typeahead(**kwargs) ⇒ Object
Instance Method Details
#sp_combobox_date(**kwargs) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 6 def sp_combobox_date(**kwargs) label = kwargs.delete(:label) value = kwargs.delete(:value) id = sp_dom_id opts = Components::Combobox::Date.default_opts.deep_merge( input: { value: value }, trigger: { id: id, aria: ({ label: label } if label), icon_trailing: "calendar" }.compact ) Components::Combobox.new(self).render( **opts, data: { input_formatter_format_value: "date" }, **kwargs ) do |popover_id| Components::Combobox::Date.new(self).render(value: value, popover_id: popover_id) end end |
#sp_combobox_dropdown(**kwargs) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 23 def sp_combobox_dropdown(**kwargs) label = kwargs.delete(:label) value = kwargs.delete(:value) = kwargs.delete(:options) { [] } id = sp_dom_id opts = Components::Combobox::Dropdown.default_opts.deep_merge( input: { value: value }, trigger: { id: id, aria: ({ label: label } if label), icon_trailing: "chevron-down" }.compact ) Components::Combobox.new(self).render(**opts, **kwargs) do Components::Combobox::Dropdown.new(self).render(options: , value: value, label: label) end end |
#sp_combobox_time(**kwargs) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 60 def sp_combobox_time(**kwargs) format = kwargs.delete(:format) { :h12 } label = kwargs.delete(:label) step = kwargs.delete(:step) { 1 } value = kwargs.delete(:value) id = sp_dom_id opts = Components::Combobox::Time.default_opts.deep_merge( input: { value: value }, trigger: { id: id, aria: ({ label: label } if label), icon_trailing: "clock" }.compact ) Components::Combobox.new(self).render( **opts, data: { input_formatter_format_value: "time", input_formatter_options_value: { format: format }.to_json }, **kwargs ) do Components::Combobox::Time.new(self).render(format: format, step: step, value: value) end end |
#sp_combobox_typeahead(**kwargs) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 37 def sp_combobox_typeahead(**kwargs) label = kwargs.delete(:label) value = kwargs.delete(:value) = kwargs.delete(:options) { [] } url = kwargs.delete(:url) id = sp_dom_id opts = Components::Combobox::Typeahead.default_opts.deep_merge( input: { value: value }, trigger: { id: id, aria: ({ label: label } if label) }.compact, popover: { data: url ? { combobox_dropdown_url_value: url } : {} } ) Components::Combobox.new(self).render( **opts, data: { input_combobox_combobox_dropdown_outlet: "##{Components::Combobox.popover_id_for(id)}", action: "input->input-combobox#onInput" }, **kwargs ) do Components::Combobox::Typeahead.new(self).render(options: , value: value, label: label) end end |