Class: Ruflet::UI::Controls::RufletComponents::GridViewControl

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

Constant Summary collapse

TYPE =
"gridview".freeze
WIRE =
"GridView".freeze
KEYWORDS =
[:adaptive, :align, :animate_align, :animate_margin, :animate_offset, :animate_opacity, :animate_position, :animate_rotation, :animate_scale, :animate_size, :aspect_ratio, :auto_scroll, :badge, :bottom, :build_controls_on_demand, :cache_extent, :child_aspect_ratio, :clip_behavior, :col, :controls, :data, :disabled, :expand, :expand_loose, :height, :horizontal, :key, :left, :margin, :max_extent, :offset, :opacity, :padding, :reverse, :right, :rotate, :rtl, :run_spacing, :runs_count, :scale, :scroll, :scroll_interval, :semantic_child_count, :size_change_interval, :spacing, :tooltip, :top, :visible, :width, :on_animation_end, :on_scroll, :on_size_change].freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES, Control::SCHEMA_METADATA_CACHE

Instance Attribute Summary

Attributes inherited from Control

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

Instance Method Summary collapse

Methods inherited from Control

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

Constructor Details

#initialize(id: nil, **props) ⇒ GridViewControl

Returns a new instance of GridViewControl.

Raises:

  • (ArgumentError)


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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/ruflet_ui/ruflet/ui/controls/shared/gridview_control.rb', line 13

def initialize(id: nil, **props)
  unknown = props.keys.reject { |key| KEYWORDS.include?(key) }
  raise ArgumentError, "unknown keywords: #{unknown.join(', ')}" unless unknown.empty?
  adaptive = props[:adaptive]
  align = props[:align]
  animate_align = props[:animate_align]
  animate_margin = props[:animate_margin]
  animate_offset = props[:animate_offset]
  animate_opacity = props[:animate_opacity]
  animate_position = props[:animate_position]
  animate_rotation = props[:animate_rotation]
  animate_scale = props[:animate_scale]
  animate_size = props[:animate_size]
  aspect_ratio = props[:aspect_ratio]
  auto_scroll = props[:auto_scroll]
  badge = props[:badge]
  bottom = props[:bottom]
  build_controls_on_demand = props[:build_controls_on_demand]
  cache_extent = props[:cache_extent]
  child_aspect_ratio = props[:child_aspect_ratio]
  clip_behavior = props[:clip_behavior]
  col = props[:col]
  controls = props[:controls]
  data = props[:data]
  disabled = props[:disabled]
  expand = props[:expand]
  expand_loose = props[:expand_loose]
  height = props[:height]
  horizontal = props[:horizontal]
  key = props[:key]
  left = props[:left]
  margin = props[:margin]
  max_extent = props[:max_extent]
  offset = props[:offset]
  opacity = props[:opacity]
  padding = props[:padding]
  reverse = props[:reverse]
  right = props[:right]
  rotate = props[:rotate]
  rtl = props[:rtl]
  run_spacing = props[:run_spacing]
  runs_count = props[:runs_count]
  scale = props[:scale]
  scroll = props[:scroll]
  scroll_interval = props[:scroll_interval]
  semantic_child_count = props[:semantic_child_count]
  size_change_interval = props[:size_change_interval]
  spacing = props[:spacing]
  tooltip = props[:tooltip]
  top = props[:top]
  visible = props[:visible]
  width = props[:width]
  on_animation_end = props[:on_animation_end]
  on_scroll = props[:on_scroll]
  on_size_change = props[:on_size_change]
  build_controls_on_demand = true if build_controls_on_demand.nil?
  child_aspect_ratio = 1.0 if child_aspect_ratio.nil?
  horizontal = false if horizontal.nil?
  reverse = false if reverse.nil?
  run_spacing = 10 if run_spacing.nil?
  runs_count = 1 if runs_count.nil?
  spacing = 10 if spacing.nil?

  props = {}
  props[:adaptive] = adaptive unless adaptive.nil?
  props[:align] = align unless align.nil?
  props[:animate_align] = animate_align unless animate_align.nil?
  props[:animate_margin] = animate_margin unless animate_margin.nil?
  props[:animate_offset] = animate_offset unless animate_offset.nil?
  props[:animate_opacity] = animate_opacity unless animate_opacity.nil?
  props[:animate_position] = animate_position unless animate_position.nil?
  props[:animate_rotation] = animate_rotation unless animate_rotation.nil?
  props[:animate_scale] = animate_scale unless animate_scale.nil?
  props[:animate_size] = animate_size unless animate_size.nil?
  props[:aspect_ratio] = aspect_ratio unless aspect_ratio.nil?
  props[:auto_scroll] = auto_scroll unless auto_scroll.nil?
  props[:badge] = badge unless badge.nil?
  props[:bottom] = bottom unless bottom.nil?
  props[:build_controls_on_demand] = build_controls_on_demand unless build_controls_on_demand.nil?
  props[:cache_extent] = cache_extent unless cache_extent.nil?
  props[:child_aspect_ratio] = child_aspect_ratio unless child_aspect_ratio.nil?
  props[:clip_behavior] = clip_behavior unless clip_behavior.nil?
  props[:col] = col unless col.nil?
  props[:controls] = controls unless controls.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[:height] = height unless height.nil?
  props[:horizontal] = horizontal unless horizontal.nil?
  props[:key] = key unless key.nil?
  props[:left] = left unless left.nil?
  props[:margin] = margin unless margin.nil?
  props[:max_extent] = max_extent unless max_extent.nil?
  props[:offset] = offset unless offset.nil?
  props[:opacity] = opacity unless opacity.nil?
  props[:padding] = padding unless padding.nil?
  props[:reverse] = reverse unless reverse.nil?
  props[:right] = right unless right.nil?
  props[:rotate] = rotate unless rotate.nil?
  props[:rtl] = rtl unless rtl.nil?
  props[:run_spacing] = run_spacing unless run_spacing.nil?
  props[:runs_count] = runs_count unless runs_count.nil?
  props[:scale] = scale unless scale.nil?
  props[:scroll] = scroll unless scroll.nil?
  props[:scroll_interval] = scroll_interval unless scroll_interval.nil?
  props[:semantic_child_count] = semantic_child_count unless semantic_child_count.nil?
  props[:size_change_interval] = size_change_interval unless size_change_interval.nil?
  props[:spacing] = spacing unless spacing.nil?
  props[:tooltip] = tooltip unless tooltip.nil?
  props[:top] = top unless top.nil?
  props[:visible] = visible unless visible.nil?
  props[:width] = width unless width.nil?
  props[:on_animation_end] = on_animation_end unless on_animation_end.nil?
  props[:on_scroll] = on_scroll unless on_scroll.nil?
  props[:on_size_change] = on_size_change unless on_size_change.nil?
  super(type: TYPE, id: id, **props)
end