ela 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +5 -0
- data/.gitlab-ci.yml +23 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +139 -0
- data/Guardfile +25 -0
- data/LICENSE.txt +205 -0
- data/README.de.md +195 -0
- data/README.md +66 -0
- data/Rakefile +96 -0
- data/app/css/screen.styl +425 -0
- data/app/css/vendor/stackedit.styl +140 -0
- data/app/fonts/Roboto-Italic-webfont.eot +0 -0
- data/app/fonts/Roboto-Italic-webfont.svg +642 -0
- data/app/fonts/Roboto-Italic-webfont.ttf +0 -0
- data/app/fonts/Roboto-Italic-webfont.woff +0 -0
- data/app/fonts/Roboto-Light-webfont.eot +0 -0
- data/app/fonts/Roboto-Light-webfont.svg +641 -0
- data/app/fonts/Roboto-Light-webfont.ttf +0 -0
- data/app/fonts/Roboto-Light-webfont.woff +0 -0
- data/app/fonts/Roboto-LightItalic-webfont.eot +0 -0
- data/app/fonts/Roboto-LightItalic-webfont.svg +641 -0
- data/app/fonts/Roboto-LightItalic-webfont.ttf +0 -0
- data/app/fonts/Roboto-LightItalic-webfont.woff +0 -0
- data/app/fonts/Roboto-Medium-webfont.eot +0 -0
- data/app/fonts/Roboto-Medium-webfont.svg +593 -0
- data/app/fonts/Roboto-Medium-webfont.ttf +0 -0
- data/app/fonts/Roboto-Medium-webfont.woff +0 -0
- data/app/fonts/Roboto-MediumItalic-webfont.eot +0 -0
- data/app/fonts/Roboto-MediumItalic-webfont.svg +642 -0
- data/app/fonts/Roboto-MediumItalic-webfont.ttf +0 -0
- data/app/fonts/Roboto-MediumItalic-webfont.woff +0 -0
- data/app/fonts/Roboto-Regular-webfont.eot +0 -0
- data/app/fonts/Roboto-Regular-webfont.svg +621 -0
- data/app/fonts/Roboto-Regular-webfont.ttf +0 -0
- data/app/fonts/Roboto-Regular-webfont.woff +0 -0
- data/app/fonts/Roboto-Thin-webfont.eot +0 -0
- data/app/fonts/Roboto-Thin-webfont.svg +631 -0
- data/app/fonts/Roboto-Thin-webfont.ttf +0 -0
- data/app/fonts/Roboto-Thin-webfont.woff +0 -0
- data/app/fonts/Roboto-ThinItalic-webfont.eot +0 -0
- data/app/fonts/Roboto-ThinItalic-webfont.svg +631 -0
- data/app/fonts/Roboto-ThinItalic-webfont.ttf +0 -0
- data/app/fonts/Roboto-ThinItalic-webfont.woff +0 -0
- data/app/fonts/droid_sans_regular.typeface.svg +1 -0
- data/app/fonts/fontawesome-webfont.eot +0 -0
- data/app/fonts/fontawesome-webfont.svg +2671 -0
- data/app/fonts/fontawesome-webfont.ttf +0 -0
- data/app/fonts/fontawesome-webfont.woff +0 -0
- data/app/fonts/fontawesome-webfont.woff2 +0 -0
- data/app/js/lib/application.coffee +83 -0
- data/app/js/lib/bootstrap_data.coffee +70 -0
- data/app/js/lib/collections/00_limited_collection.coffee +85 -0
- data/app/js/lib/collections/curves.coffee +3 -0
- data/app/js/lib/collections/named_object_collection.coffee +7 -0
- data/app/js/lib/mathjaxConfig.coffee +241 -0
- data/app/js/lib/models/app.coffee +58 -0
- data/app/js/lib/models/base_app.coffee +62 -0
- data/app/js/lib/models/base_app_model.coffee +61 -0
- data/app/js/lib/models/base_calculator.coffee +212 -0
- data/app/js/lib/models/base_subapp_container.coffee +35 -0
- data/app/js/lib/models/curve.coffee +179 -0
- data/app/js/lib/router.coffee +26 -0
- data/app/js/lib/views/app.coffee +56 -0
- data/app/js/lib/views/base_app.coffee +274 -0
- data/app/js/lib/views/base_aside.coffee +9 -0
- data/app/js/lib/views/base_graph.coffee +477 -0
- data/app/js/lib/views/base_subapp_container.coffee +44 -0
- data/app/js/lib/views/canvas.coffee +73 -0
- data/app/js/lib/views/curve_graph.coffee +163 -0
- data/app/js/lib/views/curves_aside.coffee +21 -0
- data/app/js/lib/views/curves_list_item.coffee +8 -0
- data/app/js/lib/views/grouped_parameters_aside.coffee +14 -0
- data/app/js/lib/views/headup.coffee +15 -0
- data/app/js/lib/views/help.coffee +86 -0
- data/app/js/lib/views/interpolated_graph.coffee +281 -0
- data/app/js/lib/views/legend.coffee +138 -0
- data/app/js/lib/views/legend_handler.coffee +51 -0
- data/app/js/lib/views/overview.coffee +85 -0
- data/app/js/lib/views/overview_tile.coffee +18 -0
- data/app/js/lib/views/parameters_aside.coffee +12 -0
- data/app/js/lib/views/three_graph.coffee +92 -0
- data/app/js/vendor/Markdown.Converter.js +1519 -0
- data/app/js/vendor/Markdown.Extra.js +874 -0
- data/app/js/vendor/Markdown.Toc.coffee +79 -0
- data/app/js/vendor/backbone-1.3.3.min.js +2 -0
- data/app/js/vendor/backbone-validation-0.11.5.js +8 -0
- data/app/js/vendor/backbone.poised/form.coffee +156 -0
- data/app/js/vendor/backbone.poised/form/anchor.coffee +26 -0
- data/app/js/vendor/backbone.poised/form/base_control.coffee +42 -0
- data/app/js/vendor/backbone.poised/form/linked_control.coffee +79 -0
- data/app/js/vendor/backbone.poised/form/linked_number_control.coffee +27 -0
- data/app/js/vendor/backbone.poised/form/linked_range_control.coffee +53 -0
- data/app/js/vendor/backbone.poised/form/linked_select_control.coffee +18 -0
- data/app/js/vendor/backbone.poised/form/linked_string_control.coffee +27 -0
- data/app/js/vendor/backbone.poised/form/number_control.coffee +25 -0
- data/app/js/vendor/backbone.poised/form/range_control.coffee +48 -0
- data/app/js/vendor/backbone.poised/form/select_control.coffee +16 -0
- data/app/js/vendor/backbone.poised/form/selectbox.coffee +78 -0
- data/app/js/vendor/backbone.poised/form/slider.coffee +109 -0
- data/app/js/vendor/backbone.poised/form/string_control.coffee +23 -0
- data/app/js/vendor/backbone.poised/form/submit_control.coffee +39 -0
- data/app/js/vendor/backbone.poised/form/textarea.coffee +36 -0
- data/app/js/vendor/backbone.poised/form/textfield.coffee +86 -0
- data/app/js/vendor/backbone.poised/form/value.coffee +33 -0
- data/app/js/vendor/backbone.poised/form/value_control.coffee +15 -0
- data/app/js/vendor/backbone.poised/linked_form.coffee +43 -0
- data/app/js/vendor/backbone.poised/list.coffee +97 -0
- data/app/js/vendor/backbone.poised/list/add_button.coffee +16 -0
- data/app/js/vendor/backbone.poised/list/anchor.coffee +32 -0
- data/app/js/vendor/backbone.poised/list/item.coffee +68 -0
- data/app/js/vendor/backbone.poised/list/searchfield.coffee +26 -0
- data/app/js/vendor/backbone.poised/list/selectable_item.coffee +65 -0
- data/app/js/vendor/backbone.poised/patches.coffee +6 -0
- data/app/js/vendor/backbone.poised/string_mixin.coffee +23 -0
- data/app/js/vendor/backbone.poised/underscore_ext.coffee +2 -0
- data/app/js/vendor/backbone.poised/view.coffee +59 -0
- data/app/js/vendor/gaussianElimination.coffee +40 -0
- data/app/js/vendor/hammer-2.0.8.min.js +7 -0
- data/app/js/vendor/jquery-3.1.1.min.js +4 -0
- data/app/js/vendor/jquery.after-transition.coffee +20 -0
- data/app/js/vendor/jquery.backbone-hammer.coffee +28 -0
- data/app/js/vendor/jquery.keyboard-modifiers.coffee +22 -0
- data/app/js/vendor/jquery.mark-5.2.3.min.js +7 -0
- data/app/js/vendor/jquery.scrollTo-2.1.2.min.js +7 -0
- data/app/js/vendor/js-yaml-3.4.3.min.js +3 -0
- data/app/js/vendor/markup_text.coffee +95 -0
- data/app/js/vendor/mathjax/MathJax.js +19 -0
- data/app/js/vendor/mathjax/extensions/MathEvents.js +19 -0
- data/app/js/vendor/mathjax/extensions/tex2jax.js +19 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_AMS-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Bold.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Caligraphic-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Bold.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Fraktur-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Main-Bold.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Main-Italic.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Main-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Math-BoldItalic.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Math-Italic.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Math-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Bold.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Italic.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_SansSerif-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Script-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Size1-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Size2-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Size3-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Size4-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_Typewriter-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/eot/MathJax_WinIE6-Regular.eot +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_AMS-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Bold.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Caligraphic-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Bold.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Fraktur-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Main-Bold.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Main-Italic.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Main-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Math-BoldItalic.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Math-Italic.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Math-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Bold.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Italic.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_SansSerif-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Script-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Size1-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Size2-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Size3-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Size4-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_Typewriter-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_WinChrome-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/otf/MathJax_WinIE6-Regular.otf +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_AMS-Regular.svg +765 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Caligraphic-Bold.svg +136 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Caligraphic-Regular.svg +134 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Fraktur-Bold.svg +319 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Fraktur-Regular.svg +309 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Bold.svg +656 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Italic.svg +374 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Main-Regular.svg +659 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Math-BoldItalic.svg +331 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Math-Italic.svg +331 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Math-Regular.svg +330 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_SansSerif-Bold.svg +280 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_SansSerif-Italic.svg +245 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_SansSerif-Regular.svg +211 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Script-Regular.svg +160 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Size1-Regular.svg +110 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Size2-Regular.svg +109 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Size3-Regular.svg +49 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Size4-Regular.svg +102 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_Typewriter-Regular.svg +322 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/svg/MathJax_WinChrome-Regular.svg +39 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff +0 -0
- data/app/js/vendor/mathjax/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff +0 -0
- data/app/js/vendor/mathjax/jax/element/mml/jax.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/Arrows.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/BasicLatin.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/CombDiacritMarks.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/CombDiactForSymbols.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/Dingbats.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/GeneralPunctuation.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/GeometricShapes.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/GreekAndCoptic.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/Latin1Supplement.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/LetterlikeSymbols.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/MathOperators.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/MiscMathSymbolsA.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/MiscMathSymbolsB.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/MiscSymbolsAndArrows.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/MiscTechnical.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/SpacingModLetters.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/SuppMathOperators.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/SupplementalArrowsA.js +19 -0
- data/app/js/vendor/mathjax/jax/element/mml/optable/SupplementalArrowsB.js +19 -0
- data/app/js/vendor/mathjax/jax/input/TeX/config.js +19 -0
- data/app/js/vendor/mathjax/jax/input/TeX/jax.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/annotation-xml.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/maction.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/menclose.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/mglyph.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/mmultiscripts.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/ms.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/mtable.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/autoload/multiline.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/config.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/AMS-Regular.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Caligraphic-Bold.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Fraktur-Bold.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Fraktur-Regular.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Main-Bold.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Math-BoldItalic.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Bold.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Italic.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/SansSerif-Regular.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Script-Regular.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/Typewriter-Regular.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/fontdata-extra.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/fonts/TeX/fontdata.js +19 -0
- data/app/js/vendor/mathjax/jax/output/CommonHTML/jax.js +19 -0
- data/app/js/vendor/modernizr-custom-3.3.1.min.js +3 -0
- data/app/js/vendor/persistjs-git.js +1136 -0
- data/app/js/vendor/poised/poised.general.coffee +21 -0
- data/app/js/vendor/poised/poised.tabs.coffee +31 -0
- data/app/js/vendor/poised/utils.coffee +11 -0
- data/app/js/vendor/request_animation_frame.coffee +19 -0
- data/app/js/vendor/three-82.min.js +15 -0
- data/app/js/vendor/three-CanvasRenderer-82.js +1118 -0
- data/app/js/vendor/three-Projector-82.js +929 -0
- data/app/js/vendor/underscore-1.8.3.min.js +6 -0
- data/app/js/vendor/webfontloader-1.6.26.min.js +33 -0
- data/app/views/aliasing/legend.jst.hamlc +6 -0
- data/app/views/composites/composites_list_item_label.jst.hamlc +3 -0
- data/app/views/composites/import_composites_aside.jst.hamlc +6 -0
- data/app/views/composites/mix_preset_list_item_label.jst.hamlc +8 -0
- data/app/views/composites/share_aside.jst.hamlc +7 -0
- data/app/views/doc/airplanes_list_item_label.jst.hamlc +3 -0
- data/app/views/doc/import_airplanes_aside.jst.hamlc +6 -0
- data/app/views/doc/share_aside.jst.hamlc +7 -0
- data/app/views/general/app.jst.hamlc +42 -0
- data/app/views/general/curves_list_item_label.jst.hamlc +5 -0
- data/app/views/general/help.jst.hamlc +7 -0
- data/app/views/general/tabs.jst.hamlc +6 -0
- data/app/views/index.haml +24 -0
- data/app/views/overview/app.jst.hamlc +7 -0
- data/app/views/overview/tile.jst.hamlc +4 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/ela.gemspec +50 -0
- data/exe/ela +59 -0
- data/lib/ela.rb +8 -0
- data/lib/ela/jasmine.rb +87 -0
- data/lib/ela/server.rb +136 -0
- data/lib/ela/utils.rb +131 -0
- data/lib/ela/version.rb +3 -0
- data/package-lock.json +899 -0
- data/package.json +11 -0
- data/support/project/Guardfile +64 -0
- data/support/project/jasmine.yml +3 -0
- data/support/server.ru +5 -0
- metadata +4365 -0
data/README.md
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
# ela.js E-Learning App Framework
|
2
|
+
|
3
|
+
ela.js is a JavaScript framework and build environment for developing
|
4
|
+
HTML5 E-Learning Apps.
|
5
|
+
|
6
|
+
Sorry, a comprehensive readme is currently only
|
7
|
+
available [in German](README.de.md).
|
8
|
+
|
9
|
+
## Installation
|
10
|
+
|
11
|
+
Add this line to your application's Gemfile:
|
12
|
+
|
13
|
+
```ruby
|
14
|
+
gem 'ela'
|
15
|
+
```
|
16
|
+
|
17
|
+
And then execute:
|
18
|
+
|
19
|
+
$ bundle
|
20
|
+
|
21
|
+
Or install it yourself as:
|
22
|
+
|
23
|
+
$ gem install ela
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
$ mkdir my-apps
|
28
|
+
$ cd my-apps
|
29
|
+
$ ela init
|
30
|
+
$ ela serve
|
31
|
+
|
32
|
+
## Screenshots
|
33
|
+
|
34
|
+
![](screenshots/overview.tablet.png)
|
35
|
+
|
36
|
+
![](screenshots/subapps-and-curves-aside.tablet.png)
|
37
|
+
|
38
|
+
![](screenshots/airplanes.tablet.png)
|
39
|
+
|
40
|
+
![](screenshots/parameters-aside-1.tablet.png)
|
41
|
+
|
42
|
+
![](screenshots/parameters-aside-2.tablet.png)
|
43
|
+
|
44
|
+
![](screenshots/help.tablet.png)
|
45
|
+
|
46
|
+
![](screenshots/airplaneInternalLoads-fuselage.tablet.png)
|
47
|
+
|
48
|
+
![](screenshots/airplaneInternalLoads-wing.tablet.png)
|
49
|
+
|
50
|
+
![](screenshots/buckling.tablet.png)
|
51
|
+
|
52
|
+
![](screenshots/cabinSlendernessRatio.tablet.png)
|
53
|
+
|
54
|
+
![](screenshots/laminateDeformation.tablet.png)
|
55
|
+
|
56
|
+
![](screenshots/mohrsCircle.tablet.png)
|
57
|
+
|
58
|
+
![](screenshots/planeElasticityProblems.tablet.png)
|
59
|
+
|
60
|
+
![](screenshots/thrustMatching.tablet.png)
|
61
|
+
|
62
|
+
## Credits
|
63
|
+
|
64
|
+
This framework was initially written to support teaching at the
|
65
|
+
department of aircraft construction, institute of aerospace at the
|
66
|
+
Berlin Institute of Technology ("Technische Universität Berlin").
|
data/Rakefile
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require 'jasmine'
|
3
|
+
load 'jasmine/tasks/jasmine.rake'
|
4
|
+
|
5
|
+
ENV['RACK_ENV'] = 'production'
|
6
|
+
APP_FILE = 'lib/ela/server.rb'
|
7
|
+
APP_CLASS = 'ELA::Server'
|
8
|
+
require 'sinatra/assetpack/rake'
|
9
|
+
|
10
|
+
require './lib/ela/ela'
|
11
|
+
|
12
|
+
def compile_custom(path, target_file)
|
13
|
+
response = app.assets.send(:build_get, path)
|
14
|
+
File.open(File.join(app.settings.public_folder, target_file), 'w+') do |f|
|
15
|
+
f.puts response.body
|
16
|
+
end
|
17
|
+
puts "Precompiling #{path} to #{target_file} ..."
|
18
|
+
end
|
19
|
+
|
20
|
+
def write_yml(path)
|
21
|
+
ELA.write_settings_yml(File.join(path, 'settings.default.yml'))
|
22
|
+
ELA.write_labels_yml(File.join(path, 'labels.default.yml'))
|
23
|
+
end
|
24
|
+
|
25
|
+
task :clean do
|
26
|
+
rm_rf 'dist'
|
27
|
+
rm_rf 'doc'
|
28
|
+
rm_f 'CHANGELOG.md'
|
29
|
+
end
|
30
|
+
|
31
|
+
task :build => :clean do
|
32
|
+
mkdir 'dist'
|
33
|
+
compile_custom('/', 'index.html')
|
34
|
+
Rake::Task['assetpack:precompile:packages'].invoke
|
35
|
+
cp_r(File.join(app.settings.root, 'app', 'fonts'), File.join(app.settings.public_folder, 'fonts'))
|
36
|
+
cp_r(File.join(app.settings.root, 'app', 'images'), File.join(app.settings.public_folder, 'images'))
|
37
|
+
cp(File.join(app.settings.root, 'app', 'images', 'favicons', 'favicon.ico'), File.join(app.settings.public_folder, 'favicon.ico'))
|
38
|
+
write_yml(app.settings.public_folder)
|
39
|
+
mkdir 'public/js/vendor'
|
40
|
+
cp_r(Dir[File.join(app.settings.root, 'app', 'js', 'vendor', 'mathjax')], File.join(app.settings.public_folder, 'js', 'vendor'))
|
41
|
+
end
|
42
|
+
|
43
|
+
task :doc do
|
44
|
+
File.open('CHANGELOG.md', 'w') do |f|
|
45
|
+
f << `git-changelog`
|
46
|
+
end
|
47
|
+
system('codo')
|
48
|
+
cp_r(File.join(app.settings.root, 'screenshots'), File.join(app.settings.root, 'doc', 'extra'))
|
49
|
+
end
|
50
|
+
|
51
|
+
require 'coffee-script'
|
52
|
+
require 'fileutils'
|
53
|
+
def coffee_compile(source_dir, target_dir)
|
54
|
+
glob = File.join(source_dir, '**/*.coffee')
|
55
|
+
Dir[glob].each do |file|
|
56
|
+
target_file = file.
|
57
|
+
gsub(/^#{source_dir}/, target_dir).
|
58
|
+
gsub(/\.coffee$/, '.js')
|
59
|
+
target_file_dir = File.dirname(target_file)
|
60
|
+
puts " #{file} to #{target_file}"
|
61
|
+
FileUtils.mkdir_p(target_file_dir)
|
62
|
+
File.open(target_file, "w") do |f|
|
63
|
+
f.puts CoffeeScript.compile(File.read(file))
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
namespace :test do
|
69
|
+
desc "Compile app and spec coffeescripts."
|
70
|
+
task :compile do
|
71
|
+
puts "Compiling app coffeescripts for testing ..."
|
72
|
+
coffee_compile('./app/js', './spec/app_js')
|
73
|
+
|
74
|
+
puts "Compiling spec coffeescripts for testing ..."
|
75
|
+
coffee_compile('./spec/coffeescripts', './spec/javascripts')
|
76
|
+
|
77
|
+
puts "Copying vendored javascript for testing ..."
|
78
|
+
cp(Dir["./app/js/vendor/*.js"], "./spec/app_js/vendor/")
|
79
|
+
|
80
|
+
puts "Building config files for testing ..."
|
81
|
+
write_yml('./spec/app_js')
|
82
|
+
end
|
83
|
+
|
84
|
+
desc "Run jasmine specs."
|
85
|
+
task :run => 'jasmine:ci'
|
86
|
+
|
87
|
+
desc "Clean all untracked and ignored files on ./spec folder."
|
88
|
+
task :clean do
|
89
|
+
sh 'git clean -f -d -x -- ./spec'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
desc "Compile, run and clean specs."
|
94
|
+
task :test => ['test:compile', 'test:run']
|
95
|
+
|
96
|
+
task default: :test
|
data/app/css/screen.styl
ADDED
@@ -0,0 +1,425 @@
|
|
1
|
+
// ELA specific
|
2
|
+
$range-handler-width = 59px
|
3
|
+
|
4
|
+
// Remember that this color should be set in CurveGraph aswell
|
5
|
+
// to resemble the fillColor of the range indicator triangles:
|
6
|
+
$legend-background = #f2f2f2
|
7
|
+
|
8
|
+
@import "poised"
|
9
|
+
@import "vendor/stackedit"
|
10
|
+
|
11
|
+
sub
|
12
|
+
relative 0.5em // vertical-align approach affects line height
|
13
|
+
font-size 0.7em
|
14
|
+
margin-left 3px
|
15
|
+
|
16
|
+
sup
|
17
|
+
relative -0.5em // vertical-align approach affects line height
|
18
|
+
font-size 0.7em
|
19
|
+
margin-left 3px
|
20
|
+
|
21
|
+
#app
|
22
|
+
absolute 0 0 0 0
|
23
|
+
overflow hidden
|
24
|
+
|
25
|
+
#help article
|
26
|
+
overflow scroll
|
27
|
+
-webkit-overflow-scrolling touch
|
28
|
+
padding 10px
|
29
|
+
font-size 80%
|
30
|
+
stackedit()
|
31
|
+
|
32
|
+
#overview
|
33
|
+
$margin = 18px
|
34
|
+
$tile-size = 200px
|
35
|
+
$tile-spacing = 8px
|
36
|
+
$tile-image-max-height = 45%
|
37
|
+
$tile-image-top = 37.5%
|
38
|
+
|
39
|
+
ul
|
40
|
+
margin 0
|
41
|
+
|
42
|
+
li.search-box
|
43
|
+
margin $margin
|
44
|
+
li.anchor
|
45
|
+
margin 0 $margin
|
46
|
+
+ li.anchor
|
47
|
+
&.collapsed
|
48
|
+
margin-bottom $margin
|
49
|
+
|
50
|
+
article > ul
|
51
|
+
.list-group
|
52
|
+
clearfix()
|
53
|
+
margin ($margin - $tile-spacing/2)
|
54
|
+
|
55
|
+
.tile
|
56
|
+
position relative
|
57
|
+
width 50%
|
58
|
+
height $tile-size
|
59
|
+
max-width $tile-size
|
60
|
+
float left
|
61
|
+
padding ($tile-spacing/2)
|
62
|
+
cursor pointer
|
63
|
+
border 0
|
64
|
+
display inline-block
|
65
|
+
|
66
|
+
.wrapper
|
67
|
+
width 100%
|
68
|
+
height 100%
|
69
|
+
background-color #eeeeee
|
70
|
+
|
71
|
+
img
|
72
|
+
absolute $tile-image-top auto auto 50%
|
73
|
+
transform translateX(-50%) translateY(-50%)
|
74
|
+
max-width 70%
|
75
|
+
max-height $tile-image-max-height
|
76
|
+
|
77
|
+
span.title
|
78
|
+
absolute none 0 ((100% - ($tile-image-top + $tile-image-max-height/2))/2) 0
|
79
|
+
text-align center
|
80
|
+
font-size 0.7em
|
81
|
+
line-height 1.2em
|
82
|
+
padding 0 $tile-spacing $tile-spacing $tile-spacing
|
83
|
+
transform translateY(50%)
|
84
|
+
|
85
|
+
.hint
|
86
|
+
display none
|
87
|
+
margin $margin
|
88
|
+
color lighten($foreground, 30%)
|
89
|
+
|
90
|
+
&:before
|
91
|
+
font-family FontAwesome
|
92
|
+
content "\f05a"
|
93
|
+
margin-right 0.4em
|
94
|
+
|
95
|
+
li.share-form
|
96
|
+
form
|
97
|
+
background-color #eaeaea
|
98
|
+
display flex
|
99
|
+
|
100
|
+
input[type=text]
|
101
|
+
width auto // 100% would take the whole <li>
|
102
|
+
flex 1
|
103
|
+
|
104
|
+
button
|
105
|
+
&:before
|
106
|
+
font-family FontAwesome
|
107
|
+
|
108
|
+
&.copy:before
|
109
|
+
content "\f0ea"
|
110
|
+
&.success:before
|
111
|
+
content "\f00c"
|
112
|
+
&.failure:before
|
113
|
+
content "\f00d"
|
114
|
+
|
115
|
+
article.graph
|
116
|
+
display flex
|
117
|
+
flex-direction column
|
118
|
+
|
119
|
+
div.legend
|
120
|
+
z-layer 'section', 'legend'
|
121
|
+
font-size .75em
|
122
|
+
line-height 1.2em
|
123
|
+
background $legend-background
|
124
|
+
opacity .8
|
125
|
+
touch-action auto
|
126
|
+
|
127
|
+
.values-at-range
|
128
|
+
font-size 0.9em
|
129
|
+
text-align left
|
130
|
+
|
131
|
+
.line-type
|
132
|
+
position relative
|
133
|
+
top -0.2em
|
134
|
+
height 0
|
135
|
+
display inline-block
|
136
|
+
width 20px
|
137
|
+
border-radius 2px
|
138
|
+
margin-right 10px
|
139
|
+
|
140
|
+
&.solid
|
141
|
+
border 1px solid $foreground
|
142
|
+
&.dashed
|
143
|
+
border 1px dashed $foreground
|
144
|
+
|
145
|
+
.range
|
146
|
+
color #999999
|
147
|
+
|
148
|
+
.label
|
149
|
+
font-weight 500
|
150
|
+
|
151
|
+
.curves
|
152
|
+
display table
|
153
|
+
margin 0 auto
|
154
|
+
|
155
|
+
.curve
|
156
|
+
display table-row
|
157
|
+
|
158
|
+
.line, .line-label
|
159
|
+
display table-cell
|
160
|
+
text-align left
|
161
|
+
|
162
|
+
.line canvas
|
163
|
+
display inline
|
164
|
+
vertical-align bottom
|
165
|
+
margin-right 0.5em
|
166
|
+
|
167
|
+
.col
|
168
|
+
display table-cell
|
169
|
+
width 1%
|
170
|
+
white-space nowrap
|
171
|
+
padding 8px 10px 4px 10px
|
172
|
+
text-align center
|
173
|
+
border-bottom 4px solid transparent
|
174
|
+
|
175
|
+
&.values
|
176
|
+
cursor pointer
|
177
|
+
|
178
|
+
&.active
|
179
|
+
background rgba(#fff, 60%)
|
180
|
+
|
181
|
+
&.legend-simple
|
182
|
+
border-bottom 1px solid #ccc
|
183
|
+
absolute 0
|
184
|
+
width 100%
|
185
|
+
|
186
|
+
.curve
|
187
|
+
display inline-block
|
188
|
+
white-space nowrap
|
189
|
+
padding 7px 10px
|
190
|
+
|
191
|
+
.line
|
192
|
+
border 2px solid
|
193
|
+
border-radius 2px
|
194
|
+
width 20px
|
195
|
+
height 0
|
196
|
+
display inline-block
|
197
|
+
relative -0.2em
|
198
|
+
margin-right 0.5em
|
199
|
+
|
200
|
+
&.original .line
|
201
|
+
border-color #a00
|
202
|
+
|
203
|
+
&.alias .line
|
204
|
+
border-color #00f
|
205
|
+
|
206
|
+
div.graph
|
207
|
+
z-layer 'section', 'graph'
|
208
|
+
flex 1
|
209
|
+
overflow hidden
|
210
|
+
|
211
|
+
div.graph-overlay-wrapper
|
212
|
+
height 0
|
213
|
+
font-size .75em
|
214
|
+
z-index 125
|
215
|
+
|
216
|
+
.graph-overlay
|
217
|
+
padding 10px
|
218
|
+
background-color rgba(255, 255, 255, 0.8)
|
219
|
+
|
220
|
+
div.range-handler
|
221
|
+
text-align center
|
222
|
+
cursor pointer
|
223
|
+
background $legend-background
|
224
|
+
padding 14px 5px
|
225
|
+
|
226
|
+
&.orientation-y
|
227
|
+
absolute 0 none 0 0
|
228
|
+
width $range-handler-width
|
229
|
+
|
230
|
+
span.hint
|
231
|
+
absolute 50% none none 50%
|
232
|
+
transform translateX(-50%) translateY(-50%) rotate(-90deg)
|
233
|
+
width 500px // ugly, but no alternative
|
234
|
+
|
235
|
+
// vertical range slider and large, non-transparent legend with values
|
236
|
+
#international-standard-atmosphere article.graph div.graph
|
237
|
+
margin-left $range-handler-width
|
238
|
+
|
239
|
+
// Some space for the delete button
|
240
|
+
#composites
|
241
|
+
aside.parameters > ul > li > label
|
242
|
+
margin-right 45px
|
243
|
+
|
244
|
+
aside
|
245
|
+
&.hidden
|
246
|
+
opacity 0 !important
|
247
|
+
|
248
|
+
&.parameters .description
|
249
|
+
padding 1em
|
250
|
+
display table
|
251
|
+
|
252
|
+
.icon
|
253
|
+
display table-cell
|
254
|
+
width 1px
|
255
|
+
|
256
|
+
.text
|
257
|
+
display table-cell
|
258
|
+
padding-left 0.66em
|
259
|
+
|
260
|
+
&.airplanes
|
261
|
+
&.composites
|
262
|
+
li.item
|
263
|
+
padding 0
|
264
|
+
white-space no-wrap
|
265
|
+
|
266
|
+
label.item
|
267
|
+
padding $list-item-padding
|
268
|
+
div
|
269
|
+
font-size 0.85em
|
270
|
+
line-height 1.2em
|
271
|
+
&.name
|
272
|
+
font-weight 400
|
273
|
+
|
274
|
+
&.curves
|
275
|
+
$color-span-width = 30px
|
276
|
+
li.item
|
277
|
+
padding 0
|
278
|
+
height $list-item-height + 1px
|
279
|
+
|
280
|
+
label.item
|
281
|
+
margin 0
|
282
|
+
height $list-item-height + 1px
|
283
|
+
|
284
|
+
.color
|
285
|
+
display inline-block
|
286
|
+
width $color-span-width
|
287
|
+
height $list-item-height
|
288
|
+
background: #ccc
|
289
|
+
border-left 1px solid $list-item-border
|
290
|
+
border-right 1px solid $list-item-border
|
291
|
+
|
292
|
+
.name
|
293
|
+
vertical-center absolute
|
294
|
+
left $color-span-width + 10px
|
295
|
+
font-size 1.2em
|
296
|
+
|
297
|
+
label.checkbox
|
298
|
+
float right
|
299
|
+
margin 3px
|
300
|
+
|
301
|
+
li.anchor
|
302
|
+
padding 4px
|
303
|
+
height auto
|
304
|
+
|
305
|
+
.hint
|
306
|
+
margin: 0 18px 18px 18px
|
307
|
+
text-align center
|
308
|
+
|
309
|
+
&.headup
|
310
|
+
z-layer 'section', 'headup'
|
311
|
+
absolute auto none 0 none
|
312
|
+
background-color rgba(#ffffff, 0.8)
|
313
|
+
opacity 1
|
314
|
+
transform translateY(100%)
|
315
|
+
transition opacity .2s ease-in-out
|
316
|
+
|
317
|
+
&.right
|
318
|
+
transform translateY(100%)
|
319
|
+
|
320
|
+
&.active
|
321
|
+
transform translateY(0)
|
322
|
+
|
323
|
+
section.subapp-container
|
324
|
+
&> section
|
325
|
+
transform translateX(0)
|
326
|
+
transition none
|
327
|
+
z-index 5
|
328
|
+
transform-origin 50% 10%
|
329
|
+
opacity 0
|
330
|
+
transform scale(0.75)
|
331
|
+
transition visibility 0s linear 200ms, opacity 0s linear 200ms, transform 0s linear 200ms
|
332
|
+
|
333
|
+
&.active
|
334
|
+
visibility visible
|
335
|
+
transition opacity 200ms ease-out, transform 200ms ease-out
|
336
|
+
opacity 1
|
337
|
+
transform scale(1)
|
338
|
+
z-index 10
|
339
|
+
|
340
|
+
.range-handler
|
341
|
+
aside.curves
|
342
|
+
> .hint
|
343
|
+
color lighten($foreground, 30%)
|
344
|
+
|
345
|
+
&:before
|
346
|
+
font-family FontAwesome
|
347
|
+
content "\f05a"
|
348
|
+
margin-right 0.4em
|
349
|
+
|
350
|
+
img.logo
|
351
|
+
absolute none 0 0 none
|
352
|
+
height $range-handler-width
|
353
|
+
z-layer 'section', 'graph'
|
354
|
+
|
355
|
+
@media $media-lt-phone
|
356
|
+
display none
|
357
|
+
|
358
|
+
span.mark
|
359
|
+
background-color yellow
|
360
|
+
|
361
|
+
.poised .list-group
|
362
|
+
margin 0
|
363
|
+
|
364
|
+
.poised
|
365
|
+
.list-group + .anchor
|
366
|
+
margin-top 18px
|
367
|
+
|
368
|
+
.icon.scene:before
|
369
|
+
content: "\f03e"
|
370
|
+
|
371
|
+
.icon.composites:before
|
372
|
+
content "\f279"
|
373
|
+
|
374
|
+
.icon.calculator:before
|
375
|
+
content: "\f1ec"
|
376
|
+
|
377
|
+
.icon.warning:before
|
378
|
+
content: "\f071"
|
379
|
+
|
380
|
+
// on iPhones, avoid collision between slider and Safari back-swipes
|
381
|
+
@media $media-lt-phone
|
382
|
+
html.ios .poised.slider
|
383
|
+
margin-left 20px
|
384
|
+
|
385
|
+
@keyframes tada {
|
386
|
+
0%, 50%, 100% {
|
387
|
+
transform: scale3d(1, 1, 1);
|
388
|
+
}
|
389
|
+
|
390
|
+
5%, 10% {
|
391
|
+
transform: scale3d(.8, .8, .8) rotate3d(0, 0, 1, -7deg);
|
392
|
+
}
|
393
|
+
|
394
|
+
15%, 25%, 35%, 45% {
|
395
|
+
transform: scale3d(1.3, 1.3, 1.3) rotate3d(0, 0, 1, 7deg);
|
396
|
+
}
|
397
|
+
|
398
|
+
20%, 30%, 40% {
|
399
|
+
transform: scale3d(1.3, 1.3, 1.3) rotate3d(0, 0, 1, -7deg);
|
400
|
+
}
|
401
|
+
}
|
402
|
+
|
403
|
+
#thrust-matching .graph-overlay
|
404
|
+
.parameter-warnings
|
405
|
+
display table
|
406
|
+
width 100%
|
407
|
+
|
408
|
+
.icon
|
409
|
+
display table-cell
|
410
|
+
vertical-align middle
|
411
|
+
color red
|
412
|
+
font-size 2em
|
413
|
+
width 1px // stretches automatically to minimal size
|
414
|
+
padding 0 6px
|
415
|
+
animation tada 2s infinite
|
416
|
+
|
417
|
+
.right
|
418
|
+
display table-cell
|
419
|
+
vertical-align middle
|
420
|
+
padding-left 10px
|
421
|
+
line-height 1.1em
|
422
|
+
|
423
|
+
.headline
|
424
|
+
font-weight bolder
|
425
|
+
padding-bottom 5px
|