atome 0.5.1.4 → 0.5.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +4 -0
- data/lib/atome/atome.rb +7 -6
- data/lib/atome/genesis/generators/event.rb +11 -0
- data/lib/atome/genesis/generators/identity.rb +0 -2
- data/lib/atome/helpers/callbacks.rb +68 -0
- data/lib/atome/helpers/essentials.rb +5 -3
- data/lib/atome/presets/atome.rb +1 -1
- data/lib/atome/renderers/browser/atome.rb +1 -12
- data/lib/atome/renderers/browser/browser.rb +12 -210
- data/lib/atome/renderers/browser/event.rb +30 -3
- data/lib/atome/renderers/browser/helpers/animation_helper.rb +0 -0
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +18 -0
- data/lib/atome/renderers/browser/helpers/color_helper.rb +35 -0
- data/lib/atome/renderers/browser/helpers/drag_helper.rb +39 -0
- data/lib/atome/renderers/browser/helpers/effect_helper.rb +22 -0
- data/lib/atome/renderers/browser/helpers/image_helper.rb +27 -0
- data/lib/atome/renderers/browser/helpers/shadow_helper.rb +33 -0
- data/lib/atome/renderers/browser/helpers/shape_helper.rb +22 -0
- data/lib/atome/renderers/browser/helpers/text_helper.rb +26 -0
- data/lib/atome/renderers/browser/helpers/video_helper.rb +43 -0
- data/lib/atome/renderers/browser/helpers/web_helper.rb +30 -0
- data/lib/atome/renderers/browser/utility.rb +3 -3
- data/lib/atome/renderers/html/html.rb +1 -1
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +0 -1
- data/sig/atome.rbs +1 -0
- data/vendor/assets/build/css/style.css +2 -1
- data/vendor/assets/build/index.html +8 -1
- data/vendor/assets/build/js/atome/atome.js +150 -145
- data/vendor/assets/build/js/atome/atome_helpers/atome_animate.js +65 -0
- data/vendor/assets/build/js/atome/atome_helpers/atome_drag.js +85 -0
- data/vendor/assets/build/js/atome/atome_helpers/atome_file.js +7 -0
- data/vendor/assets/build/js/atome/atome_helpers/atome_sort.js +20 -0
- data/vendor/assets/build/js/atome/atome_helpers/atome_time.js +10 -0
- data/vendor/assets/build/js/atome/atome_helpers/atome_video.js +12 -0
- data/vendor/assets/build/js/third_parties/popmotion.min.js +1 -1
- data/vendor/assets/build/js/third_parties/sortable.min.js +2 -0
- data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/_animation.rb +46 -0
- data/vendor/assets/build/medias/rubies/examples/at.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/drag.rb +38 -0
- data/vendor/assets/build/medias/rubies/examples/mute.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/on.rb +7 -1
- data/vendor/assets/build/medias/rubies/examples/{parent.rb → parents.rb} +6 -6
- data/vendor/assets/build/medias/rubies/examples/pause.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/play.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +2 -2
- data/vendor/assets/build/medias/rubies/examples/sort.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/time.rb +14 -0
- metadata +28 -5
- data/lib/atome/processors/utilities.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/_drag.rb +0 -44
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 108def7ca1abaccd885638fdea127766d1f97c4ac2559faee3eec445b52bdbac
|
4
|
+
data.tar.gz: bf00b2ccb9e339a08c16221964b11cd6c2440cc415f6886bef2e4c18ac1967f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ecf2a30c425a8b46f88f08cd5b436d6298dd36b8db8984a50190a15a360639c6ac161725c3c5a7b327c740927032315a46a988fbdf5790fe830e31a5d22d4a4
|
7
|
+
data.tar.gz: 5585b8e500d715c86799172790bcc7be0bbc67cfbc438a6fedf03be8aecfea287df999588d4771d4c50f6a62dbad35fa2002f387b425fc602de776c9ff310ca0
|
data/Rakefile
CHANGED
@@ -19,6 +19,10 @@ task :test_browser do
|
|
19
19
|
`cd test/test_app;atome update;atome run guard`
|
20
20
|
end
|
21
21
|
|
22
|
+
task :run_browser do
|
23
|
+
`cd test/test_app;atome run guard`
|
24
|
+
end
|
25
|
+
|
22
26
|
task :test_server do
|
23
27
|
FileUtils.copy_entry('vendor/assets/build/js/', 'test/test_app/build/js/')
|
24
28
|
FileUtils.copy_entry('vendor/assets/build/css/', 'test/test_app/build/css/')
|
data/lib/atome/atome.rb
CHANGED
@@ -15,6 +15,7 @@ class Atome
|
|
15
15
|
atomes.each_value do |elements|
|
16
16
|
# the instance variable below contain the id all any atomes that need to be informed when changes occurs
|
17
17
|
@broadcast = {}
|
18
|
+
@at_time = {}
|
18
19
|
# now we store the proc in a an atome's property called :bloc
|
19
20
|
elements[:code] = atomes_proc if atomes_proc
|
20
21
|
@atome = elements
|
@@ -63,9 +64,9 @@ class Atome
|
|
63
64
|
end
|
64
65
|
end
|
65
66
|
|
66
|
-
def run_optional_proc(proc_name, atome = self, value = '')
|
67
|
+
def run_optional_proc(proc_name, atome = self, value = '', &user_proc)
|
67
68
|
option_found = Universe.get_optional_method(proc_name)
|
68
|
-
atome.instance_exec(value, &option_found) if option_found.is_a?(Proc)
|
69
|
+
atome.instance_exec(value,user_proc, &option_found) if option_found.is_a?(Proc)
|
69
70
|
end
|
70
71
|
|
71
72
|
def inject_value(element, value)
|
@@ -82,7 +83,7 @@ class Atome
|
|
82
83
|
|
83
84
|
# the line below is used for ephemera atomes
|
84
85
|
attr_accessor :property, :value, :real_atome, :user_proc
|
85
|
-
attr_reader :atome, :structure
|
86
|
+
attr_reader :atome, :structure, :at_time
|
86
87
|
|
87
88
|
def set(value)
|
88
89
|
@real_atome[@property] = value
|
@@ -91,9 +92,9 @@ class Atome
|
|
91
92
|
def create_particle(element, value, &user_proc)
|
92
93
|
return false unless security_pass(element, value)
|
93
94
|
|
94
|
-
run_optional_proc("pre_render_#{element}".to_sym, self, value)
|
95
|
+
run_optional_proc("pre_render_#{element}".to_sym, self, value, &user_proc)
|
95
96
|
rendering(element, value, &user_proc)
|
96
|
-
run_optional_proc("post_render_#{element}".to_sym, self, value)
|
97
|
+
run_optional_proc("post_render_#{element}".to_sym, self, value, &user_proc)
|
97
98
|
store_value(element, value)
|
98
99
|
self
|
99
100
|
end
|
@@ -108,7 +109,7 @@ class Atome
|
|
108
109
|
virtual_atome.real_atome = @atome
|
109
110
|
virtual_atome.property = element
|
110
111
|
virtual_atome.user_proc = user_proc
|
111
|
-
run_optional_proc("pre_get_#{element}".to_sym, virtual_atome)
|
112
|
+
run_optional_proc("pre_get_#{element}".to_sym, virtual_atome, &user_proc)
|
112
113
|
virtual_atome
|
113
114
|
end
|
114
115
|
|
@@ -8,3 +8,14 @@ generator.build_particle(:time)
|
|
8
8
|
generator.build_particle(:pause)
|
9
9
|
generator.build_particle(:on)
|
10
10
|
generator.build_particle(:fullscreen)
|
11
|
+
generator.build_particle(:mute)
|
12
|
+
# TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
|
13
|
+
generator.build_particle(:at)
|
14
|
+
generator.build_particle(:drag)
|
15
|
+
generator.build_sanitizer(:drag) do |params|
|
16
|
+
params = { move: true } if params == true
|
17
|
+
params
|
18
|
+
end
|
19
|
+
generator.build_particle(:sort) do |_value, sort_proc|
|
20
|
+
@sort_proc = sort_proc
|
21
|
+
end
|
@@ -10,7 +10,6 @@ generator.build_particle(:link) do |child_id|
|
|
10
10
|
child_found.atome[:parents] << @atome[:id]
|
11
11
|
child_found.refresh
|
12
12
|
end
|
13
|
-
|
14
13
|
generator.build_particle(:id)
|
15
14
|
generator.build_sanitizer(:id) do |params|
|
16
15
|
if @atome[:id] != params
|
@@ -20,7 +19,6 @@ generator.build_sanitizer(:id) do |params|
|
|
20
19
|
end
|
21
20
|
params
|
22
21
|
end
|
23
|
-
|
24
22
|
generator.build_option(:pre_render_parents) do |parents_id_found|
|
25
23
|
parents_id_found.each do |parents_id|
|
26
24
|
parents_found = grab(parents_id)
|
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
# callbacks methods here
|
4
4
|
class Atome
|
5
|
+
private
|
6
|
+
|
7
|
+
attr_accessor :drag_start_proc, :drag_move_proc, :drag_end_proc,
|
8
|
+
:play_start_proc, :play_active_proc, :play_end_proc,
|
9
|
+
:animation_start_proc, :animation_active_proc, :animation_stop_proc
|
10
|
+
|
11
|
+
public
|
12
|
+
|
5
13
|
def schedule_callback(proc)
|
6
14
|
instance_exec(&proc) if proc.is_a?(Proc)
|
7
15
|
end
|
@@ -9,4 +17,64 @@ class Atome
|
|
9
17
|
def read_callback(file, proc)
|
10
18
|
instance_exec(file, &proc) if proc.is_a?(Proc)
|
11
19
|
end
|
20
|
+
|
21
|
+
def time_callback(current_time)
|
22
|
+
@atome[:time] = current_time
|
23
|
+
return unless @at_time[:time] && (current_time.round(1) > @at_time[:time] && @at_time[:used].nil?)
|
24
|
+
|
25
|
+
proc = @at_time[:code]
|
26
|
+
instance_exec(current_time, &proc) if proc.is_a?(Proc)
|
27
|
+
@at_time[:used] = true
|
28
|
+
end
|
29
|
+
|
30
|
+
def drag_start_callback(page_x, page_y, left_val, top_val)
|
31
|
+
@atome[:left] = left_val
|
32
|
+
@atome[:top] = top_val
|
33
|
+
proc = @drag_start_proc
|
34
|
+
instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
|
35
|
+
end
|
36
|
+
|
37
|
+
def drag_move_callback(page_x, page_y, left_val, top_val)
|
38
|
+
proc = @drag_move_proc
|
39
|
+
@atome[:left] = left_val
|
40
|
+
@atome[:top] = top_val
|
41
|
+
instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
|
42
|
+
end
|
43
|
+
|
44
|
+
def drag_end_callback(page_x, page_y, left_val, top_val)
|
45
|
+
@atome[:left] = left_val
|
46
|
+
@atome[:top] = top_val
|
47
|
+
proc = @drag_end_proc
|
48
|
+
instance_exec({ pageX: page_x, pageY: page_y, left: left_val, top: top_val }, &proc) if proc.is_a?(Proc)
|
49
|
+
end
|
50
|
+
|
51
|
+
# sort callbacks
|
52
|
+
def sort_callback(atome)
|
53
|
+
sort_proc = @sort_proc
|
54
|
+
instance_exec(atome, &sort_proc) if sort_proc.is_a?(Proc)
|
55
|
+
end
|
56
|
+
|
57
|
+
# def play_start_callback(particle_found, value)
|
58
|
+
# @atome[particle_found] = value
|
59
|
+
# play_proc = play_start_proc
|
60
|
+
# anim_proc = animation_start_proc
|
61
|
+
# instance_exec({ @atome[particle_found] => value }, &play_proc) if play_proc.is_a?(Proc)
|
62
|
+
# instance_exec({ @atome[particle_found] => value }, &anim_proc) if anim_proc.is_a?(Proc)
|
63
|
+
# end
|
64
|
+
#
|
65
|
+
# def play_active_callback(particle_found, value)
|
66
|
+
# @atome[particle_found] = value
|
67
|
+
# play_proc = play_active_proc
|
68
|
+
# anim_proc = animation_active_proc
|
69
|
+
# instance_exec({ @atome[particle_found] => value }, &play_proc) if play_proc.is_a?(Proc)
|
70
|
+
# instance_exec({ @atome[particle_found] => value }, &anim_proc) if anim_proc.is_a?(Proc)
|
71
|
+
# end
|
72
|
+
#
|
73
|
+
# def play_stop_callback(particle_found, value)
|
74
|
+
# @atome[particle_found] = value
|
75
|
+
# play_proc = play_end_proc
|
76
|
+
# anim_proc = animation_end_proc
|
77
|
+
# instance_exec({ @atome[particle_found] => value }, &play_proc) if play_proc.is_a?(Proc)
|
78
|
+
# instance_exec({ @atome[particle_found] => value }, &anim_proc) if anim_proc.is_a?(Proc)
|
79
|
+
# end
|
12
80
|
end
|
@@ -4,15 +4,17 @@
|
|
4
4
|
module Essentials
|
5
5
|
@default_params = {
|
6
6
|
render_engines: [:browser],
|
7
|
+
animation: { type: :animation },
|
7
8
|
element: { type: :element, renderers: [] },
|
8
|
-
box: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99
|
9
|
+
box: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99,
|
10
|
+
left: 100, top: 100 },
|
9
11
|
circle: { renderers: '', id: '', type: :shape, parents: [], children: [], width: 99, height: 99,
|
10
|
-
smooth: '100%' },
|
12
|
+
left: 100, top: 100, smooth: '100%' },
|
11
13
|
shape: { renderers: '', id: '', width: 100, type: :shape, height: 100, left: 100, top: 100,
|
12
14
|
color: { left: 0, top: 0, z: 0, red: 0.1, green: 0.9, blue: 0.9, alpha: 1, diffusion: :linear },
|
13
15
|
generator: :manual },
|
14
16
|
text: { type: :text, parents: [:view], children: [], visual: { size: 25 },
|
15
|
-
data: 'this is a text sample',
|
17
|
+
data: 'this is a text sample', width: 199, height: 33 },
|
16
18
|
drm: { type: :drm },
|
17
19
|
shadow: {}
|
18
20
|
}
|
data/lib/atome/presets/atome.rb
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
# shaper creation
|
9
9
|
class Atome
|
10
10
|
def atome_common(atome_type, generated_id, generated_render, generated_parents, params)
|
11
|
-
temp_default = Essentials.default_params[atome_type]
|
11
|
+
temp_default = Essentials.default_params[atome_type] || {}
|
12
12
|
temp_default[:id] = generated_id
|
13
13
|
temp_default[:parents] = generated_parents
|
14
14
|
temp_default[:renderers] = generated_render
|
@@ -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
|
-
# collapse
|
22
20
|
end
|
23
21
|
|
24
22
|
generator.build_render_method(:browser_color) do |_value|
|
@@ -36,10 +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
|
-
# collapse
|
43
37
|
end
|
44
38
|
|
45
39
|
generator.build_render_method(:browser_shadow) do |_value|
|
@@ -71,8 +65,6 @@ generator.build_render_method(:browser_image) do |_user_prc|
|
|
71
65
|
img({ id: id_found }).atome
|
72
66
|
end.append_to(BrowserHelper.browser_document[:user_view])
|
73
67
|
@browser_object = BrowserHelper.browser_document[id_found]
|
74
|
-
# Render particles below
|
75
|
-
# collapse
|
76
68
|
end
|
77
69
|
|
78
70
|
generator.build_render_method(:browser_text) do |_value, _user_proc|
|
@@ -82,8 +74,6 @@ generator.build_render_method(:browser_text) do |_value, _user_proc|
|
|
82
74
|
end.append_to(BrowserHelper.browser_document[:user_view])
|
83
75
|
@browser_object = BrowserHelper.browser_document[id_found]
|
84
76
|
@browser_type = :div
|
85
|
-
# Render particles below
|
86
|
-
# collapse
|
87
77
|
end
|
88
78
|
|
89
79
|
generator.build_render_method(:browser_web) do
|
@@ -95,14 +85,13 @@ generator.build_render_method(:browser_web) do
|
|
95
85
|
@browser_object = BrowserHelper.browser_document[id_found]
|
96
86
|
@browser_object.attributes[:allow] = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture'
|
97
87
|
@browser_object.attributes[:allowfullscreen] = true
|
98
|
-
@html_type = :web
|
99
88
|
end
|
100
89
|
|
101
90
|
generator.build_render_method(:browser_video) do |_value, _user_proc|
|
102
91
|
@browser_type = :div
|
103
92
|
id_found = @atome[:id]
|
104
93
|
DOM do
|
105
|
-
video({ id: id_found, autoplay: false, loop: false, muted:
|
94
|
+
video({ id: id_found, autoplay: false, loop: false, muted: false }).atome
|
106
95
|
end.append_to(BrowserHelper.browser_document[:user_view])
|
107
96
|
@browser_object = BrowserHelper.browser_document[id_found]
|
108
97
|
end
|
@@ -8,218 +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
|
-
|
17
|
-
module BrowserHelper
|
18
|
-
def self.browser_document
|
19
|
-
# Work because of the patched version 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_web(parents, html_object, _atome)
|
28
|
-
html_object.append_to(browser_document[parents])
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.browser_attach_style(parents, _html_object, atome)
|
32
|
-
browser_document[parents].add_class(atome[:id])
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.browser_blur_style(_browser_object, value, atome)
|
36
|
-
b_left = "#{atome[:left]}px"
|
37
|
-
b_top = "#{atome[:top]}px"
|
38
|
-
b_blur = "#{atome[:blur] = value}px"
|
39
|
-
b_red = atome[:red] * 255
|
40
|
-
b_green = atome[:green] * 255
|
41
|
-
b_blue = (atome[:blue]) * 255
|
42
|
-
b_direction = atome[:direction]
|
43
|
-
b_alpha = atome[:alpha]
|
44
|
-
|
45
|
-
shadow_updated = "#{b_left} #{b_top} #{b_blur} rgba(#{b_red}, #{b_green}, #{b_blue}, #{b_alpha}) #{b_direction}"
|
46
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.browser_blur_div(browser_object, value, _atome)
|
50
|
-
browser_object.style[:filter] = "blur(#{value}px)"
|
51
|
-
end
|
52
|
-
|
53
|
-
def self.browser_colorize_color(color_updated, atome)
|
54
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.backgroundColor = #{color_updated}`
|
55
|
-
end
|
56
|
-
|
57
|
-
def self.browser_colorize_shadow(color_updated, atome)
|
58
|
-
left = atome[:left]
|
59
|
-
top = atome[:top]
|
60
|
-
blur = atome[:blur]
|
61
|
-
direction = atome[:direction]
|
62
|
-
shadow_updated = "#{left}px #{top}px #{blur}px #{color_updated} #{direction}"
|
63
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
64
|
-
end
|
65
|
-
|
66
|
-
def self.browser_left_shape(value, browser_object, _atome)
|
67
|
-
browser_object.style[:left] = "#{value}px"
|
68
|
-
end
|
69
|
-
|
70
|
-
def self.browser_right_shape(value, browser_object, _atome)
|
71
|
-
browser_object.style[:right] = "#{value}px"
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.browser_top_shape(value, browser_object, _atome)
|
75
|
-
browser_object.style[:top] = "#{value}px"
|
76
|
-
end
|
77
|
-
|
78
|
-
def self.browser_bottom_shape(value, browser_object, _atome)
|
79
|
-
browser_object.style[:bottom] = "#{value}px"
|
80
|
-
end
|
81
|
-
|
82
|
-
# image
|
83
|
-
def self.browser_left_image(value, browser_object, _atome)
|
84
|
-
browser_object.style[:left] = "#{value}px"
|
85
|
-
end
|
86
|
-
|
87
|
-
def self.browser_right_image(value, browser_object, _atome)
|
88
|
-
browser_object.style[:right] = "#{value}px"
|
89
|
-
end
|
90
|
-
|
91
|
-
def self.browser_top_image(value, browser_object, _atome)
|
92
|
-
browser_object.style[:top] = "#{value}px"
|
93
|
-
end
|
94
|
-
|
95
|
-
def self.browser_bottom_image(value, browser_object, _atome)
|
96
|
-
browser_object.style[:bottom] = "#{value}px"
|
97
|
-
end
|
98
|
-
|
99
|
-
def self.browser_path_image(value, browser_object, _atome)
|
100
|
-
browser_object[:src] = value
|
101
|
-
end
|
102
|
-
|
103
|
-
# shadow
|
104
|
-
def self.browser_left_shadow(value, _browser_object, atome)
|
105
|
-
ls_left = "#{atome[:left] = value}px"
|
106
|
-
ls_top = "#{atome[:top]}px"
|
107
|
-
ls_blur = "#{atome[:blur]}px"
|
108
|
-
red = atome[:red] * 255
|
109
|
-
green = atome[:green] * 255
|
110
|
-
blue = (atome[:blue]) * 255
|
111
|
-
direction = atome[:direction]
|
112
|
-
alpha = atome[:alpha]
|
113
|
-
|
114
|
-
shadow_updated = "#{ls_left} #{ls_top} #{ls_blur} rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
115
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
116
|
-
end
|
117
|
-
|
118
|
-
def self.browser_top_shadow(value, _browser_object, atome)
|
119
|
-
rs_left = "#{atome[:left]}px"
|
120
|
-
rs_top = "#{atome[:top] = value}px"
|
121
|
-
rs_blur = "#{atome[:blur]}px"
|
122
|
-
red = atome[:red] * 255
|
123
|
-
green = atome[:green] * 255
|
124
|
-
blue = (atome[:blue]) * 255
|
125
|
-
direction = atome[:direction]
|
126
|
-
alpha = atome[:alpha]
|
127
|
-
|
128
|
-
shadow_updated = "#{rs_left}px #{rs_top}px #{rs_blur}px rgba(#{red}, #{green}, #{blue}, #{alpha}) #{direction}"
|
129
|
-
`document.getElementById(#{atome[:id]}).sheet.cssRules[0].style.boxShadow = #{shadow_updated}`
|
130
|
-
end
|
131
|
-
|
132
|
-
def self.browser_left_color(_value, _browser_object, _atome)
|
133
|
-
puts 'code to write when implementing gradient'
|
134
|
-
end
|
135
|
-
|
136
|
-
def self.browser_right_color(_value, _browser_object, _atome)
|
137
|
-
puts 'code to write when implementing gradient'
|
138
|
-
end
|
139
|
-
|
140
|
-
def self.browser_top_color(_value, _browser_object, _atome)
|
141
|
-
puts 'code to write when implementing gradient'
|
142
|
-
end
|
143
|
-
|
144
|
-
def self.browser_bottom_color(_value, _browser_object, _atome)
|
145
|
-
puts 'code to write when implementing gradient'
|
146
|
-
end
|
147
|
-
|
148
|
-
# text
|
149
|
-
def self.browser_left_text(value, browser_object, _atome)
|
150
|
-
browser_object.style[:left] = "#{value}px"
|
151
|
-
end
|
152
|
-
|
153
|
-
def self.browser_right_text(value, browser_object, _atome)
|
154
|
-
browser_object.style[:right] = "#{value}px"
|
155
|
-
end
|
156
|
-
|
157
|
-
def self.browser_top_text(value, browser_object, _atome)
|
158
|
-
browser_object.style[:top] = "#{value}px"
|
159
|
-
end
|
160
|
-
|
161
|
-
def self.browser_bottom_text(value, browser_object, _atome)
|
162
|
-
browser_object.style[:bottom] = "#{value}px"
|
163
|
-
end
|
164
|
-
|
165
|
-
def self.browser_data_text(value)
|
166
|
-
browser_object.text = value
|
167
|
-
end
|
168
|
-
|
169
|
-
# web
|
170
|
-
def self.browser_left_web(value, browser_object, _atome)
|
171
|
-
browser_object.style[:left] = "#{value}px"
|
172
|
-
end
|
173
|
-
|
174
|
-
def self.browser_right_web(value, browser_object, _atome)
|
175
|
-
browser_object.style[:right] = "#{value}px"
|
176
|
-
end
|
177
|
-
|
178
|
-
def self.browser_top_web(value, browser_object, _atome)
|
179
|
-
browser_object.style[:top] = "#{value}px"
|
180
|
-
end
|
181
|
-
|
182
|
-
def self.browser_bottom_web(value, browser_object, _atome)
|
183
|
-
browser_object.style[:bottom] = "#{value}px"
|
184
|
-
end
|
185
|
-
|
186
|
-
def self.browser_path_web(value, browser_object, _atome)
|
187
|
-
browser_object[:src] = value
|
188
|
-
end
|
189
|
-
|
190
|
-
# video
|
191
|
-
def self.browser_left_video(value, browser_object, _atome)
|
192
|
-
browser_object.style[:left] = "#{value}px"
|
193
|
-
end
|
194
|
-
|
195
|
-
def self.browser_right_videob(value, browser_object, _atome)
|
196
|
-
browser_object.style[:right] = "#{value}px"
|
197
|
-
end
|
198
|
-
|
199
|
-
def self.browser_top_video(value, browser_object, _atome)
|
200
|
-
browser_object.style[:top] = "#{value}px"
|
201
|
-
end
|
202
|
-
|
203
|
-
def self.browser_bottom_video(value, browser_object, _atome)
|
204
|
-
browser_object.style[:bottom] = "#{value}px"
|
205
|
-
end
|
206
|
-
|
207
|
-
def self.browser_path_video(value, browser_object, _atome)
|
208
|
-
browser_object[:src] = value
|
209
|
-
end
|
210
|
-
|
211
|
-
def self.browser_play_video(_value, browser_object_found, atome_found, atome_object, proc)
|
212
|
-
browser_object_found.play
|
213
|
-
# TODO : change timeupdate for when possible requestVideoFrameCallback
|
214
|
-
# (opal-browser/opal/browser/event.rb line 36)
|
215
|
-
video_callback = atome_found[:code] # this is the video callback not the play callback
|
216
|
-
play_callback = proc # this is the video callback not the play callback
|
217
|
-
browser_object_found.on(:timeupdate) do |e|
|
218
|
-
e.prevent # Prevent the default action (eg. form submission)
|
219
|
-
# You can also use `e.stop` to stop propagating the event to other handlers.
|
220
|
-
current_time = browser_object_found.currentTime
|
221
|
-
atome_object.instance_exec(current_time, &video_callback) if video_callback.is_a?(Proc)
|
222
|
-
atome_object.instance_exec(current_time, &play_callback) if play_callback.is_a?(Proc)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
end
|
27
|
+
AtomeJS=`atomeJS`
|
@@ -9,6 +9,9 @@ generator.build_render_method(:browser_touch) do |_value, proc|
|
|
9
9
|
end
|
10
10
|
|
11
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
|
12
15
|
BrowserHelper.send("browser_play_#{@atome[:type]}", value, @browser_object, @atome, self, proc)
|
13
16
|
end
|
14
17
|
|
@@ -31,7 +34,31 @@ generator.build_render_method(:on) do |value, proc|
|
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
34
|
-
generator.build_render_method(:fullscreen) do |
|
35
|
-
atome_id=atome[:id]
|
36
|
-
|
37
|
+
generator.build_render_method(:fullscreen) do |_value, _proc|
|
38
|
+
atome_id = atome[:id]
|
39
|
+
AtomeJS.JS.fullscreen(atome_id)
|
37
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
|
+
|
File without changes
|
@@ -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
|