Class: HakumiComponents::FloatButton::Group::Component

Inherits:
BaseComponent
  • Object
show all
Extended by:
T::Sig
Defined in:
app/components/hakumi_components/float_button/group/component.rb

Constant Summary collapse

SHAPES =
HakumiComponents::FloatButton::Component::SHAPES
TYPES =
HakumiComponents::FloatButton::Component::TYPES
TRIGGERS =
T.let([ :click, :hover ].freeze, T::Array[Symbol])
EXPAND_DIRECTIONS =
T.let([ :top, :right, :bottom, :left ].freeze, T::Array[Symbol])

Constants inherited from BaseComponent

BaseComponent::ControllerOptions, BaseComponent::DateInput, BaseComponent::DateLikeValue, BaseComponent::DimensionInput, BaseComponent::HtmlPayloadInput, BaseComponent::I18nOptionValue, BaseComponent::PresenceArray, BaseComponent::PresenceScalar, BaseComponent::PresenceValue, BaseComponent::RawHtmlInput, BaseComponent::SIZES, BaseComponent::SizeValue, BaseComponent::SymbolInput

Instance Method Summary collapse

Methods inherited from BaseComponent

#append_data_token, boolean_html_param, #build_inline_style, cast_boolean, #cast_boolean, #class_names, #component_classes, #data_attributes_from, #dimension_to_css, #ensure_dom_id!, float_html_param, #generate_id, #html_classes, html_param, html_primitive_param, #html_style, #i18n_scope, integer_html_param, #merge_attributes, #render_value, #size_to_pixels, #stimulus_attrs, string_html_param, string_or_symbol_array_html_param, symbol_html_param, #t_default, #translate_with_default, #validate_inclusion!, #validate_required!, #value_present?

Constructor Details

#initialize(icon: :plus, tooltip: nil, shape: :circle, type: :default, trigger: :click, open: nil, default_open: false, expand_direction: :top, items: [], floating: true, placement: :bottom_right, offset: nil, button_options: {}, **html_options) ⇒ Component

Returns a new instance of Component.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/components/hakumi_components/float_button/group/component.rb', line 33

def initialize(
  icon: :plus,
  tooltip: nil,
  shape: :circle,
  type: :default,
  trigger: :click,
  open: nil,
  default_open: false,
  expand_direction: :top,
  items: [],
  floating: true,
  placement: :bottom_right,
  offset: nil,
  button_options: {},
  **html_options
)
  @icon = T.let(icon, HakumiComponents::FloatButton::Component::IconValue)
  @tooltip = T.let(tooltip, T.nilable(String))
  @shape = T.let(shape, Symbol)
  @type = T.let(type, Symbol)
  @trigger = T.let(trigger, Symbol)
  @open = T.let(open, T.nilable(T::Boolean))
  @default_open = T.let(default_open, T::Boolean)
  @expand_direction = T.let(expand_direction, Symbol)
  @items = T.let(HakumiComponents::FloatButton::ItemSpec.coerce_all(items), T::Array[HakumiComponents::FloatButton::ItemSpec])
  @position = T.let(HakumiComponents::FloatButton::PositionConfig.new(floating: floating, placement: placement, offset: offset), HakumiComponents::FloatButton::PositionConfig)
  @button_options = T.let(button_options, Types::HtmlAttributes)
  @html_options = T.let(html_options, Types::HtmlAttributes)

  validate_props!
end

Instance Method Details

#callObject



66
67
68
69
70
71
72
73
# File 'app/components/hakumi_components/float_button/group/component.rb', line 66

def call
  (:div, root_attributes) do
    safe_join([
      trigger_button,
      actions_wrapper
    ])
  end
end