Class: DaisyUI::CollapsibleSubMenu
- Inherits:
-
Base
- Object
- Phlex::HTML
- Base
- DaisyUI::CollapsibleSubMenu
show all
- Defined in:
- lib/daisy_ui/collapsible_sub_menu.rb
Constant Summary
Constants inherited
from Base
Base::BOOLS, Base::COLOR_MODIFIERS
Instance Method Summary
collapse
Methods inherited from Base
inherited, register_modifiers
Constructor Details
Returns a new instance of CollapsibleSubMenu.
8
9
10
11
|
# File 'lib/daisy_ui/collapsible_sub_menu.rb', line 8
def initialize(*, **)
super
@items = []
end
|
Instance Method Details
#item ⇒ Object
43
44
45
|
# File 'lib/daisy_ui/collapsible_sub_menu.rb', line 43
def item(...)
@items << MenuItem.new(...)
end
|
#title(&block) ⇒ Object
37
38
39
40
41
|
# File 'lib/daisy_ui/collapsible_sub_menu.rb', line 37
def title(&block)
raise ArgumentError, "A collapsible submenu can only have one title" if @title
@title = block
end
|
#view_template(&block) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/daisy_ui/collapsible_sub_menu.rb', line 13
def view_template(&block)
block&.call(self)
details_attrs = {}
details_attrs[:open] = true if modifiers.include?(:open) || options.delete(:open) == true
details(**details_attrs) do
raise ArgumentError, "A collapsible submenu requires a title" unless @title
summary do
render @title
end
if @items.any?
ul class: classes, **attributes do
@items.each do |item|
render item
end
end
end
end
end
|