Class: Playbook::PbTable::TableHeader

Inherits:
KitBase
  • Object
show all
Defined in:
app/pb_kits/playbook/pb_table/table_header.rb

Instance Attribute Summary

Attributes included from Playbook::Props

#values

Instance Method Summary collapse

Methods inherited from KitBase

#object

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_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, included, #max_width_options, #max_width_props, #max_width_values, #screen_size_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

#active_itemObject



95
96
97
98
99
100
101
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 95

def active_item
  active_item = {}
  sort_menu.each do |item|
    active_item = item if item[:active] == true
  end
  active_item
end

#active_or_first_item(items) ⇒ Object



63
64
65
66
67
68
69
70
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 63

def active_or_first_item(items)
  active_item = items.find { |hash| hash[:active] == true }
  if active_item.present?
    active_item
  else
    items[0]
  end
end

#align_classObject



31
32
33
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 31

def align_class
  align.present? ? "align_#{align}" : nil
end

#classnameObject



27
28
29
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 27

def classname
  generate_classname("pb_table_header_kit", align_class)
end


91
92
93
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 91

def link_style
  active_item.any? ? "" : "color: #687887;"
end


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 35

def next_link(sort_item: "")
  sort_menu_for = if sort_item.blank?
                    sort_menu
                  else
                    sort_items_for(sort_item)
                  end

  return sort_menu_for[0][:link] if sort_menu_for.all? { |item| item[:active] == false }

  link = ""

  sort_menu_for.each_with_index do |item, index|
    if item[:active] == true
      next_index = (index + 1) % sort_menu_for.length
      link = sort_menu_for[next_index][:link]
    end
  end
  link
end

#sort_icon(direction, active) ⇒ Object



80
81
82
83
84
85
86
87
88
89
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 80

def sort_icon(direction, active)
  case direction
  when "asc"
    active ? "sort-amount-up" : ""
  when "desc"
    active ? "sort-amount-down" : ""
  else
    "arrow-up-arrow-down"
  end
end

#sort_itemsObject



55
56
57
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 55

def sort_items
  sort_menu.map { |hash| hash[:item] }.uniq
end

#sort_items_for(sort_item) ⇒ Object



59
60
61
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 59

def sort_items_for(sort_item)
  sort_menu.find_all { |hash| hash[:item] == sort_item }
end

#sorting_style?Boolean

Returns:



72
73
74
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 72

def sorting_style?
  sort_menu != [{}]
end

#use_dropdown_selectObject



76
77
78
# File 'app/pb_kits/playbook/pb_table/table_header.rb', line 76

def use_dropdown_select
  sort_menu != [{}] && (object.colspan > 1 || sort_dropdown)
end