Class: Playbook::PbSelect::Select

Inherits:
KitBase
  • Object
show all
Defined in:
app/pb_kits/playbook/pb_select/select.rb

Instance Method Summary collapse

Methods inherited from KitBase

#object

Methods included from Order

included, #order_options, #order_props, #order_values

Methods included from FlexShrink

#flex_shrink_options, #flex_shrink_props, #flex_shrink_values, included

Methods included from FlexGrow

#flex_grow_options, #flex_grow_props, #flex_grow_values, included

Methods included from Flex

#flex_options, #flex_props, #flex_values, included

Methods included from AlignSelf

#align_self_options, #align_self_props, #align_self_values, included

Methods included from AlignContent

#align_content_options, #align_content_props, #align_content_values, included

Methods included from AlignItems

#align_items_options, #align_items_props, #align_items_values, included

Methods included from JustifySelf

included, #justify_self_options, #justify_self_props, #justify_self_values

Methods included from JustifyContent

included, #justify_content_options, #justify_content_props, #justify_content_values

Methods included from FlexWrap

#flex_wrap_options, #flex_wrap_props, #flex_wrap_values, included

Methods included from FlexDirection

#flex_direction_options, #flex_direction_props, #flex_direction_values, included

Methods included from Cursor

#cursor_options, #cursor_props, #cursor_values, included

Methods included from Display

#display_options, #display_props, #display_size_values, #display_values, included

Methods included from LineHeight

included, #line_height_options, #line_height_props, #line_height_values

Methods included from Shadow

included, #shadow_options, #shadow_props, #shadow_values

Methods included from NumberSpacing

included

Methods included from ZIndex

included

Methods included from Spacing

included, #max_width_options, #max_width_props, #max_width_values, #spacing_options, #spacing_props, #spacing_values

Methods included from Classnames

#generate_classname, #generate_classname_without_spacing, included

Methods included from Playbook::Props

#initialize, #prop

Methods included from Playbook::PbKitHelper

#pb_rails

Methods included from Playbook::PbFormsHelper

#pb_form_with

Instance Method Details

#classnameObject



26
27
28
# File 'app/pb_kits/playbook/pb_select/select.rb', line 26

def classname
  generate_classname("pb_select", select_margin_bottom, separator: " ")
end

#classnamesObject



22
23
24
# File 'app/pb_kits/playbook/pb_select/select.rb', line 22

def classnames
  classname + inline_class + compact_class
end

#compact_classObject



34
35
36
# File 'app/pb_kits/playbook/pb_select/select.rb', line 34

def compact_class
  compact ? "compact" : ""
end

#disabled_optionsObject



59
60
61
62
63
64
65
66
# File 'app/pb_kits/playbook/pb_select/select.rb', line 59

def disabled_options
  disabled_options = options.map { |option| option[:value] if option[:disabled] == true }.compact
  if disabled_options.empty?
    nil
  else
    disabled_options
  end
end

#inline_classObject



30
31
32
# File 'app/pb_kits/playbook/pb_select/select.rb', line 30

def inline_class
  inline ? " inline " : " "
end

#options_to_arrayObject



46
47
48
# File 'app/pb_kits/playbook/pb_select/select.rb', line 46

def options_to_array
  options.map { |option| [option[:value_text] || option[:value], option[:value]] }
end

#select_margin_bottomObject



42
43
44
# File 'app/pb_kits/playbook/pb_select/select.rb', line 42

def select_margin_bottom
  margin.present? || margin_bottom.present? ? nil : "mb_sm"
end

#select_wrapper_classObject



38
39
40
# File 'app/pb_kits/playbook/pb_select/select.rb', line 38

def select_wrapper_class
  "pb_select_kit_wrapper" + error_class
end

#selectedObject



50
51
52
53
54
55
56
57
# File 'app/pb_kits/playbook/pb_select/select.rb', line 50

def selected
  selections = options.map { |option| option[:value] if option[:selected] == true }.compact
  if selections.empty?
    nil
  else
    selections
  end
end