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.
- checksums.yaml +4 -4
- data/Rakefile +9 -5
- data/app_builder_helpers/Rakefile +1 -1
- data/exe/atome +1 -1
- data/lib/atome/{atome_meta_engine.rb → atome.rb} +20 -22
- data/lib/atome/extensions/atome.rb +2 -2
- data/lib/atome/genesis/generators/atome.rb +25 -0
- data/lib/atome/genesis/generators/event.rb +16 -0
- data/lib/atome/genesis/generators/identity.rb +14 -2
- data/lib/atome/genesis/generators/spatial.rb +1 -0
- data/lib/atome/genesis/generators/utility.rb +18 -1
- data/lib/atome/genesis/genesis.rb +4 -9
- data/lib/atome/helpers/callbacks.rb +80 -0
- data/lib/atome/helpers/essentials.rb +6 -4
- data/lib/atome/helpers/sanitizer.rb +1 -20
- data/lib/atome/helpers/utilities.rb +8 -11
- data/lib/atome/kernel/essentials.rb +0 -7
- data/lib/atome/kernel/universe.rb +27 -10
- data/lib/atome/presets/atome.rb +27 -5
- data/lib/atome/renderers/browser/atome.rb +22 -20
- data/lib/atome/renderers/browser/browser.rb +12 -143
- data/lib/atome/renderers/browser/event.rb +56 -1
- 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/identity.rb +5 -1
- data/lib/atome/renderers/browser/spatial.rb +4 -3
- data/lib/atome/renderers/browser/utility.rb +18 -5
- data/lib/atome/renderers/headless/headless.rb +10 -0
- data/lib/atome/renderers/headless/utility.rb +6 -0
- data/lib/atome/renderers/html/html.rb +1 -1
- data/lib/atome/renderers/html/spatial.rb +1 -1
- data/lib/atome/renderers/html/utility.rb +2 -0
- data/lib/atome/renderers/renderer.rb +13 -0
- data/lib/atome/renderers/server/server.rb +10 -0
- data/lib/atome/renderers/server/utility.rb +6 -0
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +5 -2
- data/sig/atome.rbs +1 -0
- data/vendor/assets/build/css/style.css +2 -1
- data/vendor/assets/build/index.html +9 -6
- data/vendor/assets/build/js/atome/atome.js +150 -72
- 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 +36 -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/bottom.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
- data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/drag.rb +27 -33
- data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
- data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
- data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
- data/vendor/assets/build/medias/rubies/examples/mute.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/on.rb +26 -0
- 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/{_read.rb → read.rb} +4 -2
- data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +7 -6
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/sort.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/time.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
- data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
- data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
- data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
- data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
- data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
- data/vendor/assets/build/medias/videos/starwars.mov +0 -0
- data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
- metadata +46 -11
- data/lib/atome/processors/utilities.rb +0 -10
- data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
- data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
- data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
- data/vendor/assets/build/medias/rubies/examples/_refresh.rb +0 -9
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'atome/renderers/headless/effect'
|
4
|
+
# require 'atome/renderers/headless/event'
|
5
|
+
# require 'atome/renderers/headless/geometry'
|
6
|
+
# require 'atome/renderers/headless/identity'
|
7
|
+
# require 'atome/renderers/headless/material'
|
8
|
+
# require 'atome/renderers/headless/spatial'
|
9
|
+
# require 'atome/renderers/headless/atome'
|
10
|
+
require 'atome/renderers/headless/utility'
|
@@ -6,7 +6,7 @@ generator = Genesis.generator
|
|
6
6
|
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
7
7
|
# end
|
8
8
|
#
|
9
|
-
# generator.
|
9
|
+
# generator.build_option(:pre_get_left) do
|
10
10
|
# user_proc = @user_proc
|
11
11
|
# instance_exec(&user_proc) if user_proc.is_a?(Proc)
|
12
12
|
# end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Rendering method here
|
4
|
+
class Atome
|
5
|
+
private
|
6
|
+
|
7
|
+
def rendering(element_to_render, content, &user_proc)
|
8
|
+
render_engines = @atome[:renderers]
|
9
|
+
render_engines.each do |render_engine|
|
10
|
+
send("#{render_engine}_#{element_to_render}", content, &user_proc)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# require 'atome/renderers/server/effect'
|
4
|
+
# require 'atome/renderers/server/event'
|
5
|
+
# require 'atome/renderers/server/geometry'
|
6
|
+
# require 'atome/renderers/server/identity'
|
7
|
+
# require 'atome/renderers/server/material'
|
8
|
+
# require 'atome/renderers/server/spatial'
|
9
|
+
# require 'atome/renderers/server/atome'
|
10
|
+
require 'atome/renderers/server/utility'
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -6,10 +6,11 @@ require 'atome/genesis/genesis'
|
|
6
6
|
require 'atome/kernel/essentials'
|
7
7
|
require 'atome/kernel/universe'
|
8
8
|
require 'atome/helpers/essentials'
|
9
|
+
require 'atome/renderers/renderer'
|
9
10
|
require 'atome/helpers/color_helper/color'
|
10
|
-
require 'atome/
|
11
|
-
require 'atome/processors/utilities'
|
11
|
+
require 'atome/atome'
|
12
12
|
require 'atome/helpers/utilities'
|
13
|
+
require 'atome/helpers/callbacks'
|
13
14
|
require 'atome/genesis/generators/atome'
|
14
15
|
require 'atome/presets/atome'
|
15
16
|
require 'atome/genesis/generators/communication'
|
@@ -22,6 +23,8 @@ require 'atome/genesis/generators/spatial'
|
|
22
23
|
require 'atome/genesis/generators/utility'
|
23
24
|
require 'atome/renderers/browser/browser'
|
24
25
|
require 'atome/renderers/html/html'
|
26
|
+
require 'atome/renderers/headless/headless'
|
27
|
+
require 'atome/renderers/server/server'
|
25
28
|
require 'atome/extensions/atome'
|
26
29
|
require 'atome/helpers/sanitizer'
|
27
30
|
require 'atome/genesis/sparkle'
|
data/sig/atome.rbs
CHANGED
@@ -3,25 +3,28 @@
|
|
3
3
|
<head>
|
4
4
|
<meta name='viewport' content='initial-scale=1, width=device-width, viewport-fit=cover'>
|
5
5
|
<meta charset='UTF-8'/>
|
6
|
-
<!-- <meta Cross-Origin-Opener-Policy="same-origin"/>-->
|
7
|
-
<!-- <meta Cross-Origin-Embedder-Policy="require-corp"/>-->
|
8
6
|
<meta name="format-detection" content="telephone=no">
|
9
7
|
<meta name="msapplication-tap-highlight" content="no">
|
10
|
-
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
|
11
8
|
<link type="text/css" rel="stylesheet" href="css/style.css">
|
12
9
|
<script type="text/javascript" src="js/third_parties/interact.min.js"></script>
|
13
10
|
<script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
|
11
|
+
<script type="text/javascript" src="js/third_parties/sortable.min.js"></script>
|
14
12
|
<script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
|
15
13
|
<script type="text/javascript" src="js/third_parties/ping.min.js"></script>
|
16
|
-
<script src='js/third_parties/w3color.js'></script
|
14
|
+
<!-- <script src='js/third_parties/w3color.js'></script>-->
|
17
15
|
<script src='js/opal/opal.js'></script>
|
18
16
|
<script src='js/opal/opal_browser.js'></script>
|
19
|
-
<!-- TODO: we line below
|
20
|
-
and loaded on the fly when using server mode-->
|
17
|
+
<!-- TODO: we line below is commented when using stand alone mode and loaded on demand when using server mode-->
|
21
18
|
<!-- <script type="text/javascript" src="js/third_parties/fabric.min.js"></script>-->
|
22
19
|
<!-- <script type="text/javascript" src="js/third_parties/three.min.js"></script>-->
|
23
20
|
<!-- <script src='js/opal/opal_parser.js'></script>-->
|
24
21
|
<script src='js/aui.js'></script>
|
22
|
+
<script src='js/atome/atome_helpers/atome_animate.js' defer></script>
|
23
|
+
<script src='js/atome/atome_helpers/atome_drag.js' defer></script>
|
24
|
+
<script src='js/atome/atome_helpers/atome_file.js' defer></script>
|
25
|
+
<script src='js/atome/atome_helpers/atome_sort.js' defer></script>
|
26
|
+
<script src='js/atome/atome_helpers/atome_time.js' defer></script>
|
27
|
+
<script src='js/atome/atome_helpers/atome_video.js' defer></script>
|
25
28
|
<script src='js/atome/atome.js' defer></script>
|
26
29
|
<script src='js/atome/kernel.js' defer></script>
|
27
30
|
<script src='js/opal/atome_opal_extensions.js'></script>
|
@@ -1,82 +1,160 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
//
|
1
|
+
const atomeJS = Object.assign(atomeAnimate,atomeDrag,atomeFile,atomeSort, atomeTime, atomeVideo);
|
2
|
+
|
3
|
+
// // class AtomeDrag {
|
4
|
+
// // constructor() {
|
5
|
+
// // }
|
6
|
+
// //
|
7
|
+
// // drag(atome_drag_id) {
|
8
|
+
// // // target elements with the "draggable" class
|
9
|
+
// // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
|
10
|
+
// // interact('.'+atome_drag_id)
|
11
|
+
// // .draggable({
|
12
|
+
// // // enable inertial throwing
|
13
|
+
// // startAxis: 'x',
|
14
|
+
// // lockAxis: 'x',
|
15
|
+
// // // lockAxis: ''+lock_axis,
|
16
|
+
// // inertia: true,
|
17
|
+
// // // keep the element within the area of it's parent
|
18
|
+
// // modifiers: [
|
19
|
+
// // interact.modifiers.restrictRect({
|
20
|
+
// // restriction: 'parent',
|
21
|
+
// // endOnly: true
|
22
|
+
// // })
|
23
|
+
// // ],
|
24
|
+
// // // enable autoScroll
|
25
|
+
// // autoScroll: true,
|
26
|
+
// //
|
27
|
+
// // listeners: {
|
28
|
+
// // // call this function on every dragmove event
|
29
|
+
// //
|
30
|
+
// // move: dragMoveListener,
|
31
|
+
// // start(event) {
|
32
|
+
// // //TODO: optimise this passing the proc to the drag callback
|
33
|
+
// // // lets get the current atome Object
|
34
|
+
// // // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
|
35
|
+
// // // now get the grab proc
|
36
|
+
// // self.proc_meth = current_obj.bloc
|
37
|
+
// // },
|
38
|
+
// // // call this function on every dragend event
|
39
|
+
// // end(event) {
|
40
|
+
// // }
|
41
|
+
// // }
|
42
|
+
// // })
|
43
|
+
// //
|
44
|
+
// // function dragMoveListener(event) {
|
45
|
+
// // const target = event.target
|
46
|
+
// // // the code below can be conditioned to receive the drag event without moving the object
|
47
|
+
// // // keep the dragged position in the data-x/data-y attributes
|
48
|
+
// // const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
|
49
|
+
// // const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
|
50
|
+
// // // translate the element
|
51
|
+
// // target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
|
52
|
+
// // // update the position attributes
|
53
|
+
// // target.setAttribute('data-x', x)
|
54
|
+
// // target.setAttribute('data-y', y)
|
55
|
+
// // // CallBack here
|
56
|
+
// // self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
|
57
|
+
// // }
|
58
|
+
// // }
|
59
|
+
// //
|
60
|
+
// // }
|
61
|
+
//
|
62
|
+
// // Usage:
|
63
|
+
// // let atomeDrag = new AtomeDrag();
|
64
|
+
// // atomeDrag.drag('atome_id', 'options');
|
65
|
+
// // const Atomeanimation = {}
|
66
|
+
//
|
67
|
+
//
|
68
|
+
//
|
69
|
+
// // TODO: put in a class
|
4
70
|
//
|
5
|
-
//
|
6
|
-
//
|
7
|
-
//
|
8
|
-
//
|
9
|
-
//
|
10
|
-
//
|
11
|
-
//
|
12
|
-
//
|
13
|
-
//
|
14
|
-
//
|
15
|
-
//
|
16
|
-
//
|
17
|
-
//
|
18
|
-
//
|
19
|
-
//
|
20
|
-
//
|
21
|
-
//
|
22
|
-
//
|
23
|
-
//
|
24
|
-
//
|
25
|
-
//
|
26
|
-
//
|
27
|
-
//
|
28
|
-
// move: dragMoveListener,
|
29
|
-
// start(event) {
|
30
|
-
// //TODO: optimise this passing the proc to the drag callback
|
31
|
-
// // lets get the current atome Object
|
32
|
-
// // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
|
33
|
-
// // now get the grab proc
|
34
|
-
// self.proc_meth = current_obj.bloc
|
35
|
-
// },
|
36
|
-
// // call this function on every dragend event
|
37
|
-
// end(event) {
|
38
|
-
// }
|
39
|
-
// }
|
40
|
-
// })
|
41
|
-
//
|
42
|
-
// function dragMoveListener(event) {
|
43
|
-
// const target = event.target
|
44
|
-
// // the code below can be conditioned to receive the drag event without moving the object
|
45
|
-
// // keep the dragged position in the data-x/data-y attributes
|
46
|
-
// const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
|
47
|
-
// const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
|
48
|
-
// // translate the element
|
49
|
-
// target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
|
50
|
-
// // update the position attributes
|
51
|
-
// target.setAttribute('data-x', x)
|
52
|
-
// target.setAttribute('data-y', y)
|
53
|
-
// // CallBack here
|
54
|
-
// self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
|
71
|
+
//
|
72
|
+
// const atome = {
|
73
|
+
// jsSchedule: function (years, months, days, hours, minutes, seconds, atome, proc) {
|
74
|
+
// const now = new Date();
|
75
|
+
// const formatDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
76
|
+
// const diffTime = Math.abs(formatDate - now);
|
77
|
+
// setTimeout(function () {
|
78
|
+
// atome.$schedule_callback(proc);
|
79
|
+
// }, diffTime);
|
80
|
+
// },
|
81
|
+
// jsReader: function (file, atome, proc) {
|
82
|
+
// fetch('medias/' + file)
|
83
|
+
// .then(response => response.text())
|
84
|
+
// .then(text => atome.$read_callback(text, proc))
|
85
|
+
// },
|
86
|
+
// js_Fullscreen: function (atome_id){
|
87
|
+
// let elem = document.getElementById(atome_id)
|
88
|
+
// if (elem.requestFullscreen) {
|
89
|
+
// elem.requestFullscreen();
|
90
|
+
// } else if (elem.webkitRequestFullscreen) { /* Safari */
|
91
|
+
// elem.webkitEnterFullscreen();
|
92
|
+
// } else if (elem.msRequestFullscreen) { /* IE11 */
|
93
|
+
// elem.msRequestFullscreen();
|
55
94
|
// }
|
95
|
+
//
|
56
96
|
// }
|
57
97
|
//
|
58
98
|
// }
|
59
99
|
|
60
|
-
// Usage:
|
61
|
-
// let atomeDrag = new AtomeDrag();
|
62
|
-
// atomeDrag.drag('atome_id', 'options');
|
63
|
-
|
64
100
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
101
|
+
///////////////////////////////////////////////////////////
|
102
|
+
// //// example ruby equivalent in js ///
|
103
|
+
// Opal.queue(function (Opal) {/* Generated by Opal 1.6.0 */
|
104
|
+
// const $klass = Opal.klass, $defs = Opal.defs, $def = Opal.def;
|
105
|
+
// // The line below create the AtomicJS cons to simplify access to js object from ruby
|
106
|
+
//
|
107
|
+
// // var $const_set = Opal.const_set, $nesting = [], nil = Opal.nil;
|
108
|
+
// // return $const_set($nesting[0], 'AtomicJS', atome)
|
109
|
+
//
|
110
|
+
// (function ($base, $super) {
|
111
|
+
// const self = $klass($base, $super, 'AtomeJS');
|
112
|
+
// $def(self, '$initialize', function $$initialize(val) {
|
113
|
+
// // Init code below
|
114
|
+
// }, 1);
|
115
|
+
//
|
116
|
+
// $defs(self, '$check_this', function $$check_this(val) {
|
117
|
+
// // getter code below
|
118
|
+
// // alert ('Suoer cool!!'+val)
|
119
|
+
// // alert(atomeJS)
|
120
|
+
// return (val);
|
121
|
+
// }, 0);
|
122
|
+
//
|
123
|
+
// $def(self, '$way', function $way() {
|
124
|
+
// // getter code below
|
125
|
+
// return (self.my_var);
|
126
|
+
// }, 0);
|
127
|
+
//
|
128
|
+
// return $def(self, '$way=', function $way(val) {
|
129
|
+
// //self method example
|
130
|
+
// return (self.my_var = val);
|
131
|
+
// }, 0);
|
132
|
+
//
|
133
|
+
//
|
134
|
+
// })();
|
135
|
+
//
|
136
|
+
// // new class below
|
137
|
+
// return (function ($base, $super) {
|
138
|
+
// const self = $klass($base, $super, 'Atome');
|
139
|
+
//
|
140
|
+
// $defs(self, '$verif', function $$verif(val) {
|
141
|
+
// //self method example
|
142
|
+
// return (val);
|
143
|
+
// }, 0);
|
144
|
+
//
|
145
|
+
// $def(self, '$new_method', function $way() {
|
146
|
+
// // getter code below
|
147
|
+
// return (self.new_method);
|
148
|
+
// }, 0);
|
149
|
+
//
|
150
|
+
//
|
151
|
+
// return $def(self, '$new_method=', function $way(val) {
|
152
|
+
// //setter code below
|
153
|
+
// return (self.atome = val);
|
154
|
+
// }, 0);
|
155
|
+
//
|
156
|
+
// })();
|
157
|
+
// });
|
69
158
|
|
70
|
-
// TODO: put in a class
|
71
159
|
|
72
|
-
const atome = {
|
73
|
-
jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
|
74
|
-
const now = new Date();
|
75
|
-
const formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
76
|
-
const diffTime = Math.abs(formatedDate - now);
|
77
|
-
setTimeout(function () {
|
78
|
-
Opal.Object.$schedule_callback(proc);
|
79
|
-
}, diffTime);
|
80
|
-
}
|
81
|
-
}
|
82
160
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
const atomeAnimate = {
|
2
|
+
|
3
|
+
animate: function(particle_found, duration,damping_ratio,ease, mass, repeat,stiffness, velocity,
|
4
|
+
start_value, end_value, atome_id, atome_found,atome_hash,original_particle,animation_atome) {
|
5
|
+
// console.log(start_value)
|
6
|
+
|
7
|
+
const {easing, styler, animate} = window.popmotion;
|
8
|
+
|
9
|
+
const target_div = document.querySelector('#'+atome_id);
|
10
|
+
|
11
|
+
// var myHash = Opal.hash({postion: target_div.style.transform});
|
12
|
+
|
13
|
+
// let particle_to_process= myHash.$fetch('postion','');
|
14
|
+
|
15
|
+
animate({
|
16
|
+
type: ease,
|
17
|
+
from: start_value,
|
18
|
+
to: end_value,
|
19
|
+
duration: duration,
|
20
|
+
// mass: mass,
|
21
|
+
// velocity: velocity,
|
22
|
+
// dampingRatio: damping_ratio,
|
23
|
+
// stiffness: stiffness,
|
24
|
+
// repeat: repeat,
|
25
|
+
onPlay: (value) => {
|
26
|
+
animation_atome.$play_start_callback(particle_found, start_value,atome_hash,original_particle,atome_found)
|
27
|
+
},
|
28
|
+
onUpdate: (value) => {
|
29
|
+
atome_found.$browser_animate_callback(particle_found, value,atome_hash,original_particle,animation_atome)
|
30
|
+
},
|
31
|
+
onComplete: (value) => {
|
32
|
+
animation_atome.$play_stop_callback(particle_found, end_value,atome_hash,original_particle,atome_found)
|
33
|
+
}
|
34
|
+
});
|
35
|
+
|
36
|
+
|
37
|
+
///////////////////////////
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
// const target_1 = document.querySelector('#box2');
|
42
|
+
// animate({
|
43
|
+
// // from: 0,
|
44
|
+
// // to: 100,
|
45
|
+
// // from: "#fff",
|
46
|
+
// // to: "#000",
|
47
|
+
// // from: "0px 0px 0px rgba(0, 0, 0, 0)",
|
48
|
+
// // to: "10px 10px 0px rgba(0, 0, 0, 0.2)",
|
49
|
+
// from: "rgba(0, 0, 0, 0)",
|
50
|
+
// to: "rgba(0, 0, 0, 0.2)",
|
51
|
+
// duration: 1000,
|
52
|
+
// onUpdate: latest => {
|
53
|
+
// console.log(latest)
|
54
|
+
// // target_1.style.transform = `translateX(${latest}px)`;
|
55
|
+
// target_1.style.background= latest
|
56
|
+
// },
|
57
|
+
// repeat: 6
|
58
|
+
// })
|
59
|
+
// let element = document.getElementById(atome_id)
|
60
|
+
|
61
|
+
|
62
|
+
}
|
63
|
+
|
64
|
+
|
65
|
+
}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
const atomeDrag = {
|
2
|
+
|
3
|
+
drag: function (options, atome_id, atome) {
|
4
|
+
let element = document.getElementById(atome_id)
|
5
|
+
const position = {x: 0, y: 0}
|
6
|
+
interact(element).draggable({
|
7
|
+
listeners: {
|
8
|
+
start(event) {
|
9
|
+
atome.$drag_start_callback(event.pageX, event.pageY, event.rect.left, event.rect.top);
|
10
|
+
},
|
11
|
+
move(event) {
|
12
|
+
position.x += event.dx
|
13
|
+
position.y += event.dy
|
14
|
+
// we feed the callback method below
|
15
|
+
atome.$drag_move_callback(event.pageX, event.pageY, event.rect.left, event.rect.top);
|
16
|
+
|
17
|
+
if (options === true) {
|
18
|
+
event.target.style.transform =
|
19
|
+
event.target.style.transform = 'translate(' + position.x + 'px, ' + position.y + 'px)'
|
20
|
+
}
|
21
|
+
|
22
|
+
},
|
23
|
+
end(event) {
|
24
|
+
atome.$drag_end_callback(event.pageX, event.pageY, event.rect.left, event.rect.top);
|
25
|
+
|
26
|
+
|
27
|
+
},
|
28
|
+
}
|
29
|
+
})
|
30
|
+
|
31
|
+
},
|
32
|
+
|
33
|
+
inertia: function (options, atome_id, _atome) {
|
34
|
+
let element = document.getElementById(atome_id)
|
35
|
+
interact(element).draggable({
|
36
|
+
inertia: options
|
37
|
+
})
|
38
|
+
},
|
39
|
+
|
40
|
+
lock: function (options, atome_id, _atome) {
|
41
|
+
let element = document.getElementById(atome_id)
|
42
|
+
interact(element).draggable({
|
43
|
+
startAxis: 'xy',
|
44
|
+
lockAxis: options
|
45
|
+
});
|
46
|
+
},
|
47
|
+
|
48
|
+
remove: function (options, atome_id, _atome) {
|
49
|
+
let element = document.getElementById(atome_id)
|
50
|
+
interact(element).draggable(options);
|
51
|
+
},
|
52
|
+
|
53
|
+
snap: function (options, atome_id, _atome) {
|
54
|
+
let element = document.getElementById(atome_id)
|
55
|
+
interact(element)
|
56
|
+
.draggable({
|
57
|
+
modifiers: [
|
58
|
+
interact.modifiers.snap({
|
59
|
+
targets: [
|
60
|
+
interact.snappers.grid(options),
|
61
|
+
],
|
62
|
+
range: Infinity,
|
63
|
+
relativePoints: [{x: 0, y: 0}]
|
64
|
+
}),
|
65
|
+
],
|
66
|
+
})
|
67
|
+
},
|
68
|
+
|
69
|
+
constraint: function (params, atome_id, _atome) {
|
70
|
+
let element = document.getElementById(atome_id)
|
71
|
+
if ((typeof params) != 'object' && params !== 'parent') {
|
72
|
+
params = document.getElementById(params);
|
73
|
+
}
|
74
|
+
interact(element)
|
75
|
+
.draggable({
|
76
|
+
modifiers: [
|
77
|
+
interact.modifiers.restrict({
|
78
|
+
restriction: params,
|
79
|
+
elementRect: {top: 0, left: 0, bottom: 1, right: 1},
|
80
|
+
// endOnly: false
|
81
|
+
})
|
82
|
+
],
|
83
|
+
})
|
84
|
+
}
|
85
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
const atomeSort = {
|
2
|
+
sort: function (options, atome_id, atome) {
|
3
|
+
let element = document.getElementById(atome_id)
|
4
|
+
let children = Array.from(element.children);
|
5
|
+
children.forEach((element, _index) => {
|
6
|
+
element.style.position = 'relative'
|
7
|
+
element.style.webkitUserDrag = 'element'
|
8
|
+
})
|
9
|
+
Sortable.create(element, {
|
10
|
+
animation: 1150,
|
11
|
+
ghostClass: 'selected',
|
12
|
+
onSort: function () {
|
13
|
+
// alert('sorted');
|
14
|
+
atome.$sort_callback(atome)
|
15
|
+
|
16
|
+
// sortable({sort: onSort, change:onChange, start:onStart })
|
17
|
+
}
|
18
|
+
})
|
19
|
+
},
|
20
|
+
}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
const atomeTime = {
|
2
|
+
schedule: function (years, months, days, hours, minutes, seconds, atome, proc) {
|
3
|
+
const now = new Date();
|
4
|
+
const formatDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
5
|
+
const diffTime = Math.abs(formatDate - now);
|
6
|
+
setTimeout(function () {
|
7
|
+
atome.$schedule_callback(proc);
|
8
|
+
}, diffTime);
|
9
|
+
}
|
10
|
+
}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
const atomeVideo = {
|
2
|
+
fullscreen: function (atome_id) {
|
3
|
+
let elem = document.getElementById(atome_id)
|
4
|
+
if (elem.requestFullscreen) {
|
5
|
+
elem.requestFullscreen();
|
6
|
+
} else if (elem.webkitRequestFullscreen) { /* Safari */
|
7
|
+
elem.webkitEnterFullscreen();
|
8
|
+
} else if (elem.msRequestFullscreen) { /* IE11 */
|
9
|
+
elem.msRequestFullscreen();
|
10
|
+
}
|
11
|
+
}
|
12
|
+
}
|