Class: Playbook::PbTypeahead::Typeahead

Inherits:
KitBase
  • Object
show all
Defined in:
app/pb_kits/playbook/pb_typeahead/typeahead.rb

Constant Summary

Constants included from Playbook::PositionPropsCss

Playbook::PositionPropsCss::POSITION_VALUES

Instance Attribute Summary

Attributes included from Playbook::Props

#values

Instance Method Summary collapse

Methods inherited from KitBase

#combined_html_options, #global_inline_props, #object, #pb_content_tag

Methods included from MaxHeight

included, #max_height_options, #max_height_props, #max_height_values

Methods included from MinHeight

included, #min_height_options, #min_height_props, #min_height_values

Methods included from Height

#height_options, #height_props, #height_values, included

Methods included from VerticalAlign

included, #vertical_align_options, #vertical_align_props, #vertical_align_values

Methods included from Bottom

#bottom_options, #bottom_values, included

Methods included from Playbook::PositionPropsCss

#positioning_css

Methods included from Right

included, #right_options, #right_values

Methods included from Top

included, #top_options, #top_values

Methods included from Left

included, #left_options, #left_values

Methods included from Truncate

included, #truncate_options, #truncate_props, #truncate_values

Methods included from Overflow

included, #overflow_options, #overflow_props, #overflow_values

Methods included from TextAlign

included, #text_align_options, #text_align_props, #text_align_values

Methods included from BorderRadius

#border_radius_options, #border_radius_props, #border_radius_values, included

Methods included from Hover

#hover_attributes, #hover_background_values, #hover_color_values, #hover_options, #hover_props, #hover_scale_values, #hover_shadow_values, #hover_underline_values, #hover_values, included

Methods included from Playbook::Position

included, #position_options, #position_values

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, #number_spacing_options, #number_spacing_values

Methods included from ZIndex

included, #screen_size_values, #z_index_options, #z_index_props, #z_index_values

Methods included from Spacing

#break_method_values, #filter_classname, #gap_options, #gap_props, #gap_values, included, #max_width_options, #max_width_props, #max_width_values, #min_width_options, #min_width_props, #min_width_values, #screen_size_values, #spacing_options, #spacing_props, #spacing_values, #width_options, #width_props, #width_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



58
59
60
61
# File 'app/pb_kits/playbook/pb_typeahead/typeahead.rb', line 58

def classname
  default_margin_bottom = margin_bottom.present? ? "" : " mb_sm"
  generate_classname("pb_typeahead_kit") + default_margin_bottom
end

#dataObject



67
68
69
70
71
72
73
74
75
76
# File 'app/pb_kits/playbook/pb_typeahead/typeahead.rb', line 67

def data
  Hash(values[:data]).merge(
    pb_typeahead_kit: true,
    pb_typeahead_kit_search_term_minimum_length: search_term_minimum_length,
    pb_typeahead_kit_search_debounce_timeout: search_debounce_timeout,
    pb_typeahead_kit_clear_on_context_change: clear_on_context_change,
    pb_typeahead_kit_search_context_selector: search_context_selector,
    pb_typeahead_kit_options_by_context: options_by_context.to_json
  )
end

#inline_classObject



63
64
65
# File 'app/pb_kits/playbook/pb_typeahead/typeahead.rb', line 63

def inline_class
  inline ? " inline" : ""
end

#is_react?Boolean

Returns:



78
79
80
# File 'app/pb_kits/playbook/pb_typeahead/typeahead.rb', line 78

def is_react?
  pills || !is_multi || wrapped
end

#typeahead_react_optionsObject



82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'app/pb_kits/playbook/pb_typeahead/typeahead.rb', line 82

def typeahead_react_options
  base_options = {
    className: classname,
    dark: dark,
    defaultValue: default_options,
    error: error,
    htmlOptions: html_options,
    id: id,
    inline: inline,
    isMulti: is_multi,
    label: label,
    marginBottom: margin_bottom,
    multiKit: multi_kit,
    name: name,
    options: options,
    pillColor: pill_color,
    placeholder: placeholder,
    plusIcon: plus_icon,
    truncate: truncate,
    wrapped: wrapped,
    searchContextSelector: search_context_selector,
    optionsByContext: options_by_context,
    clearOnContextChange: clear_on_context_change,
    disabled: disabled,
  }

  base_options[:getOptionLabel] = get_option_label if get_option_label.present?
  base_options[:getOptionValue] = get_option_value if get_option_value.present?
  if async
    base_options[:async] = true
    base_options[:loadOptions] = load_options
  end
  base_options
end