atome 0.1.00009 → 0.4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +74 -6
- data/Rakefile +15 -6
- data/app_builder_helpers/Rakefile +184 -24
- data/documentation/atome.md +14 -0
- data/documentation/database.JPG +0 -0
- data/documentation/framework/apis.md +14 -0
- data/documentation/framework/atome_explained.md +179 -0
- data/documentation/framework/box_content.md +53 -0
- data/documentation/framework/buld_the_gem.md +52 -0
- data/documentation/framework/datas_flows.md +28 -0
- data/documentation/framework/enhance_atome.md +79 -0
- data/documentation/framework/folder_architecture.md +47 -0
- data/documentation/framework/technical/rendering_flow.md +18 -0
- data/documentation/framework/technical/technical_description.md +23 -0
- data/documentation/framework/what_is_it.md +65 -0
- data/documentation/framework/what_it_can_do.md +25 -0
- data/documentation/images/1.png +0 -0
- data/documentation/images/2.png +0 -0
- data/documentation/images/3.png +0 -0
- data/documentation/images/atome.svg +12 -0
- data/documentation/images/list.png +0 -0
- data/documentation/images/logos/cordova.png +0 -0
- data/documentation/images/logos/freebsd.png +0 -0
- data/documentation/images/logos/opal.png +0 -0
- data/documentation/images/logos/puma.png +0 -0
- data/documentation/images/logos/roda.svg +1 -0
- data/documentation/images/logos/ruby.png +0 -0
- data/documentation/images/logos/tauri.png +0 -0
- data/documentation/installation/atome_server.md +184 -0
- data/documentation/tutorials/first_steps.md +148 -0
- data/documentation/tutorials/tutorials.md +15 -0
- data/documentation/tutorials/working_with_atome.md +60 -0
- data/exe/atome +178 -53
- data/lib/atome/atome_native_extensions.rb +5 -0
- data/lib/atome/extensions/helper.rb +112 -0
- data/lib/atome/kernel/atome.rb +99 -0
- data/lib/atome/kernel/generators/generator.rb +517 -0
- data/lib/atome/kernel/generators/genesis.rb +277 -0
- data/lib/atome/kernel/generators/sanitizer.rb +73 -0
- data/lib/atome/kernel/generators/shapes.rb +55 -0
- data/lib/atome/kernel/helpers/geolocation.rb +14 -0
- data/lib/atome/kernel/helpers/internal_methods.rb +173 -0
- data/lib/atome/kernel/helpers/ping.rb +17 -0
- data/lib/atome/kernel/helpers/sha.rb +6 -0
- data/lib/atome/kernel/helpers/utilities.rb +39 -0
- data/lib/atome/kernel/properties/essential.rb +77 -0
- data/lib/atome/kernel/sparkle.rb +38 -0
- data/lib/atome/kernel/universe.rb +37 -0
- data/lib/atome/renderers/headless/properties/generator.rb +1 -0
- data/lib/atome/renderers/opal/atome_opal_extensions.rb +7 -0
- data/lib/atome/renderers/opal/extensions/color.rb +23 -0
- data/lib/atome/renderers/opal/extensions/geolocation.rb +13 -0
- data/lib/atome/renderers/opal/extensions/ping.rb +18 -0
- data/lib/atome/renderers/opal/extensions/sha.rb +12 -0
- data/lib/atome/renderers/opal/opal_browser.rb +2 -1
- data/lib/atome/renderers/opal/opal_parser.rb +1 -0
- data/lib/atome/renderers/opal/properties/generator.rb +1 -0
- data/lib/atome/renderers/renderer.rb +13 -0
- data/lib/atome/renderers/server/properties/generator.rb +9 -0
- data/lib/atome/version.rb +2 -1
- data/lib/atome.rb +46 -2
- data/vendor/assets/Guardfile +4 -0
- data/vendor/assets/Rakefile +3 -0
- data/vendor/assets/application/index.rb +4 -0
- data/vendor/assets/build/css/style.css +25 -8
- data/vendor/assets/build/favicon.ico +0 -0
- data/vendor/assets/build/index.html +15 -4
- data/vendor/assets/build/js/atome/atome.js +82 -0
- data/vendor/assets/build/js/third_parties/fabric.min.js +1 -0
- data/vendor/assets/build/js/third_parties/interact.min.js +2 -3
- data/vendor/assets/build/js/third_parties/ping.min.js +2 -0
- data/vendor/assets/build/js/third_parties/sha256.min.js +9 -0
- data/vendor/assets/build/js/third_parties/three.min.js +6 -0
- data/vendor/assets/build/js/third_parties/w3color.js +646 -0
- data/vendor/assets/build/js/third_parties/zim.min.js +1 -0
- data/vendor/assets/build/medias/audios/audio_missing.wav +0 -0
- data/vendor/assets/build/medias/audios/clap.wav +0 -0
- data/vendor/assets/build/medias/audios/cowbell.wav +0 -0
- data/vendor/assets/build/medias/audios/guitar.wav +0 -0
- data/vendor/assets/build/medias/audios/hihat.wav +0 -0
- data/vendor/assets/build/medias/audios/kick.wav +0 -0
- data/vendor/assets/build/medias/audios/riff.m4a +0 -0
- data/vendor/assets/build/medias/audios/snare.wav +0 -0
- data/vendor/assets/build/medias/audios/tom.wav +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/DancingScript-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/README.txt +66 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Dancing_Script/static/DancingScript-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/MateSC-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Mate_SC/OFL.txt +94 -0
- data/vendor/assets/build/medias/fonts/Raleway/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Raleway/README.txt +81 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/Raleway-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ExtraLightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-LightItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Raleway/static/Raleway-ThinItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/LICENSE.txt +202 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/README.txt +71 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-ExtraLight.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Light.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Roboto_Slab/static/RobotoSlab-Thin.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/OFL.txt +93 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/README.txt +75 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-Italic-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/Vollkorn-VariableFont_wght.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Black.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BlackItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Bold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-BoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-ExtraBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Italic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Medium.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-MediumItalic.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-Regular.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBold.ttf +0 -0
- data/vendor/assets/build/medias/fonts/Vollkorn/static/Vollkorn-SemiBoldItalic.ttf +0 -0
- data/vendor/assets/build/medias/images/Icon_Help.png +0 -0
- data/vendor/assets/build/medias/images/atome.svg +12 -0
- data/vendor/assets/build/medias/images/avion.jpg +0 -0
- data/vendor/assets/build/medias/images/ballanim.png +0 -0
- data/vendor/assets/build/medias/images/beach.jpg +0 -0
- data/vendor/assets/build/medias/images/blank.png +0 -0
- data/vendor/assets/build/medias/images/boat.png +0 -0
- data/vendor/assets/build/medias/images/cache.svg +10 -0
- data/vendor/assets/build/medias/images/dices.png +0 -0
- data/vendor/assets/build/medias/images/eVe_back.png +0 -0
- data/vendor/assets/build/medias/images/elephant.png +0 -0
- data/vendor/assets/build/medias/images/eyes.jpg +0 -0
- data/vendor/assets/build/medias/images/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/grain_texture.png +0 -0
- data/vendor/assets/build/medias/images/green_planet.png +0 -0
- data/vendor/assets/build/medias/images/image_missing.svg +9 -0
- data/vendor/assets/build/medias/images/jeezs.png +0 -0
- data/vendor/assets/build/medias/images/keyboard.png +0 -0
- data/vendor/assets/build/medias/images/killer.jpg +0 -0
- data/vendor/assets/build/medias/images/living_room.png +0 -0
- data/vendor/assets/build/medias/images/logo.svg +14 -0
- data/vendor/assets/build/medias/images/logos/Facebook.svg +8 -0
- data/vendor/assets/build/medias/images/logos/GitHub Black.svg +7 -0
- data/vendor/assets/build/medias/images/logos/GitHub-Mark.eps +7696 -0
- data/vendor/assets/build/medias/images/logos/GitHub.svg +7 -0
- data/vendor/assets/build/medias/images/logos/TikTok.svg +11 -0
- data/vendor/assets/build/medias/images/logos/Twitter.svg +35 -0
- data/vendor/assets/build/medias/images/logos/YouTube.svg +1 -0
- data/vendor/assets/build/medias/images/logos/apple.svg +4 -0
- data/vendor/assets/build/medias/images/logos/atome.svg +12 -0
- data/vendor/assets/build/medias/images/logos/freebsd.png +0 -0
- data/vendor/assets/build/medias/images/logos/instagram.svg +6 -0
- data/vendor/assets/build/medias/images/logos/tiktok_back.svg +1 -0
- data/vendor/assets/build/medias/images/moto.png +0 -0
- data/vendor/assets/build/medias/images/noise.svg +17 -0
- data/vendor/assets/build/medias/images/piano.png +0 -0
- data/vendor/assets/build/medias/images/poisson.jpg +0 -0
- data/vendor/assets/build/medias/images/red_planet.png +0 -0
- data/vendor/assets/build/medias/images/sky.jpg +0 -0
- data/vendor/assets/build/medias/images/the_mask.svg +8 -0
- data/vendor/assets/build/medias/images/tile.png +0 -0
- data/vendor/assets/build/medias/images/tile_black.png +0 -0
- data/vendor/assets/build/medias/images/tile_white.png +0 -0
- data/vendor/assets/build/medias/javascripts/test.js +1 -0
- data/vendor/assets/build/medias/rubies/examples/!run.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/!demos.rb +111 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/action.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/add.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/alignment.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/animation.rb +92 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_as_property.rb +20 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atome_list.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/atomiser.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/attach_extract.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/authorisation.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/batch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blend.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/blur.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/border.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/calendar.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/capture.rb +57 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/center.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/child.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clear.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/clip.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/code_editor.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/collaborate.rb +115 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/convert_to_px.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/copy_paste.rb +35 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/current_code.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/cursor.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/data.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/database.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/delete.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/display.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/disposition.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/double_and_long_touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag.rb +61 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drag_and_drop_import.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/drop.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/duplicate.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/edit.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/eval.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/extract_detach.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fill.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/find.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fit.rb +44 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/fullscreen.rb +28 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/generate.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/gradient.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/group.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/helper.rb +64 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/history.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/hue.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/input_text.rb +54 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/insert_attach.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/internationalisation.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/key.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/keyboard_shortcut.rb +69 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_methods.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/list_types.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/listen.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mail.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/map.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mask.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_recorder.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/media_streaming.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/meteo.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/methods_chaining.rb +8 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/midi.rb +37 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/monitoring.rb +47 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/mulitrendering.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/noise_gradient_texture.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/notification.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/object_in_object.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/on_resize.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/over.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/overflow.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parameter.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/parent.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/particle.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/pay.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ping.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play.rb +24 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/play_audio.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/position.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/read_file.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/reboot.rb +15 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/refresh.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/remote_server.rb +31 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/render.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/repeat.rb +19 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/require_remote.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/restore_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/resurect.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/ruby_version.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/say.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scale.rb +41 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/schedule.rb +39 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/scroll.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/select.rb +32 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/selector.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shadow.rb +30 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/shape_with_path.rb +7 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/size.rb +109 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/smooth.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/speech_renderer.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/synth.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/system.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/tags.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_selection.rb +33 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/text_to_midi.rb +22 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/touch_stop_propagation.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/treat_object_in_object.rb +26 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/type_mutations.rb +27 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/video_callback.rb +46 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/view_mode.rb +29 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/virtual_events.rb +17 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/visual.rb +23 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/vr_display.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/wait.rb +21 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/web_address_bar.rb +14 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/websocket.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/Old_examples/webstate.rb +10 -0
- data/vendor/assets/build/{js/atome/kernel.js → medias/rubies/examples/animation.rb} +0 -0
- data/vendor/assets/build/medias/rubies/examples/atome.new.rb +12 -0
- data/vendor/assets/build/medias/rubies/examples/auto_height.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/auto_width.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/bottom.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/box.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/circle.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/clear.rb +9 -0
- data/vendor/assets/build/medias/rubies/examples/code.rb +5 -0
- data/vendor/assets/build/medias/rubies/examples/color.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/create_atome_in_atome.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/drag.rb +43 -0
- data/vendor/assets/build/medias/rubies/examples/get_renderer_list.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/grab.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/height.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/image.rb +4 -0
- data/vendor/assets/build/medias/rubies/examples/left.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/link.rb +11 -0
- data/vendor/assets/build/medias/rubies/examples/on.rb +16 -0
- data/vendor/assets/build/medias/rubies/examples/parent.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/read.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/repeat.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/right.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/rotate.rb +2 -0
- data/vendor/assets/build/medias/rubies/examples/schedule.rb +13 -0
- data/vendor/assets/build/medias/rubies/examples/smooth.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/text.rb +18 -0
- data/vendor/assets/build/medias/rubies/examples/top.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/touch.rb +6 -0
- data/vendor/assets/build/medias/rubies/examples/video.rb +52 -0
- data/vendor/assets/build/medias/rubies/examples/wait.rb +3 -0
- data/vendor/assets/build/medias/rubies/examples/web.rb +10 -0
- data/vendor/assets/build/medias/rubies/examples/width.rb +2 -0
- data/vendor/assets/build/medias/rubies/test.rb +1 -0
- data/vendor/assets/build/medias/rubies/text_read.rb +1 -0
- data/vendor/assets/build/medias/rubies/users/code.rb +6 -0
- data/vendor/assets/build/medias/utils/infos/color.rb +29 -0
- data/vendor/assets/build/medias/utils/infos/width.rb +25 -0
- data/vendor/assets/build/medias/videos/avengers.mp4 +0 -0
- data/vendor/assets/build/medias/videos/lion_king.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
- data/vendor/assets/build/medias/videos/video_missing.mp4 +0 -0
- data/vendor/assets/{index.rb → r&d/misc.rb} +54 -1
- data/vendor/assets/r&d/ping.rb +3 -0
- data/vendor/assets/r&d/storage.rb +9 -0
- data/vendor/assets/r&d/view_example.rb +21 -0
- data/vendor/assets/server/atome_server.rb +74 -27
- data/vendor/assets/server/config.ru +2 -14
- metadata +438 -14
- data/lib/atome/kernel/atome_genesis.rb +0 -2
- data/lib/atome/kernel/properties/geometry.rb +0 -2
- data/vendor/assets/build/js/opal/opal_browser.js +0 -0
- data/vendor/assets/build/js/opal/opal_parser.js +0 -0
@@ -0,0 +1,77 @@
|
|
1
|
+
class Atome
|
2
|
+
|
3
|
+
def identity (params)
|
4
|
+
@identity=params
|
5
|
+
end
|
6
|
+
def new(params)
|
7
|
+
puts "add/new : #{params}"
|
8
|
+
end
|
9
|
+
|
10
|
+
def set(params)
|
11
|
+
puts "set : #{params}"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.grab(val)
|
15
|
+
Utilities.grab(val)
|
16
|
+
end
|
17
|
+
|
18
|
+
def add(params)
|
19
|
+
puts "add : #{params}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def update(params)
|
23
|
+
puts "update : #{params}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def refresh
|
27
|
+
# delete the object in the view
|
28
|
+
self.html_object&.remove
|
29
|
+
particles_found = particles
|
30
|
+
particles_found.delete(:html_type)
|
31
|
+
particles_found.delete(:html_object)
|
32
|
+
particles_found.delete(:id)
|
33
|
+
particles_found.delete(:dna)
|
34
|
+
atomes_to_re_attach = {}
|
35
|
+
Utilities.atome_list.each do |atome_to_refresh|
|
36
|
+
atome_found = particles_found.delete(atome_to_refresh)
|
37
|
+
if atome_found
|
38
|
+
particles_found.delete(atome_to_refresh)
|
39
|
+
atomes_to_re_attach[atome_found.type] = atome_found
|
40
|
+
end
|
41
|
+
end
|
42
|
+
particles_found.each do |particle_to_refresh, value|
|
43
|
+
send(particle_to_refresh, value)
|
44
|
+
end
|
45
|
+
atomes_to_re_attach.each do |atome_to_attatch, content|
|
46
|
+
instance_variable_set("@#{atome_to_attatch}", content)
|
47
|
+
html_decision(content.html_type, id, content.id)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def replace(params)
|
53
|
+
puts "replace : #{params}"
|
54
|
+
end
|
55
|
+
|
56
|
+
def clear
|
57
|
+
child.each do |child_found|
|
58
|
+
grab(child_found).html_object&.remove
|
59
|
+
end
|
60
|
+
child([])
|
61
|
+
end
|
62
|
+
|
63
|
+
def delete(params)
|
64
|
+
self.html_object&.remove
|
65
|
+
Universe.delete(id)
|
66
|
+
end
|
67
|
+
|
68
|
+
def [](params)
|
69
|
+
instance_variable_get(instance_variables[params])
|
70
|
+
end
|
71
|
+
|
72
|
+
def to_s
|
73
|
+
inspect.to_s
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# FIXME : try avoid type property duplication (it's the key of the hash and also specified in the hash itself)
|
4
|
+
|
5
|
+
# let's create the view port
|
6
|
+
default_render = if RUBY_ENGINE.downcase == 'opal'
|
7
|
+
:html
|
8
|
+
else
|
9
|
+
:headless
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
Sanitizer.default_params[:render] = default_render
|
14
|
+
Atome.new(
|
15
|
+
{ shape: { render: [default_render], id: :view, type: :shape, parent: [:user_view],
|
16
|
+
left: 0, right: 0, top: 0, bottom: 0,overflow: :auto,
|
17
|
+
color: { render: [default_render], id: :view_color, type: :color,
|
18
|
+
red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } } }
|
19
|
+
)
|
20
|
+
|
21
|
+
|
22
|
+
# init basic object for atome environment
|
23
|
+
|
24
|
+
# Atome.new is used to create a new atome using best performances but params must be formatted and ordered correctly
|
25
|
+
|
26
|
+
# use atome.atome to create a new atome using a more permissive syntax less performances but params must be formatted
|
27
|
+
# and ordered correctly
|
28
|
+
|
29
|
+
# Atome.atome ids the easiest way to create a new atome
|
30
|
+
# Atome.atome({
|
31
|
+
# shape: { left: 0, right: 0, top: 0, bottom: 0, id: :view, color: { id: :c1, render: [:headless],
|
32
|
+
# red: 0.15, green: 0.15, blue: 0.15, alpha: 1 } } })
|
33
|
+
|
34
|
+
# WARNING: when using Atome.new syntax , you must get your object using the .atome
|
35
|
+
# example to get the atome above : use a.shape.left and not a.left it wont access the physical object
|
36
|
+
|
37
|
+
puts "current machine id: #{Atome.current_machine}"
|
38
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# all created atomes are listed here
|
4
|
+
class Universe
|
5
|
+
def self.app_identity
|
6
|
+
# each app hav its own identity, this allow to generate new user identities from th
|
7
|
+
@app_identity = 3
|
8
|
+
# the identity is define as follow : parentCreatorID_softwareInstanceID_objetID
|
9
|
+
# in this case parent is eve so 0, Software instance number is main eVe server which is also 0,
|
10
|
+
# and finally the object is 3 as this the third object created by the main server
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.initialize
|
14
|
+
@atomes = {}
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.atomes_add(new_atome,atome_id)
|
18
|
+
new_atome.instance_variable_set('@id', atome_id)
|
19
|
+
@atomes[atome_id] = new_atome
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.change_atome_id(prev_id, new_id)
|
23
|
+
@atomes[new_id] = @atomes.delete(prev_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.delete(id)
|
27
|
+
@atomes.delete(id)
|
28
|
+
end
|
29
|
+
|
30
|
+
class << self
|
31
|
+
attr_reader :atomes
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.connected
|
35
|
+
true
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# frozen_string_literal: true
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rgb utility
|
4
|
+
class Atome
|
5
|
+
def rgb_html(string)
|
6
|
+
`
|
7
|
+
col = w3color(#{string});
|
8
|
+
rgb_col=col.toRgb();
|
9
|
+
return Opal.hash(rgb_col)
|
10
|
+
`
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_rgb(string)
|
14
|
+
rgb_color = rgb_html(string)
|
15
|
+
|
16
|
+
{
|
17
|
+
red: rgb_color[:r] / 255,
|
18
|
+
green: rgb_color[:g] / 255,
|
19
|
+
blue: rgb_color[:b] / 255,
|
20
|
+
alpha: 1
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
|
2
|
+
class Atome
|
3
|
+
def geolocation
|
4
|
+
localisation = {latitude: nil, longitude: nil}
|
5
|
+
$window.navigator.geolocate.then do |pos|
|
6
|
+
localisation[:latitude] = pos.coords.latitude
|
7
|
+
localisation[:longitude] = pos.coords.longitude
|
8
|
+
end.rescue do |err|
|
9
|
+
p err
|
10
|
+
localisation = nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Add on the Atome class
|
4
|
+
class Atome
|
5
|
+
def ping(my_proc = false)
|
6
|
+
instance_exec(my_proc) if my_proc.is_a?(Proc)
|
7
|
+
|
8
|
+
` var p = new Ping();
|
9
|
+
p.ping('https://'+#{address}+'', function (err, data) {
|
10
|
+
if (err) {
|
11
|
+
return false;
|
12
|
+
} else {
|
13
|
+
console.log("the site "+#{address}+" is up!");
|
14
|
+
}
|
15
|
+
});
|
16
|
+
`
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# frozen_string_literal: true
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Main render engine
|
4
|
+
module Render
|
5
|
+
def render_engine(property, value, atome, &proc)
|
6
|
+
|
7
|
+
renderer_found = atome.render
|
8
|
+
renderer_found.each do |renderer|
|
9
|
+
renderer_name = "#{property}_#{renderer}"
|
10
|
+
send(renderer_name, value,atome, &proc)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/atome/version.rb
CHANGED
data/lib/atome.rb
CHANGED
@@ -2,5 +2,49 @@
|
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'atome/version'
|
5
|
-
|
6
|
-
|
5
|
+
@atome_client_ready = false
|
6
|
+
|
7
|
+
def eval_protection
|
8
|
+
binding
|
9
|
+
end
|
10
|
+
|
11
|
+
# FIXME: atome run doesnt run the code
|
12
|
+
if RUBY_ENGINE.downcase != 'opal'
|
13
|
+
# FIXME: find a better and more elegant solution to avoid opal to treat require
|
14
|
+
# FIXME: replace eval with a safer option
|
15
|
+
eval "require 'atome/atome_native_extensions'", eval_protection, __FILE__, __LINE__
|
16
|
+
eval "require 'color'", eval_protection, __FILE__, __LINE__
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'atome/kernel/universe'
|
20
|
+
require 'atome/kernel/generators/genesis'
|
21
|
+
require 'atome/kernel/helpers/internal_methods'
|
22
|
+
require 'atome/kernel/helpers/utilities'
|
23
|
+
require 'atome/renderers/renderer'
|
24
|
+
require 'atome/kernel/generators/sanitizer'
|
25
|
+
require 'atome/kernel/generators/generator'
|
26
|
+
require 'atome/renderers/opal/properties/generator'
|
27
|
+
require 'atome/renderers/server/properties/generator'
|
28
|
+
require 'atome/renderers/headless/properties/generator'
|
29
|
+
require 'atome/kernel/generators/shapes'
|
30
|
+
require 'atome/kernel/atome'
|
31
|
+
require 'atome/kernel/properties/essential'
|
32
|
+
require 'atome/extensions/helper'
|
33
|
+
|
34
|
+
Universe.send(:initialize)
|
35
|
+
# puts "@atome_client_ready is : #{@atome_client_ready}"
|
36
|
+
|
37
|
+
# puts "app_identity is : #{Universe.app_identity}"
|
38
|
+
|
39
|
+
Atome.current_user = :jeezs
|
40
|
+
|
41
|
+
require 'atome/kernel/sparkle'
|
42
|
+
|
43
|
+
# TODO: create a system to secure and validate generated renderer methods , optional methods and atome's methods
|
44
|
+
# TODO: int8! : language
|
45
|
+
# TODO: record user actions
|
46
|
+
# TODO: separate the audio in the video
|
47
|
+
# TODO: add mute to video
|
48
|
+
|
49
|
+
|
50
|
+
|
@@ -6,8 +6,8 @@ html, body {
|
|
6
6
|
|
7
7
|
font-family: system-ui, -apple-system, -apple-system-font, 'Segoe UI', 'Roboto', sans-serif;
|
8
8
|
font-size: 12px;
|
9
|
-
margin:
|
10
|
-
padding:
|
9
|
+
margin: 0;
|
10
|
+
padding: 0;
|
11
11
|
background: rgba(39, 39, 39, 1);
|
12
12
|
overflow: hidden;
|
13
13
|
-webkit-overflow-scrolling: touch;
|
@@ -30,16 +30,14 @@ html, body {
|
|
30
30
|
overflow: hidden;
|
31
31
|
position: absolute;
|
32
32
|
-webkit-overflow-scrolling: touch;
|
33
|
-
overflow: hidden;
|
34
33
|
}
|
35
34
|
|
36
35
|
|
37
|
-
|
38
|
-
.ui-selected{
|
36
|
+
.ui-selected {
|
39
37
|
border: #00bb00 solid 3px;
|
40
38
|
}
|
41
39
|
|
42
|
-
.ui-selecting{
|
40
|
+
.ui-selecting {
|
43
41
|
border: orange solid 3px;
|
44
42
|
}
|
45
43
|
|
@@ -47,7 +45,26 @@ html, body {
|
|
47
45
|
outline: 2px dashed white;
|
48
46
|
}
|
49
47
|
|
48
|
+
.atome {
|
49
|
+
cursor: default;
|
50
|
+
pointer-events: auto;
|
51
|
+
caret-color: transparent;
|
52
|
+
outline: none;
|
53
|
+
-webkit-user-select: none;
|
54
|
+
-moz-user-select: none;
|
55
|
+
user-select: none;
|
56
|
+
position: absolute;
|
57
|
+
display: inline-block;
|
58
|
+
background-size: 100%;
|
59
|
+
background-repeat: no-repeat;
|
60
|
+
-webkit-overflow-scrolling: touch;
|
61
|
+
-webkit-user-drag: none;
|
62
|
+
caret-shape: bar;
|
63
|
+
overflow: visible;
|
64
|
+
}
|
50
65
|
|
51
|
-
|
52
|
-
|
66
|
+
.text {
|
67
|
+
-webkit-text-fill-color: transparent;
|
68
|
+
-webkit-background-clip: text;
|
69
|
+
}
|
53
70
|
|
Binary file
|
@@ -3,18 +3,29 @@
|
|
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"/>
|
6
8
|
<meta name="format-detection" content="telephone=no">
|
7
9
|
<meta name="msapplication-tap-highlight" content="no">
|
8
10
|
<meta name="viewport" content="initial-scale=1, width=device-width, viewport-fit=cover">
|
9
11
|
<link type="text/css" rel="stylesheet" href="css/style.css">
|
12
|
+
<script type="text/javascript" src="js/third_parties/fabric.min.js"></script>
|
13
|
+
<script type="text/javascript" src="js/third_parties/three.min.js"></script>
|
10
14
|
<script type="text/javascript" src="js/third_parties/interact.min.js"></script>
|
11
15
|
<script type="text/javascript" src="js/third_parties/popmotion.min.js"></script>
|
16
|
+
<script type="text/javascript" src="js/third_parties/sha256.min.js"></script>
|
17
|
+
<script type="text/javascript" src="js/third_parties/ping.min.js"></script>
|
18
|
+
<script src='js/third_parties/w3color.js'></script>
|
12
19
|
<script src='js/opal/opal_browser.js'></script>
|
13
20
|
<script src='js/opal/opal_parser.js'></script>
|
14
|
-
<script src='js/
|
15
|
-
<
|
21
|
+
<script src='js/aui.js'></script>
|
22
|
+
<script src='js/atome/atome.js' defer></script>
|
23
|
+
<script src='js/atome/kernel.js' defer></script>
|
24
|
+
<script src='js/opal/atome_opal_extensions.js'></script>
|
25
|
+
<title>atome</title>
|
26
|
+
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
16
27
|
</head>
|
17
|
-
<body id='user_view' oncontextmenu="return false;" >
|
28
|
+
<body id='user_view' class='atome' oncontextmenu="return false;" >
|
18
29
|
</body>
|
19
|
-
<script src='js/application.js'></script>
|
30
|
+
<script src='js/application.js' defer></script>
|
20
31
|
</html>
|
@@ -0,0 +1,82 @@
|
|
1
|
+
class AtomeDrag {
|
2
|
+
constructor() {
|
3
|
+
}
|
4
|
+
|
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
|
+
|
43
|
+
function dragMoveListener(event) {
|
44
|
+
const target = event.target
|
45
|
+
// the code below can be conditioned to receive the drag event without moving the object
|
46
|
+
// keep the dragged position in the data-x/data-y attributes
|
47
|
+
const x = (parseFloat(target.getAttribute('data-x')) || 0) + event.dx;
|
48
|
+
const y = (parseFloat(target.getAttribute('data-y')) || 0) + event.dy
|
49
|
+
// translate the element
|
50
|
+
target.style.transform = 'translate(' + x + 'px, ' + y + 'px)'
|
51
|
+
// update the position attributes
|
52
|
+
target.setAttribute('data-x', x)
|
53
|
+
target.setAttribute('data-y', y)
|
54
|
+
// CallBack here
|
55
|
+
self.current_obj.$dragCallback(event.pageX, event.pageY, event.rect.left, event.rect.top, self.current_obj, self.proc_meth);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
// Usage:
|
62
|
+
// let atomeDrag = new AtomeDrag();
|
63
|
+
// atomeDrag.drag('atome_id', 'options');
|
64
|
+
|
65
|
+
|
66
|
+
class Atomeanimation {
|
67
|
+
|
68
|
+
|
69
|
+
}
|
70
|
+
|
71
|
+
// TODO: put in a class
|
72
|
+
|
73
|
+
const atome = {
|
74
|
+
jsSchedule: function (years, months, days, hours, minutes, seconds, proc) {
|
75
|
+
const now = new Date();
|
76
|
+
const formatedDate = new Date(years, months - 1, days, hours, minutes, seconds);
|
77
|
+
const diffTime = Math.abs(formatedDate - now);
|
78
|
+
setTimeout(function () {
|
79
|
+
Opal.Object.$schedule_callback(proc);
|
80
|
+
}, diffTime);
|
81
|
+
}
|
82
|
+
}
|