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
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,83 @@
|
|
1
|
+
window.startApp = ->
|
2
|
+
if not ELA.router? and ELA.loadedData and $('html').hasClass('wf-active')
|
3
|
+
ELA.router = new ELA.Router()
|
4
|
+
Backbone.history.start()
|
5
|
+
|
6
|
+
# Preload font
|
7
|
+
# This avoids canvas resize issues on iOS 10.3
|
8
|
+
WebFont.load
|
9
|
+
custom:
|
10
|
+
families: ['Roboto:n3,n4,n5']
|
11
|
+
active: startApp
|
12
|
+
|
13
|
+
if /iP(od|ad|hone)/.test(navigator.userAgent)
|
14
|
+
$('html').addClass('ios')
|
15
|
+
|
16
|
+
Hammer.defaults.preset = [
|
17
|
+
[Hammer.Rotate, { enable: false }],
|
18
|
+
[Hammer.Pinch, { enable: false }, ['rotate']],
|
19
|
+
[Hammer.Swipe, { enable: false }],
|
20
|
+
[Hammer.Pan, { enable: false }, ['swipe']],
|
21
|
+
[Hammer.Tap],
|
22
|
+
[Hammer.Tap, { event: 'doubletap', taps: 2 }, ['tap']],
|
23
|
+
[Hammer.Press]
|
24
|
+
]
|
25
|
+
|
26
|
+
window.ELA = {}
|
27
|
+
|
28
|
+
window.debug = (args...) ->
|
29
|
+
if ELA.debug
|
30
|
+
first = args[0]
|
31
|
+
if _.isFunction(first)
|
32
|
+
first()
|
33
|
+
else
|
34
|
+
console.log.apply console, args
|
35
|
+
|
36
|
+
window.HAML ||= {}
|
37
|
+
window.HAML.cleanValue ||= (text) ->
|
38
|
+
if text is null or text is undefined then '' else text
|
39
|
+
window.HAML.escape ||= (text) ->
|
40
|
+
"#{text}"
|
41
|
+
.replace(/&/g, '&')
|
42
|
+
.replace(/</g, '<')
|
43
|
+
.replace(/>/g, '>')
|
44
|
+
.replace(/\"/g, '"')
|
45
|
+
|
46
|
+
window.delay = (timeout, callback = null) ->
|
47
|
+
if _.isFunction(timeout)
|
48
|
+
setTimeout timeout, 0
|
49
|
+
else
|
50
|
+
setTimeout callback, timeout
|
51
|
+
|
52
|
+
String::toFunction = ->
|
53
|
+
arr = this.split('.')
|
54
|
+
fn = window or this
|
55
|
+
fn = fn[elem] for elem in arr
|
56
|
+
throw new Error("#{this} seems not to describe a function") unless _.isFunction(fn)
|
57
|
+
fn
|
58
|
+
|
59
|
+
window.t = (translations...) ->
|
60
|
+
options = if _.isObject(_.last(translations)) then translations.pop() else {}
|
61
|
+
for translation in translations
|
62
|
+
str = ELA.labels[translation]
|
63
|
+
if str
|
64
|
+
return str.replace(/{{([a-zA-Z0-9_]+)}}/g, (match, v) -> options[v])
|
65
|
+
|
66
|
+
return options.defaultValue if options.defaultValue?
|
67
|
+
return null if not str? and options.returnNull
|
68
|
+
"#{translations} not found"
|
69
|
+
|
70
|
+
window.flattenObject = (obj, result = {}, path = []) ->
|
71
|
+
for key, newObj of obj
|
72
|
+
newPath = path.slice() # clone array
|
73
|
+
newPath.push(key)
|
74
|
+
if typeof newObj is 'object'
|
75
|
+
flattenObject(newObj, result, newPath)
|
76
|
+
else
|
77
|
+
result[newPath.join('.')] = newObj
|
78
|
+
result
|
79
|
+
|
80
|
+
_.containsAny = (arr, values...) ->
|
81
|
+
values = values[0] if _.isArray(values[0])
|
82
|
+
_.some values, (value) ->
|
83
|
+
_.contains(arr, value)
|
@@ -0,0 +1,70 @@
|
|
1
|
+
isDocumentReady = false
|
2
|
+
|
3
|
+
ajaxFiles =
|
4
|
+
'labels.default.yml':
|
5
|
+
loaded: false
|
6
|
+
'labels.overwrite.yml':
|
7
|
+
loaded: false
|
8
|
+
optional: true
|
9
|
+
'settings.default.yml':
|
10
|
+
loaded: false
|
11
|
+
'settings.overwrite.yml':
|
12
|
+
loaded: false
|
13
|
+
optional: true
|
14
|
+
|
15
|
+
processAjaxData = ->
|
16
|
+
try
|
17
|
+
defaultLabels = jsyaml.load(ajaxFiles['labels.default.yml'].content)
|
18
|
+
catch
|
19
|
+
errorText = "Error: labels.default.yml does not contain valid YAML."
|
20
|
+
alert(errorText)
|
21
|
+
throw errorText
|
22
|
+
ELA.labels = flattenObject(defaultLabels)
|
23
|
+
|
24
|
+
overwriteLabelsDoc = ajaxFiles['labels.overwrite.yml'].content
|
25
|
+
if overwriteLabelsDoc
|
26
|
+
try
|
27
|
+
overwriteLabels = jsyaml.load(overwriteLabelsDoc)
|
28
|
+
flattenObject(overwriteLabels, ELA.labels)
|
29
|
+
catch
|
30
|
+
alert("Warning: labels.overwrite.yml does not contain valid YAML.")
|
31
|
+
|
32
|
+
try
|
33
|
+
ELA.settings = jsyaml.load(ajaxFiles['settings.default.yml'].content)
|
34
|
+
catch
|
35
|
+
errorText = "Error: settings.default.yml does not contain valid YAML."
|
36
|
+
alert(errorText)
|
37
|
+
throw errorText
|
38
|
+
|
39
|
+
overwriteSettingsDoc = ajaxFiles['settings.overwrite.yml'].content
|
40
|
+
if overwriteSettingsDoc
|
41
|
+
try
|
42
|
+
overwriteSettings = jsyaml.load(overwriteSettingsDoc)
|
43
|
+
$.extend(true, ELA.settings, overwriteSettings)
|
44
|
+
catch
|
45
|
+
alert("Warning: settings.overwrite.yml does not contain valid YAML.")
|
46
|
+
|
47
|
+
ELA.loadedData = true
|
48
|
+
|
49
|
+
maybeLoadedAjaxData = ->
|
50
|
+
if isDocumentReady
|
51
|
+
unless _.findWhere(_.values(ajaxFiles), { loaded: false })
|
52
|
+
processAjaxData()
|
53
|
+
startApp()
|
54
|
+
|
55
|
+
$(document).ready ->
|
56
|
+
isDocumentReady = true
|
57
|
+
maybeLoadedAjaxData()
|
58
|
+
|
59
|
+
for ajaxFile, state of ajaxFiles
|
60
|
+
do (ajaxFile, state) ->
|
61
|
+
$.ajax ajaxFile,
|
62
|
+
success: (data) ->
|
63
|
+
state.loaded = true
|
64
|
+
state.content = data
|
65
|
+
error: ->
|
66
|
+
if state.optional
|
67
|
+
state.loaded = true
|
68
|
+
else
|
69
|
+
alert("Error: Failed to load #{ajaxFile}.")
|
70
|
+
complete: maybeLoadedAjaxData
|
@@ -0,0 +1,85 @@
|
|
1
|
+
ELA.Collections ?= {}
|
2
|
+
class ELA.Collections.LimitedCollection extends Backbone.Collection
|
3
|
+
attribute: 'selected'
|
4
|
+
limit: 0
|
5
|
+
activeState: true
|
6
|
+
|
7
|
+
constructor: (args..., options = {}) ->
|
8
|
+
super
|
9
|
+
@limit = options.limit if options.limit?
|
10
|
+
@attribute = options.attribute if options.attribute?
|
11
|
+
@activeState = options.activeState if options.activeState?
|
12
|
+
@history = []
|
13
|
+
@on "change:#{@attribute}", @manageHistory
|
14
|
+
@on('add', @manageHistory)
|
15
|
+
@on('remove', @removeFromHistory)
|
16
|
+
@on('reset', @rebuildHistory)
|
17
|
+
@rebuildHistory()
|
18
|
+
|
19
|
+
# Returns the history in the selection order.
|
20
|
+
#
|
21
|
+
# @returns [Array] Models in the selection order
|
22
|
+
getHistory: ->
|
23
|
+
@history
|
24
|
+
|
25
|
+
# Returns the history in the collection order.
|
26
|
+
#
|
27
|
+
# @returns [Array] Models in the selection order
|
28
|
+
whereInHistory: ->
|
29
|
+
filter = {}
|
30
|
+
filter[@attribute] = @activeState
|
31
|
+
@where(filter)
|
32
|
+
|
33
|
+
# Returns the oldest model in history.
|
34
|
+
#
|
35
|
+
# @returns [Backbone.Model] The oldest model
|
36
|
+
getOldest: ->
|
37
|
+
@history[0]
|
38
|
+
|
39
|
+
# Returns `true` if the history limit is reached.
|
40
|
+
#
|
41
|
+
# @returns [Boolean] Whether history limit is reached
|
42
|
+
atLimit: ->
|
43
|
+
@history.length >= @limit if @limit > 0
|
44
|
+
|
45
|
+
# Returns `true` if given model is in history.
|
46
|
+
#
|
47
|
+
# @param [Backbone.Model] model The model to check for
|
48
|
+
#
|
49
|
+
# @returns [Boolean] Whether model is in history
|
50
|
+
inHistory: (model) ->
|
51
|
+
@history.indexOf(model) isnt -1
|
52
|
+
|
53
|
+
# Removes all occurences of given model from histroy.
|
54
|
+
#
|
55
|
+
# @param [Backbone.Model] model Model to remove
|
56
|
+
removeFromHistory: (model) ->
|
57
|
+
while @inHistory(model)
|
58
|
+
@history.splice(@history.indexOf(model), 1)
|
59
|
+
@trigger('historyChange')
|
60
|
+
|
61
|
+
# Rebuilds history leaving old history entries untouched. Entries
|
62
|
+
# are being added in collection order.
|
63
|
+
rebuildHistory: ->
|
64
|
+
oldHistory = _.clone(@history)
|
65
|
+
@history = []
|
66
|
+
@each (model) =>
|
67
|
+
@manageHistory(model, silent: true)
|
68
|
+
unless _.isEqual(oldHistory, @history)
|
69
|
+
@trigger('historyChange')
|
70
|
+
|
71
|
+
# Whenever a model is changing its `activeState` the history is
|
72
|
+
# checked. If the model is `activated` and the history is at its
|
73
|
+
# limit the oldest model in the history gets deactivated.
|
74
|
+
#
|
75
|
+
# @param [Backbone.Model] model The model of the state change
|
76
|
+
manageHistory: (model, options = {}) ->
|
77
|
+
if model.get(@attribute) is @activeState
|
78
|
+
if !@inHistory(model)
|
79
|
+
while @atLimit()
|
80
|
+
@history.shift().set(@attribute, not @activeState)
|
81
|
+
@history.push(model)
|
82
|
+
@trigger('historyChange') unless options.silent
|
83
|
+
else
|
84
|
+
@removeFromHistory(model)
|
85
|
+
this
|
@@ -0,0 +1,241 @@
|
|
1
|
+
window.MathJax =
|
2
|
+
#config: []
|
3
|
+
#styleSheets: []
|
4
|
+
#styles: {}
|
5
|
+
jax: [
|
6
|
+
'input/TeX'
|
7
|
+
'output/CommonHTML'
|
8
|
+
]
|
9
|
+
extensions: [ 'tex2jax.js' ]
|
10
|
+
#preJax: null
|
11
|
+
#postJax: null
|
12
|
+
#preRemoveClass: 'MathJax_Preview'
|
13
|
+
showProcessingMessages: false
|
14
|
+
messageStyle: 'none'
|
15
|
+
#displayAlign: 'center'
|
16
|
+
#displayIndent: '0'
|
17
|
+
#delayStartupUntil: 'none'
|
18
|
+
skipStartupTypeset: true
|
19
|
+
#elements: []
|
20
|
+
positionToHash: false
|
21
|
+
showMathMenu: false
|
22
|
+
showMathMenuMSIE: false
|
23
|
+
#menuSettings:
|
24
|
+
# zoom: 'None'
|
25
|
+
# CTRL: false
|
26
|
+
# ALT: false
|
27
|
+
# CMD: false
|
28
|
+
# Shift: false
|
29
|
+
# discoverable: false
|
30
|
+
# zscale: '200%'
|
31
|
+
# renderer: null
|
32
|
+
# font: 'Auto'
|
33
|
+
# context: 'MathJax'
|
34
|
+
# locale: null
|
35
|
+
# mpContext: false
|
36
|
+
# mpMouse: false
|
37
|
+
# texHints: true
|
38
|
+
# FastPreview: null
|
39
|
+
# assistiveMML: null
|
40
|
+
# inTabOrder: true
|
41
|
+
# semantics: false
|
42
|
+
#errorSettings:
|
43
|
+
# message: [
|
44
|
+
# '['
|
45
|
+
# [
|
46
|
+
# 'MathProcessingError'
|
47
|
+
# 'Math Processing Error'
|
48
|
+
# ]
|
49
|
+
# ']'
|
50
|
+
# ]
|
51
|
+
# style:
|
52
|
+
# color: '#CC0000'
|
53
|
+
# 'font-style': 'italic'
|
54
|
+
tex2jax:
|
55
|
+
inlineMath: [
|
56
|
+
[
|
57
|
+
'$'
|
58
|
+
'$'
|
59
|
+
]
|
60
|
+
[
|
61
|
+
'\\('
|
62
|
+
'\\)'
|
63
|
+
]
|
64
|
+
]
|
65
|
+
# displayMath: [
|
66
|
+
# [
|
67
|
+
# '$$'
|
68
|
+
# '$$'
|
69
|
+
# ]
|
70
|
+
# [
|
71
|
+
# '\\['
|
72
|
+
# '\\]'
|
73
|
+
# ]
|
74
|
+
# ]
|
75
|
+
# balanceBraces: true
|
76
|
+
# skipTags: [
|
77
|
+
# 'script'
|
78
|
+
# 'noscript'
|
79
|
+
# 'style'
|
80
|
+
# 'textarea'
|
81
|
+
# 'pre'
|
82
|
+
# 'code'
|
83
|
+
# 'annotation'
|
84
|
+
# 'annotation-xml'
|
85
|
+
# ]
|
86
|
+
# ignoreClass: 'tex2jax_ignore'
|
87
|
+
# processClass: 'tex2jax_process'
|
88
|
+
# processEscapes: false
|
89
|
+
# processEnvironments: true
|
90
|
+
# processRefs: true
|
91
|
+
# preview: 'TeX'
|
92
|
+
#asciimath2jax:
|
93
|
+
# delimiters: [ [
|
94
|
+
# '`'
|
95
|
+
# '`'
|
96
|
+
# ] ]
|
97
|
+
# skipTags: [
|
98
|
+
# 'script'
|
99
|
+
# 'noscript'
|
100
|
+
# 'style'
|
101
|
+
# 'textarea'
|
102
|
+
# 'pre'
|
103
|
+
# 'code'
|
104
|
+
# 'annotation'
|
105
|
+
# 'annotation-xml'
|
106
|
+
# ]
|
107
|
+
# ignoreClass: 'asciimath2jax_ignore'
|
108
|
+
# processClass: 'asciimath2jax_process'
|
109
|
+
# preview: 'AsciiMath'
|
110
|
+
#mml2jax: preview: 'mathml'
|
111
|
+
#jsMath2jax: preview: 'TeX'
|
112
|
+
#TeX:
|
113
|
+
# TagSide: 'right'
|
114
|
+
# TagIndent: '0.8em'
|
115
|
+
# MultLineWidth: '85%'
|
116
|
+
# Macros: {}
|
117
|
+
# equationNumbers:
|
118
|
+
# autoNumber: 'none'
|
119
|
+
# useLabelIds: true
|
120
|
+
# noErrors:
|
121
|
+
# disabled: false
|
122
|
+
# multiLine: true
|
123
|
+
# inlineDelimiters: [
|
124
|
+
# ''
|
125
|
+
# ''
|
126
|
+
# ]
|
127
|
+
# style:
|
128
|
+
# 'font-size': '90%'
|
129
|
+
# 'text-align': 'left'
|
130
|
+
# 'color': 'black'
|
131
|
+
# 'padding': '1px 3px'
|
132
|
+
# 'border': '1px solid'
|
133
|
+
# noUndefined:
|
134
|
+
# disabled: false
|
135
|
+
# attributes: mathcolor: 'red'
|
136
|
+
# unicode: fonts: 'STIXGeneral,\'Arial Unicode MS\''
|
137
|
+
#AsciiMath:
|
138
|
+
# fixphi: true
|
139
|
+
# useMathMLspacing: true
|
140
|
+
# displaystyle: true
|
141
|
+
# decimal: '.'
|
142
|
+
#MathML: useMathMLspacing: false
|
143
|
+
#'HTML-CSS':
|
144
|
+
# scale: 100
|
145
|
+
# minScaleAdjust: 50
|
146
|
+
# availableFonts: [
|
147
|
+
# 'STIX'
|
148
|
+
# 'TeX'
|
149
|
+
# ]
|
150
|
+
# preferredFont: 'TeX'
|
151
|
+
# webFont: 'TeX'
|
152
|
+
# imageFont: 'TeX'
|
153
|
+
# undefinedFamily: 'STIXGeneral,\'Arial Unicode MS\',serif'
|
154
|
+
# mtextFontInherit: false
|
155
|
+
# EqnChunk: 50
|
156
|
+
# EqnChunkFactor: 1.5
|
157
|
+
# EqnChunkDelay: 100
|
158
|
+
# matchFontHeight: true
|
159
|
+
# noReflows: true
|
160
|
+
# linebreaks:
|
161
|
+
# automatic: false
|
162
|
+
# width: 'container'
|
163
|
+
# styles: {}
|
164
|
+
# tooltip:
|
165
|
+
# delayPost: 600
|
166
|
+
# delayClear: 600
|
167
|
+
# offsetX: 10
|
168
|
+
# offsetY: 5
|
169
|
+
#NativeMML:
|
170
|
+
# scale: 100
|
171
|
+
# minScaleAdjust: 50
|
172
|
+
# matchFontHeight: true
|
173
|
+
# styles: {}
|
174
|
+
#'SVG':
|
175
|
+
# scale: 100
|
176
|
+
# minScaleAdjust: 50
|
177
|
+
# font: 'TeX'
|
178
|
+
# blacker: 10
|
179
|
+
# undefinedFamily: 'STIXGeneral,\'Arial Unicode MS\',serif'
|
180
|
+
# mtextFontInherit: false
|
181
|
+
# addMMLclasses: false
|
182
|
+
# EqnChunk: 50
|
183
|
+
# EqnChunkFactor: 1.5
|
184
|
+
# EqnChunkDelay: 100
|
185
|
+
# matchFontHeight: true
|
186
|
+
# linebreaks:
|
187
|
+
# automatic: false
|
188
|
+
# width: 'container'
|
189
|
+
# merrorStyle:
|
190
|
+
# fontSize: '90%'
|
191
|
+
# color: '#C00'
|
192
|
+
# background: '#FF8'
|
193
|
+
# border: '1px solid #C00'
|
194
|
+
# padding: '3px'
|
195
|
+
# styles: {}
|
196
|
+
# tooltip:
|
197
|
+
# delayPost: 600
|
198
|
+
# delayClear: 600
|
199
|
+
# offsetX: 10
|
200
|
+
# offsetY: 5
|
201
|
+
#MathMenu:
|
202
|
+
# delay: 150
|
203
|
+
# helpURL: 'http://www.mathjax.org/help-v2/user/'
|
204
|
+
# showRenderer: true
|
205
|
+
# showMathPlayer: true
|
206
|
+
# showFontMenu: false
|
207
|
+
# showContext: false
|
208
|
+
# showDiscoverable: false
|
209
|
+
# semanticsAnnotations:
|
210
|
+
# 'TeX': [
|
211
|
+
# 'TeX'
|
212
|
+
# 'LaTeX'
|
213
|
+
# 'application/x-tex'
|
214
|
+
# ]
|
215
|
+
# 'StarMath': [ 'StarMath 5.0' ]
|
216
|
+
# 'Maple': [ 'Maple' ]
|
217
|
+
# 'ContentMathML': [
|
218
|
+
# 'MathML-Content'
|
219
|
+
# 'application/mathml-content+xml'
|
220
|
+
# ]
|
221
|
+
# 'OpenMath': [ 'OpenMath' ]
|
222
|
+
# windowSettings:
|
223
|
+
# status: 'no'
|
224
|
+
# toolbar: 'no'
|
225
|
+
# locationbar: 'no'
|
226
|
+
# menubar: 'no'
|
227
|
+
# directories: 'no'
|
228
|
+
# personalbar: 'no'
|
229
|
+
# resizable: 'yes'
|
230
|
+
# scrollbars: 'yes'
|
231
|
+
# width: 100
|
232
|
+
# height: 50
|
233
|
+
# styles: {}
|
234
|
+
#MathEvents: hover: 500
|
235
|
+
#MMLorHTML: prefer:
|
236
|
+
# MSIE: 'MML'
|
237
|
+
# Firefox: 'HTML'
|
238
|
+
# Opera: 'HTML'
|
239
|
+
# Safari: 'HTML'
|
240
|
+
# Chrome: 'HTML'
|
241
|
+
# other: 'HTML'
|