Module: StimulusPlumbers::Helpers::ComboboxHelper
- Included in:
- StimulusPlumbers::Helpers
- Defined in:
- lib/stimulus_plumbers/helpers/combobox_helper.rb
Instance Method Summary collapse
- #sp_combobox_autocomplete(label: nil, options: [], value: nil, url: nil, **html_options) ⇒ Object
- #sp_combobox_date(label: nil, value: nil, **html_options) ⇒ Object
- #sp_combobox_dropdown(label: nil, options: [], value: nil, **html_options) ⇒ Object
- #sp_combobox_time(format: :h12, label: nil, step: 1, value: nil, **html_options) ⇒ Object
Instance Method Details
#sp_combobox_autocomplete(label: nil, options: [], value: nil, url: nil, **html_options) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 33 def sp_combobox_autocomplete(label: nil, options: [], value: nil, url: nil, **) id = sp_dom_id popover_id = "#{id}_popover" opts = Components::Combobox::Autocomplete.default_opts.deep_merge( input: { value: value }, popover: { content: Components::Combobox::Autocomplete.new(self).render( options: , value: value, label: label ), data: url ? { combobox_dropdown_url_value: url } : {} } ) opts = opts.deep_merge(trigger: { aria_label: label }) if label Components::Combobox::Renderer.new(self).render( base_id: id, options: opts, data: { input_combobox_combobox_dropdown_outlet: "##{popover_id}", action: "input->input-combobox#filter" }, ** ) end |
#sp_combobox_date(label: nil, value: nil, **html_options) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 6 def sp_combobox_date(label: nil, value: nil, **) opts = Components::Combobox::Date.default_opts.deep_merge( input: { value: value }, popover: { content: Components::Combobox::Date.new(self).render(value: value) } ) opts = opts.deep_merge(trigger: { aria_label: label }) if label Components::Combobox::Renderer.new(self).render( base_id: sp_dom_id, options: opts, data: { input_format_type_value: "date" }, ** ) end |
#sp_combobox_dropdown(label: nil, options: [], value: nil, **html_options) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 20 def sp_combobox_dropdown(label: nil, options: [], value: nil, **) opts = Components::Combobox::Dropdown.default_opts.deep_merge( input: { value: value }, popover: { content: Components::Combobox::Dropdown.new(self).render(options: , value: value, label: label) } ) opts = opts.deep_merge(trigger: { aria_label: label }) if label Components::Combobox::Renderer.new(self).render( base_id: sp_dom_id, options: opts, ** ) end |
#sp_combobox_time(format: :h12, label: nil, step: 1, value: nil, **html_options) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/stimulus_plumbers/helpers/combobox_helper.rb', line 59 def sp_combobox_time(format: :h12, label: nil, step: 1, value: nil, **) opts = Components::Combobox::Time.default_opts.deep_merge( input: { value: value }, popover: { content: Components::Combobox::Time.new(self).render(format: format, step: step, value: value) } ) opts = opts.deep_merge(trigger: { aria_label: label }) if label Components::Combobox::Renderer.new(self).render( base_id: sp_dom_id, options: opts, data: { input_format_type_value: "time", input_format_options_value: { format: format }.to_json }, ** ) end |