Class: Ruflet::UI::Controls::RufletComponents::DraggableControl

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

Constant Summary collapse

TYPE =
"draggable".freeze
WIRE =
"Draggable".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, affinity: nil, axis: nil, badge: nil, col: nil, content: nil, content_feedback: nil, content_when_dragging: nil, data: nil, disabled: nil, expand: nil, expand_loose: nil, group: nil, key: nil, max_simultaneous_drags: nil, opacity: nil, rtl: nil, tooltip: nil, visible: nil, on_drag_complete: nil, on_drag_start: nil) ⇒ DraggableControl

Returns a new instance of DraggableControl.



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
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/draggable_control.rb', line 11

def initialize(id: nil, affinity: nil, axis: nil, badge: nil, col: nil, content: nil, content_feedback: nil, content_when_dragging: nil, data: nil, disabled: nil, expand: nil, expand_loose: nil, group: nil, key: nil, max_simultaneous_drags: nil, opacity: nil, rtl: nil, tooltip: nil, visible: nil, on_drag_complete: nil, on_drag_start: nil)
  if content.nil? || (content.respond_to?(:props) && content.props["visible"] == false)
    raise ArgumentError, "draggable requires visible content"
  end
  if !max_simultaneous_drags.nil? && max_simultaneous_drags.negative?
    raise ArgumentError, "draggable max_simultaneous_drags must be greater than or equal to 0"
  end

  group = "default" if group.nil?

  props = {}
  props[:affinity] = affinity unless affinity.nil?
  props[:axis] = axis unless axis.nil?
  props[:badge] = badge unless badge.nil?
  props[:col] = col unless col.nil?
  props[:content] = content unless content.nil?
  props[:content_feedback] = content_feedback unless content_feedback.nil?
  props[:content_when_dragging] = content_when_dragging unless content_when_dragging.nil?
  props[:data] = data unless data.nil?
  props[:disabled] = disabled unless disabled.nil?
  props[:expand] = expand unless expand.nil?
  props[:expand_loose] = expand_loose unless expand_loose.nil?
  props[:group] = group unless group.nil?
  props[:key] = key unless key.nil?
  props[:max_simultaneous_drags] = max_simultaneous_drags unless max_simultaneous_drags.nil?
  props[:opacity] = opacity unless opacity.nil?
  props[:rtl] = rtl unless rtl.nil?
  props[:tooltip] = tooltip unless tooltip.nil?
  props[:visible] = visible unless visible.nil?
  props[:on_drag_complete] = on_drag_complete unless on_drag_complete.nil?
  props[:on_drag_start] = on_drag_start unless on_drag_start.nil?
  super(type: TYPE, id: id, **props)
end