atome 0.5.1.1 → 0.5.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +9 -5
  3. data/app_builder_helpers/Rakefile +1 -1
  4. data/exe/atome +1 -1
  5. data/lib/atome/{atome_meta_engine.rb → atome.rb} +20 -22
  6. data/lib/atome/extensions/atome.rb +2 -2
  7. data/lib/atome/genesis/generators/atome.rb +25 -0
  8. data/lib/atome/genesis/generators/event.rb +16 -0
  9. data/lib/atome/genesis/generators/identity.rb +14 -2
  10. data/lib/atome/genesis/generators/spatial.rb +1 -0
  11. data/lib/atome/genesis/generators/utility.rb +18 -1
  12. data/lib/atome/genesis/genesis.rb +4 -9
  13. data/lib/atome/helpers/callbacks.rb +80 -0
  14. data/lib/atome/helpers/essentials.rb +6 -4
  15. data/lib/atome/helpers/sanitizer.rb +1 -20
  16. data/lib/atome/helpers/utilities.rb +8 -11
  17. data/lib/atome/kernel/essentials.rb +0 -7
  18. data/lib/atome/kernel/universe.rb +27 -10
  19. data/lib/atome/presets/atome.rb +27 -5
  20. data/lib/atome/renderers/browser/atome.rb +22 -20
  21. data/lib/atome/renderers/browser/browser.rb +12 -143
  22. data/lib/atome/renderers/browser/event.rb +56 -1
  23. data/lib/atome/renderers/browser/helpers/animation_helper.rb +0 -0
  24. data/lib/atome/renderers/browser/helpers/browser_helper.rb +18 -0
  25. data/lib/atome/renderers/browser/helpers/color_helper.rb +35 -0
  26. data/lib/atome/renderers/browser/helpers/drag_helper.rb +39 -0
  27. data/lib/atome/renderers/browser/helpers/effect_helper.rb +22 -0
  28. data/lib/atome/renderers/browser/helpers/image_helper.rb +27 -0
  29. data/lib/atome/renderers/browser/helpers/shadow_helper.rb +33 -0
  30. data/lib/atome/renderers/browser/helpers/shape_helper.rb +22 -0
  31. data/lib/atome/renderers/browser/helpers/text_helper.rb +26 -0
  32. data/lib/atome/renderers/browser/helpers/video_helper.rb +43 -0
  33. data/lib/atome/renderers/browser/helpers/web_helper.rb +30 -0
  34. data/lib/atome/renderers/browser/identity.rb +5 -1
  35. data/lib/atome/renderers/browser/spatial.rb +4 -3
  36. data/lib/atome/renderers/browser/utility.rb +18 -5
  37. data/lib/atome/renderers/headless/headless.rb +10 -0
  38. data/lib/atome/renderers/headless/utility.rb +6 -0
  39. data/lib/atome/renderers/html/html.rb +1 -1
  40. data/lib/atome/renderers/html/spatial.rb +1 -1
  41. data/lib/atome/renderers/html/utility.rb +2 -0
  42. data/lib/atome/renderers/renderer.rb +13 -0
  43. data/lib/atome/renderers/server/server.rb +10 -0
  44. data/lib/atome/renderers/server/utility.rb +6 -0
  45. data/lib/atome/version.rb +1 -1
  46. data/lib/atome.rb +5 -2
  47. data/sig/atome.rbs +1 -0
  48. data/vendor/assets/build/css/style.css +2 -1
  49. data/vendor/assets/build/index.html +9 -6
  50. data/vendor/assets/build/js/atome/atome.js +150 -72
  51. data/vendor/assets/build/js/atome/atome_helpers/atome_animate.js +65 -0
  52. data/vendor/assets/build/js/atome/atome_helpers/atome_drag.js +85 -0
  53. data/vendor/assets/build/js/atome/atome_helpers/atome_file.js +7 -0
  54. data/vendor/assets/build/js/atome/atome_helpers/atome_sort.js +20 -0
  55. data/vendor/assets/build/js/atome/atome_helpers/atome_time.js +10 -0
  56. data/vendor/assets/build/js/atome/atome_helpers/atome_video.js +12 -0
  57. data/vendor/assets/build/js/third_parties/popmotion.min.js +1 -1
  58. data/vendor/assets/build/js/third_parties/sortable.min.js +2 -0
  59. data/vendor/assets/build/medias/rubies/examples/_2_solve.rb +36 -0
  60. data/vendor/assets/build/medias/rubies/examples/_animation.rb +46 -0
  61. data/vendor/assets/build/medias/rubies/examples/at.rb +17 -0
  62. data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -1
  63. data/vendor/assets/build/medias/rubies/examples/box.rb +4 -7
  64. data/vendor/assets/build/medias/rubies/examples/code.rb +11 -0
  65. data/vendor/assets/build/medias/rubies/examples/drag.rb +27 -33
  66. data/vendor/assets/build/medias/rubies/examples/fullscreen.rb +15 -0
  67. data/vendor/assets/build/medias/rubies/examples/height.rb +5 -2
  68. data/vendor/assets/build/medias/rubies/examples/{_id.rb → id.rb} +0 -0
  69. data/vendor/assets/build/medias/rubies/examples/left.rb +5 -2
  70. data/vendor/assets/build/medias/rubies/examples/link.rb +20 -0
  71. data/vendor/assets/build/medias/rubies/examples/monitoring.rb +14 -1
  72. data/vendor/assets/build/medias/rubies/examples/mute.rb +22 -0
  73. data/vendor/assets/build/medias/rubies/examples/on.rb +26 -0
  74. data/vendor/assets/build/medias/rubies/examples/{parent.rb → parents.rb} +6 -6
  75. data/vendor/assets/build/medias/rubies/examples/pause.rb +15 -0
  76. data/vendor/assets/build/medias/rubies/examples/play.rb +15 -0
  77. data/vendor/assets/build/medias/rubies/examples/{_read.rb → read.rb} +4 -2
  78. data/vendor/assets/build/medias/rubies/examples/refresh.rb +8 -0
  79. data/vendor/assets/build/medias/rubies/examples/right.rb +1 -1
  80. data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
  81. data/vendor/assets/build/medias/rubies/examples/schedule.rb +7 -6
  82. data/vendor/assets/build/medias/rubies/examples/smooth.rb +2 -0
  83. data/vendor/assets/build/medias/rubies/examples/sort.rb +16 -0
  84. data/vendor/assets/build/medias/rubies/examples/time.rb +14 -0
  85. data/vendor/assets/build/medias/rubies/examples/top.rb +3 -0
  86. data/vendor/assets/build/medias/rubies/examples/touch.rb +5 -0
  87. data/vendor/assets/build/medias/rubies/examples/video.rb +32 -23
  88. data/vendor/assets/build/medias/rubies/examples/wait.rb +8 -3
  89. data/vendor/assets/build/medias/rubies/examples/web.rb +7 -4
  90. data/vendor/assets/build/medias/rubies/examples/width.rb +6 -2
  91. data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
  92. data/vendor/assets/build/medias/videos/madmax.mp4 +0 -0
  93. data/vendor/assets/build/medias/videos/starwars.mov +0 -0
  94. data/vendor/assets/build/medias/videos/superman.mp4 +0 -0
  95. metadata +46 -11
  96. data/lib/atome/processors/utilities.rb +0 -10
  97. data/vendor/assets/build/medias/rubies/examples/_code.rb +0 -12
  98. data/vendor/assets/build/medias/rubies/examples/_link.rb +0 -17
  99. data/vendor/assets/build/medias/rubies/examples/_on.rb +0 -18
  100. data/vendor/assets/build/medias/rubies/examples/_refresh.rb +0 -9
@@ -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'
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ generator.build_render_method(:headless_schedule)
6
+ generator.build_render_method(:headless_reader)
@@ -34,7 +34,7 @@ class Html
34
34
  `#{parent_found}.appendChild(#{@html})`
35
35
  end
36
36
  def append_color(parent)
37
- alert "color : #{parent.class}"
37
+ aleputsrt "color : #{parent.class}"
38
38
  end
39
39
  def append_to(_node)
40
40
 
@@ -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.build_optional_methods(:pre_get_left) do
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
@@ -13,3 +13,5 @@ generator.build_render_method(:html_clear) do
13
13
  end
14
14
  children([])
15
15
  end
16
+ generator.build_render_method(:html_schedule)
17
+ generator.build_render_method(:html_reader)
@@ -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'
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+
5
+ generator.build_render_method(:server_schedule)
6
+ generator.build_render_method(:server_reader)
data/lib/atome/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.5.1.1'
4
+ VERSION = '0.5.1.9'
5
5
  end
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/atome_meta_engine'
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
@@ -1,4 +1,5 @@
1
1
  module Atome
2
2
  VERSION: String
3
3
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ def sort_callback: -> untyped
4
5
  end
@@ -18,7 +18,7 @@ html, body {
18
18
  }
19
19
 
20
20
 
21
- #device {
21
+ #view {
22
22
  left: 0;
23
23
  font-size: 25px;
24
24
  right: 0;
@@ -43,6 +43,7 @@ html, body {
43
43
 
44
44
  .selected {
45
45
  outline: 2px dashed white;
46
+ background-color: #00bb00;
46
47
  }
47
48
 
48
49
  .atome {
@@ -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 will be uncomment when using stand alone app
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
- // class AtomeDrag {
2
- // constructor() {
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
- // drag(atome_drag_id) {
6
- // // target elements with the "draggable" class
7
- // self.current_obj = Opal.Utilities.$grab(atome_drag_id)
8
- // interact('.'+atome_drag_id)
9
- // .draggable({
10
- // // enable inertial throwing
11
- // startAxis: 'x',
12
- // lockAxis: 'x',
13
- // // lockAxis: ''+lock_axis,
14
- // inertia: true,
15
- // // keep the element within the area of it's parent
16
- // modifiers: [
17
- // interact.modifiers.restrictRect({
18
- // restriction: 'parent',
19
- // endOnly: true
20
- // })
21
- // ],
22
- // // enable autoScroll
23
- // autoScroll: true,
24
- //
25
- // listeners: {
26
- // // call this function on every dragmove event
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
- const Atomeanimation ={
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,7 @@
1
+ const atomeFile = {
2
+ reader: function (file, atome, proc) {
3
+ fetch('medias/' + file)
4
+ .then(response => response.text())
5
+ .then(text => atome.$read_callback(text, proc))
6
+ }
7
+ }
@@ -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
+ }