atome 0.5.1.1 → 0.5.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -5
  3. data/app_builder_helpers/Rakefile +1 -1
  4. data/exe/atome +1 -1
  5. data/lib/atome/{atome_meta_engine.rb → atome.rb} +20 -22
  6. data/lib/atome/extensions/atome.rb +2 -2
  7. data/lib/atome/genesis/generators/atome.rb +25 -0
  8. data/lib/atome/genesis/generators/event.rb +16 -0
  9. data/lib/atome/genesis/generators/identity.rb +14 -2
  10. data/lib/atome/genesis/generators/spatial.rb +1 -0
  11. data/lib/atome/genesis/generators/utility.rb +18 -1
  12. data/lib/atome/genesis/genesis.rb +4 -9
  13. data/lib/atome/helpers/callbacks.rb +80 -0
  14. data/lib/atome/helpers/essentials.rb +6 -4
  15. data/lib/atome/helpers/sanitizer.rb +1 -20
  16. data/lib/atome/helpers/utilities.rb +8 -11
  17. data/lib/atome/kernel/essentials.rb +0 -7
  18. data/lib/atome/kernel/universe.rb +27 -10
  19. data/lib/atome/presets/atome.rb +27 -5
  20. data/lib/atome/renderers/browser/atome.rb +22 -20
  21. data/lib/atome/renderers/browser/browser.rb +12 -143
  22. data/lib/atome/renderers/browser/event.rb +56 -1
  23. data/lib/atome/renderers/browser/helpers/animation_helper.rb +0 -0
  24. data/lib/atome/renderers/browser/helpers/browser_helper.rb +18 -0
  25. data/lib/atome/renderers/browser/helpers/color_helper.rb +35 -0
  26. data/lib/atome/renderers/browser/helpers/drag_helper.rb +39 -0
  27. data/lib/atome/renderers/browser/helpers/effect_helper.rb +22 -0
  28. data/lib/atome/renderers/browser/helpers/image_helper.rb +27 -0
  29. data/lib/atome/renderers/browser/helpers/shadow_helper.rb +33 -0
  30. data/lib/atome/renderers/browser/helpers/shape_helper.rb +22 -0
  31. data/lib/atome/renderers/browser/helpers/text_helper.rb +26 -0
  32. data/lib/atome/renderers/browser/helpers/video_helper.rb +43 -0
  33. data/lib/atome/renderers/browser/helpers/web_helper.rb +30 -0
  34. data/lib/atome/renderers/browser/identity.rb +5 -1
  35. data/lib/atome/renderers/browser/spatial.rb +4 -3
  36. data/lib/atome/renderers/browser/utility.rb +18 -5
  37. data/lib/atome/renderers/headless/headless.rb +10 -0
  38. data/lib/atome/renderers/headless/utility.rb +6 -0
  39. data/lib/atome/renderers/html/html.rb +1 -1
  40. data/lib/atome/renderers/html/spatial.rb +1 -1
  41. data/lib/atome/renderers/html/utility.rb +2 -0
  42. data/lib/atome/renderers/renderer.rb +13 -0
  43. data/lib/atome/renderers/server/server.rb +10 -0
  44. data/lib/atome/renderers/server/utility.rb +6 -0
  45. data/lib/atome/version.rb +1 -1
  46. data/lib/atome.rb +5 -2
  47. data/sig/atome.rbs +1 -0
  48. data/vendor/assets/build/css/style.css +2 -1
  49. data/vendor/assets/build/index.html +9 -6
  50. data/vendor/assets/build/js/atome/atome.js +150 -72
  51. data/vendor/assets/build/js/atome/atome_helpers/atome_animate.js +65 -0
  52. data/vendor/assets/build/js/atome/atome_helpers/atome_drag.js +85 -0
  53. data/vendor/assets/build/js/atome/atome_helpers/atome_file.js +7 -0
  54. data/vendor/assets/build/js/atome/atome_helpers/atome_sort.js +20 -0
  55. data/vendor/assets/build/js/atome/atome_helpers/atome_time.js +10 -0
  56. data/vendor/assets/build/js/atome/atome_helpers/atome_video.js +12 -0
  57. data/vendor/assets/build/js/third_parties/popmotion.min.js +1 -1
  58. data/vendor/assets/build/js/third_parties/sortable.min.js +2 -0
  59. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +36 -0
  60. data/vendor/assets/build/medias/rubies/examples/_animation.rb +46 -0
  61. data/vendor/assets/build/medias/rubies/examples/at.rb +17 -0
  62. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
  63. data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
  64. data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
  65. data/vendor/assets/build/medias/rubies/examples/drag.rb +27 -33
  66. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  67. data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
  68. data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
  69. data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
  70. data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
  71. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
  72. data/vendor/assets/build/medias/rubies/examples/mute.rb +22 -0
  73. data/vendor/assets/build/medias/rubies/examples/on.rb +26 -0
  74. data/vendor/assets/build/medias/rubies/examples/{parent.rb → parents.rb} +6 -6
  75. data/vendor/assets/build/medias/rubies/examples/pause.rb +15 -0
  76. data/vendor/assets/build/medias/rubies/examples/play.rb +15 -0
  77. data/vendor/assets/build/medias/rubies/examples/{_read.rb → read.rb} +4 -2
  78. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  79. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
  80. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  81. data/vendor/assets/build/medias/rubies/examples/schedule.rb +7 -6
  82. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  83. data/vendor/assets/build/medias/rubies/examples/sort.rb +16 -0
  84. data/vendor/assets/build/medias/rubies/examples/time.rb +14 -0
  85. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  86. data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
  87. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  88. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  89. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  90. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  91. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  92. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  93. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  94. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
  95. metadata +46 -11
  96. data/lib/atome/processors/utilities.rb +0 -10
  97. data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
  98. data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
  99. data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
  100. data/vendor/assets/build/medias/rubies/examples/_refresh.rb +0 -9
@@ -17,8 +17,6 @@ generator.build_render_method(:browser_shape) do
17
17
  div(id: id_found).atome
18
18
  end.append_to(BrowserHelper.browser_document[:user_view])
19
19
  @browser_object = BrowserHelper.browser_document[id_found]
20
- # Render particles below
21
- a_render
22
20
  end
23
21
 
24
22
  generator.build_render_method(:browser_color) do |_value|
@@ -36,9 +34,6 @@ generator.build_render_method(:browser_color) do |_value|
36
34
  #{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
37
35
  # TODO/ use the code below to modify the style tag
38
36
  @browser_object = BrowserHelper.browser_document[id_found]
39
- # now we just have to attach the color atome
40
- parents(@atome[:parents])
41
- children(@atome[:children])
42
37
  end
43
38
 
44
39
  generator.build_render_method(:browser_shadow) do |_value|
@@ -65,31 +60,38 @@ end
65
60
 
66
61
  generator.build_render_method(:browser_image) do |_user_prc|
67
62
  @browser_type = :div
68
- id_found = id
63
+ id_found = @atome[:id]
69
64
  DOM do
70
65
  img({ id: id_found }).atome
71
66
  end.append_to(BrowserHelper.browser_document[:user_view])
72
67
  @browser_object = BrowserHelper.browser_document[id_found]
73
- # Render particles below
74
- a_render
75
- end
76
-
77
- generator.build_render_method(:browser_video) do |_value, _user_proc|
78
- # @browser_type = :div
79
- # id_found = id
80
- # DOM do
81
- # video({ id: id_found, autoplay: true, loop: false, muted: true }).atome
82
- # end.append_to(BrowserHelper.browser_document[:user_view])
83
- # @browser_object = BrowserHelper.browser_document[id_found]
84
68
  end
85
69
 
86
70
  generator.build_render_method(:browser_text) do |_value, _user_proc|
87
- id_found = id
71
+ id_found = @atome[:id]
88
72
  DOM do
89
73
  div(id: id_found).atome.text
90
74
  end.append_to(BrowserHelper.browser_document[:user_view])
91
75
  @browser_object = BrowserHelper.browser_document[id_found]
92
76
  @browser_type = :div
93
- # Render particles below
94
- a_render
95
77
  end
78
+
79
+ generator.build_render_method(:browser_web) do
80
+ @browser_type = :web
81
+ id_found = @atome[:id]
82
+ DOM do
83
+ iframe({ id: id_found }).atome
84
+ end.append_to(BrowserHelper.browser_document[:user_view])
85
+ @browser_object = BrowserHelper.browser_document[id_found]
86
+ @browser_object.attributes[:allow] = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
87
+ @browser_object.attributes[:allowfullscreen] = true
88
+ end
89
+
90
+ generator.build_render_method(:browser_video) do |_value, _user_proc|
91
+ @browser_type = :div
92
+ id_found = @atome[:id]
93
+ DOM do
94
+ video({ id: id_found, autoplay: false, loop: false, muted: false }).atome
95
+ end.append_to(BrowserHelper.browser_document[:user_view])
96
+ @browser_object = BrowserHelper.browser_document[id_found]
97
+ end
@@ -8,151 +8,20 @@ require 'atome/renderers/browser/material'
8
8
  require 'atome/renderers/browser/spatial'
9
9
  require 'atome/renderers/browser/atome'
10
10
  require 'atome/renderers/browser/utility'
11
+ require 'atome/renderers/browser/helpers/browser_helper'
12
+ require 'atome/renderers/browser/helpers/animation_helper'
13
+ require 'atome/renderers/browser/helpers/color_helper'
14
+ require 'atome/renderers/browser/helpers/drag_helper'
15
+ require 'atome/renderers/browser/helpers/effect_helper'
16
+ require 'atome/renderers/browser/helpers/image_helper'
17
+ require 'atome/renderers/browser/helpers/shadow_helper'
18
+ require 'atome/renderers/browser/helpers/shape_helper'
19
+ require 'atome/renderers/browser/helpers/text_helper'
20
+ require 'atome/renderers/browser/helpers/video_helper'
21
+ require 'atome/renderers/browser/helpers/web_helper'
11
22
 
12
23
  class Atome
13
24
  attr_accessor :browser_object
14
25
  end
15
26
 
16
- # for opal rendering
17
- class BrowserHelper
18
- def self.browser_document
19
- # Work because of the patched versioo of opal-browser(0.39)
20
- Browser.window
21
- end
22
-
23
- def self.browser_attach_div(parents, html_object, _atome)
24
- html_object.append_to(browser_document[parents])
25
- end
26
-
27
- def self.browser_attach_style(parents, _html_object, atome)
28
- browser_document[parents].add_class(atome[:id])
29
- end
30
-
31
- def self.browser_blur_style(_browser_object, value, atome)
32
- b_left = "#{atome[:left]}px"
33
- b_top = "#{atome[:top]}px"
34
- b_blur = "#{atome[:blur] = value}px"
35
- b_red = atome[:red] * 255
36
- b_green = atome[:green] * 255
37
- b_blue = (atome[:blue]) * 255
38
- b_direction = atome[:direction]
39
- b_alpha = atome[:alpha]
40
-
41
- shadow_updated = "#{b_left} #{b_top} #{b_blur} rgba(#{b_red}, #{b_green}, #{b_blue}, #{b_alpha}) #{b_direction}"
42
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
43
- end
44
-
45
- def self.browser_blur_div(browser_object, value, _atome)
46
- browser_object.style[:filter] = "blur(#{value}px)"
47
- end
48
- end
49
-
50
- def browser_colorize_color(color_updated, atome)
51
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
52
- end
53
-
54
- def browser_colorize_shadow(color_updated, atome)
55
- left = atome[:left]
56
- top = atome[:top]
57
- blur = atome[:blur]
58
- direction = atome[:direction]
59
- shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
60
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
61
- end
62
-
63
- def browser_left_shape(value, browser_object, _atome)
64
- browser_object.style[:left] = "#{value}px"
65
- end
66
-
67
- def browser_right_shape(value, browser_object, _atome)
68
- browser_object.style[:right] = "#{value}px"
69
- end
70
-
71
- def browser_top_shape(value, browser_object, _atome)
72
- browser_object.style[:top] = "#{value}px"
73
- end
74
-
75
- def browser_bottom_shape(value, browser_object, _atome)
76
- browser_object.style[:bottom] = "#{value}px"
77
- end
78
-
79
- def browser_left_image(value, browser_object, _atome)
80
- browser_object.style[:left] = "#{value}px"
81
- end
82
-
83
- def browser_right_image(value, browser_object, _atome)
84
- browser_object.style[:right] = "#{value}px"
85
- end
86
-
87
- def browser_top_image(value, browser_object, _atome)
88
- browser_object.style[:top] = "#{value}px"
89
- end
90
-
91
- def browser_bottom_image(value, browser_object, _atome)
92
- browser_object.style[:bottom] = "#{value}px"
93
- end
94
-
95
- def browser_left_shadow(value, _browser_object, atome)
96
- ls_left = "#{atome[:left] = value}px"
97
- ls_top = "#{atome[:top]}px"
98
- ls_blur = "#{atome[:blur]}px"
99
- red = atome[:red] * 255
100
- green = atome[:green] * 255
101
- blue = (atome[:blue]) * 255
102
- direction = atome[:direction]
103
- alpha = atome[:alpha]
104
-
105
- shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
106
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
107
- end
108
-
109
- def browser_top_shadow(value, _browser_object, atome)
110
- rs_left = "#{atome[:left]}px"
111
- rs_top = "#{atome[:top] = value}px"
112
- rs_blur = "#{atome[:blur]}px"
113
- red = atome[:red] * 255
114
- green = atome[:green] * 255
115
- blue = (atome[:blue]) * 255
116
- direction = atome[:direction]
117
- alpha = atome[:alpha]
118
-
119
- shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
120
- `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
121
- end
122
-
123
- def browser_left_color(_value, _browser_object, _atome)
124
- puts 'code to write when implementing gradient'
125
- end
126
-
127
- def browser_right_color(_value, _browser_object, _atome)
128
- puts 'code to write when implementing gradient'
129
- end
130
-
131
- def browser_top_color(_value, _browser_object, _atome)
132
- puts 'code to write when implementing gradient'
133
- end
134
-
135
- def browser_bottom_color(_value, _browser_object, _atome)
136
- puts 'code to write when implementing gradient'
137
- end
138
-
139
- # text
140
- def browser_left_text(value, browser_object, _atome)
141
- browser_object.style[:left] = "#{value}px"
142
- end
143
-
144
- def browser_right_text(value, browser_object, _atome)
145
- browser_object.style[:right] = "#{value}px"
146
- end
147
-
148
- def browser_top_text(value, browser_object, _atome)
149
- browser_object.style[:top] = "#{value}px"
150
- end
151
-
152
- def browser_bottom_text(value, browser_object, _atome)
153
- browser_object.style[:bottom] = "#{value}px"
154
- end
155
-
156
- def browser_data_text(value)
157
- browser_object.text = value
158
- end
27
+ AtomeJS=`atomeJS`
@@ -4,6 +4,61 @@ generator = Genesis.generator
4
4
 
5
5
  generator.build_render_method(:browser_touch) do |_value, proc|
6
6
  @browser_object.on :click do |e|
7
- instance_exec(&proc) if proc.is_a?(Proc)
7
+ instance_exec(e, &proc) if proc.is_a?(Proc)
8
8
  end
9
9
  end
10
+
11
+ generator.build_render_method(:browser_play) do |value, proc|
12
+ # first we reinit the 'at' event so the condition will be met again
13
+ @at_time[:used] = nil
14
+ @browser_object.currentTime = value if value != true
15
+ BrowserHelper.send("browser_play_#{@atome[:type]}", value, @browser_object, @atome, self, proc)
16
+ end
17
+
18
+ generator.build_render_method(:browser_time) do |value = nil, _proc|
19
+ if value
20
+ @browser_object.currentTime = value
21
+ else
22
+ @browser_object.currentTime
23
+ end
24
+ end
25
+
26
+ generator.build_render_method(:browser_pause) do |_value, proc|
27
+ instance_exec(@browser_object.currentTime, &proc) if proc.is_a?(Proc)
28
+ @browser_object.pause
29
+ end
30
+
31
+ generator.build_render_method(:on) do |value, proc|
32
+ @browser_object.on(value) do |e|
33
+ instance_exec(e, &proc) if proc.is_a?(Proc)
34
+ end
35
+ end
36
+
37
+ generator.build_render_method(:fullscreen) do |_value, _proc|
38
+ atome_id = atome[:id]
39
+ AtomeJS.JS.fullscreen(atome_id)
40
+ end
41
+
42
+ generator.build_render_method(:mute) do |value, _proc|
43
+ if value
44
+ browser_object.muted
45
+ else
46
+ browser_object.unmuted
47
+ end
48
+ end
49
+
50
+ generator.build_render_method(:browser_at) do |at, proc|
51
+ @at_time = { code: proc }.merge(at)
52
+ end
53
+
54
+ generator.build_render_method(:browser_drag) do |options, proc|
55
+ options.each do |method, params|
56
+ atome_id = @atome[:id]
57
+ BrowserHelper.send("browser_drag_#{method}", params, atome_id, self, proc)
58
+ end
59
+ end
60
+
61
+ generator.build_render_method(:browser_sort) do |options, _proc|
62
+ AtomeJS.JS.sort(options, @atome[:id], self)
63
+ end
64
+
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ def self.browser_document
6
+ # Work because of the patched version of opal-browser(0.39)
7
+ Browser.window
8
+ end
9
+
10
+ def self.browser_attach_div(parents, html_object, _atome)
11
+ html_object.append_to(browser_document[parents])
12
+ end
13
+
14
+ def self.browser_attach_style(parents, _html_object, atome)
15
+ browser_document[parents].add_class(atome[:id])
16
+ end
17
+
18
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+
6
+ def self.browser_colorize_color(color_updated, atome)
7
+ `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
8
+ end
9
+
10
+ def self.browser_colorize_shadow(color_updated, atome)
11
+ left = atome[:left]
12
+ top = atome[:top]
13
+ blur = atome[:blur]
14
+ direction = atome[:direction]
15
+ shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
16
+ `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
17
+ end
18
+
19
+ def self.browser_left_color(_value, _browser_object, _atome)
20
+ puts 'code to write when implementing gradient'
21
+ end
22
+
23
+ def self.browser_right_color(_value, _browser_object, _atome)
24
+ puts 'code to write when implementing gradient'
25
+ end
26
+
27
+ def self.browser_top_color(_value, _browser_object, _atome)
28
+ puts 'code to write when implementing gradient'
29
+ end
30
+
31
+ def self.browser_bottom_color(_value, _browser_object, _atome)
32
+ puts 'code to write when implementing gradient'
33
+ end
34
+
35
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+
5
+ module BrowserHelper
6
+ def self.browser_drag_move(params, atome_id, atome, proc)
7
+ atome.drag_move_proc = proc
8
+ AtomeJS.JS.drag(params, atome_id, atome)
9
+ end
10
+
11
+ def self.browser_drag_lock(params, atome_id, atome, _proc)
12
+ AtomeJS.JS.lock(params, atome_id, atome)
13
+ end
14
+
15
+ def self.browser_drag_remove(params, atome_id, atome, _proc)
16
+ params = params != true
17
+ AtomeJS.JS.remove(params, atome_id, atome)
18
+ end
19
+
20
+ def self.browser_drag_snap(params, atome_id, atome, _proc)
21
+ AtomeJS.JS.snap(params.to_n, atome_id, atome)
22
+ end
23
+
24
+ def self.browser_drag_inertia(params, atome_id, atome, _proc)
25
+ AtomeJS.JS.inertia(params, atome_id, atome)
26
+ end
27
+
28
+ def self.browser_drag_constraint(params, atome_id, atome, _proc)
29
+ AtomeJS.JS.constraint(params.to_n, atome_id, atome)
30
+ end
31
+
32
+ def self.browser_drag_start(_params, _atome_id, atome, proc)
33
+ atome.drag_start_proc = proc
34
+ end
35
+
36
+ def self.browser_drag_end(_params, _atome_id, atome, proc)
37
+ atome.drag_end_proc = proc
38
+ end
39
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ def self.browser_blur_style(_browser_object, value, atome)
6
+ b_left = "#{atome[:left]}px"
7
+ b_top = "#{atome[:top]}px"
8
+ b_blur = "#{atome[:blur] = value}px"
9
+ b_red = atome[:red] * 255
10
+ b_green = atome[:green] * 255
11
+ b_blue = (atome[:blue]) * 255
12
+ b_direction = atome[:direction]
13
+ b_alpha = atome[:alpha]
14
+
15
+ shadow_updated = "#{b_left} #{b_top} #{b_blur} rgba(#{b_red}, #{b_green}, #{b_blue}, #{b_alpha}) #{b_direction}"
16
+ `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
17
+ end
18
+
19
+ def self.browser_blur_div(browser_object, value, _atome)
20
+ browser_object.style[:filter] = "blur(#{value}px)"
21
+ end
22
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ # image
6
+ def self.browser_left_image(value, browser_object, _atome)
7
+ browser_object.style[:left] = "#{value}px"
8
+ end
9
+
10
+ def self.browser_right_image(value, browser_object, _atome)
11
+ browser_object.style[:right] = "#{value}px"
12
+ end
13
+
14
+ def self.browser_top_image(value, browser_object, _atome)
15
+ browser_object.style[:top] = "#{value}px"
16
+ end
17
+
18
+ def self.browser_bottom_image(value, browser_object, _atome)
19
+ browser_object.style[:bottom] = "#{value}px"
20
+ end
21
+
22
+ def self.browser_path_image(value, browser_object, _atome)
23
+ browser_object[:src] = value
24
+ end
25
+
26
+
27
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ # shadow
6
+ def self.browser_left_shadow(value, _browser_object, atome)
7
+ ls_left = "#{atome[:left] = value}px"
8
+ ls_top = "#{atome[:top]}px"
9
+ ls_blur = "#{atome[:blur]}px"
10
+ red = atome[:red] * 255
11
+ green = atome[:green] * 255
12
+ blue = (atome[:blue]) * 255
13
+ direction = atome[:direction]
14
+ alpha = atome[:alpha]
15
+
16
+ shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
17
+ `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
18
+ end
19
+
20
+ def self.browser_top_shadow(value, _browser_object, atome)
21
+ rs_left = "#{atome[:left]}px"
22
+ rs_top = "#{atome[:top] = value}px"
23
+ rs_blur = "#{atome[:blur]}px"
24
+ red = atome[:red] * 255
25
+ green = atome[:green] * 255
26
+ blue = (atome[:blue]) * 255
27
+ direction = atome[:direction]
28
+ alpha = atome[:alpha]
29
+
30
+ shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
31
+ `document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
32
+ end
33
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+
6
+ def self.browser_left_shape(value, browser_object, _atome)
7
+ browser_object.style[:left] = "#{value}px"
8
+ end
9
+
10
+ def self.browser_right_shape(value, browser_object, _atome)
11
+ browser_object.style[:right] = "#{value}px"
12
+ end
13
+
14
+ def self.browser_top_shape(value, browser_object, _atome)
15
+ browser_object.style[:top] = "#{value}px"
16
+ end
17
+
18
+ def self.browser_bottom_shape(value, browser_object, _atome)
19
+ browser_object.style[:bottom] = "#{value}px"
20
+ end
21
+
22
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ # text
6
+ def self.browser_left_text(value, browser_object, _atome)
7
+ browser_object.style[:left] = "#{value}px"
8
+ end
9
+
10
+ def self.browser_right_text(value, browser_object, _atome)
11
+ browser_object.style[:right] = "#{value}px"
12
+ end
13
+
14
+ def self.browser_top_text(value, browser_object, _atome)
15
+ browser_object.style[:top] = "#{value}px"
16
+ end
17
+
18
+ def self.browser_bottom_text(value, browser_object, _atome)
19
+ browser_object.style[:bottom] = "#{value}px"
20
+ end
21
+
22
+ def self.browser_data_text(value,atome_send)
23
+ atome_send.browser_object.text = value
24
+ end
25
+
26
+ end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ # video
6
+ def self.browser_left_video(value, browser_object, _atome)
7
+ browser_object.style[:left] = "#{value}px"
8
+ end
9
+
10
+ def self.browser_right_videob(value, browser_object, _atome)
11
+ browser_object.style[:right] = "#{value}px"
12
+ end
13
+
14
+ def self.browser_top_video(value, browser_object, _atome)
15
+ browser_object.style[:top] = "#{value}px"
16
+ end
17
+
18
+ def self.browser_bottom_video(value, browser_object, _atome)
19
+ browser_object.style[:bottom] = "#{value}px"
20
+ end
21
+
22
+ def self.browser_path_video(value, browser_object, _atome)
23
+ browser_object[:src] = value
24
+ end
25
+
26
+ def self.browser_play_video(_value, browser_object_found, atome_hash, atome_object, proc)
27
+ browser_object_found.play
28
+ # TODO : change timeupdate for when possible requestVideoFrameCallback
29
+ # (opal-browser/opal/browser/event.rb line 36)
30
+ video_callback = atome_hash[:code] # this is the video callback not the play callback
31
+ play_callback = proc # this is the video callback not the play callback
32
+ browser_object_found.on(:timeupdate) do |e|
33
+ current_time = browser_object_found.currentTime
34
+ # we update the time particle
35
+ atome_object.time_callback(current_time)
36
+ e.prevent # Prevent the default action (eg. form submission)
37
+ # You can also use `e.stop` to stop propagating the event to other handlers.
38
+
39
+ atome_object.instance_exec(current_time, &video_callback) if video_callback.is_a?(Proc)
40
+ atome_object.instance_exec(current_time, &play_callback) if play_callback.is_a?(Proc)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # for browser rendering
4
+ module BrowserHelper
5
+ # web
6
+ def self.browser_left_web(value, browser_object, _atome)
7
+ browser_object.style[:left] = "#{value}px"
8
+ end
9
+
10
+ def self.browser_right_web(value, browser_object, _atome)
11
+ browser_object.style[:right] = "#{value}px"
12
+ end
13
+
14
+ def self.browser_top_web(value, browser_object, _atome)
15
+ browser_object.style[:top] = "#{value}px"
16
+ end
17
+
18
+ def self.browser_bottom_web(value, browser_object, _atome)
19
+ browser_object.style[:bottom] = "#{value}px"
20
+ end
21
+
22
+ def self.browser_path_web(value, browser_object, _atome)
23
+ browser_object[:src] = value
24
+ end
25
+
26
+ def self.browser_attach_web(parents, html_object, _atome)
27
+ html_object.append_to(browser_document[parents])
28
+ end
29
+
30
+ end
@@ -2,6 +2,10 @@
2
2
 
3
3
  generator = Genesis.generator
4
4
 
5
+ generator.build_render_method(:browser_id) do |params|
6
+ browser_object.id = params if @atome[:id] != params
7
+ end
8
+
5
9
  generator.build_render_method(:browser_type) do |params|
6
10
  send("browser_#{params}", user_proc)
7
11
  end
@@ -12,7 +16,7 @@ generator.build_render_method(:browser_parents) do |parents_found|
12
16
  end
13
17
  end
14
18
 
15
- generator.build_optional_methods(:pre_save_children) do |children_pass|
19
+ generator.build_option(:pre_render_children) do |children_pass|
16
20
  children_pass.each do |child_found|
17
21
  atome_found = grab(child_found)
18
22
  atome_found.parents([@atome[:id]])
@@ -8,15 +8,16 @@ end
8
8
 
9
9
  generator.build_render_method(:browser_right) do |value, _user_proc|
10
10
  BrowserHelper.send("browser_right_#{@atome[:type]}", value, @browser_object, @atome)
11
- # @browser_object.style[:right] = "#{value}px"
12
11
  end
13
12
 
14
13
  generator.build_render_method(:browser_top) do |value, _user_proc|
15
14
  BrowserHelper.send("browser_top_#{@atome[:type]}", value, @browser_object, @atome)
16
- # @browser_object.style[:top] = "#{value}px"
17
15
  end
18
16
 
19
17
  generator.build_render_method(:browser_bottom) do |value, _user_proc|
20
18
  BrowserHelper.send("browser_bottom_#{@atome[:type]}", value, @browser_object, @atome)
21
- # @browser_object.style[:bottom] = "#{value}px"
19
+ end
20
+
21
+ generator.build_render_method(:browser_rotate) do |value, _user_proc|
22
+ @browser_object.style[:transform] = "rotate(#{value}deg)" unless @browser_type == :style
22
23
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  generator = Genesis.generator
4
4
  generator.build_render_method(:browser_bloc)
5
- generator.build_render_method(:browser_id)
6
5
  generator.build_render_method(:browser_render)
7
6
  generator.build_render_method(:browser_delete) do
8
7
  browser_object&.remove
@@ -15,12 +14,26 @@ generator.build_render_method(:browser_clear) do
15
14
  children([])
16
15
  end
17
16
 
18
- generator.build_render_method(:path) do |value|
19
- @browser_object[:src] = value
17
+ generator.build_render_method(:browser_path) do |value|
18
+ BrowserHelper.send("browser_path_#{@atome[:type]}", value, @browser_object, @atome)
20
19
  end
21
20
 
22
- generator.build_render_method(:data) do |data|
21
+ generator.build_render_method(:browser_data) do |data|
23
22
  # according to the type we send the data to different operator
24
23
  type_found = @atome[:type]
25
- send("browser_data_#{type_found}", data)
24
+ BrowserHelper.send("browser_data_#{type_found}", data, self)
25
+ end
26
+
27
+ generator.build_render_method(:browser_schedule) do |format_date, proc|
28
+ years = format_date[0]
29
+ months = format_date[1]
30
+ days = format_date[2]
31
+ hours = format_date[3]
32
+ minutes = format_date[4]
33
+ seconds = format_date[5]
34
+ AtomeJS.JS.schedule(years, months, days, hours,minutes, seconds, self, proc)
35
+ end
36
+
37
+ generator.build_render_method(:browser_reader) do |file, proc|
38
+ AtomeJS.JS.reader(file, self, proc)
26
39
  end