Class: Matestack::Ui::Bootstrap::Form::Select

Inherits:
VueJs::Components::Form::Select
  • Object
show all
Includes:
Registry
Defined in:
lib/matestack/ui/bootstrap/form/select.rb

Instance Method Summary collapse

Methods included from Registry

#bs_accordion, #bs_alert, #bs_avatar, #bs_badge, #bs_breadcrumb, #bs_btn, #bs_btn_group, #bs_card, #bs_carousel, #bs_close, #bs_col, #bs_collapse, #bs_container, #bs_dropdown, #bs_figure, #bs_form_checkbox, #bs_form_input, #bs_form_radio, #bs_form_select, #bs_form_submit, #bs_form_switch, #bs_icon, #bs_list_group, #bs_modal, #bs_navbar, #bs_page_heading, #bs_pagination, #bs_popover, #bs_progress, #bs_row, #bs_scrollspy, #bs_section_card, #bs_sidebar, #bs_smart_collection, #bs_spinner, #bs_tab_nav, #bs_tab_nav_content, #bs_toast, #bs_tooltip

Instance Method Details

#bootstrap_select_attributesObject



22
23
24
25
26
27
28
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 22

def bootstrap_select_attributes
  {
    class: form_select_class,
    size: size_class,
    disabled: context.disabled
  }
end

#form_select_classObject



30
31
32
33
34
35
36
37
38
39
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 30

def form_select_class
  case context.variant
  when :lg
    (options[:class] || "") << (" form-select form-select-lg")
  when :sm
    (options[:class] || "") << (" form-select form-select-sm")
  else
    (options[:class] || "") << (" form-select")
  end
end

#input_error_classObject



53
54
55
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 53

def input_error_class
  'is-invalid'
end

#render_errorsObject



45
46
47
48
49
50
51
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 45

def render_errors
  if display_errors?
    div class: 'invalid-feedback', 'v-for': "error in #{error_key}" do
      plain '{{ error }}'
    end
  end
end

#render_form_textObject



57
58
59
60
61
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 57

def render_form_text
  div id: "form_text_for_#{attribute_key}", class: "form-text" do
    plain context.form_text
  end
end

#responseObject



11
12
13
14
15
16
17
18
19
20
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 11

def response
  div class: "matestack-ui-bootstrap-form-select" do
    label input_label, for: attribute_key,  class: "form-label" if input_label
    select select_attributes.merge(bootstrap_select_attributes) do
      render_options
    end
    render_errors
    render_form_text
  end
end

#size_classObject



41
42
43
# File 'lib/matestack/ui/bootstrap/form/select.rb', line 41

def size_class
  context.size
end