Class: Glimmer::Web::Component::MultiCheckboxDropdown
- Inherits:
-
Object
- Object
- Glimmer::Web::Component::MultiCheckboxDropdown
- Includes:
- Glimmer::Web::Component
- Defined in:
- lib/glimmer/web/component/multi_checkbox_dropdown.rb
Constant Summary collapse
- TRANSLATIONS_DEFAULT =
{ en: { select: 'Select', items_selected: 'items selected', }, fr: { select: 'Sélectionnez', items_selected: 'articles sélectionnés', }, es: { select: 'Seleccione', items_selected: 'artículos seleccionados', }, }
- SELECTED_VALUES_FORMATTER_DEFAULT =
->(multi_checkbox_dropdown) { selected_value_count = multi_checkbox_dropdown.selected_values&.size.to_i case selected_value_count when 0 multi_checkbox_dropdown.locale_translations[:select] when 1, 2 multi_checkbox_dropdown.selected_display_values.join(', ') else items_selected_translation = multi_checkbox_dropdown.locale_translations[:items_selected] "#{selected_value_count} #{items_selected_translation}" end }
- REGEXP_LOCALE_COUNTRY =
/-|_/- CSS_CLASS_CONTENT_HIDDEN =
"#{MultiCheckboxDropdown.component_element_class}-content-hidden"- CSS_CLASS_CONTENT_UL =
"#{MultiCheckboxDropdown.component_element_class}-ul"
Instance Attribute Summary collapse
-
#display_content ⇒ Object
Returns the value of attribute display_content.
Instance Method Summary collapse
- #display_value_for(value) ⇒ Object
- #locale_translations ⇒ Object
- #selected_display_values ⇒ Object
- #selected_indexes ⇒ Object
- #toggle_content(display = nil) ⇒ Object
Instance Attribute Details
#display_content ⇒ Object
Returns the value of attribute display_content.
61 62 63 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 61 def display_content @display_content end |
Instance Method Details
#display_value_for(value) ⇒ Object
106 107 108 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 106 def display_value_for(value) display_values[values.index(value)] end |
#locale_translations ⇒ Object
88 89 90 91 92 93 94 95 96 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 88 def locale_translations the_translations = translations[locale.to_s.downcase.to_sym] if the_translations.nil? && locale.to_s.match(REGEXP_LOCALE_COUNTRY) # treat fr-CA as fr, or en-US as en partial_locale = locale.to_s.split(REGEXP_LOCALE_COUNTRY).first.downcase.to_sym the_translations = translations[partial_locale] end the_translations || {} end |
#selected_display_values ⇒ Object
102 103 104 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 102 def selected_display_values selected_indexes.map { |selected_index| display_values[selected_index] } end |
#selected_indexes ⇒ Object
98 99 100 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 98 def selected_indexes selected_values.map { |selected_value| values.index(selected_value) } end |
#toggle_content(display = nil) ⇒ Object
110 111 112 113 |
# File 'lib/glimmer/web/component/multi_checkbox_dropdown.rb', line 110 def toggle_content(display = nil) new_value = display.nil? ? !self.display_content : display self.display_content = new_value end |