atome 0.5.3.8.1 → 0.5.4.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +52 -17
- data/app_builder_helpers/Rakefile +20 -3
- data/exe/atome +33 -1
- data/lib/atome/atome.rb +64 -75
- data/lib/atome/extensions/atome.rb +82 -52
- data/lib/atome/extensions/mathematic.rb +8 -12
- data/lib/atome/extensions/matrix.rb +141 -202
- data/lib/atome/genesis/generators/atome.rb +13 -96
- data/lib/atome/genesis/generators/communication.rb +0 -1
- data/lib/atome/genesis/generators/effect.rb +0 -6
- data/lib/atome/genesis/generators/event.rb +64 -77
- data/lib/atome/genesis/generators/geometry.rb +0 -18
- data/lib/atome/genesis/generators/identity.rb +56 -52
- data/lib/atome/genesis/generators/material.rb +3 -54
- data/lib/atome/genesis/generators/spatial.rb +8 -8
- data/lib/atome/genesis/generators/utility.rb +82 -68
- data/lib/atome/genesis/genesis.rb +15 -4
- data/lib/atome/genesis/sparkle.rb +38 -19
- data/lib/atome/helpers/callbacks.rb +47 -1
- data/lib/atome/helpers/essentials.rb +21 -18
- data/lib/atome/helpers/sanitizer.rb +0 -10
- data/lib/atome/helpers/utilities.rb +143 -45
- data/lib/atome/kernel/batch.rb +13 -36
- data/lib/atome/kernel/universe.rb +3 -1
- data/lib/atome/presets/atome.rb +14 -23
- data/lib/atome/renderers/browser/atome.rb +2 -1
- data/lib/atome/renderers/browser/browser.rb +2 -0
- data/lib/atome/renderers/browser/event.rb +18 -0
- data/lib/atome/renderers/browser/helpers/browser_helper.rb +17 -0
- data/lib/atome/renderers/browser/helpers/drag_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/drop_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/event_helper.rb +16 -11
- data/lib/atome/renderers/browser/helpers/over_helper.rb +13 -0
- data/lib/atome/renderers/browser/helpers/text_helper.rb +14 -2
- data/lib/atome/renderers/browser/identity.rb +23 -5
- data/lib/atome/renderers/browser/spatial.rb +3 -2
- data/lib/atome/renderers/browser/utility.rb +7 -6
- data/lib/atome/renderers/renderer.rb +1 -0
- data/lib/atome/version.rb +2 -2
- data/lib/atome.rb +1 -0
- data/sig/atome.rbs +36 -0
- data/sig/batch.rbs +7 -0
- data/sig/browser_helper.rbs +14 -0
- data/sig/essentials.rbs +11 -0
- data/sig/matrix.rbs +5 -0
- data/sig/object.rbs +3 -0
- data/vendor/assets/aui.rb +5 -0
- data/vendor/assets/src/index.html +15 -3
- data/vendor/assets/src/js/atome/atome.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_animate.js +1 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_communication.js +40 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_drag.js +40 -3
- data/vendor/assets/src/js/atome/atome_helpers/atome_drop.js +12 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_events.js +166 -0
- data/vendor/assets/src/js/atome/atome_helpers/atome_file.js +6 -1
- data/vendor/assets/src/js/atome/atome_helpers/atome_over.js +43 -0
- data/vendor/assets/src/medias/images/icons/email.svg +12 -12
- data/vendor/assets/src/medias/rubies/demos.rb +63 -0
- data/vendor/assets/src/medias/rubies/examples/add.rb +3 -4
- data/vendor/assets/src/medias/rubies/examples/animation.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/atome_new.rb +18 -6
- data/vendor/assets/src/medias/rubies/examples/attach.rb +15 -0
- data/vendor/assets/src/medias/rubies/examples/attached.rb +5 -6
- data/vendor/assets/src/medias/rubies/examples/batch.rb +17 -0
- data/vendor/assets/src/medias/rubies/examples/blur.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/box.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/code.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/color.rb +20 -4
- data/vendor/assets/src/medias/rubies/examples/delete.rb +18 -2
- data/vendor/assets/src/medias/rubies/examples/detached.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/drag.rb +53 -2
- data/vendor/assets/src/medias/rubies/examples/drop.rb +26 -0
- data/vendor/assets/src/medias/rubies/examples/fullscreen.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/image.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/link.rb +7 -5
- data/vendor/assets/src/medias/rubies/examples/markers.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/materials.rb +15 -0
- data/vendor/assets/src/medias/rubies/examples/matrix.rb +85 -41
- data/vendor/assets/src/medias/rubies/examples/matrix_changes.rb +483 -0
- data/vendor/assets/src/medias/rubies/examples/matrix_simple.rb +32 -0
- data/vendor/assets/src/medias/rubies/examples/monitoring.rb +44 -18
- data/vendor/assets/src/medias/rubies/examples/mute.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/on.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/over.rb +6 -4
- data/vendor/assets/src/medias/rubies/examples/pause.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/physical.rb +19 -0
- data/vendor/assets/src/medias/rubies/examples/play.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/read.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/repeat.rb +3 -2
- data/vendor/assets/src/medias/rubies/examples/shadow.rb +1 -1
- data/vendor/assets/src/medias/rubies/examples/sort.rb +3 -4
- data/vendor/assets/src/medias/rubies/examples/tags.rb +10 -0
- data/vendor/assets/src/medias/rubies/examples/text.rb +4 -4
- data/vendor/assets/src/medias/rubies/examples/time.rb +3 -3
- data/vendor/assets/src/medias/rubies/examples/video.rb +2 -2
- data/vendor/assets/src/medias/rubies/examples/web.rb +2 -2
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_2_solve.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_audio.rb +1 -1
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_dataset.rb +4 -4
- data/vendor/assets/src/medias/rubies/unstable/_matrix.rb +58 -0
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_table2.rb +2 -2
- data/vendor/assets/src/medias/rubies/{examples → unstable}/_vie.rb +2 -2
- data/vendor/assets/src/utilities/mode.rb +0 -0
- data/vendor/assets/src-tauri/tauri.conf.json +2 -2
- metadata +34 -14
- data/vendor/assets/src/medias/rubies/examples/parents.rb +0 -15
- data/vendor/assets/src/medias/rubies/examples/table.rb +0 -479
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/!run.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_attach.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_os.rb +0 -0
- /data/vendor/assets/src/medias/rubies/{examples → unstable}/_test.rb +0 -0
@@ -19,6 +19,7 @@ end
|
|
19
19
|
|
20
20
|
generator.build_render(:browser_color) do |_value|
|
21
21
|
@browser_type = :style
|
22
|
+
# puts "1 - for the id : #{id} the browser type is ::::> #{@browser_type}"
|
22
23
|
id_found = @atome[:id]
|
23
24
|
type_found = @atome[:type]
|
24
25
|
# we remove previous unused style tag
|
@@ -30,7 +31,7 @@ generator.build_render(:browser_color) do |_value|
|
|
30
31
|
BrowserHelper.browser_document.head << Browser.DOM("<style atome='#{type_found}'
|
31
32
|
id='#{id_found}'>.#{id_found}{background-color: rgba(#{red_found * 255},
|
32
33
|
#{green_found * 255},#{blue_found * 255},#{alpha_found})}</style>")
|
33
|
-
# TODO/ use the code below to modify the style tag
|
34
|
+
# # TODO/ use the code below to modify the style tag
|
34
35
|
@browser_object = BrowserHelper.browser_document[id_found]
|
35
36
|
end
|
36
37
|
|
@@ -13,6 +13,8 @@ require 'atome/renderers/browser/helpers/browser_helper'
|
|
13
13
|
require 'atome/renderers/browser/helpers/animation_helper'
|
14
14
|
require 'atome/renderers/browser/helpers/color_helper'
|
15
15
|
require 'atome/renderers/browser/helpers/drag_helper'
|
16
|
+
require 'atome/renderers/browser/helpers/drop_helper'
|
17
|
+
# require 'atome/renderers/browser/helpers/over_helper'
|
16
18
|
require 'atome/renderers/browser/helpers/effect_helper'
|
17
19
|
require 'atome/renderers/browser/helpers/event_helper'
|
18
20
|
require 'atome/renderers/browser/helpers/image_helper'
|
@@ -16,6 +16,15 @@ generator.build_render(:browser_over) do |value, proc|
|
|
16
16
|
BrowserHelper.send("browser_over_#{value}", @browser_object,self, proc)
|
17
17
|
end
|
18
18
|
|
19
|
+
# generator.build_render(:browser_over) do |options, proc|
|
20
|
+
# # puts "method : #{options}, params : #{options}"
|
21
|
+
# options.each do |method, params|
|
22
|
+
# atome_id = @atome[:id]
|
23
|
+
# BrowserHelper.send("browser_over_#{method}", params, atome_id, self, proc)
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
|
27
|
+
|
19
28
|
generator.build_render(:browser_play) do |value, proc|
|
20
29
|
# first we reinit the 'at' event so the condition will be met again
|
21
30
|
# @at_time[:used] = nil
|
@@ -62,6 +71,15 @@ generator.build_render(:browser_drag) do |options, proc|
|
|
62
71
|
end
|
63
72
|
end
|
64
73
|
|
74
|
+
generator.build_render(:browser_drop) do |options, proc|
|
75
|
+
# puts "method : #{options}, params : #{options}"
|
76
|
+
options.each do |method, params|
|
77
|
+
atome_id = @atome[:id]
|
78
|
+
BrowserHelper.send("browser_drop_#{method}", params, atome_id, self, proc)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
|
65
83
|
generator.build_render(:browser_sort) do |options, _proc|
|
66
84
|
atome_js.JS.sort(options, @atome[:id], self)
|
67
85
|
end
|
@@ -7,6 +7,10 @@ module BrowserHelper
|
|
7
7
|
Browser.window
|
8
8
|
end
|
9
9
|
|
10
|
+
def self.browser_attach_(_parents, _html_object, _atome)
|
11
|
+
# dummy methods to catch atomes that do not need to be attached to any particular visual atime
|
12
|
+
end
|
13
|
+
|
10
14
|
def self.browser_attach_div(parents, html_object, _atome)
|
11
15
|
html_object.append_to(browser_document[parents])
|
12
16
|
end
|
@@ -15,6 +19,19 @@ module BrowserHelper
|
|
15
19
|
browser_document[parents].add_class(atome[:id])
|
16
20
|
end
|
17
21
|
|
22
|
+
def self.browser_attached_div(children, _html_object, atome)
|
23
|
+
children.each do |child_found|
|
24
|
+
# atome_child.browser_attach_div
|
25
|
+
html_child=grab(child_found).browser_object
|
26
|
+
html_child.append_to(browser_document[atome[:id]])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.browser_attached_style(children, _html_object, atome)
|
31
|
+
|
32
|
+
browser_document[atome[:id]].add_class(children)
|
33
|
+
end
|
34
|
+
|
18
35
|
def self.value_parse(value)
|
19
36
|
if value.instance_of?(String)
|
20
37
|
value
|
@@ -3,11 +3,19 @@
|
|
3
3
|
# for browser rendering
|
4
4
|
|
5
5
|
module BrowserHelper
|
6
|
+
|
7
|
+
# drag helper
|
6
8
|
def self.browser_drag_move(params, atome_id, atome, proc)
|
7
9
|
atome.drag_move_proc = proc
|
8
10
|
atome_js.JS.drag(params, atome_id, atome)
|
9
11
|
end
|
10
12
|
|
13
|
+
# def self.browser_drag_end(params, atome_id, atome, proc)
|
14
|
+
# # alert :kool
|
15
|
+
# # atome.drag_move_proc = proc
|
16
|
+
# # atome_js.JS.drag(params, atome_id, atome)
|
17
|
+
# end
|
18
|
+
|
11
19
|
def self.browser_drag_lock(params, atome_id, atome, _proc)
|
12
20
|
atome_js.JS.lock(params, atome_id, atome)
|
13
21
|
end
|
@@ -36,4 +44,9 @@ module BrowserHelper
|
|
36
44
|
def self.browser_drag_end(_params, _atome_id, atome, proc)
|
37
45
|
atome.drag_end_proc = proc
|
38
46
|
end
|
47
|
+
|
48
|
+
def self.browser_drag_start(_params, _atome_id, atome, proc)
|
49
|
+
atome.drag_start_proc = proc
|
50
|
+
end
|
51
|
+
|
39
52
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# for browser rendering
|
4
|
+
|
5
|
+
module BrowserHelper
|
6
|
+
|
7
|
+
#drop helper
|
8
|
+
def self.browser_drop_action(params, atome_id, atome, proc)
|
9
|
+
atome.drop_action_proc = proc
|
10
|
+
atome_js.JS.drop(params, atome_id, atome)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -3,11 +3,11 @@
|
|
3
3
|
# for browser rendering
|
4
4
|
module BrowserHelper
|
5
5
|
|
6
|
-
def self.touch_helper_callback(event,atome, proc)
|
6
|
+
def self.touch_helper_callback(event, atome, proc)
|
7
7
|
atome.instance_exec(event, &proc) if proc.is_a?(Proc)
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.browser_touch_true(browser_object,atome, proc)
|
10
|
+
def self.browser_touch_true(browser_object, atome, proc)
|
11
11
|
`
|
12
12
|
interact('#'+#{browser_object})
|
13
13
|
.on('tap', function (event) {
|
@@ -16,7 +16,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
|
|
16
16
|
`
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.browser_touch_long(browser_object,atome, proc)
|
19
|
+
def self.browser_touch_long(browser_object, atome, proc)
|
20
20
|
`
|
21
21
|
interact('#'+#{browser_object})
|
22
22
|
.on('hold', function (event) {
|
@@ -25,7 +25,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
|
|
25
25
|
`
|
26
26
|
end
|
27
27
|
|
28
|
-
def self.browser_touch_double(browser_object,atome, proc)
|
28
|
+
def self.browser_touch_double(browser_object, atome, proc)
|
29
29
|
`
|
30
30
|
interact('#'+#{browser_object})
|
31
31
|
.on('doubletap', function (event) {
|
@@ -34,7 +34,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
|
|
34
34
|
`
|
35
35
|
end
|
36
36
|
|
37
|
-
def self.browser_touch_down(browser_object,atome, proc)
|
37
|
+
def self.browser_touch_down(browser_object, atome, proc)
|
38
38
|
|
39
39
|
`
|
40
40
|
interact('#'+#{browser_object})
|
@@ -45,7 +45,7 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
|
|
45
45
|
`
|
46
46
|
end
|
47
47
|
|
48
|
-
def self.browser_touch_up(browser_object, atome,proc)
|
48
|
+
def self.browser_touch_up(browser_object, atome, proc)
|
49
49
|
`
|
50
50
|
interact('#'+#{browser_object})
|
51
51
|
.on('up', function (event) {
|
@@ -54,15 +54,20 @@ Opal.BrowserHelper.$touch_helper_callback(event,#{atome},#{proc});
|
|
54
54
|
`
|
55
55
|
end
|
56
56
|
|
57
|
-
def self.browser_over_enter(browser_object,atome
|
58
|
-
browser_object.on :
|
59
|
-
atome.
|
57
|
+
def self.browser_over_enter(browser_object, atome)
|
58
|
+
browser_object.on :mouseenter do |event|
|
59
|
+
atome.enter_action_callback( event)
|
60
|
+
# atome.instance_exec(event, &proc) if proc.is_a?(Proc)
|
61
|
+
# atome_id = atome.id
|
62
|
+
# atome_js.JS.over_enter(atome_id, atome, proc, :enter)
|
60
63
|
end
|
61
64
|
end
|
62
65
|
|
63
|
-
def self.browser_over_leave(browser_object, atome
|
66
|
+
def self.browser_over_leave(browser_object, atome)
|
64
67
|
browser_object.on :mouseout do |event|
|
65
|
-
atome.
|
68
|
+
atome.leave_action_callback(event)
|
69
|
+
# atome.instance_exec(event, &proc) if proc.is_a?(Proc)
|
70
|
+
# atome_js.JS.over_leave(atome_id, atome,proc,:leave)
|
66
71
|
end
|
67
72
|
end
|
68
73
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# for browser rendering
|
4
|
+
|
5
|
+
# module BrowserHelper
|
6
|
+
#
|
7
|
+
# #drop helper
|
8
|
+
# def self.browser_over_action(params, atome_id, atome, proc)
|
9
|
+
# # atome.over_action_proc = proc
|
10
|
+
# atome_js.JS.over(params, atome_id, atome)
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# for browser rendering
|
4
4
|
module BrowserHelper
|
5
|
-
|
5
|
+
|
6
6
|
def self.browser_left_text(value, browser_object, _atome)
|
7
7
|
browser_object.style[:left] = BrowserHelper.value_parse(value)
|
8
8
|
end
|
@@ -20,7 +20,19 @@ module BrowserHelper
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.browser_data_text(value,atome_send)
|
23
|
-
|
23
|
+
value = value.gsub(/\n/, '<br/>')
|
24
|
+
atome_send.browser_object.inner_html = value
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.browser_data_shape(_value,_atome_send)
|
28
|
+
|
29
|
+
end
|
30
|
+
def self.browser_data_color(_value,_atome_send)
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.browser_data_find(value,_atome_send)
|
35
|
+
|
24
36
|
end
|
25
37
|
|
26
38
|
end
|
@@ -15,17 +15,35 @@ generator.build_render(:browser_type) do |params|
|
|
15
15
|
send("browser_#{params}", user_proc)
|
16
16
|
end
|
17
17
|
|
18
|
-
generator.build_render(:browser_family) do |parents_found|
|
19
|
-
|
20
|
-
end
|
18
|
+
# generator.build_render(:browser_family) do |parents_found|
|
19
|
+
# BrowserHelper.send("browser_attach_#{@browser_type}", parents_found, @browser_object, @atome)
|
20
|
+
# end
|
21
21
|
|
22
22
|
generator.build_render(:browser_attach) do |parents_found|
|
23
|
+
# puts "parents_found : #{parents_found}, #{parents_found.class}"
|
23
24
|
parents_found.each do |parent_found|
|
25
|
+
# puts "2 : >>>>> model: browser_type #{@browser_type} parents_found #{parents_found} , @browser_object, #{@browser_object}, self : #{self.id}"
|
24
26
|
BrowserHelper.send("browser_attach_#{@browser_type}", parent_found, @browser_object, @atome)
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
28
|
-
generator.build_render(:
|
29
|
-
|
30
|
+
generator.build_render(:browser_attached) do |children_found|
|
31
|
+
children_found.each do |child_found|
|
32
|
+
# puts ">>>>> modeled: browser_type #{@browser_type} parents_found #{children_found} , @browser_object, #{@browser_object}, self : #{self.id}"
|
33
|
+
children_browser_type = grab(child_found).instance_variable_get('@browser_type')
|
34
|
+
BrowserHelper.send("browser_attached_#{children_browser_type}", children_found, @browser_object, @atome)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
generator.build_render(:browser_detached) do |values, _user_proc|
|
39
|
+
values.each do |value|
|
40
|
+
# FIXME: ugly patch to check if the value passed is an atome must create a more robust global solution for .value
|
41
|
+
value = value.value if value.instance_of? Atome
|
42
|
+
if grab(value).instance_variable_get('@browser_type') == :style
|
43
|
+
@browser_object.remove_class(value)
|
44
|
+
else
|
45
|
+
BrowserHelper.browser_document[value]&.remove
|
46
|
+
end
|
47
|
+
end
|
30
48
|
end
|
31
49
|
|
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
generator = Genesis.generator
|
4
4
|
|
5
|
-
|
5
|
+
|
6
|
+
new({ browser: :left, type: :integer }) do |value, _user_proc|
|
6
7
|
BrowserHelper.send("browser_left_#{@atome[:type]}", value, @browser_object, @atome)
|
7
8
|
end
|
8
9
|
|
@@ -52,7 +53,7 @@ generator.build_render(:browser_center) do |value, _user_proc|
|
|
52
53
|
|
53
54
|
end
|
54
55
|
|
55
|
-
new ({browser: :depth}) do |value|
|
56
|
+
new ({ browser: :depth }) do |value|
|
56
57
|
@browser_object.style['z-index'] = value
|
57
58
|
end
|
58
59
|
|
@@ -7,12 +7,13 @@ generator.build_render(:browser_delete) do |params|
|
|
7
7
|
browser_object&.remove if params == true
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
10
|
+
# do not use browser_clear
|
11
|
+
# #
|
12
|
+
# # generator.build_render(:browser_clear) do
|
13
|
+
# # @atome[:attached].each do |child_found|
|
14
|
+
# # grab(child_found).browser_object&.remove
|
15
|
+
# # end
|
16
|
+
# # end
|
16
17
|
|
17
18
|
generator.build_render(:browser_path) do |value|
|
18
19
|
BrowserHelper.send("browser_path_#{@atome[:type]}", value, @browser_object, @atome)
|
@@ -8,6 +8,7 @@ class Atome
|
|
8
8
|
# params=instance_variable_get("@#{element}")
|
9
9
|
render_engines = @atome[:renderers]
|
10
10
|
render_engines.each do |render_engine|
|
11
|
+
# puts "rendering : send('#{render_engine}_#{element}', #{params}, &user_proc)"
|
11
12
|
send("#{render_engine}_#{element}", params, &user_proc)
|
12
13
|
end
|
13
14
|
end
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
data/sig/atome.rbs
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
module Atome
|
2
2
|
VERSION: String
|
3
3
|
# See the writing guide of rbs: https://github.com/ruby/rbs#guides
|
4
|
+
def *: -> untyped
|
5
|
+
|
6
|
+
def +: -> untyped
|
7
|
+
|
8
|
+
def -: -> untyped
|
9
|
+
|
10
|
+
def /: -> untyped
|
11
|
+
|
4
12
|
def add: -> untyped
|
5
13
|
|
6
14
|
def add_to_array: -> untyped
|
@@ -9,8 +17,12 @@ module Atome
|
|
9
17
|
|
10
18
|
def apply_style: -> untyped
|
11
19
|
|
20
|
+
def atome_common: -> untyped
|
21
|
+
|
12
22
|
def auto_render_generator: -> untyped
|
13
23
|
|
24
|
+
def box: -> untyped
|
25
|
+
|
14
26
|
def build_atome: -> Atome
|
15
27
|
|
16
28
|
def build_option: -> untyped
|
@@ -21,8 +33,18 @@ module Atome
|
|
21
33
|
|
22
34
|
def build_sanitizer: -> untyped
|
23
35
|
|
36
|
+
def calculate_sha: -> untyped
|
37
|
+
|
38
|
+
def circle: -> untyped
|
39
|
+
|
40
|
+
def detach_atome: -> untyped
|
41
|
+
|
42
|
+
def each_with_index: -> untyped
|
43
|
+
|
24
44
|
def format_matrix: -> untyped
|
25
45
|
|
46
|
+
def geolocation: -> untyped
|
47
|
+
|
26
48
|
def get_column: -> untyped
|
27
49
|
|
28
50
|
def get_column_or_row: -> untyped
|
@@ -31,7 +53,21 @@ module Atome
|
|
31
53
|
|
32
54
|
def matrix: -> untyped
|
33
55
|
|
56
|
+
def ping: -> untyped
|
57
|
+
|
34
58
|
def set: -> untyped
|
35
59
|
|
36
60
|
def sort_callback: -> untyped
|
61
|
+
|
62
|
+
def up?: -> untyped
|
63
|
+
|
64
|
+
def visuals: -> untyped
|
65
|
+
|
66
|
+
private
|
67
|
+
|
68
|
+
def atome_parsing: -> untyped
|
69
|
+
|
70
|
+
def found_parents_and_renderers: -> untyped
|
71
|
+
|
72
|
+
def new_render_engine: -> untyped
|
37
73
|
end
|
data/sig/batch.rbs
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module BrowserHelper
|
2
|
+
@enter_action_proc: untyped
|
3
|
+
@leave_action_proc: untyped
|
4
|
+
|
5
|
+
def self.anim_convertor: -> untyped
|
6
|
+
|
7
|
+
def self.anim_value_analysis: -> untyped
|
8
|
+
|
9
|
+
def self.browser_over_enter: -> untyped
|
10
|
+
|
11
|
+
def self.browser_over_leave: -> untyped
|
12
|
+
|
13
|
+
def self.send_anim_to_js: -> untyped
|
14
|
+
end
|
data/sig/essentials.rbs
ADDED
data/sig/matrix.rbs
ADDED
data/sig/object.rbs
ADDED
data/vendor/assets/aui.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html lang="En">
|
3
3
|
<head>
|
4
|
+
<!-- <link rel="icon" type="image/x-icon" href="./favicon.ico">-->
|
5
|
+
<link rel="icon" type="image/x-icon" href="https://github.com/atomecorp/atome/blob/master/vendor/assets/src/favicon.ico">
|
6
|
+
|
7
|
+
|
4
8
|
<meta name='viewport' content='initial-scale=1, width=device-width, viewport-fit=cover'>
|
5
9
|
<meta charset='UTF-8'/>
|
6
10
|
<meta name="format-detection" content="telephone=no">
|
@@ -20,20 +24,28 @@
|
|
20
24
|
<!-- TODO: we line below is commented when using stand alone mode and loaded on demand when using server mode-->
|
21
25
|
<script type="text/javascript" src="js/third_parties/fabric.min.js"></script>
|
22
26
|
<!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
|
23
|
-
|
27
|
+
<script src='js/opal/opal_parser.js'></script>
|
24
28
|
<script src='js/aui.js'></script>
|
29
|
+
|
25
30
|
<script src='js/atome/atome_helpers/atome_animate.js' defer></script>
|
31
|
+
<script src='js/atome/atome_helpers/atome_communication.js' defer></script>
|
26
32
|
<script src='js/atome/atome_helpers/atome_drag.js' defer></script>
|
33
|
+
<script src='js/atome/atome_helpers/atome_drop.js' defer></script>
|
34
|
+
<script src='js/atome/atome_helpers/atome_over.js' defer></script>
|
35
|
+
<script src='js/atome/atome_helpers/atome_events.js' defer></script>
|
27
36
|
<script src='js/atome/atome_helpers/atome_file.js' defer></script>
|
28
37
|
<script src='js/atome/atome_helpers/atome_sort.js' defer></script>
|
29
38
|
<script src='js/atome/atome_helpers/atome_time.js' defer></script>
|
30
39
|
<script src='js/atome/atome_helpers/atome_video.js' defer></script>
|
31
40
|
<script src='js/atome/atome.js' defer></script>
|
32
41
|
<script src='js/atome/kernel.js' defer></script>
|
42
|
+
<script src='js/infos.js'></script>
|
33
43
|
<script src='js/opal/atome_opal_extensions.js'></script>
|
34
44
|
<title>atome</title>
|
35
|
-
|
45
|
+
|
36
46
|
</head>
|
37
|
-
<body id='user_view' class='atome' oncontextmenu="return false;"
|
47
|
+
<body id='user_view' class='atome' oncontextmenu="return false;">
|
48
|
+
</body>
|
38
49
|
<script src='js/application.js' defer></script>
|
50
|
+
|
39
51
|
</html>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
const atomeJS = Object.assign(atomeAnimate,atomeDrag,atomeFile,atomeSort, atomeTime, atomeVideo);
|
1
|
+
const atomeJS = Object.assign(atomeAnimate,atomeCommunication,atomeDrag,atomeDrop,atomeFile,atomeSort, atomeTime, atomeVideo);
|
2
2
|
// This const is used to store and get all atome created canvas by id
|
3
3
|
const Atome_canvas={}
|
4
4
|
// // class AtomeDrag {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
const atomeAnimate = {
|
2
2
|
|
3
|
-
animate: function(particle_found, duration,damping_ratio,ease, mass,
|
3
|
+
animate: function(particle_found, duration,damping_ratio,ease, mass, repeat,stiffness, velocity,
|
4
4
|
start_value, end_value, atome_id, atome_found,atome_hash,original_particle,animation_atome) {
|
5
5
|
// console.log(start_value)
|
6
6
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
const atomeCommunication = {
|
2
|
+
controller_sender: function (msg) {
|
3
|
+
var json_msg = JSON.parse(msg);
|
4
|
+
|
5
|
+
if (window.webkit) {
|
6
|
+
try {
|
7
|
+
window.webkit.messageHandlers.toggleMessageHandler.postMessage(json_msg);
|
8
|
+
} catch (error) {
|
9
|
+
console.log('no server, unable to post message')
|
10
|
+
}
|
11
|
+
|
12
|
+
} else {
|
13
|
+
try {
|
14
|
+
window.chrome.webview.postMessage(json_msg);
|
15
|
+
} catch (error) {
|
16
|
+
console.log('no server, unable to post message')
|
17
|
+
}
|
18
|
+
}
|
19
|
+
},
|
20
|
+
controller_listener: function () {
|
21
|
+
if (window.webkit) {
|
22
|
+
try {
|
23
|
+
///
|
24
|
+
} catch (error) {
|
25
|
+
console.log('no server, unable to receive message')
|
26
|
+
}
|
27
|
+
} else {
|
28
|
+
|
29
|
+
try {
|
30
|
+
window.chrome.webview.addEventListener('message', arg => {
|
31
|
+
Opal.Object.$response_listener(arg.data)
|
32
|
+
});
|
33
|
+
} catch (error) {
|
34
|
+
console.log('no server, unable to receive message')
|
35
|
+
}
|
36
|
+
|
37
|
+
|
38
|
+
}
|
39
|
+
},
|
40
|
+
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
const atomeDrag = {
|
2
2
|
|
3
3
|
drag: function (options, atome_id, atome) {
|
4
|
+
|
4
5
|
let element = document.getElementById(atome_id)
|
5
6
|
const position = {x: 0, y: 0}
|
6
7
|
interact(element).draggable({
|
@@ -15,14 +16,41 @@ const atomeDrag = {
|
|
15
16
|
atome.$drag_move_callback(event.pageX, event.pageY, event.rect.left, event.rect.top);
|
16
17
|
|
17
18
|
if (options === true) {
|
18
|
-
event.target
|
19
|
-
|
19
|
+
target = event.target
|
20
|
+
var x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx
|
21
|
+
var y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
|
22
|
+
|
23
|
+
// translate the element
|
24
|
+
target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
|
25
|
+
|
26
|
+
// update the position attributes
|
27
|
+
target.setAttribute('data-x', x)
|
28
|
+
target.setAttribute('data-y', y)
|
29
|
+
|
30
|
+
|
20
31
|
}
|
21
32
|
|
22
33
|
},
|
23
34
|
end(event) {
|
24
|
-
atome.$drag_end_callback(event.pageX, event.pageY, event.rect.left, event.rect.top);
|
25
35
|
|
36
|
+
// We remove the translate and update the position of the atome
|
37
|
+
|
38
|
+
const transformValue = window.getComputedStyle(element).getPropertyValue('transform');
|
39
|
+
const matrix = transformValue.match(/^matrix\(([^\(]*)\)$/);
|
40
|
+
const transformData = matrix ? matrix[1].split(', ') : null;
|
41
|
+
const translateX = transformData ? parseFloat(transformData[4]) : 0;
|
42
|
+
const translateY = transformData ? parseFloat(transformData[5]) : 0;
|
43
|
+
const positionLeft = element.offsetLeft + translateX;
|
44
|
+
const positionTop = element.offsetTop + translateY;
|
45
|
+
|
46
|
+
element.style.left = positionLeft+ 'px';
|
47
|
+
element.style.top = positionTop + 'px';
|
48
|
+
// we remove the transform tag
|
49
|
+
element.style.transform = '';
|
50
|
+
// now we reset the interactJS
|
51
|
+
element.setAttribute('data-x', 0)
|
52
|
+
element.setAttribute('data-y', 0)
|
53
|
+
atome.$drag_end_callback(event.pageX, event.pageY, positionLeft, positionTop);
|
26
54
|
|
27
55
|
},
|
28
56
|
}
|
@@ -47,6 +75,15 @@ const atomeDrag = {
|
|
47
75
|
|
48
76
|
remove: function (options, atome_id, _atome) {
|
49
77
|
let element = document.getElementById(atome_id)
|
78
|
+
// now we reset the position
|
79
|
+
var position = element.getBoundingClientRect();
|
80
|
+
var transform = element.style.transform;
|
81
|
+
var newTransform = transform.replace(/translate\([^\)]*\)/g, "");
|
82
|
+
element.style.transform = newTransform;
|
83
|
+
element.style.left = position.left + "px";
|
84
|
+
element.style.top = position.top + "px";
|
85
|
+
|
86
|
+
|
50
87
|
interact(element).draggable(options);
|
51
88
|
},
|
52
89
|
|