Class: Avo::TabGroup

Inherits:
Object
  • Object
show all
Includes:
Concerns::HasFields, Concerns::IsResourceItem
Defined in:
lib/avo/tab_group.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Concerns::IsResourceItem

#is_field?, #is_main_panel?, #is_panel?, #is_tab?, #is_tab_group?, #is_tool?

Methods included from Concerns::HasFields

#fields, #get_field, #get_field_definitions, #get_fields, #get_items, #get_tabs, #hydrate_fields, #tab_groups, #tools

Constructor Details

#initialize(index: 0, view: nil, style: nil) ⇒ TabGroup

Returns a new instance of TabGroup.



12
13
14
15
16
17
# File 'lib/avo/tab_group.rb', line 12

def initialize(index: 0, view: nil, style: nil)
  @index = index
  @items_holder = Avo::ItemsHolder.new
  @view = view
  @style = style
end

Instance Attribute Details

#indexObject

Returns the value of attribute index.



8
9
10
# File 'lib/avo/tab_group.rb', line 8

def index
  @index
end

#items_holderObject

Returns the value of attribute items_holder.



9
10
11
# File 'lib/avo/tab_group.rb', line 9

def items_holder
  @items_holder
end

#styleObject

Returns the value of attribute style.



10
11
12
# File 'lib/avo/tab_group.rb', line 10

def style
  @style
end

#viewObject (readonly)

Returns the value of attribute view.



7
8
9
# File 'lib/avo/tab_group.rb', line 7

def view
  @view
end

Instance Method Details

#hydrate(view: nil) ⇒ Object



19
20
21
22
23
# File 'lib/avo/tab_group.rb', line 19

def hydrate(view: nil)
  @view = view

  self
end

#turbo_frame_idObject



39
40
41
# File 'lib/avo/tab_group.rb', line 39

def turbo_frame_id
  "#{Avo::TabGroup.to_s.parameterize} #{index}".parameterize
end

#visible_itemsObject



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/avo/tab_group.rb', line 25

def visible_items
  items.map do |item|
    item.hydrate view: view
  end
  .select do |item|
    # Remove items hidden in this view
    item.visible_on? view
  end
  .select do |item|
    # Remove empty items
    !item.empty?
  end
end