Class: Ruflet::UI::Controls::RufletComponents::BannerControl

Inherits:
Control
  • Object
show all
Defined in:
lib/ruflet_ui/ruflet/ui/controls/materials/banner_control.rb

Constant Summary collapse

TYPE =
"banner".freeze
WIRE =
"Banner".freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES

Instance Attribute Summary

Attributes inherited from Control

#children, #id, #props, #runtime_page, #type, #wire_id

Instance Method Summary collapse

Methods inherited from Control

#emit, generate_id, #has_handler?, #on, #to_patch

Constructor Details

#initialize(id: nil, actions: nil, adaptive: nil, badge: nil, bgcolor: nil, col: nil, content: nil, content_padding: nil, content_text_style: nil, data: nil, disabled: nil, divider_color: nil, elevation: nil, expand: nil, expand_loose: nil, force_actions_below: nil, key: nil, leading: nil, leading_padding: nil, margin: nil, min_action_bar_height: nil, opacity: nil, open: nil, rtl: nil, shadow_color: nil, surface_tint_color: nil, tooltip: nil, visible: nil, on_dismiss: nil, on_visible: nil) ⇒ BannerControl

Returns a new instance of BannerControl.

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/banner_control.rb', line 11

def initialize(id: nil, actions: nil, adaptive: nil, badge: nil, bgcolor: nil, col: nil, content: nil, content_padding: nil, content_text_style: nil, data: nil, disabled: nil, divider_color: nil, elevation: nil, expand: nil, expand_loose: nil, force_actions_below: nil, key: nil, leading: nil, leading_padding: nil, margin: nil, min_action_bar_height: nil, opacity: nil, open: nil, rtl: nil, shadow_color: nil, surface_tint_color: nil, tooltip: nil, visible: nil, on_dismiss: nil, on_visible: nil)
  raise ArgumentError, "banner requires content" if content.nil?
  raise ArgumentError, "banner requires at least one actions control" if actions.nil? || actions.empty?
  {
    elevation: elevation,
    min_action_bar_height: min_action_bar_height
  }.each do |name, value|
    raise ArgumentError, "banner #{name} must be greater than or equal to 0" unless value.nil? || value >= 0
  end

  props = {}
  props[:actions] = actions unless actions.nil?
  props[:adaptive] = adaptive unless adaptive.nil?
  props[:badge] = badge unless badge.nil?
  props[:bgcolor] = bgcolor unless bgcolor.nil?
  props[:col] = col unless col.nil?
  props[:content] = content unless content.nil?
  props[:content_padding] = content_padding unless content_padding.nil?
  props[:content_text_style] = content_text_style unless content_text_style.nil?
  props[:data] = data unless data.nil?
  props[:disabled] = disabled unless disabled.nil?
  props[:divider_color] = divider_color unless divider_color.nil?
  props[:elevation] = elevation unless elevation.nil?
  props[:expand] = expand unless expand.nil?
  props[:expand_loose] = expand_loose unless expand_loose.nil?
  props[:force_actions_below] = force_actions_below unless force_actions_below.nil?
  props[:key] = key unless key.nil?
  props[:leading] = leading unless leading.nil?
  props[:leading_padding] = leading_padding unless leading_padding.nil?
  props[:margin] = margin unless margin.nil?
  props[:min_action_bar_height] = min_action_bar_height unless min_action_bar_height.nil?
  props[:opacity] = opacity unless opacity.nil?
  props[:open] = open unless open.nil?
  props[:rtl] = rtl unless rtl.nil?
  props[:shadow_color] = shadow_color unless shadow_color.nil?
  props[:surface_tint_color] = surface_tint_color unless surface_tint_color.nil?
  props[:tooltip] = tooltip unless tooltip.nil?
  props[:visible] = visible unless visible.nil?
  props[:on_dismiss] = on_dismiss unless on_dismiss.nil?
  props[:on_visible] = on_visible unless on_visible.nil?
  super(type: TYPE, id: id, **props)
end