Class: Playbook::PbFilter::Filter
- Defined in:
- app/pb_kits/playbook/pb_filter/filter.rb
Constant Summary
Constants inherited from KitBase
Constants included from MaxHeight
Constants included from MinHeight
Constants included from Height
Constants included from VerticalAlign
VerticalAlign::SCREEN_SIZES, VerticalAlign::VERTICAL_ALIGN_VALUES
Constants included from Bottom
Constants included from Playbook::PositionPropsCss
Playbook::PositionPropsCss::POSITION_VALUES
Constants included from Right
Constants included from Top
Constants included from Left
Constants included from Truncate
Constants included from Overflow
Constants included from TextAlign
TextAlign::SCREEN_SIZES, TextAlign::TEXT_ALIGN_VALUES
Constants included from BorderRadius
BorderRadius::BORDER_RADIUS_VALUES
Constants included from Hover
Hover::HOVER_ATTRIBUTES, Hover::HOVER_BACKGROUND_VALUES, Hover::HOVER_COLOR_VALUES, Hover::HOVER_SCALE_VALUES, Hover::HOVER_SHADOW_VALUES, Hover::HOVER_UNDERLINE_VALUES, Hover::HOVER_VISIBLE_VALUES
Constants included from Playbook::Position
Playbook::Position::POSITION_VALUES
Constants included from Order
Order::ORDER_VALUES, Order::SCREEN_SIZES
Constants included from FlexShrink
FlexShrink::FLEX_SHRINK_VALUES, FlexShrink::SCREEN_SIZES
Constants included from FlexGrow
FlexGrow::FLEX_GROW_VALUES, FlexGrow::SCREEN_SIZES
Constants included from Flex
Flex::FLEX_VALUES, Flex::SCREEN_SIZES
Constants included from AlignSelf
AlignSelf::ALIGN_SELF_VALUES, AlignSelf::SCREEN_SIZES
Constants included from AlignContent
AlignContent::ALIGN_CONTENT_VALUES, AlignContent::SCREEN_SIZES
Constants included from AlignItems
AlignItems::ALIGN_ITEMS_VALUES, AlignItems::SCREEN_SIZES
Constants included from JustifySelf
JustifySelf::JUSTIFY_SELF_VALUES, JustifySelf::SCREEN_SIZES
Constants included from JustifyContent
JustifyContent::JUSTIFY_CONTENT_VALUES, JustifyContent::SCREEN_SIZES
Constants included from FlexWrap
FlexWrap::FLEX_WRAP_VALUES, FlexWrap::SCREEN_SIZES
Constants included from FlexDirection
FlexDirection::FLEX_DIRECTION_VALUES, FlexDirection::SCREEN_SIZES
Constants included from Cursor
Constants included from Display
Display::DISPLAY_SIZE_VALUES, Display::DISPLAY_VALUES
Constants included from LineHeight
LineHeight::LINE_HEIGHT_VALUES
Constants included from Shadow
Constants included from NumberSpacing
NumberSpacing::NUMBER_SPACING_VALUES
Constants included from ZIndex
ZIndex::SCREEN_SIZES, ZIndex::Z_INDEX_VALUES
Constants included from Spacing
Spacing::BREAK_METHOD_VALUES, Spacing::GAP_VALUES, Spacing::MAX_WIDTH_VALUES, Spacing::MIN_WIDTH_VALUES, Spacing::SCREEN_SIZES, Spacing::SCREEN_SIZE_VALUES, Spacing::SPACING_HASH_SKIP_KEYS, Spacing::SPACING_PROP_MAP, Spacing::SPACING_VALUES, Spacing::WIDTH_VALUES
Instance Attribute Summary
Attributes included from Playbook::Props
Instance Method Summary collapse
- #classname ⇒ Object
- #interactive_config_for(filter_name) ⇒ Object
- #interactive_display_value(config, raw_value) ⇒ Object
- #interactive_option_label(option, fallback = nil) ⇒ Object
- #interactive_option_value(config, option) ⇒ Object
- #interactive_options(config) ⇒ Object
- #interactive_value(config, key) ⇒ Object
- #result_text ⇒ Object
- #sort_icon(direction) ⇒ Object
- #wrapper(&block) ⇒ Object
Methods inherited from KitBase
#combined_html_options, #global_inline_props, #object, #pb_content_tag, #react_component
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
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, #hover_visible_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, #column_gap_options, #column_gap_props, #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, #row_gap_options, #row_gap_props, #screen_size_values, #spacing_options, #spacing_props, #spacing_values, #width_options, #width_props, #width_values
Methods included from Classnames
#dark_props, #generate_classname, #generate_classname_without_spacing, included
Methods included from Playbook::Props
Methods included from Playbook::PbKitHelper
#deprecated_kit_warning, #pb_rails
Methods included from Playbook::PbFormsHelper
Instance Method Details
#classname ⇒ Object
24 25 26 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 24 def classname generate_classname("pb_filter_kit").rstrip end |
#interactive_config_for(filter_name) ⇒ Object
28 29 30 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 28 def interactive_config_for(filter_name) interactive_filters_index[filter_name.to_s] end |
#interactive_display_value(config, raw_value) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 68 def interactive_display_value(config, raw_value) return raw_value if config.nil? return raw_value unless %w[select dropdown].include?(config[:type].to_s) match = (config).find do |opt| interactive_option_value(config, opt).to_s == raw_value.to_s end return raw_value unless match interactive_option_label(match, raw_value) end |
#interactive_option_label(option, fallback = nil) ⇒ Object
63 64 65 66 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 63 def interactive_option_label(option, fallback = nil) option = option.with_indifferent_access option[:label] || option[:text] || fallback end |
#interactive_option_value(config, option) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 52 def interactive_option_value(config, option) config = config.with_indifferent_access option = option.with_indifferent_access if config[:type].to_s == "dropdown" option[:id] || option[:value] || option[:label] else option[:value] || option[:text] || option[:label] end end |
#interactive_options(config) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 38 def (config) return [] if config.nil? config = config.with_indifferent_access if interactive_quickpick?(config) && Array(config[:options]).blank? return Playbook::PbDropdown::QuickpickHelper.( range_ends_today: config[:range_ends_today] || false, custom_quick_pick_dates: config[:custom_quick_pick_dates] || {} ) end Array(config[:options]) end |
#interactive_value(config, key) ⇒ Object
32 33 34 35 36 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 32 def interactive_value(config, key) return nil if config.nil? config[key] end |
#result_text ⇒ Object
80 81 82 83 84 85 86 87 88 89 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 80 def result_text case results when 1 "#{results} Result" when nil nil else "#{number_with_delimiter(results)} Results" end end |
#sort_icon(direction) ⇒ Object
99 100 101 102 103 104 105 106 107 108 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 99 def sort_icon(direction) case direction when "asc" "arrow-up-short-wide" when "desc" "arrow-down-wide-short" else "" end end |
#wrapper(&block) ⇒ Object
91 92 93 94 95 96 97 |
# File 'app/pb_kits/playbook/pb_filter/filter.rb', line 91 def wrapper(&block) if background pb_rails("card", props: { padding: "none" }, &block) else capture(&block) end end |