atome 0.5.3.8.1 → 0.5.4.0.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 +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
|
|