├── .gitignore ├── README.md ├── build.sbt ├── docs ├── Gemfile ├── Gemfile.lock ├── _config.yml ├── _data │ ├── navigation.yml │ └── text.yml ├── _includes │ ├── content-scripts.html │ ├── custom-scripts.html │ ├── custom-toc.md │ ├── footer-custom.html │ └── head-custom.html ├── _layouts │ └── default.html ├── _posts │ ├── 2019-04-18-math-cube.md │ ├── 2019-04-24-math-expression.md │ ├── 2019-04-24-math-kreis.md │ ├── 2019-04-24-math-kugel.md │ ├── 2019-04-25-math-division.md │ ├── 2019-04-28-how-to.md │ └── 2019-05-15-map-example.md ├── assets │ ├── css │ │ └── custom.css │ ├── gps │ │ └── rigi_kulm.gpx │ ├── images │ │ ├── bg_hr.png │ │ ├── blacktocat.png │ │ ├── icon_download.png │ │ ├── logo.png │ │ └── sprite_download.png │ ├── javascripts │ │ ├── simple-tutorials-fastopt-bundle.js │ │ └── simple-tutorials-fastopt-bundle.js.map │ ├── js │ │ ├── custom.js │ │ └── plugins │ │ │ └── mathjax-editing.js │ └── semantic │ │ ├── components │ │ ├── accordion.css │ │ ├── accordion.js │ │ ├── accordion.min.css │ │ ├── accordion.min.js │ │ ├── ad.css │ │ ├── ad.min.css │ │ ├── api.js │ │ ├── api.min.js │ │ ├── breadcrumb.css │ │ ├── breadcrumb.min.css │ │ ├── button.css │ │ ├── button.min.css │ │ ├── card.css │ │ ├── card.min.css │ │ ├── checkbox.css │ │ ├── checkbox.js │ │ ├── checkbox.min.css │ │ ├── checkbox.min.js │ │ ├── comment.css │ │ ├── comment.min.css │ │ ├── container.css │ │ ├── container.min.css │ │ ├── dimmer.css │ │ ├── dimmer.js │ │ ├── dimmer.min.css │ │ ├── dimmer.min.js │ │ ├── divider.css │ │ ├── divider.min.css │ │ ├── dropdown.css │ │ ├── dropdown.js │ │ ├── dropdown.min.css │ │ ├── dropdown.min.js │ │ ├── embed.css │ │ ├── embed.js │ │ ├── embed.min.css │ │ ├── embed.min.js │ │ ├── feed.css │ │ ├── feed.min.css │ │ ├── flag.css │ │ ├── flag.min.css │ │ ├── form.css │ │ ├── form.js │ │ ├── form.min.css │ │ ├── form.min.js │ │ ├── grid.css │ │ ├── grid.min.css │ │ ├── header.css │ │ ├── header.min.css │ │ ├── icon.css │ │ ├── icon.min.css │ │ ├── image.css │ │ ├── image.min.css │ │ ├── input.css │ │ ├── input.min.css │ │ ├── item.css │ │ ├── item.min.css │ │ ├── label.css │ │ ├── label.min.css │ │ ├── list.css │ │ ├── list.min.css │ │ ├── loader.css │ │ ├── loader.min.css │ │ ├── menu.css │ │ ├── menu.min.css │ │ ├── message.css │ │ ├── message.min.css │ │ ├── modal.css │ │ ├── modal.js │ │ ├── modal.min.css │ │ ├── modal.min.js │ │ ├── nag.css │ │ ├── nag.js │ │ ├── nag.min.css │ │ ├── nag.min.js │ │ ├── popup.css │ │ ├── popup.js │ │ ├── popup.min.css │ │ ├── popup.min.js │ │ ├── progress.css │ │ ├── progress.js │ │ ├── progress.min.css │ │ ├── progress.min.js │ │ ├── rail.css │ │ ├── rail.min.css │ │ ├── rating.css │ │ ├── rating.js │ │ ├── rating.min.css │ │ ├── rating.min.js │ │ ├── reset.css │ │ ├── reset.min.css │ │ ├── reveal.css │ │ ├── reveal.min.css │ │ ├── search.css │ │ ├── search.js │ │ ├── search.min.css │ │ ├── search.min.js │ │ ├── segment.css │ │ ├── segment.min.css │ │ ├── shape.css │ │ ├── shape.js │ │ ├── shape.min.css │ │ ├── shape.min.js │ │ ├── sidebar.css │ │ ├── sidebar.js │ │ ├── sidebar.min.css │ │ ├── sidebar.min.js │ │ ├── site.css │ │ ├── site.js │ │ ├── site.min.css │ │ ├── site.min.js │ │ ├── statistic.css │ │ ├── statistic.min.css │ │ ├── step.css │ │ ├── step.min.css │ │ ├── sticky.css │ │ ├── sticky.js │ │ ├── sticky.min.css │ │ ├── sticky.min.js │ │ ├── tab.css │ │ ├── tab.js │ │ ├── tab.min.css │ │ ├── tab.min.js │ │ ├── table.css │ │ ├── table.min.css │ │ ├── transition.css │ │ ├── transition.js │ │ ├── transition.min.css │ │ ├── transition.min.js │ │ ├── visibility.js │ │ └── visibility.min.js │ │ ├── semantic.css │ │ ├── semantic.js │ │ ├── semantic.min.css │ │ ├── semantic.min.js │ │ └── themes │ │ ├── basic │ │ └── assets │ │ │ └── fonts │ │ │ ├── icons.eot │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ └── icons.woff │ │ ├── default │ │ └── assets │ │ │ ├── fonts │ │ │ ├── brand-icons.eot │ │ │ ├── brand-icons.svg │ │ │ ├── brand-icons.ttf │ │ │ ├── brand-icons.woff │ │ │ ├── brand-icons.woff2 │ │ │ ├── icons.eot │ │ │ ├── icons.svg │ │ │ ├── icons.ttf │ │ │ ├── icons.woff │ │ │ ├── icons.woff2 │ │ │ ├── outline-icons.eot │ │ │ ├── outline-icons.svg │ │ │ ├── outline-icons.ttf │ │ │ ├── outline-icons.woff │ │ │ └── outline-icons.woff2 │ │ │ └── images │ │ │ └── flags.png │ │ ├── github │ │ └── assets │ │ │ └── fonts │ │ │ ├── octicons-local.ttf │ │ │ ├── octicons.svg │ │ │ ├── octicons.ttf │ │ │ └── octicons.woff │ │ └── material │ │ └── assets │ │ └── fonts │ │ ├── icons.eot │ │ ├── icons.svg │ │ ├── icons.ttf │ │ ├── icons.woff │ │ └── icons.woff2 ├── categories.md ├── index.html ├── posts.md ├── search.md └── tags.md ├── my.custom.webpack.config.js ├── project ├── build.properties └── plugins.sbt └── src └── main └── scala └── pages └── demo ├── CircleApp.scala ├── CubeApp.scala ├── Graph.scala ├── GraphApp.scala ├── GraphExample.scala ├── IntellijImplicits.scala ├── MapExample.scala ├── MathApp.scala └── MathJaxUtils.scala /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | .bloop 3 | .scalafmt.conf 4 | .DS_Store 5 | .metals 6 | .vscode 7 | target 8 | 9 | _site 10 | .sass-cache 11 | .jekyll-metadata -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Goals 2 | * Use [Github Pages] for simple Projects/ Show-cases, that I could document and demo in the same place. 3 | 4 | * Use _Scala/ ScalaJS_ technology. 5 | * Use _Markup_ for documentation. 6 | * Create simple Tutorials that: 7 | * print Mathematical formulas nicely 8 | * use Graphs for illustration 9 | * can interacted with 10 | * display code snippets 11 | 12 | # Examples 13 | ### [How to use this project] 14 | ### [Compile Mathematical Expressions] 15 | ### [Extended How-To Example] 16 | It's in german and shows a bit more of composition with [Binding.scala] 17 | ### [And more....] 18 | 19 | # Result 20 | The result is a showcase on how to use different _Scala/ ScalaJS_ tools in combination with Markup and [Github Pages] (check the references below). 21 | 22 | See yourself: **https://pme123.github.io/github-pages-demo/** 23 | 24 | # References 25 | 26 | This project uses the following tools. All of them have excellent tutorials: 27 | ## Markup 28 | - **Github Pages**: When you commit your project to _Github_ your pages will be created automatically. Check out [Github Pages] 29 | - **Jekyll**: _Github Pages_ uses _Jekyll_ for rendering. See [Jekyll] 30 | - **So Simple**: _Michael Rose_ creates great Themes for _Jekyll_ - so I choose _So Simple_ for this project. Check out its great tutorial: [So Simple Theme] 31 | 32 | ## Coding 33 | For any coding I use: 34 | - **ScalaJS** for general coding: [ScalaJS] 35 | - **Binding.scala** for dom functionality and data binding: [Binding.scala] 36 | - **ScalablyTyped** for JavaScript facades: [Scalably Typed] 37 | - **Plot.ly** for painting diagrams and graphs: [Plotly JS] 38 | - **Math.js** for evaluating mathematical string expressions: [MathJS] 39 | - **MathJax** for printing nice formulas in HTML: [MathJax] 40 | - **Semantic-UI** styling the forms (if the theme was not enough): [Semantic UI] 41 | 42 | ## Building 43 | - **sbt** for building the project: [SBT] 44 | - **scalajs-bundler** for bundling the JavaScript dependencies: [scalajs-bundler] 45 | 46 | # Check also 47 | If you want document everything in _Scala_ check out: https://sake92.github.io/hepek/ 48 | 49 | [Binding.scala]: https://github.com/ThoughtWorksInc/Binding.scala 50 | [Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git 51 | [Join Github]: https://github.com/join 52 | [Github Pages]: https://pages.github.com 53 | [Jekyll]: https://jekyllrb.com 54 | [MathJax]:https://www.mathjax.org 55 | [MathJS]: https://mathjs.org 56 | [Plotly JS]: https://plot.ly/javascript/shapes/ 57 | [SBT]: https://www.scala-sbt.org 58 | [Scalably Typed]: https://github.com/oyvindberg/ScalablyTyped 59 | [ScalaJS]: http://www.scala-js.org 60 | [scalajs-bundler]: https://github.com/scalacenter/scalajs-bundler 61 | [Semantic UI]: https://semantic-ui.com 62 | [So Simple Theme]: https://github.com/mmistakes/so-simple-theme 63 | 64 | [How to use this project]: https://pme123.github.io/github-pages-demo/develop/2019/04/28/how-to.html 65 | [Compile Mathematical Expressions]: https://pme123.github.io/github-pages-demo/math/2019/04/24/math-expression.html 66 | [Extended How-To Example]: https://pme123.github.io/github-pages-demo/math/2019/04/24/math-kreis 67 | [And more....]: https://pme123.github.io/github-pages-demo/posts/ -------------------------------------------------------------------------------- /build.sbt: -------------------------------------------------------------------------------- 1 | import java.nio.file.StandardCopyOption 2 | 3 | import org.scalajs.sbtplugin.ScalaJSPlugin.AutoImport.fastOptJS 4 | 5 | resolvers += Resolver.bintrayRepo("oyvindberg", "ScalablyTyped") 6 | 7 | enablePlugins(ScalaJSPlugin) 8 | enablePlugins(ScalaJSBundlerPlugin) 9 | 10 | name := "Simple Tutorials" 11 | scalaVersion := "2.12.7" // or any other Scala version >= 2.10.2 12 | 13 | webpackBundlingMode := BundlingMode.LibraryAndApplication() 14 | webpackConfigFile := Some(baseDirectory.value / "my.custom.webpack.config.js") 15 | 16 | libraryDependencies ++= Seq( 17 | ScalablyTyped.P.`plotly_dot_js`, 18 | ScalablyTyped.M.`mathjs`, 19 | ScalablyTyped.M.`mathjax`, 20 | ScalablyTyped.O.`ol`, 21 | // ScalablyTyped.J.`jquery`, 22 | // ScalablyTyped.S.`semantic-ui`, 23 | ) 24 | 25 | npmDependencies in Compile ++= Seq( 26 | "plotly.js" -> "1.47.2", 27 | "mathjs" -> "5.0", 28 | "ify-loader" -> "1.1.0", 29 | "ol" -> "4.6.4", 30 | "openlayers" -> "4.6.5", 31 | 32 | // "mathjax" -> "2.7.2", // provided by the Github Pages Theme 33 | // "jquery" -> "1.0.4", 34 | // "semantic-ui" -> "2.2", 35 | ) 36 | 37 | libraryDependencies ++= Seq( 38 | "com.thoughtworks.binding" %%% "dom" % "latest.release", 39 | "be.doeraene" %%% "scalajs-jquery" % "0.9.1" 40 | ) 41 | addCompilerPlugin( 42 | "org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full 43 | ) 44 | 45 | lazy val copyTask = taskKey[Unit]("copyJS") 46 | 47 | copyTask := { 48 | val bundle = (Compile / fastOptJS / webpack).value.head 49 | 50 | val destinationPath = 51 | file(s"docs/assets/javascripts/${bundle.data.name}").toPath 52 | java.nio.file.Files.copy( 53 | bundle.data.toPath, 54 | destinationPath, 55 | StandardCopyOption.REPLACE_EXISTING 56 | ) 57 | val destinationPathMap = 58 | file(s"docs/assets/javascripts/${bundle.data.name}.map").toPath 59 | val sourcePathMap = file(s"${bundle.data.toPath}.map").toPath 60 | java.nio.file.Files.copy( 61 | sourcePathMap, 62 | destinationPathMap, 63 | StandardCopyOption.REPLACE_EXISTING 64 | ) 65 | } 66 | -------------------------------------------------------------------------------- /docs/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | # gem "jekyll" 4 | # gem "jekyll-theme-so-simple", :git => "https://github.com/mmistakes/so-simple-theme.git", :branch => "rebuild" 5 | gem "github-pages", group: :jekyll_plugins 6 | 7 | gem "tzinfo-data" 8 | gem "wdm", "~> 0.1.0" if Gem.win_platform? 9 | 10 | # If you have any plugins, put them here! 11 | # group :jekyll_plugins do 12 | # gem "jekyll-paginate" 13 | # gem "jekyll-sitemap" 14 | # gem "jekyll-gist" 15 | # gem "jekyll-feed" 16 | # gem "jemoji" 17 | # gem "jekyll-redirect-from" 18 | # end 19 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | # Welcome to Jekyll! 2 | # 3 | # This config file is meant for settings that affect your whole blog, values 4 | # which you are expected to set up once and rarely edit after that. If you find 5 | # yourself editing this file very often, consider using Jekyll's data files 6 | # feature for the data you need to update frequently. 7 | # 8 | # For technical reasons, this file is *NOT* reloaded automatically when you use 9 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 10 | 11 | # Site settings 12 | # These are used to personalize your new site. If you look in the HTML files, 13 | # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. 14 | # You can create any custom variable you would like, and they will be accessible 15 | # in the templates via {{ site.myvariable }}. 16 | 17 | # theme: jekyll-theme-so-simple 18 | remote_theme: mmistakes/so-simple-theme 19 | 20 | locale: en-US 21 | title: "Simple Math Tutorials" 22 | description: "A simple way to create Math Tutorials." 23 | baseurl: "/github-pages-demo" 24 | url: "https://pme123.github.io/github-pages-demo" 25 | logo: "/assets/images/logo.png" 26 | date_format: "%B %-d, %Y" 27 | read_time: true 28 | words_per_minute: # 200 29 | mathjax: true 30 | google_fonts: 31 | - name: "Source Sans Pro" 32 | weights: "400,400i,700,700i" 33 | - name: "Lora" 34 | weights: "400,400i,700,700i" 35 | 36 | # Liquid 37 | liquid: 38 | error_mode: strict 39 | 40 | # Build settings 41 | markdown: kramdown 42 | kramdown: 43 | auto_ids: true 44 | 45 | feed: 46 | path: atom.xml 47 | 48 | # Pagination - https://jekyllrb.com/docs/pagination/ 49 | paginate: 10 50 | paginate_path: /page:num/ 51 | 52 | # Search 53 | search_full_content: true 54 | 55 | # Taxonomy pages 56 | category_archive_path: "/categories/#" 57 | tag_archive_path: "/tags/#" 58 | 59 | # Exclude from processing. 60 | # The following items will not be processed, by default. Create a custom list 61 | # to override the default setting. 62 | # exclude: 63 | # - Gemfile 64 | # - Gemfile.lock 65 | # - node_modules 66 | # - vendor/bundle/ 67 | # - vendor/cache/ 68 | # - vendor/gems/ 69 | # - vendor/ruby/ 70 | 71 | plugins: 72 | - jekyll-seo-tag 73 | - jekyll-sitemap 74 | - jekyll-feed 75 | - jekyll-paginate 76 | - jekyll-redirect-from 77 | 78 | # Front Matter Defaults 79 | defaults: 80 | # Post defaults 81 | - scope: 82 | path: "_posts" 83 | type: posts 84 | values: 85 | layout: post 86 | comments: true 87 | share: true 88 | 89 | # Site Author 90 | author: 91 | name: pme123 92 | email: 93 | links: 94 | - title: GitHub 95 | url: https://github.com/pme123/github-pages-demo 96 | icon: fab fa-github-square 97 | 98 | # Footer Links 99 | footer_links: 100 | - title: GitHub 101 | url: https://github.com/pme123/github-pages-demo 102 | icon: fab fa-github-square 103 | - title: Feed 104 | url: atom.xml 105 | icon: fas fa-rss-square 106 | -------------------------------------------------------------------------------- /docs/_data/navigation.yml: -------------------------------------------------------------------------------- 1 | # Site navigation links 2 | 3 | - title: Posts 4 | url: /posts/ 5 | - title: Categories 6 | url: /categories/ 7 | - title: Tags 8 | url: /tags/ 9 | - title: Search 10 | url: /search/ 11 | - title: How to 12 | url: /develop/2019/04/28/how-to 13 | -------------------------------------------------------------------------------- /docs/_data/text.yml: -------------------------------------------------------------------------------- 1 | # Theme text and labels 2 | 3 | # English (default) 4 | # ----------------- 5 | en: &DEFAULT_EN 6 | skip_links: "Skip links" 7 | skip_primary_nav: "Skip to primary navigation" 8 | skip_content: "Skip to content" 9 | skip_footer: "Skip to footer" 10 | menu_label: "Menu" 11 | by: "by" 12 | min_read: "min read" 13 | read_more: "Read more…" 14 | categories: "Categories" 15 | tags: "Tags" 16 | pages_categorized: "Pages filed under" 17 | pages_tagged: "Pages tagged" 18 | table_of_contents: "Table of Contents" 19 | results_found: "Result(s) found" 20 | share: "Share" 21 | tweet: "Tweet" 22 | next: "Next" 23 | previous: "Previous" 24 | newer: "Newer" 25 | older: "Older" 26 | back_to_top: "Back to Top" 27 | search_placeholder_text: "Enter your search term..." 28 | powered_by: "Powered by" 29 | en-US: 30 | <<: *DEFAULT_EN 31 | en-CA: 32 | <<: *DEFAULT_EN 33 | en-GB: 34 | <<: *DEFAULT_EN 35 | en-AU: 36 | <<: *DEFAULT_EN 37 | -------------------------------------------------------------------------------- /docs/_includes/content-scripts.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /docs/_includes/custom-scripts.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/_includes/custom-toc.md: -------------------------------------------------------------------------------- 1 | 2 | {{ page.excerpt }} 3 | 4 | {% include toc %} 5 | 6 |
-------------------------------------------------------------------------------- /docs/_includes/footer-custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/_includes/head-custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /docs/_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | {% include head.html %} 10 | 11 | 12 | {% include skip-links.html %} 13 | {% include navigation.html %} 14 | {% include masthead.html %} 15 | 16 | {% include content-scripts.html %} 17 | {{ content }} 18 | 19 | {% include footer.html %} 20 | {% include scripts.html %} 21 | {% include custom-scripts.html %} 22 | 23 | -------------------------------------------------------------------------------- /docs/_posts/2019-04-18-math-cube.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Cube" 3 | excerpt: "All about a Cube." 4 | categories: 5 | - Math 6 | tags: 7 | - math 8 | - cube 9 | - english 10 | --- 11 | # Formeln 12 |
13 |
14 | 15 | 16 | # Surface 17 | > Surface formula \\[6*x^2\\] 18 | 19 |
20 | 21 | 22 | # Volume 23 | 24 | > Volume formula \\[x^3\\] 25 | 26 |
27 | 28 | -------------------------------------------------------------------------------- /docs/_posts/2019-04-24-math-expression.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Formel Graph" 3 | excerpt: "Paint your mathematical expression in a 2-dimensional Graph." 4 | categories: 5 | - Math 6 | tags: 7 | - math 8 | - english 9 | 10 | --- 11 | 12 | {{ page.excerpt }} 13 | 14 |
15 |
16 | 17 | -------------------------------------------------------------------------------- /docs/_posts/2019-04-24-math-kreis.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kreis" 3 | excerpt: "Alles über den Kreis." 4 | categories: 5 | - Math 6 | tags: 7 | - math 8 | - kreis 9 | --- 10 | 11 | {% include custom-toc.md %} 12 | 13 | # Definition 14 | Aus [Wikipedia](https://de.wikipedia.org/wiki/Kreis): 15 | > Ein Kreis ist eine ebene geometrische Figur. Er wird definiert als die Menge aller Punkte einer Ebene, die einen konstanten Abstand zu einem vorgegebenen Punkt dieser Ebene (dem **Mittelpunkt**) haben. Der Abstand der Kreispunkte zum Mittelpunkt ist der **Radius** oder _Halbmesser_ des Kreises. 16 | 17 | # Formeln 18 |
19 |
20 | 21 | 22 | ## Einheiten 23 | 24 | | _mm_ | Millimeter | \\(1mm = 0.001m\\); \\(1mm = 0.1cm\\) | 25 | | _cm_ | Centimeter | \\(1cm = 0.01m\\); \\(1cm = 10mm\\) | 26 | | _dm_ | Dezimeter | \\(1dm = 0.1m\\) | 27 | | _m_ | Meter | \\(1m = 100cm\\) | 28 | 29 | # Weitere Erklärungen 30 | 31 | {% include responsive-embed url="https://www.youtube.com/embed/eASZX0ocAc8" ratio="16:9" %} 32 | 33 | # Beispiele 34 | 35 | ### 1. Billiardkugel 36 | > Eine Poolbillardkugel hat einen Durchmesser von 57,2 mm. [Wiki](https://de.wikipedia.org/wiki/Billardkugel) 37 | 38 | ![billiard-kugeln](https://upload.wikimedia.org/wikipedia/commons/f/f5/Hyattballs.jpg){: .align-center} _(Wiki)_ 39 | 40 | Wenn wir die Kugel in der Mitte teilen erhalten wir einen Kreis. 41 | 42 | - Wie gross ist der Umfang U dieses Kreises? 43 | - Wie gross ist die Fläche A dieses Kreises? 44 | 45 | **_Lösungen siehe am Ende dieser Seite_** 46 | 47 | # Diagramme 48 | ### Kreis-Umfang im Verhältnis zum Radius: 49 | 50 |
51 | 52 | 53 | ### Kreis-Fläche im Verhältnis zum Radius: 54 | 55 |
56 | 57 | 58 | # Beispiel Lösungen 59 | 60 | ### 1. Billiardkugel 61 | 62 | - Umfang: \\(2 * \\pi * r = 2 * \\pi * 57.2 mm \\approx 359.4 mm \\approx 36 cm\\) 63 | - Fläche: \\(\\pi * r^2 = \\pi * (57.2 mm)^2 \\approx 10278.8 mm^2 \\approx 103 cm^2\\) 64 | 65 | -------------------------------------------------------------------------------- /docs/_posts/2019-04-24-math-kugel.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kugel" 3 | excerpt: "Alles über die Kugel." 4 | categories: 5 | - Math 6 | tags: 7 | - math 8 | - kugel 9 | - deutsch 10 | --- 11 | 12 | # Oberfläche 13 | > Kugel-Oberfläche \\[4*\\pi *r^2\\] 14 | 15 |
16 | 17 | 18 | # Volume 19 | 20 | > Kugel-Volumen \\[4/3*\\pi *r^3\\] 21 | 22 |
23 | 24 | -------------------------------------------------------------------------------- /docs/_posts/2019-04-25-math-division.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Division" 3 | excerpt: "Arbeiten mit Division." 4 | categories: 5 | - Math 6 | tags: 7 | - math 8 | - division 9 | - deutsch 10 | --- 11 | 12 | # Beispiele 13 | 14 | | \\(2/5\\ von\\ 1000\\) | \\(2/5*1000\\) | \\(400\\) | 15 | | \\(3/5\\ von\\ 225\\) | \\(3/5*225\\) | \\(135\\) | 16 | 17 | > \\(y = 2/5*x\\) 18 |
19 | 20 | 21 | > \\(2/x*1000\\) 22 |
23 | 24 | 25 | > \\(x/5*1000\\) 26 |
27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /docs/_posts/2019-05-15-map-example.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Map Example" 3 | excerpt: "Experiment with Maps." 4 | categories: 5 | - Geography 6 | tags: 7 | - geography 8 | - gps 9 | --- 10 | 11 | # Example 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /docs/assets/css/custom.css: -------------------------------------------------------------------------------- 1 | .ui.form input.right { 2 | text-align: right; 3 | } 4 | 5 | /* 6 | start anchorjs 7 | */ 8 | /* 9 | * Header link placement and hover behavior 10 | */ 11 | 12 | .header-link { 13 | position: absolute; 14 | padding-right: .9em; 15 | margin-left: -1em; 16 | color: inherit !important; 17 | text-decoration: none !important; 18 | opacity: 0; 19 | } 20 | 21 | .header-link .fa { 22 | font-size: 44%; 23 | vertical-align: .1em; 24 | } 25 | 26 | /* do not display in less than 768px screen */ 27 | @media (max-width: 767px) { 28 | .header-link { 29 | display: none !important; 30 | } 31 | } 32 | 33 | *:hover > .header-link { 34 | opacity: .75; 35 | /* to fade links as they appear, change transition-property from 'color' to 'all' */ 36 | -webkit-transition: color .16s linear; 37 | transition: color .16s linear; 38 | } 39 | 40 | *:hover > .header-link:hover, 41 | *:hover > .header-link:focus { 42 | opacity: 0.75; 43 | } 44 | /* 45 | end anchorjs 46 | */ 47 | 48 | -------------------------------------------------------------------------------- /docs/assets/images/bg_hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pme123/github-pages-demo/225e979f470043470bbfd3cd624f93fda9b1a6bb/docs/assets/images/bg_hr.png -------------------------------------------------------------------------------- /docs/assets/images/blacktocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pme123/github-pages-demo/225e979f470043470bbfd3cd624f93fda9b1a6bb/docs/assets/images/blacktocat.png -------------------------------------------------------------------------------- /docs/assets/images/icon_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pme123/github-pages-demo/225e979f470043470bbfd3cd624f93fda9b1a6bb/docs/assets/images/icon_download.png -------------------------------------------------------------------------------- /docs/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pme123/github-pages-demo/225e979f470043470bbfd3cd624f93fda9b1a6bb/docs/assets/images/logo.png -------------------------------------------------------------------------------- /docs/assets/images/sprite_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pme123/github-pages-demo/225e979f470043470bbfd3cd624f93fda9b1a6bb/docs/assets/images/sprite_download.png -------------------------------------------------------------------------------- /docs/assets/js/custom.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 3 | $(document).ready(function () { 4 | 'use strict'; 5 | 6 | /* selector */ 7 | var postHeader = '.e-content > h1, .e-content > h2, .e-content > h3, .e-content > h4'; 8 | 9 | $(postHeader).filter('[id]').each(function () { 10 | var header = $(this), 11 | headerID = header.attr('id'), 12 | anchorClass = 'header-link', 13 | anchorIcon = ''; 14 | 15 | if (headerID) { 16 | header.prepend($('').addClass(anchorClass).attr({ 'href': '#' + headerID, 'aria-hidden': 'true' }).html(anchorIcon)); 17 | } 18 | 19 | return this; 20 | }); 21 | }); 22 | }(jQuery)); -------------------------------------------------------------------------------- /docs/assets/js/plugins/mathjax-editing.js: -------------------------------------------------------------------------------- 1 | "use strict";StackExchange.mathjaxEditing=function(){function e(){m.disabled=!0,g.resetEquationNumbers()}function t(){m.disabled=!1}function n(e,t){var n=c.slice(e,t+1).join("").replace(/&/g,"&").replace(//g,">");for(h&&(n=n.replace(/\n /g,"\n")),k.Browser.isMSIE&&(n=n.replace(/(%[^\n]*)\n/g,"$1
\n"));t>e;)c[t--]="";c[e]="@@"+p.length+"@@",p.push(n),u=l=d=null}function i(e){u=l=d=h=null,p=[],c=w(e.replace(/\r\n?/g,"\n"),x);for(var t=1,i=c.length;i>t;t+=2){var o=c[t];"@"===o.charAt(0)?(c[t]="@@"+p.length+"@@",p.push(o)):u?o===l?f>0?d=t:0===f?n(u,t):u=l=d=null:o.match(/\n.*\n/)||t+2>=i?(d&&(t=d,f>=0&&n(u,t)),u=l=d=null,f=0):"{"===o&&f>=0?f++:"}"===o&&f>0&&f--:o===y||"$$"===o?(u=t,l=o,f=0):"begin"===o.substr(1,5)?(u=t,l="\\end"+o.substr(6),f=0):"`"===o.charAt(0)?(u=d=t,l=o,f=-1):"\n"===o.charAt(0)&&o.match(/ $/)&&(h=!0)}return d&&n(u,d),c.join("")}function o(e){return e=e.replace(/@@(\d+)@@/g,function(e,t){return p[t]}),p=null,e}function a(n,i){b=!1,k.cancelTypeset=!1,k.Queue(e,[i,k,n],t)}function r(e,t){b||(b=e,v&&(k.Cancel(),k.Queue([a,e,t])))}function s(e,t,n){var s=document.getElementById("wmd-preview"+t);y=n[0][0];var c=e.getConverter();c.hooks.chain("preConversion",i),c.hooks.chain("preSafe",o),e.hooks.chain("onPreviewRefresh",function(){r(s,"Typeset")}),k.Queue(function(){s&&s.querySelector(".mjx-noError")&&a(s,"Reprocess")})}var c,u,l,d,f,h,p,g,m,v=!1,b=null,y="$",k=MathJax.Hub;k.Queue(function(){return g=MathJax.InputJax.TeX,m=g.config.noErrors,v=!0,k.processUpdateTime=50,k.processSectionDelay=0,MathJax.Extension["fast-preview"].Disable(),k.Config({"HTML-CSS":{"EqnChunk":10,"EqnChunkFactor":1},"CommonHTML":{"EqnChunk":10,"EqnChunkFactor":1},"SVG":{"EqnChunk":10,"EqnChunkFactor":1}}),b?a(b,"Typeset"):void 0});var w,x=/(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[\\{}$]|[{}]|(?:\n\s*)+|@@\d+@@|`+)/i;return w=3==="aba".split(/(b)/).length?function(e,t){return e.split(t)}:function(e,t){var n,i=[];if(!t.global){var o=t.toString(),a="";o=o.replace(/^\/(.*)\/([im]*)$/,function(e,t,n){return a=n,t}),t=new RegExp(o,a+"g")}t.lastIndex=0;for(var r=0;n=t.exec(e);)i.push(e.substring(r,n.index)),i.push.apply(i,n.slice(1)),r=n.index+n[0].length;return i.push(e.substring(r)),i},{"prepareWmdForMathJax":s}}(),function(){var e=MathJax.Hub;if(!e.Cancel){e.cancelTypeset=!1;var t="MathJax Canceled";e.Register.StartupHook("HTML-CSS Jax Config",function(){var n=MathJax.OutputJax["HTML-CSS"],i=n.Translate;n.Augment({"Translate":function(o,a){if(e.cancelTypeset||a.cancelled)throw Error(t);return i.call(n,o,a)}})}),e.Register.StartupHook("SVG Jax Config",function(){var n=MathJax.OutputJax.SVG,i=n.Translate;n.Augment({"Translate":function(o,a){if(e.cancelTypeset||a.cancelled)throw Error(t);return i.call(n,o,a)}})}),e.Register.StartupHook("CommonHTML Jax Config",function(){var n=MathJax.OutputJax.CommonHTML,i=n.Translate;n.Augment({"Translate":function(o,a){if(e.cancelTypeset||a.cancelled)throw Error(t);return i.call(n,o,a)}})}),e.Register.StartupHook("PreviewHTML Jax Config",function(){var n=MathJax.OutputJax.PreviewHTML,i=n.Translate;n.Augment({"Translate":function(o,a){if(e.cancelTypeset||a.cancelled)throw Error(t);return i.call(n,o,a)}})}),e.Register.StartupHook("TeX Jax Config",function(){var n=MathJax.InputJax.TeX,i=n.Translate;n.Augment({"Translate":function(o,a){if(e.cancelTypeset||a.cancelled)throw Error(t);return i.call(n,o,a)}})});var n=e.processError;e.processError=function(i,o,a){return i.message!==t?n.call(e,i,o,a):(MathJax.Message.Clear(0,0),o.jaxIDs=[],o.jax={},o.scripts=[],o.i=o.j=0,o.cancelled=!0,null)},e.Cancel=function(){this.cancelTypeset=!0}}}(); -------------------------------------------------------------------------------- /docs/assets/semantic/components/accordion.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Accordion 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.accordion,.ui.accordion .accordion{max-width:100%}.ui.accordion .accordion{margin:1em 0 0;padding:0}.ui.accordion .accordion .title,.ui.accordion .title{cursor:pointer}.ui.accordion .title:not(.ui){padding:.5em 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1em;color:rgba(0,0,0,.87)}.ui.accordion .accordion .title~.content,.ui.accordion .title~.content{display:none}.ui.accordion:not(.styled) .accordion .title~.content:not(.ui),.ui.accordion:not(.styled) .title~.content:not(.ui){margin:'';padding:.5em 0 1em}.ui.accordion:not(.styled) .title~.content:not(.ui):last-child{padding-bottom:0}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{display:inline-block;float:none;opacity:1;width:1.25em;height:1em;margin:0 .25rem 0 0;padding:0;font-size:1em;-webkit-transition:opacity .1s ease,-webkit-transform .1s ease;transition:opacity .1s ease,-webkit-transform .1s ease;transition:transform .1s ease,opacity .1s ease;transition:transform .1s ease,opacity .1s ease,-webkit-transform .1s ease;vertical-align:baseline;-webkit-transform:none;transform:none}.ui.accordion.menu .item .title{display:block;padding:0}.ui.accordion.menu .item .title>.dropdown.icon{float:right;margin:.21425em 0 0 1em;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ui.accordion .ui.header .dropdown.icon{font-size:1em;margin:0 .25rem 0 0}.ui.accordion .accordion .active.title .dropdown.icon,.ui.accordion .active.title .dropdown.icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ui.accordion.menu .item .active.title>.dropdown.icon{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ui.styled.accordion{width:600px}.ui.styled.accordion,.ui.styled.accordion .accordion{border-radius:.28571429rem;background:#fff;-webkit-box-shadow:0 1px 2px 0 #ccc,0 0 0 1px #ccc;box-shadow:0 1px 2px 0 #ccc,0 0 0 1px #ccc}.ui.styled.accordion .accordion .title,.ui.styled.accordion .title{margin:0;padding:.75em 1em;color:rgba(0,0,0,.4);font-weight:700;border-top:1px solid #ccc;-webkit-transition:background .1s ease,color .1s ease;transition:background .1s ease,color .1s ease}.ui.styled.accordion .accordion .title:first-child,.ui.styled.accordion>.title:first-child{border-top:none}.ui.styled.accordion .accordion .content,.ui.styled.accordion .content{margin:0;padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .content{padding:0;padding:.5em 1em 1.5em}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .accordion .title:hover,.ui.styled.accordion .active.title,.ui.styled.accordion .title:hover{background:0 0;color:rgba(0,0,0,.87)}.ui.styled.accordion .accordion .active.title,.ui.styled.accordion .accordion .title:hover{background:0 0;color:rgba(0,0,0,.87)}.ui.styled.accordion .active.title{background:0 0;color:rgba(0,0,0,.95)}.ui.styled.accordion .accordion .active.title{background:0 0;color:rgba(0,0,0,.95)}.ui.accordion .accordion .active.content,.ui.accordion .active.content{display:block}.ui.fluid.accordion,.ui.fluid.accordion .accordion{width:100%}.ui.inverted.accordion .title:not(.ui){color:rgba(255,255,255,.9)}@font-face{font-family:Accordion;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'),url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff');font-weight:400;font-style:normal}.ui.accordion .accordion .title .dropdown.icon,.ui.accordion .title .dropdown.icon{font-family:Accordion;line-height:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;font-weight:400;font-style:normal;text-align:center}.ui.accordion .accordion .title .dropdown.icon:before,.ui.accordion .title .dropdown.icon:before{content:'\f0da'} -------------------------------------------------------------------------------- /docs/assets/semantic/components/accordion.min.js: -------------------------------------------------------------------------------- 1 | !function(F,A,e,q){"use strict";A=void 0!==A&&A.Math==Math?A:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),F.fn.accordion=function(a){var v,s=F(this),b=(new Date).getTime(),y=[],C=a,O="string"==typeof C,x=[].slice.call(arguments,1);A.requestAnimationFrame||A.mozRequestAnimationFrame||A.webkitRequestAnimationFrame||A.msRequestAnimationFrame;return s.each(function(){var e,c,u=F.isPlainObject(a)?F.extend(!0,{},F.fn.accordion.settings,a):F.extend({},F.fn.accordion.settings),d=u.className,n=u.namespace,g=u.selector,l=u.error,t="."+n,i="module-"+n,o=s.selector||"",f=F(this),m=f.find(g.title),p=f.find(g.content),r=this,h=f.data(i);c={initialize:function(){c.debug("Initializing",f),c.bind.events(),u.observeChanges&&c.observeChanges(),c.instantiate()},instantiate:function(){h=c,f.data(i,c)},destroy:function(){c.debug("Destroying previous instance",f),f.off(t).removeData(i)},refresh:function(){m=f.find(g.title),p=f.find(g.content)},observeChanges:function(){"MutationObserver"in A&&((e=new MutationObserver(function(e){c.debug("DOM tree modified, updating selector cache"),c.refresh()})).observe(r,{childList:!0,subtree:!0}),c.debug("Setting up mutation observer",e))},bind:{events:function(){c.debug("Binding delegated events"),f.on(u.on+t,g.trigger,c.event.click)}},event:{click:function(){c.toggle.call(this)}},toggle:function(e){var n=e!==q?"number"==typeof e?m.eq(e):F(e).closest(g.title):F(this).closest(g.title),t=n.next(p),i=t.hasClass(d.animating),o=t.hasClass(d.active),a=o&&!i,s=!o&&i;c.debug("Toggling visibility of content",n),a||s?u.collapsible?c.close.call(n):c.debug("Cannot close accordion content collapsing is disabled"):c.open.call(n)},open:function(e){var n=e!==q?"number"==typeof e?m.eq(e):F(e).closest(g.title):F(this).closest(g.title),t=n.next(p),i=t.hasClass(d.animating);t.hasClass(d.active)||i?c.debug("Accordion already open, skipping",t):(c.debug("Opening accordion content",n),u.onOpening.call(t),u.onChanging.call(t),u.exclusive&&c.closeOthers.call(n),n.addClass(d.active),t.stop(!0,!0).addClass(d.animating),u.animateChildren&&(F.fn.transition!==q&&f.transition("is supported")?t.children().transition({animation:"fade in",queue:!1,useFailSafe:!0,debug:u.debug,verbose:u.verbose,duration:u.duration}):t.children().stop(!0,!0).animate({opacity:1},u.duration,c.resetOpacity)),t.slideDown(u.duration,u.easing,function(){t.removeClass(d.animating).addClass(d.active),c.reset.display.call(this),u.onOpen.call(this),u.onChange.call(this)}))},close:function(e){var n=e!==q?"number"==typeof e?m.eq(e):F(e).closest(g.title):F(this).closest(g.title),t=n.next(p),i=t.hasClass(d.animating),o=t.hasClass(d.active);!o&&!(!o&&i)||o&&i||(c.debug("Closing accordion content",t),u.onClosing.call(t),u.onChanging.call(t),n.removeClass(d.active),t.stop(!0,!0).addClass(d.animating),u.animateChildren&&(F.fn.transition!==q&&f.transition("is supported")?t.children().transition({animation:"fade out",queue:!1,useFailSafe:!0,debug:u.debug,verbose:u.verbose,duration:u.duration}):t.children().stop(!0,!0).animate({opacity:0},u.duration,c.resetOpacity)),t.slideUp(u.duration,u.easing,function(){t.removeClass(d.animating).removeClass(d.active),c.reset.display.call(this),u.onClose.call(this),u.onChange.call(this)}))},closeOthers:function(e){var n,t,i,o=e!==q?m.eq(e):F(this).closest(g.title),a=o.parents(g.content).prev(g.title),s=o.closest(g.accordion),l=g.title+"."+d.active+":visible",r=g.content+"."+d.active+":visible";i=u.closeNested?(n=s.find(l).not(a)).next(p):(n=s.find(l).not(a),t=s.find(r).find(l).not(a),(n=n.not(t)).next(p)),0 .content { 94 | display: block; 95 | } 96 | 97 | /* If there is an avatar move content over */ 98 | .ui.comments .comment > .avatar ~ .content { 99 | margin-left: 3.5em; 100 | } 101 | 102 | /*-------------- 103 | Author 104 | ---------------*/ 105 | 106 | .ui.comments .comment .author { 107 | font-size: 1em; 108 | color: rgba(0, 0, 0, 0.87); 109 | font-weight: bold; 110 | } 111 | .ui.comments .comment a.author { 112 | cursor: pointer; 113 | } 114 | .ui.comments .comment a.author:hover { 115 | color: #1e70bf; 116 | } 117 | 118 | /*-------------- 119 | Metadata 120 | ---------------*/ 121 | 122 | .ui.comments .comment .metadata { 123 | display: inline-block; 124 | margin-left: 0.5em; 125 | color: rgba(0, 0, 0, 0.4); 126 | font-size: 0.875em; 127 | } 128 | .ui.comments .comment .metadata > * { 129 | display: inline-block; 130 | margin: 0em 0.5em 0em 0em; 131 | } 132 | .ui.comments .comment .metadata > :last-child { 133 | margin-right: 0em; 134 | } 135 | 136 | /*-------------------- 137 | Comment Text 138 | ---------------------*/ 139 | 140 | .ui.comments .comment .text { 141 | margin: 0.25em 0em 0.5em; 142 | font-size: 1em; 143 | word-wrap: break-word; 144 | color: rgba(0, 0, 0, 0.87); 145 | line-height: 1.3; 146 | } 147 | 148 | /*-------------------- 149 | User Actions 150 | ---------------------*/ 151 | 152 | .ui.comments .comment .actions { 153 | font-size: 0.875em; 154 | } 155 | .ui.comments .comment .actions a { 156 | cursor: pointer; 157 | display: inline-block; 158 | margin: 0em 0.75em 0em 0em; 159 | color: rgba(0, 0, 0, 0.4); 160 | } 161 | .ui.comments .comment .actions a:last-child { 162 | margin-right: 0em; 163 | } 164 | .ui.comments .comment .actions a.active, 165 | .ui.comments .comment .actions a:hover { 166 | color: rgba(0, 0, 0, 0.8); 167 | } 168 | 169 | /*-------------------- 170 | Reply Form 171 | ---------------------*/ 172 | 173 | .ui.comments > .reply.form { 174 | margin-top: 1em; 175 | } 176 | .ui.comments .comment .reply.form { 177 | width: 100%; 178 | margin-top: 1em; 179 | } 180 | .ui.comments .reply.form textarea { 181 | font-size: 1em; 182 | height: 12em; 183 | } 184 | 185 | 186 | /******************************* 187 | State 188 | *******************************/ 189 | 190 | .ui.collapsed.comments, 191 | .ui.comments .collapsed.comments, 192 | .ui.comments .collapsed.comment { 193 | display: none; 194 | } 195 | 196 | 197 | /******************************* 198 | Variations 199 | *******************************/ 200 | 201 | 202 | /*-------------------- 203 | Threaded 204 | ---------------------*/ 205 | 206 | .ui.threaded.comments .comment .comments { 207 | margin: -1.5em 0 -1em 1.25em; 208 | padding: 3em 0em 2em 2.25em; 209 | -webkit-box-shadow: -1px 0px 0px #cccccc; 210 | box-shadow: -1px 0px 0px #cccccc; 211 | } 212 | 213 | /*-------------------- 214 | Minimal 215 | ---------------------*/ 216 | 217 | .ui.minimal.comments .comment .actions { 218 | opacity: 0; 219 | position: absolute; 220 | top: 0px; 221 | right: 0px; 222 | left: auto; 223 | -webkit-transition: opacity 0.2s ease; 224 | transition: opacity 0.2s ease; 225 | -webkit-transition-delay: 0.1s; 226 | transition-delay: 0.1s; 227 | } 228 | .ui.minimal.comments .comment > .content:hover > .actions { 229 | opacity: 1; 230 | } 231 | 232 | /*------------------- 233 | Sizes 234 | --------------------*/ 235 | 236 | .ui.mini.comments { 237 | font-size: 0.78571429rem; 238 | } 239 | .ui.tiny.comments { 240 | font-size: 0.85714286rem; 241 | } 242 | .ui.small.comments { 243 | font-size: 0.92857143rem; 244 | } 245 | .ui.comments { 246 | font-size: 1rem; 247 | } 248 | .ui.large.comments { 249 | font-size: 1.14285714rem; 250 | } 251 | .ui.big.comments { 252 | font-size: 1.28571429rem; 253 | } 254 | .ui.huge.comments { 255 | font-size: 1.42857143rem; 256 | } 257 | .ui.massive.comments { 258 | font-size: 1.71428571rem; 259 | } 260 | 261 | 262 | /******************************* 263 | Theme Overrides 264 | *******************************/ 265 | 266 | 267 | 268 | /******************************* 269 | User Variable Overrides 270 | *******************************/ 271 | 272 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/comment.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Comment 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.comments{margin:1.5em 0;max-width:650px}.ui.comments:first-child{margin-top:0}.ui.comments:last-child{margin-bottom:0}.ui.comments .comment{position:relative;background:0 0;margin:.5em 0 0;padding:.5em 0 0;border:none;border-top:none;line-height:1.2}.ui.comments .comment:first-child{margin-top:0;padding-top:0}.ui.comments .comment .comments{margin:0 0 .5em .5em;padding:1em 0 1em 1em}.ui.comments .comment .comments:before{position:absolute;top:0;left:0}.ui.comments .comment .comments .comment{border:none;border-top:none;background:0 0}.ui.comments .comment .avatar{display:block;width:2.5em;height:auto;float:left;margin:.2em 0 0}.ui.comments .comment .avatar img,.ui.comments .comment img.avatar{display:block;margin:0 auto;width:100%;height:100%;border-radius:.25rem}.ui.comments .comment>.content{display:block}.ui.comments .comment>.avatar~.content{margin-left:3.5em}.ui.comments .comment .author{font-size:1em;color:rgba(0,0,0,.87);font-weight:700}.ui.comments .comment a.author{cursor:pointer}.ui.comments .comment a.author:hover{color:#1e70bf}.ui.comments .comment .metadata{display:inline-block;margin-left:.5em;color:rgba(0,0,0,.4);font-size:.875em}.ui.comments .comment .metadata>*{display:inline-block;margin:0 .5em 0 0}.ui.comments .comment .metadata>:last-child{margin-right:0}.ui.comments .comment .text{margin:.25em 0 .5em;font-size:1em;word-wrap:break-word;color:rgba(0,0,0,.87);line-height:1.3}.ui.comments .comment .actions{font-size:.875em}.ui.comments .comment .actions a{cursor:pointer;display:inline-block;margin:0 .75em 0 0;color:rgba(0,0,0,.4)}.ui.comments .comment .actions a:last-child{margin-right:0}.ui.comments .comment .actions a.active,.ui.comments .comment .actions a:hover{color:rgba(0,0,0,.8)}.ui.comments>.reply.form{margin-top:1em}.ui.comments .comment .reply.form{width:100%;margin-top:1em}.ui.comments .reply.form textarea{font-size:1em;height:12em}.ui.collapsed.comments,.ui.comments .collapsed.comment,.ui.comments .collapsed.comments{display:none}.ui.threaded.comments .comment .comments{margin:-1.5em 0 -1em 1.25em;padding:3em 0 2em 2.25em;-webkit-box-shadow:-1px 0 0 #ccc;box-shadow:-1px 0 0 #ccc}.ui.minimal.comments .comment .actions{opacity:0;position:absolute;top:0;right:0;left:auto;-webkit-transition:opacity .2s ease;transition:opacity .2s ease;-webkit-transition-delay:.1s;transition-delay:.1s}.ui.minimal.comments .comment>.content:hover>.actions{opacity:1}.ui.mini.comments{font-size:.78571429rem}.ui.tiny.comments{font-size:.85714286rem}.ui.small.comments{font-size:.92857143rem}.ui.comments{font-size:1rem}.ui.large.comments{font-size:1.14285714rem}.ui.big.comments{font-size:1.28571429rem}.ui.huge.comments{font-size:1.42857143rem}.ui.massive.comments{font-size:1.71428571rem} -------------------------------------------------------------------------------- /docs/assets/semantic/components/container.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Container 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Container 14 | *******************************/ 15 | 16 | 17 | /* All Sizes */ 18 | .ui.container { 19 | display: block; 20 | max-width: 100% !important; 21 | } 22 | 23 | /* Mobile */ 24 | @media only screen and (max-width: 767px) { 25 | .ui.container { 26 | width: auto !important; 27 | margin-left: 1em !important; 28 | margin-right: 1em !important; 29 | } 30 | .ui.grid.container { 31 | width: auto !important; 32 | } 33 | .ui.relaxed.grid.container { 34 | width: auto !important; 35 | } 36 | .ui.very.relaxed.grid.container { 37 | width: auto !important; 38 | } 39 | } 40 | 41 | /* Tablet */ 42 | @media only screen and (min-width: 768px) and (max-width: 991px) { 43 | .ui.container { 44 | width: 723px; 45 | margin-left: auto !important; 46 | margin-right: auto !important; 47 | } 48 | .ui.grid.container { 49 | width: calc( 723px + 2rem ) !important; 50 | } 51 | .ui.relaxed.grid.container { 52 | width: calc( 723px + 3rem ) !important; 53 | } 54 | .ui.very.relaxed.grid.container { 55 | width: calc( 723px + 5rem ) !important; 56 | } 57 | } 58 | 59 | /* Small Monitor */ 60 | @media only screen and (min-width: 992px) and (max-width: 1199px) { 61 | .ui.container { 62 | width: 933px; 63 | margin-left: auto !important; 64 | margin-right: auto !important; 65 | } 66 | .ui.grid.container { 67 | width: calc( 933px + 2rem ) !important; 68 | } 69 | .ui.relaxed.grid.container { 70 | width: calc( 933px + 3rem ) !important; 71 | } 72 | .ui.very.relaxed.grid.container { 73 | width: calc( 933px + 5rem ) !important; 74 | } 75 | } 76 | 77 | /* Large Monitor */ 78 | @media only screen and (min-width: 1200px) { 79 | .ui.container { 80 | width: 1127px; 81 | margin-left: auto !important; 82 | margin-right: auto !important; 83 | } 84 | .ui.grid.container { 85 | width: calc( 1127px + 2rem ) !important; 86 | } 87 | .ui.relaxed.grid.container { 88 | width: calc( 1127px + 3rem ) !important; 89 | } 90 | .ui.very.relaxed.grid.container { 91 | width: calc( 1127px + 5rem ) !important; 92 | } 93 | } 94 | 95 | 96 | /******************************* 97 | Types 98 | *******************************/ 99 | 100 | 101 | /* Text Container */ 102 | .ui.text.container { 103 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; 104 | max-width: 700px !important; 105 | line-height: 1.5; 106 | } 107 | .ui.text.container { 108 | font-size: 1.14285714rem; 109 | } 110 | 111 | /* Fluid */ 112 | .ui.fluid.container { 113 | width: 100%; 114 | } 115 | 116 | 117 | /******************************* 118 | Variations 119 | *******************************/ 120 | 121 | .ui[class*="left aligned"].container { 122 | text-align: left; 123 | } 124 | .ui[class*="center aligned"].container { 125 | text-align: center; 126 | } 127 | .ui[class*="right aligned"].container { 128 | text-align: right; 129 | } 130 | .ui.justified.container { 131 | text-align: justify; 132 | -webkit-hyphens: auto; 133 | -ms-hyphens: auto; 134 | hyphens: auto; 135 | } 136 | 137 | 138 | /******************************* 139 | Theme Overrides 140 | *******************************/ 141 | 142 | 143 | 144 | /******************************* 145 | Site Overrides 146 | *******************************/ 147 | 148 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/container.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Container 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.container{display:block;max-width:100%!important}@media only screen and (max-width:767px){.ui.container{width:auto!important;margin-left:1em!important;margin-right:1em!important}.ui.grid.container{width:auto!important}.ui.relaxed.grid.container{width:auto!important}.ui.very.relaxed.grid.container{width:auto!important}}@media only screen and (min-width:768px) and (max-width:991px){.ui.container{width:723px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(723px + 2rem)!important}.ui.relaxed.grid.container{width:calc(723px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(723px + 5rem)!important}}@media only screen and (min-width:992px) and (max-width:1199px){.ui.container{width:933px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(933px + 2rem)!important}.ui.relaxed.grid.container{width:calc(933px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(933px + 5rem)!important}}@media only screen and (min-width:1200px){.ui.container{width:1127px;margin-left:auto!important;margin-right:auto!important}.ui.grid.container{width:calc(1127px + 2rem)!important}.ui.relaxed.grid.container{width:calc(1127px + 3rem)!important}.ui.very.relaxed.grid.container{width:calc(1127px + 5rem)!important}}.ui.text.container{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;max-width:700px!important;line-height:1.5}.ui.text.container{font-size:1.14285714rem}.ui.fluid.container{width:100%}.ui[class*="left aligned"].container{text-align:left}.ui[class*="center aligned"].container{text-align:center}.ui[class*="right aligned"].container{text-align:right}.ui.justified.container{text-align:justify;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto} -------------------------------------------------------------------------------- /docs/assets/semantic/components/dimmer.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Dimmer 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Dimmer 14 | *******************************/ 15 | 16 | .dimmable:not(body) { 17 | position: relative; 18 | } 19 | .ui.dimmer { 20 | display: none; 21 | position: absolute; 22 | top: 0em !important; 23 | left: 0em !important; 24 | width: 100%; 25 | height: 100%; 26 | text-align: center; 27 | vertical-align: middle; 28 | padding: 1em; 29 | background-color: rgba(0, 0, 0, 0.85); 30 | opacity: 0; 31 | line-height: 1; 32 | -webkit-animation-fill-mode: both; 33 | animation-fill-mode: both; 34 | -webkit-animation-duration: 0.5s; 35 | animation-duration: 0.5s; 36 | -webkit-transition: background-color 0.5s linear; 37 | transition: background-color 0.5s linear; 38 | -webkit-box-orient: vertical; 39 | -webkit-box-direction: normal; 40 | -ms-flex-direction: column; 41 | flex-direction: column; 42 | -webkit-box-align: center; 43 | -ms-flex-align: center; 44 | align-items: center; 45 | -webkit-box-pack: center; 46 | -ms-flex-pack: center; 47 | justify-content: center; 48 | -webkit-user-select: none; 49 | -moz-user-select: none; 50 | -ms-user-select: none; 51 | user-select: none; 52 | will-change: opacity; 53 | z-index: 1000; 54 | } 55 | 56 | /* Dimmer Content */ 57 | .ui.dimmer > .content { 58 | -webkit-user-select: text; 59 | -moz-user-select: text; 60 | -ms-user-select: text; 61 | user-select: text; 62 | color: #FFFFFF; 63 | } 64 | 65 | /* Loose Coupling */ 66 | .ui.segment > .ui.dimmer { 67 | border-radius: inherit !important; 68 | } 69 | 70 | /* Scrollbars */ 71 | .ui.dimmer:not(.inverted)::-webkit-scrollbar-track { 72 | background: rgba(255, 255, 255, 0.1); 73 | } 74 | .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb { 75 | background: rgba(255, 255, 255, 0.25); 76 | } 77 | .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive { 78 | background: rgba(255, 255, 255, 0.15); 79 | } 80 | .ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover { 81 | background: rgba(255, 255, 255, 0.35); 82 | } 83 | 84 | 85 | /******************************* 86 | States 87 | *******************************/ 88 | 89 | 90 | /* Animating */ 91 | .animating.dimmable:not(body), 92 | .dimmed.dimmable:not(body) { 93 | overflow: hidden; 94 | } 95 | 96 | /* Animating / Active / Visible */ 97 | .dimmed.dimmable > .ui.animating.dimmer, 98 | .dimmed.dimmable > .ui.visible.dimmer, 99 | .ui.active.dimmer { 100 | display: -webkit-box; 101 | display: -ms-flexbox; 102 | display: flex; 103 | opacity: 1; 104 | } 105 | 106 | /* Disabled */ 107 | .ui.disabled.dimmer { 108 | width: 0 !important; 109 | height: 0 !important; 110 | } 111 | 112 | 113 | /******************************* 114 | Variations 115 | *******************************/ 116 | 117 | 118 | /*-------------- 119 | Alignment 120 | ---------------*/ 121 | 122 | .ui[class*="top aligned"].dimmer { 123 | -webkit-box-pack: start; 124 | -ms-flex-pack: start; 125 | justify-content: flex-start; 126 | } 127 | .ui[class*="bottom aligned"].dimmer { 128 | -webkit-box-pack: end; 129 | -ms-flex-pack: end; 130 | justify-content: flex-end; 131 | } 132 | 133 | /*-------------- 134 | Page 135 | ---------------*/ 136 | 137 | .ui.page.dimmer { 138 | position: fixed; 139 | -webkit-transform-style: ''; 140 | transform-style: ''; 141 | -webkit-perspective: 2000px; 142 | perspective: 2000px; 143 | -webkit-transform-origin: center center; 144 | transform-origin: center center; 145 | } 146 | body.animating.in.dimmable, 147 | body.dimmed.dimmable { 148 | overflow: hidden; 149 | } 150 | body.dimmable > .dimmer { 151 | position: fixed; 152 | } 153 | 154 | /*-------------- 155 | Blurring 156 | ---------------*/ 157 | 158 | .blurring.dimmable > :not(.dimmer) { 159 | -webkit-filter: blur(0px) grayscale(0); 160 | filter: blur(0px) grayscale(0); 161 | -webkit-transition: 800ms -webkit-filter ease; 162 | transition: 800ms -webkit-filter ease; 163 | transition: 800ms filter ease; 164 | transition: 800ms filter ease, 800ms -webkit-filter ease; 165 | } 166 | .blurring.dimmed.dimmable > :not(.dimmer) { 167 | -webkit-filter: blur(5px) grayscale(0.7); 168 | filter: blur(5px) grayscale(0.7); 169 | } 170 | 171 | /* Dimmer Color */ 172 | .blurring.dimmable > .dimmer { 173 | background-color: rgba(0, 0, 0, 0.6); 174 | } 175 | .blurring.dimmable > .inverted.dimmer { 176 | background-color: rgba(255, 255, 255, 0.6); 177 | } 178 | 179 | /*-------------- 180 | Aligned 181 | ---------------*/ 182 | 183 | .ui.dimmer > .top.aligned.content > * { 184 | vertical-align: top; 185 | } 186 | .ui.dimmer > .bottom.aligned.content > * { 187 | vertical-align: bottom; 188 | } 189 | 190 | /*-------------- 191 | Inverted 192 | ---------------*/ 193 | 194 | .ui.inverted.dimmer { 195 | background-color: rgba(255, 255, 255, 0.85); 196 | } 197 | .ui.inverted.dimmer > .content > * { 198 | color: #FFFFFF; 199 | } 200 | 201 | /*-------------- 202 | Simple 203 | ---------------*/ 204 | 205 | 206 | /* Displays without javascript */ 207 | .ui.simple.dimmer { 208 | display: block; 209 | overflow: hidden; 210 | opacity: 1; 211 | width: 0%; 212 | height: 0%; 213 | z-index: -100; 214 | background-color: rgba(0, 0, 0, 0); 215 | } 216 | .dimmed.dimmable > .ui.simple.dimmer { 217 | overflow: visible; 218 | opacity: 1; 219 | width: 100%; 220 | height: 100%; 221 | background-color: rgba(0, 0, 0, 0.85); 222 | z-index: 1; 223 | } 224 | .ui.simple.inverted.dimmer { 225 | background-color: rgba(255, 255, 255, 0); 226 | } 227 | .dimmed.dimmable > .ui.simple.inverted.dimmer { 228 | background-color: rgba(255, 255, 255, 0.85); 229 | } 230 | 231 | 232 | /******************************* 233 | Theme Overrides 234 | *******************************/ 235 | 236 | 237 | 238 | /******************************* 239 | User Overrides 240 | *******************************/ 241 | 242 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/dimmer.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Dimmer 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.dimmable:not(body){position:relative}.ui.dimmer{display:none;position:absolute;top:0!important;left:0!important;width:100%;height:100%;text-align:center;vertical-align:middle;padding:1em;background-color:rgba(0,0,0,.85);opacity:0;line-height:1;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-transition:background-color .5s linear;transition:background-color .5s linear;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:opacity;z-index:1000}.ui.dimmer>.content{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;color:#fff}.ui.segment>.ui.dimmer{border-radius:inherit!important}.ui.dimmer:not(.inverted)::-webkit-scrollbar-track{background:rgba(255,255,255,.1)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive{background:rgba(255,255,255,.15)}.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.35)}.animating.dimmable:not(body),.dimmed.dimmable:not(body){overflow:hidden}.dimmed.dimmable>.ui.animating.dimmer,.dimmed.dimmable>.ui.visible.dimmer,.ui.active.dimmer{display:-webkit-box;display:-ms-flexbox;display:flex;opacity:1}.ui.disabled.dimmer{width:0!important;height:0!important}.ui[class*="top aligned"].dimmer{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.ui[class*="bottom aligned"].dimmer{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.ui.page.dimmer{position:fixed;-webkit-transform-style:'';transform-style:'';-webkit-perspective:2000px;perspective:2000px;-webkit-transform-origin:center center;transform-origin:center center}body.animating.in.dimmable,body.dimmed.dimmable{overflow:hidden}body.dimmable>.dimmer{position:fixed}.blurring.dimmable>:not(.dimmer){-webkit-filter:blur(0) grayscale(0);filter:blur(0) grayscale(0);-webkit-transition:.8s -webkit-filter ease;transition:.8s -webkit-filter ease;transition:.8s filter ease;transition:.8s filter ease,.8s -webkit-filter ease}.blurring.dimmed.dimmable>:not(.dimmer){-webkit-filter:blur(5px) grayscale(.7);filter:blur(5px) grayscale(.7)}.blurring.dimmable>.dimmer{background-color:rgba(0,0,0,.6)}.blurring.dimmable>.inverted.dimmer{background-color:rgba(255,255,255,.6)}.ui.dimmer>.top.aligned.content>*{vertical-align:top}.ui.dimmer>.bottom.aligned.content>*{vertical-align:bottom}.ui.inverted.dimmer{background-color:rgba(255,255,255,.85)}.ui.inverted.dimmer>.content>*{color:#fff}.ui.simple.dimmer{display:block;overflow:hidden;opacity:1;width:0%;height:0%;z-index:-100;background-color:rgba(0,0,0,0)}.dimmed.dimmable>.ui.simple.dimmer{overflow:visible;opacity:1;width:100%;height:100%;background-color:rgba(0,0,0,.85);z-index:1}.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,0)}.dimmed.dimmable>.ui.simple.inverted.dimmer{background-color:rgba(255,255,255,.85)} -------------------------------------------------------------------------------- /docs/assets/semantic/components/divider.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Divider 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.divider{margin:1rem 0;line-height:1;height:0;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:rgba(0,0,0,.85);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ui.divider:not(.vertical):not(.horizontal){border-top:1px solid #ccc;border-bottom:1px solid rgba(255,255,255,.1)}.ui.grid>.column+.divider,.ui.grid>.row>.column+.divider{left:auto}.ui.horizontal.divider{display:table;white-space:nowrap;height:auto;margin:'';line-height:1;text-align:center}.ui.horizontal.divider:after,.ui.horizontal.divider:before{content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.horizontal.divider:before{background-position:right 1em top 50%}.ui.horizontal.divider:after{background-position:left 1em top 50%}.ui.vertical.divider{position:absolute;z-index:2;top:50%;left:50%;margin:0;padding:0;width:auto;height:50%;line-height:0;text-align:center;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ui.vertical.divider:after,.ui.vertical.divider:before{position:absolute;left:50%;content:'';z-index:3;border-left:1px solid #ccc;border-right:1px solid rgba(255,255,255,.1);width:0%;height:calc(100% - 1rem)}.ui.vertical.divider:before{top:-100%}.ui.vertical.divider:after{top:auto;bottom:0}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider,.ui.stackable.grid .ui.vertical.divider{display:table;white-space:nowrap;height:auto;margin:'';overflow:hidden;line-height:1;text-align:center;position:static;top:0;left:0;-webkit-transform:none;transform:none}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{position:static;left:0;border-left:none;border-right:none;content:'';display:table-cell;position:relative;top:50%;width:50%;background-repeat:no-repeat}.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:before{background-position:right 1em top 50%}.ui.grid .stackable.row .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:after{background-position:left 1em top 50%}}.ui.divider>.icon{margin:0;font-size:1rem;height:1em;vertical-align:middle}.ui.hidden.divider{border-color:transparent!important}.ui.hidden.divider:after,.ui.hidden.divider:before{display:none}.ui.divider.inverted,.ui.horizontal.inverted.divider,.ui.vertical.inverted.divider{color:#fff}.ui.divider.inverted,.ui.divider.inverted:after,.ui.divider.inverted:before{border-top-color:#ccc!important;border-left-color:#ccc!important;border-bottom-color:rgba(255,255,255,.15)!important;border-right-color:rgba(255,255,255,.15)!important}.ui.fitted.divider{margin:0}.ui.clearing.divider{clear:both}.ui.section.divider{margin-top:2rem;margin-bottom:2rem}.ui.divider{font-size:1rem}.ui.horizontal.divider:after,.ui.horizontal.divider:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}@media only screen and (max-width:767px){.ui.grid .stackable.row .ui.vertical.divider:after,.ui.grid .stackable.row .ui.vertical.divider:before,.ui.stackable.grid .ui.vertical.divider:after,.ui.stackable.grid .ui.vertical.divider:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABaAAAAACCAYAAACuTHuKAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1OThBRDY4OUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1OThBRDY4QUNDMTYxMUU0OUE3NUVGOEJDMzMzMjE2NyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjU5OEFENjg3Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjU5OEFENjg4Q0MxNjExRTQ5QTc1RUY4QkMzMzMyMTY3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+VU513gAAADVJREFUeNrs0DENACAQBDBIWLGBJQby/mUcJn5sJXQmOQMAAAAAAJqt+2prAAAAAACg2xdgANk6BEVuJgyMAAAAAElFTkSuQmCC)}} -------------------------------------------------------------------------------- /docs/assets/semantic/components/embed.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Types 14 | *******************************/ 15 | 16 | .ui.embed { 17 | position: relative; 18 | max-width: 100%; 19 | height: 0px; 20 | overflow: hidden; 21 | background: #DCDDDE; 22 | padding-bottom: 56.25%; 23 | } 24 | 25 | /*----------------- 26 | Embedded Content 27 | ------------------*/ 28 | 29 | .ui.embed iframe, 30 | .ui.embed embed, 31 | .ui.embed object { 32 | position: absolute; 33 | border: none; 34 | width: 100%; 35 | height: 100%; 36 | top: 0px; 37 | left: 0px; 38 | margin: 0em; 39 | padding: 0em; 40 | } 41 | 42 | /*----------------- 43 | Embed 44 | ------------------*/ 45 | 46 | .ui.embed > .embed { 47 | display: none; 48 | } 49 | 50 | /*-------------- 51 | Placeholder 52 | ---------------*/ 53 | 54 | .ui.embed > .placeholder { 55 | position: absolute; 56 | cursor: pointer; 57 | top: 0px; 58 | left: 0px; 59 | display: block; 60 | width: 100%; 61 | height: 100%; 62 | background-color: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 63 | } 64 | 65 | /*-------------- 66 | Icon 67 | ---------------*/ 68 | 69 | .ui.embed > .icon { 70 | cursor: pointer; 71 | position: absolute; 72 | top: 0px; 73 | left: 0px; 74 | width: 100%; 75 | height: 100%; 76 | z-index: 2; 77 | } 78 | .ui.embed > .icon:after { 79 | position: absolute; 80 | top: 0%; 81 | left: 0%; 82 | width: 100%; 83 | height: 100%; 84 | z-index: 3; 85 | content: ''; 86 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 87 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 88 | opacity: 0.5; 89 | -webkit-transition: opacity 0.5s ease; 90 | transition: opacity 0.5s ease; 91 | } 92 | .ui.embed > .icon:before { 93 | position: absolute; 94 | top: 50%; 95 | left: 50%; 96 | z-index: 4; 97 | -webkit-transform: translateX(-50%) translateY(-50%); 98 | transform: translateX(-50%) translateY(-50%); 99 | color: #FFFFFF; 100 | font-size: 6rem; 101 | text-shadow: 0px 2px 10px rgba(34, 36, 38, 0.2); 102 | -webkit-transition: opacity 0.5s ease, color 0.5s ease; 103 | transition: opacity 0.5s ease, color 0.5s ease; 104 | z-index: 10; 105 | } 106 | 107 | 108 | /******************************* 109 | States 110 | *******************************/ 111 | 112 | 113 | /*-------------- 114 | Hover 115 | ---------------*/ 116 | 117 | .ui.embed .icon:hover:after { 118 | background: -webkit-radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 119 | background: radial-gradient(transparent 45%, rgba(0, 0, 0, 0.3)); 120 | opacity: 1; 121 | } 122 | .ui.embed .icon:hover:before { 123 | color: #FFFFFF; 124 | } 125 | 126 | /*-------------- 127 | Active 128 | ---------------*/ 129 | 130 | .ui.active.embed > .icon, 131 | .ui.active.embed > .placeholder { 132 | display: none; 133 | } 134 | .ui.active.embed > .embed { 135 | display: block; 136 | } 137 | 138 | 139 | /******************************* 140 | Video Overrides 141 | *******************************/ 142 | 143 | 144 | 145 | /******************************* 146 | Site Overrides 147 | *******************************/ 148 | 149 | 150 | 151 | /******************************* 152 | Variations 153 | *******************************/ 154 | 155 | .ui.square.embed { 156 | padding-bottom: 100%; 157 | } 158 | .ui[class*="4:3"].embed { 159 | padding-bottom: 75%; 160 | } 161 | .ui[class*="16:9"].embed { 162 | padding-bottom: 56.25%; 163 | } 164 | .ui[class*="21:9"].embed { 165 | padding-bottom: 42.85714286%; 166 | } 167 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/embed.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Video 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.embed{position:relative;max-width:100%;height:0;overflow:hidden;background:#dcddde;padding-bottom:56.25%}.ui.embed embed,.ui.embed iframe,.ui.embed object{position:absolute;border:none;width:100%;height:100%;top:0;left:0;margin:0;padding:0}.ui.embed>.embed{display:none}.ui.embed>.placeholder{position:absolute;cursor:pointer;top:0;left:0;display:block;width:100%;height:100%;background-color:radial-gradient(transparent 45%,rgba(0,0,0,.3))}.ui.embed>.icon{cursor:pointer;position:absolute;top:0;left:0;width:100%;height:100%;z-index:2}.ui.embed>.icon:after{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;content:'';background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:.5;-webkit-transition:opacity .5s ease;transition:opacity .5s ease}.ui.embed>.icon:before{position:absolute;top:50%;left:50%;z-index:4;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);color:#fff;font-size:6rem;text-shadow:0 2px 10px rgba(34,36,38,.2);-webkit-transition:opacity .5s ease,color .5s ease;transition:opacity .5s ease,color .5s ease;z-index:10}.ui.embed .icon:hover:after{background:-webkit-radial-gradient(transparent 45%,rgba(0,0,0,.3));background:radial-gradient(transparent 45%,rgba(0,0,0,.3));opacity:1}.ui.embed .icon:hover:before{color:#fff}.ui.active.embed>.icon,.ui.active.embed>.placeholder{display:none}.ui.active.embed>.embed{display:block}.ui.square.embed{padding-bottom:100%}.ui[class*="4:3"].embed{padding-bottom:75%}.ui[class*="16:9"].embed{padding-bottom:56.25%}.ui[class*="21:9"].embed{padding-bottom:42.85714286%} -------------------------------------------------------------------------------- /docs/assets/semantic/components/feed.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Feed 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Activity Feed 14 | *******************************/ 15 | 16 | .ui.feed { 17 | margin: 1em 0em; 18 | } 19 | .ui.feed:first-child { 20 | margin-top: 0em; 21 | } 22 | .ui.feed:last-child { 23 | margin-bottom: 0em; 24 | } 25 | 26 | 27 | /******************************* 28 | Content 29 | *******************************/ 30 | 31 | 32 | /* Event */ 33 | .ui.feed > .event { 34 | display: -webkit-box; 35 | display: -ms-flexbox; 36 | display: flex; 37 | -webkit-box-orient: horizontal; 38 | -webkit-box-direction: normal; 39 | -ms-flex-direction: row; 40 | flex-direction: row; 41 | width: 100%; 42 | padding: 0.21428571rem 0em; 43 | margin: 0em; 44 | background: none; 45 | border-top: none; 46 | } 47 | .ui.feed > .event:first-child { 48 | border-top: 0px; 49 | padding-top: 0em; 50 | } 51 | .ui.feed > .event:last-child { 52 | padding-bottom: 0em; 53 | } 54 | 55 | /* Event Label */ 56 | .ui.feed > .event > .label { 57 | display: block; 58 | -webkit-box-flex: 0; 59 | -ms-flex: 0 0 auto; 60 | flex: 0 0 auto; 61 | width: 2.5em; 62 | height: auto; 63 | -ms-flex-item-align: stretch; 64 | align-self: stretch; 65 | text-align: left; 66 | } 67 | .ui.feed > .event > .label .icon { 68 | opacity: 1; 69 | font-size: 1.5em; 70 | width: 100%; 71 | padding: 0.25em; 72 | background: none; 73 | border: none; 74 | border-radius: none; 75 | color: rgba(0, 0, 0, 0.6); 76 | } 77 | .ui.feed > .event > .label img { 78 | width: 100%; 79 | height: auto; 80 | border-radius: 500rem; 81 | } 82 | .ui.feed > .event > .label + .content { 83 | margin: 0.5em 0em 0.35714286em 1.14285714em; 84 | } 85 | 86 | /*-------------- 87 | Content 88 | ---------------*/ 89 | 90 | 91 | /* Content */ 92 | .ui.feed > .event > .content { 93 | display: block; 94 | -webkit-box-flex: 1; 95 | -ms-flex: 1 1 auto; 96 | flex: 1 1 auto; 97 | -ms-flex-item-align: stretch; 98 | align-self: stretch; 99 | text-align: left; 100 | word-wrap: break-word; 101 | } 102 | .ui.feed > .event:last-child > .content { 103 | padding-bottom: 0em; 104 | } 105 | 106 | /* Link */ 107 | .ui.feed > .event > .content a { 108 | cursor: pointer; 109 | } 110 | 111 | /*-------------- 112 | Date 113 | ---------------*/ 114 | 115 | .ui.feed > .event > .content .date { 116 | margin: -0.5rem 0em 0em; 117 | padding: 0em; 118 | font-weight: normal; 119 | font-size: 1em; 120 | font-style: normal; 121 | color: rgba(0, 0, 0, 0.4); 122 | } 123 | 124 | /*-------------- 125 | Summary 126 | ---------------*/ 127 | 128 | .ui.feed > .event > .content .summary { 129 | margin: 0em; 130 | font-size: 1em; 131 | font-weight: bold; 132 | color: rgba(0, 0, 0, 0.87); 133 | } 134 | 135 | /* Summary Image */ 136 | .ui.feed > .event > .content .summary img { 137 | display: inline-block; 138 | width: auto; 139 | height: 10em; 140 | margin: -0.25em 0.25em 0em 0em; 141 | border-radius: 0.25em; 142 | vertical-align: middle; 143 | } 144 | 145 | /*-------------- 146 | User 147 | ---------------*/ 148 | 149 | .ui.feed > .event > .content .user { 150 | display: inline-block; 151 | font-weight: bold; 152 | margin-right: 0em; 153 | vertical-align: baseline; 154 | } 155 | .ui.feed > .event > .content .user img { 156 | margin: -0.25em 0.25em 0em 0em; 157 | width: auto; 158 | height: 10em; 159 | vertical-align: middle; 160 | } 161 | 162 | /*-------------- 163 | Inline Date 164 | ---------------*/ 165 | 166 | 167 | /* Date inside Summary */ 168 | .ui.feed > .event > .content .summary > .date { 169 | display: inline-block; 170 | float: none; 171 | font-weight: normal; 172 | font-size: 0.85714286em; 173 | font-style: normal; 174 | margin: 0em 0em 0em 0.5em; 175 | padding: 0em; 176 | color: rgba(0, 0, 0, 0.4); 177 | } 178 | 179 | /*-------------- 180 | Extra Summary 181 | ---------------*/ 182 | 183 | .ui.feed > .event > .content .extra { 184 | margin: 0.5em 0em 0em; 185 | background: none; 186 | padding: 0em; 187 | color: rgba(0, 0, 0, 0.87); 188 | } 189 | 190 | /* Images */ 191 | .ui.feed > .event > .content .extra.images img { 192 | display: inline-block; 193 | margin: 0em 0.25em 0em 0em; 194 | width: 6em; 195 | } 196 | 197 | /* Text */ 198 | .ui.feed > .event > .content .extra.text { 199 | padding: 0em; 200 | border-left: none; 201 | font-size: 1em; 202 | max-width: 500px; 203 | line-height: 1.4285em; 204 | } 205 | 206 | /*-------------- 207 | Meta 208 | ---------------*/ 209 | 210 | .ui.feed > .event > .content .meta { 211 | display: inline-block; 212 | font-size: 0.85714286em; 213 | margin: 0.5em 0em 0em; 214 | background: none; 215 | border: none; 216 | border-radius: 0; 217 | -webkit-box-shadow: none; 218 | box-shadow: none; 219 | padding: 0em; 220 | color: rgba(0, 0, 0, 0.6); 221 | } 222 | .ui.feed > .event > .content .meta > * { 223 | position: relative; 224 | margin-left: 0.75em; 225 | } 226 | .ui.feed > .event > .content .meta > *:after { 227 | content: ''; 228 | color: rgba(0, 0, 0, 0.2); 229 | top: 0em; 230 | left: -1em; 231 | opacity: 1; 232 | position: absolute; 233 | vertical-align: top; 234 | } 235 | .ui.feed > .event > .content .meta .like { 236 | color: ''; 237 | -webkit-transition: 0.2s color ease; 238 | transition: 0.2s color ease; 239 | } 240 | .ui.feed > .event > .content .meta .like:hover .icon { 241 | color: #FF2733; 242 | } 243 | .ui.feed > .event > .content .meta .active.like .icon { 244 | color: #EF404A; 245 | } 246 | 247 | /* First element */ 248 | .ui.feed > .event > .content .meta > :first-child { 249 | margin-left: 0em; 250 | } 251 | .ui.feed > .event > .content .meta > :first-child::after { 252 | display: none; 253 | } 254 | 255 | /* Action */ 256 | .ui.feed > .event > .content .meta a, 257 | .ui.feed > .event > .content .meta > .icon { 258 | cursor: pointer; 259 | opacity: 1; 260 | color: rgba(0, 0, 0, 0.5); 261 | -webkit-transition: color 0.1s ease; 262 | transition: color 0.1s ease; 263 | } 264 | .ui.feed > .event > .content .meta a:hover, 265 | .ui.feed > .event > .content .meta a:hover .icon, 266 | .ui.feed > .event > .content .meta > .icon:hover { 267 | color: rgba(0, 0, 0, 0.95); 268 | } 269 | 270 | 271 | /******************************* 272 | Variations 273 | *******************************/ 274 | 275 | .ui.small.feed { 276 | font-size: 0.92857143rem; 277 | } 278 | .ui.feed { 279 | font-size: 1rem; 280 | } 281 | .ui.large.feed { 282 | font-size: 1.14285714rem; 283 | } 284 | 285 | 286 | /******************************* 287 | Theme Overrides 288 | *******************************/ 289 | 290 | 291 | 292 | /******************************* 293 | User Variable Overrides 294 | *******************************/ 295 | 296 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/feed.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Feed 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.feed{margin:1em 0}.ui.feed:first-child{margin-top:0}.ui.feed:last-child{margin-bottom:0}.ui.feed>.event{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;width:100%;padding:.21428571rem 0;margin:0;background:0 0;border-top:none}.ui.feed>.event:first-child{border-top:0;padding-top:0}.ui.feed>.event:last-child{padding-bottom:0}.ui.feed>.event>.label{display:block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:2.5em;height:auto;-ms-flex-item-align:stretch;align-self:stretch;text-align:left}.ui.feed>.event>.label .icon{opacity:1;font-size:1.5em;width:100%;padding:.25em;background:0 0;border:none;border-radius:none;color:rgba(0,0,0,.6)}.ui.feed>.event>.label img{width:100%;height:auto;border-radius:500rem}.ui.feed>.event>.label+.content{margin:.5em 0 .35714286em 1.14285714em}.ui.feed>.event>.content{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-item-align:stretch;align-self:stretch;text-align:left;word-wrap:break-word}.ui.feed>.event:last-child>.content{padding-bottom:0}.ui.feed>.event>.content a{cursor:pointer}.ui.feed>.event>.content .date{margin:-.5rem 0 0;padding:0;font-weight:400;font-size:1em;font-style:normal;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .summary{margin:0;font-size:1em;font-weight:700;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .summary img{display:inline-block;width:auto;height:10em;margin:-.25em .25em 0 0;border-radius:.25em;vertical-align:middle}.ui.feed>.event>.content .user{display:inline-block;font-weight:700;margin-right:0;vertical-align:baseline}.ui.feed>.event>.content .user img{margin:-.25em .25em 0 0;width:auto;height:10em;vertical-align:middle}.ui.feed>.event>.content .summary>.date{display:inline-block;float:none;font-weight:400;font-size:.85714286em;font-style:normal;margin:0 0 0 .5em;padding:0;color:rgba(0,0,0,.4)}.ui.feed>.event>.content .extra{margin:.5em 0 0;background:0 0;padding:0;color:rgba(0,0,0,.87)}.ui.feed>.event>.content .extra.images img{display:inline-block;margin:0 .25em 0 0;width:6em}.ui.feed>.event>.content .extra.text{padding:0;border-left:none;font-size:1em;max-width:500px;line-height:1.4285em}.ui.feed>.event>.content .meta{display:inline-block;font-size:.85714286em;margin:.5em 0 0;background:0 0;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;padding:0;color:rgba(0,0,0,.6)}.ui.feed>.event>.content .meta>*{position:relative;margin-left:.75em}.ui.feed>.event>.content .meta>:after{content:'';color:rgba(0,0,0,.2);top:0;left:-1em;opacity:1;position:absolute;vertical-align:top}.ui.feed>.event>.content .meta .like{color:'';-webkit-transition:.2s color ease;transition:.2s color ease}.ui.feed>.event>.content .meta .like:hover .icon{color:#ff2733}.ui.feed>.event>.content .meta .active.like .icon{color:#ef404a}.ui.feed>.event>.content .meta>:first-child{margin-left:0}.ui.feed>.event>.content .meta>:first-child::after{display:none}.ui.feed>.event>.content .meta a,.ui.feed>.event>.content .meta>.icon{cursor:pointer;opacity:1;color:rgba(0,0,0,.5);-webkit-transition:color .1s ease;transition:color .1s ease}.ui.feed>.event>.content .meta a:hover,.ui.feed>.event>.content .meta a:hover .icon,.ui.feed>.event>.content .meta>.icon:hover{color:rgba(0,0,0,.95)}.ui.small.feed{font-size:.92857143rem}.ui.feed{font-size:1rem}.ui.large.feed{font-size:1.14285714rem} -------------------------------------------------------------------------------- /docs/assets/semantic/components/image.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Image 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Image 14 | *******************************/ 15 | 16 | .ui.image { 17 | position: relative; 18 | display: inline-block; 19 | vertical-align: middle; 20 | max-width: 100%; 21 | background-color: transparent; 22 | } 23 | img.ui.image { 24 | display: block; 25 | } 26 | .ui.image svg, 27 | .ui.image img { 28 | display: block; 29 | max-width: 100%; 30 | height: auto; 31 | } 32 | 33 | 34 | /******************************* 35 | States 36 | *******************************/ 37 | 38 | .ui.hidden.images, 39 | .ui.hidden.image { 40 | display: none; 41 | } 42 | .ui.hidden.transition.images, 43 | .ui.hidden.transition.image { 44 | display: block; 45 | visibility: hidden; 46 | } 47 | .ui.images > .hidden.transition { 48 | display: inline-block; 49 | visibility: hidden; 50 | } 51 | .ui.disabled.images, 52 | .ui.disabled.image { 53 | cursor: default; 54 | opacity: 0.45; 55 | } 56 | 57 | 58 | /******************************* 59 | Variations 60 | *******************************/ 61 | 62 | 63 | /*-------------- 64 | Inline 65 | ---------------*/ 66 | 67 | .ui.inline.image, 68 | .ui.inline.image svg, 69 | .ui.inline.image img { 70 | display: inline-block; 71 | } 72 | 73 | /*------------------ 74 | Vertical Aligned 75 | -------------------*/ 76 | 77 | .ui.top.aligned.images .image, 78 | .ui.top.aligned.image, 79 | .ui.top.aligned.image svg, 80 | .ui.top.aligned.image img { 81 | display: inline-block; 82 | vertical-align: top; 83 | } 84 | .ui.middle.aligned.images .image, 85 | .ui.middle.aligned.image, 86 | .ui.middle.aligned.image svg, 87 | .ui.middle.aligned.image img { 88 | display: inline-block; 89 | vertical-align: middle; 90 | } 91 | .ui.bottom.aligned.images .image, 92 | .ui.bottom.aligned.image, 93 | .ui.bottom.aligned.image svg, 94 | .ui.bottom.aligned.image img { 95 | display: inline-block; 96 | vertical-align: bottom; 97 | } 98 | 99 | /*-------------- 100 | Rounded 101 | ---------------*/ 102 | 103 | .ui.rounded.images .image, 104 | .ui.rounded.image, 105 | .ui.rounded.images .image > *, 106 | .ui.rounded.image > * { 107 | border-radius: 0.3125em; 108 | } 109 | 110 | /*-------------- 111 | Bordered 112 | ---------------*/ 113 | 114 | .ui.bordered.images .image, 115 | .ui.bordered.images img, 116 | .ui.bordered.images svg, 117 | .ui.bordered.image img, 118 | .ui.bordered.image svg, 119 | img.ui.bordered.image { 120 | border: 1px solid rgba(0, 0, 0, 0.1); 121 | } 122 | 123 | /*-------------- 124 | Circular 125 | ---------------*/ 126 | 127 | .ui.circular.images, 128 | .ui.circular.image { 129 | overflow: hidden; 130 | } 131 | .ui.circular.images .image, 132 | .ui.circular.image, 133 | .ui.circular.images .image > *, 134 | .ui.circular.image > * { 135 | border-radius: 500rem; 136 | } 137 | 138 | /*-------------- 139 | Fluid 140 | ---------------*/ 141 | 142 | .ui.fluid.images, 143 | .ui.fluid.image, 144 | .ui.fluid.images img, 145 | .ui.fluid.images svg, 146 | .ui.fluid.image svg, 147 | .ui.fluid.image img { 148 | display: block; 149 | width: 100%; 150 | height: auto; 151 | } 152 | 153 | /*-------------- 154 | Avatar 155 | ---------------*/ 156 | 157 | .ui.avatar.images .image, 158 | .ui.avatar.images img, 159 | .ui.avatar.images svg, 160 | .ui.avatar.image img, 161 | .ui.avatar.image svg, 162 | .ui.avatar.image { 163 | margin-right: 0.25em; 164 | display: inline-block; 165 | width: 2em; 166 | height: 2em; 167 | border-radius: 500rem; 168 | } 169 | 170 | /*------------------- 171 | Spaced 172 | --------------------*/ 173 | 174 | .ui.spaced.image { 175 | display: inline-block !important; 176 | margin-left: 0.5em; 177 | margin-right: 0.5em; 178 | } 179 | .ui[class*="left spaced"].image { 180 | margin-left: 0.5em; 181 | margin-right: 0em; 182 | } 183 | .ui[class*="right spaced"].image { 184 | margin-left: 0em; 185 | margin-right: 0.5em; 186 | } 187 | 188 | /*------------------- 189 | Floated 190 | --------------------*/ 191 | 192 | .ui.floated.image, 193 | .ui.floated.images { 194 | float: left; 195 | margin-right: 1em; 196 | margin-bottom: 1em; 197 | } 198 | .ui.right.floated.images, 199 | .ui.right.floated.image { 200 | float: right; 201 | margin-right: 0em; 202 | margin-bottom: 1em; 203 | margin-left: 1em; 204 | } 205 | .ui.floated.images:last-child, 206 | .ui.floated.image:last-child { 207 | margin-bottom: 0em; 208 | } 209 | .ui.centered.images, 210 | .ui.centered.image { 211 | margin-left: auto; 212 | margin-right: auto; 213 | } 214 | 215 | /*-------------- 216 | Sizes 217 | ---------------*/ 218 | 219 | .ui.mini.images .image, 220 | .ui.mini.images img, 221 | .ui.mini.images svg, 222 | .ui.mini.image { 223 | width: 35px; 224 | height: auto; 225 | font-size: 0.78571429rem; 226 | } 227 | .ui.tiny.images .image, 228 | .ui.tiny.images img, 229 | .ui.tiny.images svg, 230 | .ui.tiny.image { 231 | width: 80px; 232 | height: auto; 233 | font-size: 0.85714286rem; 234 | } 235 | .ui.small.images .image, 236 | .ui.small.images img, 237 | .ui.small.images svg, 238 | .ui.small.image { 239 | width: 150px; 240 | height: auto; 241 | font-size: 0.92857143rem; 242 | } 243 | .ui.medium.images .image, 244 | .ui.medium.images img, 245 | .ui.medium.images svg, 246 | .ui.medium.image { 247 | width: 300px; 248 | height: auto; 249 | font-size: 1rem; 250 | } 251 | .ui.large.images .image, 252 | .ui.large.images img, 253 | .ui.large.images svg, 254 | .ui.large.image { 255 | width: 450px; 256 | height: auto; 257 | font-size: 1.14285714rem; 258 | } 259 | .ui.big.images .image, 260 | .ui.big.images img, 261 | .ui.big.images svg, 262 | .ui.big.image { 263 | width: 600px; 264 | height: auto; 265 | font-size: 1.28571429rem; 266 | } 267 | .ui.huge.images .image, 268 | .ui.huge.images img, 269 | .ui.huge.images svg, 270 | .ui.huge.image { 271 | width: 800px; 272 | height: auto; 273 | font-size: 1.42857143rem; 274 | } 275 | .ui.massive.images .image, 276 | .ui.massive.images img, 277 | .ui.massive.images svg, 278 | .ui.massive.image { 279 | width: 960px; 280 | height: auto; 281 | font-size: 1.71428571rem; 282 | } 283 | 284 | 285 | /******************************* 286 | Groups 287 | *******************************/ 288 | 289 | .ui.images { 290 | font-size: 0em; 291 | margin: 0em -0.25rem 0rem; 292 | } 293 | .ui.images .image, 294 | .ui.images > img, 295 | .ui.images > svg { 296 | display: inline-block; 297 | margin: 0em 0.25rem 0.5rem; 298 | } 299 | 300 | 301 | /******************************* 302 | Theme Overrides 303 | *******************************/ 304 | 305 | 306 | 307 | /******************************* 308 | Site Overrides 309 | *******************************/ 310 | 311 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/image.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Image 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.image{position:relative;display:inline-block;vertical-align:middle;max-width:100%;background-color:transparent}img.ui.image{display:block}.ui.image img,.ui.image svg{display:block;max-width:100%;height:auto}.ui.hidden.image,.ui.hidden.images{display:none}.ui.hidden.transition.image,.ui.hidden.transition.images{display:block;visibility:hidden}.ui.images>.hidden.transition{display:inline-block;visibility:hidden}.ui.disabled.image,.ui.disabled.images{cursor:default;opacity:.45}.ui.inline.image,.ui.inline.image img,.ui.inline.image svg{display:inline-block}.ui.top.aligned.image,.ui.top.aligned.image img,.ui.top.aligned.image svg,.ui.top.aligned.images .image{display:inline-block;vertical-align:top}.ui.middle.aligned.image,.ui.middle.aligned.image img,.ui.middle.aligned.image svg,.ui.middle.aligned.images .image{display:inline-block;vertical-align:middle}.ui.bottom.aligned.image,.ui.bottom.aligned.image img,.ui.bottom.aligned.image svg,.ui.bottom.aligned.images .image{display:inline-block;vertical-align:bottom}.ui.rounded.image,.ui.rounded.image>*,.ui.rounded.images .image,.ui.rounded.images .image>*{border-radius:.3125em}.ui.bordered.image img,.ui.bordered.image svg,.ui.bordered.images .image,.ui.bordered.images img,.ui.bordered.images svg,img.ui.bordered.image{border:1px solid rgba(0,0,0,.1)}.ui.circular.image,.ui.circular.images{overflow:hidden}.ui.circular.image,.ui.circular.image>*,.ui.circular.images .image,.ui.circular.images .image>*{border-radius:500rem}.ui.fluid.image,.ui.fluid.image img,.ui.fluid.image svg,.ui.fluid.images,.ui.fluid.images img,.ui.fluid.images svg{display:block;width:100%;height:auto}.ui.avatar.image,.ui.avatar.image img,.ui.avatar.image svg,.ui.avatar.images .image,.ui.avatar.images img,.ui.avatar.images svg{margin-right:.25em;display:inline-block;width:2em;height:2em;border-radius:500rem}.ui.spaced.image{display:inline-block!important;margin-left:.5em;margin-right:.5em}.ui[class*="left spaced"].image{margin-left:.5em;margin-right:0}.ui[class*="right spaced"].image{margin-left:0;margin-right:.5em}.ui.floated.image,.ui.floated.images{float:left;margin-right:1em;margin-bottom:1em}.ui.right.floated.image,.ui.right.floated.images{float:right;margin-right:0;margin-bottom:1em;margin-left:1em}.ui.floated.image:last-child,.ui.floated.images:last-child{margin-bottom:0}.ui.centered.image,.ui.centered.images{margin-left:auto;margin-right:auto}.ui.mini.image,.ui.mini.images .image,.ui.mini.images img,.ui.mini.images svg{width:35px;height:auto;font-size:.78571429rem}.ui.tiny.image,.ui.tiny.images .image,.ui.tiny.images img,.ui.tiny.images svg{width:80px;height:auto;font-size:.85714286rem}.ui.small.image,.ui.small.images .image,.ui.small.images img,.ui.small.images svg{width:150px;height:auto;font-size:.92857143rem}.ui.medium.image,.ui.medium.images .image,.ui.medium.images img,.ui.medium.images svg{width:300px;height:auto;font-size:1rem}.ui.large.image,.ui.large.images .image,.ui.large.images img,.ui.large.images svg{width:450px;height:auto;font-size:1.14285714rem}.ui.big.image,.ui.big.images .image,.ui.big.images img,.ui.big.images svg{width:600px;height:auto;font-size:1.28571429rem}.ui.huge.image,.ui.huge.images .image,.ui.huge.images img,.ui.huge.images svg{width:800px;height:auto;font-size:1.42857143rem}.ui.massive.image,.ui.massive.images .image,.ui.massive.images img,.ui.massive.images svg{width:960px;height:auto;font-size:1.71428571rem}.ui.images{font-size:0;margin:0 -.25rem 0}.ui.images .image,.ui.images>img,.ui.images>svg{display:inline-block;margin:0 .25rem .5rem} -------------------------------------------------------------------------------- /docs/assets/semantic/components/item.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Item 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.items>.item{display:-webkit-box;display:-ms-flexbox;display:flex;margin:1em 0;width:100%;min-height:0;background:0 0;padding:0;border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:-webkit-box-shadow .1s ease;transition:-webkit-box-shadow .1s ease;transition:box-shadow .1s ease;transition:box-shadow .1s ease,-webkit-box-shadow .1s ease;z-index:''}.ui.items>.item a{cursor:pointer}.ui.items{margin:1.5em 0}.ui.items:first-child{margin-top:0!important}.ui.items:last-child{margin-bottom:0!important}.ui.items>.item:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item:first-child{margin-top:0}.ui.items>.item:last-child{margin-bottom:0}.ui.items>.item>.image{position:relative;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;display:block;float:none;margin:0;padding:0;max-height:'';-ms-flex-item-align:top;align-self:top}.ui.items>.item>.image>img{display:block;width:100%;height:auto;border-radius:.125rem;border:none}.ui.items>.item>.image:only-child>img{border-radius:0}.ui.items>.item>.content{display:block;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;background:0 0;margin:0;padding:0;-webkit-box-shadow:none;box-shadow:none;font-size:1em;border:none;border-radius:0}.ui.items>.item>.content:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image+.content{min-width:0;width:auto;display:block;margin-left:0;-ms-flex-item-align:top;align-self:top;padding-left:1.5em}.ui.items>.item>.content>.header{display:inline-block;margin:-.21425em 0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;color:rgba(0,0,0,.85)}.ui.items>.item>.content>.header:not(.ui){font-size:1.28571429em}.ui.items>.item [class*="left floated"]{float:left}.ui.items>.item [class*="right floated"]{float:right}.ui.items>.item .content img{-ms-flex-item-align:middle;align-self:middle;width:''}.ui.items>.item .avatar img,.ui.items>.item img.avatar{width:'';height:'';border-radius:500rem}.ui.items>.item>.content>.description{margin-top:.6em;max-width:auto;font-size:1em;line-height:1.4285em;color:rgba(0,0,0,.87)}.ui.items>.item>.content p{margin:0 0 .5em}.ui.items>.item>.content p:last-child{margin-bottom:0}.ui.items>.item .meta{margin:.5em 0 .5em;font-size:1em;line-height:1em;color:rgba(0,0,0,.6)}.ui.items>.item .meta *{margin-right:.3em}.ui.items>.item .meta :last-child{margin-right:0}.ui.items>.item .meta [class*="right floated"]{margin-right:0;margin-left:.3em}.ui.items>.item>.content a:not(.ui){color:'';-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content a:not(.ui):hover{color:''}.ui.items>.item>.content>a.header{color:rgba(0,0,0,.85)}.ui.items>.item>.content>a.header:hover{color:#1e70bf}.ui.items>.item .meta>a:not(.ui){color:rgba(0,0,0,.4)}.ui.items>.item .meta>a:not(.ui):hover{color:rgba(0,0,0,.87)}.ui.items>.item>.content .favorite.icon{cursor:pointer;opacity:.75;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content .favorite.icon:hover{opacity:1;color:#ffb70a}.ui.items>.item>.content .active.favorite.icon{color:#ffe623}.ui.items>.item>.content .like.icon{cursor:pointer;opacity:.75;-webkit-transition:color .1s ease;transition:color .1s ease}.ui.items>.item>.content .like.icon:hover{opacity:1;color:#ff2733}.ui.items>.item>.content .active.like.icon{color:#ff2733}.ui.items>.item .extra{display:block;position:relative;background:0 0;margin:.5rem 0 0;width:100%;padding:0 0 0;top:0;left:0;color:rgba(0,0,0,.4);-webkit-box-shadow:none;box-shadow:none;-webkit-transition:color .1s ease;transition:color .1s ease;border-top:none}.ui.items>.item .extra>*{margin:.25rem .5rem .25rem 0}.ui.items>.item .extra>[class*="right floated"]{margin:.25rem 0 .25rem .5rem}.ui.items>.item .extra:after{display:block;content:' ';height:0;clear:both;overflow:hidden;visibility:hidden}.ui.items>.item>.image:not(.ui){width:175px}@media only screen and (min-width:768px) and (max-width:991px){.ui.items>.item{margin:1em 0}.ui.items>.item>.image:not(.ui){width:150px}.ui.items>.item>.image+.content{display:block;padding:0 0 0 1em}}@media only screen and (max-width:767px){.ui.items:not(.unstackable)>.item{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:2em 0}.ui.items:not(.unstackable)>.item>.image{display:block;margin-left:auto;margin-right:auto}.ui.items:not(.unstackable)>.item>.image,.ui.items:not(.unstackable)>.item>.image>img{max-width:100%!important;width:auto!important;max-height:250px!important}.ui.items:not(.unstackable)>.item>.image+.content{display:block;padding:1.5em 0 0}}.ui.items>.item>.image+[class*="top aligned"].content{-ms-flex-item-align:start;align-self:flex-start}.ui.items>.item>.image+[class*="middle aligned"].content{-ms-flex-item-align:center;align-self:center}.ui.items>.item>.image+[class*="bottom aligned"].content{-ms-flex-item-align:end;align-self:flex-end}.ui.relaxed.items>.item{margin:1.5em 0}.ui[class*="very relaxed"].items>.item{margin:2em 0}.ui.divided.items>.item{border-top:1px solid #ccc;margin:0;padding:1em 0}.ui.divided.items>.item:first-child{border-top:none;margin-top:0!important;padding-top:0!important}.ui.divided.items>.item:last-child{margin-bottom:0!important;padding-bottom:0!important}.ui.relaxed.divided.items>.item{margin:0;padding:1.5em 0}.ui[class*="very relaxed"].divided.items>.item{margin:0;padding:2em 0}.ui.items a.item:hover,.ui.link.items>.item:hover{cursor:pointer}.ui.items a.item:hover .content .header,.ui.link.items>.item:hover .content .header{color:#1e70bf}.ui.items>.item{font-size:1em}@media only screen and (max-width:767px){.ui.unstackable.items>.item>.image,.ui.unstackable.items>.item>.image>img{width:125px!important}} -------------------------------------------------------------------------------- /docs/assets/semantic/components/loader.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Loader 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.loader{display:none;position:absolute;top:50%;left:50%;margin:0;text-align:center;z-index:1000;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.ui.loader:before{position:absolute;content:'';top:0;left:50%;width:100%;height:100%;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loader:after{position:absolute;content:'';top:0;left:50%;width:100%;height:100%;-webkit-animation:loader .6s linear;animation:loader .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}@-webkit-keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loader{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ui.mini.loader:after,.ui.mini.loader:before{width:1rem;height:1rem;margin:0 0 0 -.5rem}.ui.tiny.loader:after,.ui.tiny.loader:before{width:1.14285714rem;height:1.14285714rem;margin:0 0 0 -.57142857rem}.ui.small.loader:after,.ui.small.loader:before{width:1.71428571rem;height:1.71428571rem;margin:0 0 0 -.85714286rem}.ui.loader:after,.ui.loader:before{width:2.28571429rem;height:2.28571429rem;margin:0 0 0 -1.14285714rem}.ui.large.loader:after,.ui.large.loader:before{width:3.42857143rem;height:3.42857143rem;margin:0 0 0 -1.71428571rem}.ui.big.loader:after,.ui.big.loader:before{width:3.71428571rem;height:3.71428571rem;margin:0 0 0 -1.85714286rem}.ui.huge.loader:after,.ui.huge.loader:before{width:4.14285714rem;height:4.14285714rem;margin:0 0 0 -2.07142857rem}.ui.massive.loader:after,.ui.massive.loader:before{width:4.57142857rem;height:4.57142857rem;margin:0 0 0 -2.28571429rem}.ui.dimmer .loader{display:block}.ui.dimmer .ui.loader{color:rgba(255,255,255,.9)}.ui.dimmer .ui.loader:before{border-color:rgba(255,255,255,.15)}.ui.dimmer .ui.loader:after{border-color:#fff transparent transparent}.ui.inverted.dimmer .ui.loader{color:rgba(0,0,0,.87)}.ui.inverted.dimmer .ui.loader:before{border-color:rgba(0,0,0,.1)}.ui.inverted.dimmer .ui.loader:after{border-color:#767676 transparent transparent}.ui.text.loader{width:auto!important;height:auto!important;text-align:center;font-style:normal}.ui.indeterminate.loader:after{animation-direction:reverse;-webkit-animation-duration:1.2s;animation-duration:1.2s}.ui.loader.active,.ui.loader.visible{display:block}.ui.loader.disabled,.ui.loader.hidden{display:none}.ui.inverted.dimmer .ui.mini.loader,.ui.mini.loader{width:1rem;height:1rem;font-size:.78571429em}.ui.inverted.dimmer .ui.tiny.loader,.ui.tiny.loader{width:1.14285714rem;height:1.14285714rem;font-size:.85714286em}.ui.inverted.dimmer .ui.small.loader,.ui.small.loader{width:1.71428571rem;height:1.71428571rem;font-size:.92857143em}.ui.inverted.dimmer .ui.loader,.ui.loader{width:2.28571429rem;height:2.28571429rem;font-size:1em}.ui.inverted.dimmer .ui.large.loader,.ui.large.loader{width:3.42857143rem;height:3.42857143rem;font-size:1.14285714em}.ui.big.loader,.ui.inverted.dimmer .ui.big.loader{width:3.71428571rem;height:3.71428571rem;font-size:1.28571429em}.ui.huge.loader,.ui.inverted.dimmer .ui.huge.loader{width:4.14285714rem;height:4.14285714rem;font-size:1.42857143em}.ui.inverted.dimmer .ui.massive.loader,.ui.massive.loader{width:4.57142857rem;height:4.57142857rem;font-size:1.71428571em}.ui.mini.text.loader{min-width:1rem;padding-top:1.78571429rem}.ui.tiny.text.loader{min-width:1.14285714rem;padding-top:1.92857143rem}.ui.small.text.loader{min-width:1.71428571rem;padding-top:2.5rem}.ui.text.loader{min-width:2.28571429rem;padding-top:3.07142857rem}.ui.large.text.loader{min-width:3.42857143rem;padding-top:4.21428571rem}.ui.big.text.loader{min-width:3.71428571rem;padding-top:4.5rem}.ui.huge.text.loader{min-width:4.14285714rem;padding-top:4.92857143rem}.ui.massive.text.loader{min-width:4.57142857rem;padding-top:5.35714286rem}.ui.inverted.loader{color:rgba(255,255,255,.9)}.ui.inverted.loader:before{border-color:rgba(255,255,255,.15)}.ui.inverted.loader:after{border-top-color:#fff}.ui.inline.loader{position:relative;vertical-align:middle;margin:0;left:0;top:0;-webkit-transform:none;transform:none}.ui.inline.loader.active,.ui.inline.loader.visible{display:inline-block}.ui.centered.inline.loader.active,.ui.centered.inline.loader.visible{display:block;margin-left:auto;margin-right:auto} -------------------------------------------------------------------------------- /docs/assets/semantic/components/nag.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Nag 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Nag 14 | *******************************/ 15 | 16 | .ui.nag { 17 | display: none; 18 | opacity: 0.95; 19 | position: relative; 20 | top: 0em; 21 | left: 0px; 22 | z-index: 999; 23 | min-height: 0em; 24 | width: 100%; 25 | margin: 0em; 26 | padding: 0.75em 1em; 27 | background: #555555; 28 | -webkit-box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); 29 | box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2); 30 | font-size: 1rem; 31 | text-align: center; 32 | color: rgba(0, 0, 0, 0.87); 33 | border-radius: 0em 0em 0.28571429rem 0.28571429rem; 34 | -webkit-transition: 0.2s background ease; 35 | transition: 0.2s background ease; 36 | } 37 | a.ui.nag { 38 | cursor: pointer; 39 | } 40 | .ui.nag > .title { 41 | display: inline-block; 42 | margin: 0em 0.5em; 43 | color: #FFFFFF; 44 | } 45 | .ui.nag > .close.icon { 46 | cursor: pointer; 47 | opacity: 0.4; 48 | position: absolute; 49 | top: 50%; 50 | right: 1em; 51 | font-size: 1em; 52 | margin: -0.5em 0em 0em; 53 | color: #FFFFFF; 54 | -webkit-transition: opacity 0.2s ease; 55 | transition: opacity 0.2s ease; 56 | } 57 | 58 | 59 | /******************************* 60 | States 61 | *******************************/ 62 | 63 | 64 | /* Hover */ 65 | .ui.nag:hover { 66 | background: #555555; 67 | opacity: 1; 68 | } 69 | .ui.nag .close:hover { 70 | opacity: 1; 71 | } 72 | 73 | 74 | /******************************* 75 | Variations 76 | *******************************/ 77 | 78 | 79 | /*-------------- 80 | Static 81 | ---------------*/ 82 | 83 | .ui.overlay.nag { 84 | position: absolute; 85 | display: block; 86 | } 87 | 88 | /*-------------- 89 | Fixed 90 | ---------------*/ 91 | 92 | .ui.fixed.nag { 93 | position: fixed; 94 | } 95 | 96 | /*-------------- 97 | Bottom 98 | ---------------*/ 99 | 100 | .ui.bottom.nags, 101 | .ui.bottom.nag { 102 | border-radius: 0.28571429rem 0.28571429rem 0em 0em; 103 | top: auto; 104 | bottom: 0em; 105 | } 106 | 107 | /*-------------- 108 | White 109 | ---------------*/ 110 | 111 | .ui.inverted.nags .nag, 112 | .ui.inverted.nag { 113 | background-color: #F3F4F5; 114 | color: rgba(0, 0, 0, 0.85); 115 | } 116 | .ui.inverted.nags .nag .close, 117 | .ui.inverted.nags .nag .title, 118 | .ui.inverted.nag .close, 119 | .ui.inverted.nag .title { 120 | color: rgba(0, 0, 0, 0.4); 121 | } 122 | 123 | 124 | /******************************* 125 | Groups 126 | *******************************/ 127 | 128 | .ui.nags .nag { 129 | border-radius: 0em !important; 130 | } 131 | .ui.nags .nag:last-child { 132 | border-radius: 0em 0em 0.28571429rem 0.28571429rem; 133 | } 134 | .ui.bottom.nags .nag:last-child { 135 | border-radius: 0.28571429rem 0.28571429rem 0em 0em; 136 | } 137 | 138 | 139 | /******************************* 140 | Theme Overrides 141 | *******************************/ 142 | 143 | 144 | 145 | /******************************* 146 | User Overrides 147 | *******************************/ 148 | 149 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/nag.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Nag 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.nag{display:none;opacity:.95;position:relative;top:0;left:0;z-index:999;min-height:0;width:100%;margin:0;padding:.75em 1em;background:#555;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,.2);box-shadow:0 1px 2px 0 rgba(0,0,0,.2);font-size:1rem;text-align:center;color:rgba(0,0,0,.87);border-radius:0 0 .28571429rem .28571429rem;-webkit-transition:.2s background ease;transition:.2s background ease}a.ui.nag{cursor:pointer}.ui.nag>.title{display:inline-block;margin:0 .5em;color:#fff}.ui.nag>.close.icon{cursor:pointer;opacity:.4;position:absolute;top:50%;right:1em;font-size:1em;margin:-.5em 0 0;color:#fff;-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.ui.nag:hover{background:#555;opacity:1}.ui.nag .close:hover{opacity:1}.ui.overlay.nag{position:absolute;display:block}.ui.fixed.nag{position:fixed}.ui.bottom.nag,.ui.bottom.nags{border-radius:.28571429rem .28571429rem 0 0;top:auto;bottom:0}.ui.inverted.nag,.ui.inverted.nags .nag{background-color:#f3f4f5;color:rgba(0,0,0,.85)}.ui.inverted.nag .close,.ui.inverted.nag .title,.ui.inverted.nags .nag .close,.ui.inverted.nags .nag .title{color:rgba(0,0,0,.4)}.ui.nags .nag{border-radius:0!important}.ui.nags .nag:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.bottom.nags .nag:last-child{border-radius:.28571429rem .28571429rem 0 0} -------------------------------------------------------------------------------- /docs/assets/semantic/components/nag.min.js: -------------------------------------------------------------------------------- 1 | !function(y,k,e,S){"use strict";k=void 0!==k&&k.Math==Math?k:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),y.fn.nag=function(u){var d,e=y(this),m=e.selector||"",f=(new Date).getTime(),p=[],h=u,b="string"==typeof h,v=[].slice.call(arguments,1);return e.each(function(){var r,n=y.isPlainObject(u)?y.extend(!0,{},y.fn.nag.settings,u):y.extend({},y.fn.nag.settings),e=(n.className,n.selector),l=n.error,o=n.namespace,t="."+o,i=o+"-module",s=y(this),a=(s.find(e.close),n.context?y(n.context):y("body")),c=this,g=s.data(i);k.requestAnimationFrame||k.mozRequestAnimationFrame||k.webkitRequestAnimationFrame||k.msRequestAnimationFrame;r={initialize:function(){r.verbose("Initializing element"),s.on("click"+t,e.close,r.dismiss).data(i,r),n.detachable&&s.parent()[0]!==a[0]&&s.detach().prependTo(a),0.progress{white-space:nowrap;position:absolute;width:auto;font-size:.92857143em;top:50%;right:.5em;left:auto;bottom:auto;color:rgba(255,255,255,.7);text-shadow:none;margin-top:-.5em;font-weight:700;text-align:left}.ui.progress>.label{position:absolute;width:100%;font-size:1em;top:100%;right:auto;left:0;bottom:auto;color:rgba(0,0,0,.87);font-weight:700;text-shadow:none;margin-top:.2em;text-align:center;-webkit-transition:color .4s ease;transition:color .4s ease}.ui.indicating.progress[data-percent^="1"] .bar,.ui.indicating.progress[data-percent^="2"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent^="3"] .bar{background-color:#efbc72}.ui.indicating.progress[data-percent^="4"] .bar,.ui.indicating.progress[data-percent^="5"] .bar{background-color:#e6bb48}.ui.indicating.progress[data-percent^="6"] .bar{background-color:#ddc928}.ui.indicating.progress[data-percent^="7"] .bar,.ui.indicating.progress[data-percent^="8"] .bar{background-color:#b4d95c}.ui.indicating.progress[data-percent^="100"] .bar,.ui.indicating.progress[data-percent^="9"] .bar{background-color:#66da81}.ui.indicating.progress[data-percent^="1"] .label,.ui.indicating.progress[data-percent^="2"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent^="3"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent^="4"] .label,.ui.indicating.progress[data-percent^="5"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent^="6"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent^="7"] .label,.ui.indicating.progress[data-percent^="8"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent^="100"] .label,.ui.indicating.progress[data-percent^="9"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress[data-percent="1"] .bar,.ui.indicating.progress[data-percent="2"] .bar,.ui.indicating.progress[data-percent="3"] .bar,.ui.indicating.progress[data-percent="4"] .bar,.ui.indicating.progress[data-percent="5"] .bar,.ui.indicating.progress[data-percent="6"] .bar,.ui.indicating.progress[data-percent="7"] .bar,.ui.indicating.progress[data-percent="8"] .bar,.ui.indicating.progress[data-percent="9"] .bar{background-color:#d95c5c}.ui.indicating.progress[data-percent="1"] .label,.ui.indicating.progress[data-percent="2"] .label,.ui.indicating.progress[data-percent="3"] .label,.ui.indicating.progress[data-percent="4"] .label,.ui.indicating.progress[data-percent="5"] .label,.ui.indicating.progress[data-percent="6"] .label,.ui.indicating.progress[data-percent="7"] .label,.ui.indicating.progress[data-percent="8"] .label,.ui.indicating.progress[data-percent="9"] .label{color:rgba(0,0,0,.87)}.ui.indicating.progress.success .label{color:#1a531b}.ui.progress.success .bar{background-color:#21ba45!important}.ui.progress.success .bar,.ui.progress.success .bar::after{-webkit-animation:none!important;animation:none!important}.ui.progress.success>.label{color:#1a531b}.ui.progress.warning .bar{background-color:#f2c037!important}.ui.progress.warning .bar,.ui.progress.warning .bar::after{-webkit-animation:none!important;animation:none!important}.ui.progress.warning>.label{color:#794b02}.ui.progress.error .bar{background-color:#db2828!important}.ui.progress.error .bar,.ui.progress.error .bar::after{-webkit-animation:none!important;animation:none!important}.ui.progress.error>.label{color:#912d2b}.ui.active.progress .bar{position:relative;min-width:2em}.ui.active.progress .bar::after{content:'';opacity:0;position:absolute;top:0;left:0;right:0;bottom:0;background:#fff;border-radius:.28571429rem;-webkit-animation:progress-active 2s ease infinite;animation:progress-active 2s ease infinite}@-webkit-keyframes progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}@keyframes progress-active{0%{opacity:.3;width:0}100%{opacity:0;width:100%}}.ui.disabled.progress{opacity:.35}.ui.disabled.progress .bar,.ui.disabled.progress .bar::after{-webkit-animation:none!important;animation:none!important}.ui.inverted.progress{background:rgba(255,255,255,.08);border:none}.ui.inverted.progress .bar{background:#888}.ui.inverted.progress .bar>.progress{color:#f9fafb}.ui.inverted.progress>.label{color:#fff}.ui.inverted.progress.success>.label{color:#21ba45}.ui.inverted.progress.warning>.label{color:#f2c037}.ui.inverted.progress.error>.label{color:#db2828}.ui.progress.attached{background:0 0;position:relative;border:none;margin:0}.ui.progress.attached,.ui.progress.attached .bar{display:block;height:.2rem;padding:0;overflow:hidden;border-radius:0 0 .28571429rem .28571429rem}.ui.progress.attached .bar{border-radius:0}.ui.progress.top.attached,.ui.progress.top.attached .bar{top:0;border-radius:.28571429rem .28571429rem 0 0}.ui.progress.top.attached .bar{border-radius:0}.ui.card>.ui.attached.progress,.ui.segment>.ui.attached.progress{position:absolute;top:auto;left:0;bottom:100%;width:100%}.ui.card>.ui.bottom.attached.progress,.ui.segment>.ui.bottom.attached.progress{top:100%;bottom:auto}.ui.red.progress .bar{background-color:#db2828}.ui.red.inverted.progress .bar{background-color:#ff695e}.ui.orange.progress .bar{background-color:#f2711c}.ui.orange.inverted.progress .bar{background-color:#ff851b}.ui.yellow.progress .bar{background-color:#fbbd08}.ui.yellow.inverted.progress .bar{background-color:#ffe21f}.ui.olive.progress .bar{background-color:#b5cc18}.ui.olive.inverted.progress .bar{background-color:#d9e778}.ui.green.progress .bar{background-color:#21ba45}.ui.green.inverted.progress .bar{background-color:#2ecc40}.ui.teal.progress .bar{background-color:#00b5ad}.ui.teal.inverted.progress .bar{background-color:#6dffff}.ui.blue.progress .bar{background-color:#2185d0}.ui.blue.inverted.progress .bar{background-color:#54c8ff}.ui.violet.progress .bar{background-color:#6435c9}.ui.violet.inverted.progress .bar{background-color:#a291fb}.ui.purple.progress .bar{background-color:#a333c8}.ui.purple.inverted.progress .bar{background-color:#dc73ff}.ui.pink.progress .bar{background-color:#e03997}.ui.pink.inverted.progress .bar{background-color:#ff8edf}.ui.brown.progress .bar{background-color:#a5673f}.ui.brown.inverted.progress .bar{background-color:#d67c1c}.ui.grey.progress .bar{background-color:#767676}.ui.grey.inverted.progress .bar{background-color:#dcddde}.ui.black.progress .bar{background-color:#1b1c1d}.ui.black.inverted.progress .bar{background-color:#545454}.ui.tiny.progress{font-size:.85714286rem}.ui.tiny.progress .bar{height:.5em}.ui.small.progress{font-size:.92857143rem}.ui.small.progress .bar{height:1em}.ui.progress{font-size:1rem}.ui.progress .bar{height:1.75em}.ui.large.progress{font-size:1.14285714rem}.ui.large.progress .bar{height:2.5em}.ui.big.progress{font-size:1.28571429rem}.ui.big.progress .bar{height:3.5em} -------------------------------------------------------------------------------- /docs/assets/semantic/components/rail.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Rail 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Rails 14 | *******************************/ 15 | 16 | .ui.rail { 17 | position: absolute; 18 | top: 0%; 19 | width: 300px; 20 | height: 100%; 21 | } 22 | .ui.left.rail { 23 | left: auto; 24 | right: 100%; 25 | padding: 0em 2rem 0em 0em; 26 | margin: 0em 2rem 0em 0em; 27 | } 28 | .ui.right.rail { 29 | left: 100%; 30 | right: auto; 31 | padding: 0em 0em 0em 2rem; 32 | margin: 0em 0em 0em 2rem; 33 | } 34 | 35 | 36 | /******************************* 37 | Variations 38 | *******************************/ 39 | 40 | 41 | /*-------------- 42 | Internal 43 | ---------------*/ 44 | 45 | .ui.left.internal.rail { 46 | left: 0%; 47 | right: auto; 48 | padding: 0em 0em 0em 2rem; 49 | margin: 0em 0em 0em 2rem; 50 | } 51 | .ui.right.internal.rail { 52 | left: auto; 53 | right: 0%; 54 | padding: 0em 2rem 0em 0em; 55 | margin: 0em 2rem 0em 0em; 56 | } 57 | 58 | /*-------------- 59 | Dividing 60 | ---------------*/ 61 | 62 | .ui.dividing.rail { 63 | width: 302.5px; 64 | } 65 | .ui.left.dividing.rail { 66 | padding: 0em 2.5rem 0em 0em; 67 | margin: 0em 2.5rem 0em 0em; 68 | border-right: 1px solid #cccccc; 69 | } 70 | .ui.right.dividing.rail { 71 | border-left: 1px solid #cccccc; 72 | padding: 0em 0em 0em 2.5rem; 73 | margin: 0em 0em 0em 2.5rem; 74 | } 75 | 76 | /*-------------- 77 | Distance 78 | ---------------*/ 79 | 80 | .ui.close.rail { 81 | width: calc( 300px + 1em ); 82 | } 83 | .ui.close.left.rail { 84 | padding: 0em 1em 0em 0em; 85 | margin: 0em 1em 0em 0em; 86 | } 87 | .ui.close.right.rail { 88 | padding: 0em 0em 0em 1em; 89 | margin: 0em 0em 0em 1em; 90 | } 91 | .ui.very.close.rail { 92 | width: calc( 300px + 0.5em ); 93 | } 94 | .ui.very.close.left.rail { 95 | padding: 0em 0.5em 0em 0em; 96 | margin: 0em 0.5em 0em 0em; 97 | } 98 | .ui.very.close.right.rail { 99 | padding: 0em 0em 0em 0.5em; 100 | margin: 0em 0em 0em 0.5em; 101 | } 102 | 103 | /*-------------- 104 | Attached 105 | ---------------*/ 106 | 107 | .ui.attached.left.rail, 108 | .ui.attached.right.rail { 109 | padding: 0em; 110 | margin: 0em; 111 | } 112 | 113 | /*-------------- 114 | Sizing 115 | ---------------*/ 116 | 117 | .ui.mini.rail { 118 | font-size: 0.78571429rem; 119 | } 120 | .ui.tiny.rail { 121 | font-size: 0.85714286rem; 122 | } 123 | .ui.small.rail { 124 | font-size: 0.92857143rem; 125 | } 126 | .ui.rail { 127 | font-size: 1rem; 128 | } 129 | .ui.large.rail { 130 | font-size: 1.14285714rem; 131 | } 132 | .ui.big.rail { 133 | font-size: 1.28571429rem; 134 | } 135 | .ui.huge.rail { 136 | font-size: 1.42857143rem; 137 | } 138 | .ui.massive.rail { 139 | font-size: 1.71428571rem; 140 | } 141 | 142 | 143 | /******************************* 144 | Theme Overrides 145 | *******************************/ 146 | 147 | 148 | 149 | /******************************* 150 | Site Overrides 151 | *******************************/ 152 | 153 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/rail.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Rail 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.rail{position:absolute;top:0;width:300px;height:100%}.ui.left.rail{left:auto;right:100%;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.right.rail{left:100%;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.left.internal.rail{left:0;right:auto;padding:0 0 0 2rem;margin:0 0 0 2rem}.ui.right.internal.rail{left:auto;right:0;padding:0 2rem 0 0;margin:0 2rem 0 0}.ui.dividing.rail{width:302.5px}.ui.left.dividing.rail{padding:0 2.5rem 0 0;margin:0 2.5rem 0 0;border-right:1px solid #ccc}.ui.right.dividing.rail{border-left:1px solid #ccc;padding:0 0 0 2.5rem;margin:0 0 0 2.5rem}.ui.close.rail{width:calc(300px + 1em)}.ui.close.left.rail{padding:0 1em 0 0;margin:0 1em 0 0}.ui.close.right.rail{padding:0 0 0 1em;margin:0 0 0 1em}.ui.very.close.rail{width:calc(300px + .5em)}.ui.very.close.left.rail{padding:0 .5em 0 0;margin:0 .5em 0 0}.ui.very.close.right.rail{padding:0 0 0 .5em;margin:0 0 0 .5em}.ui.attached.left.rail,.ui.attached.right.rail{padding:0;margin:0}.ui.mini.rail{font-size:.78571429rem}.ui.tiny.rail{font-size:.85714286rem}.ui.small.rail{font-size:.92857143rem}.ui.rail{font-size:1rem}.ui.large.rail{font-size:1.14285714rem}.ui.big.rail{font-size:1.28571429rem}.ui.huge.rail{font-size:1.42857143rem}.ui.massive.rail{font-size:1.71428571rem} -------------------------------------------------------------------------------- /docs/assets/semantic/components/rating.min.js: -------------------------------------------------------------------------------- 1 | !function(C,e,n,T){"use strict";e=void 0!==e&&e.Math==Math?e:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),C.fn.rating=function(m){var f,v=C(this),p=v.selector||"",b=(new Date).getTime(),h=[],y=m,x="string"==typeof y,R=[].slice.call(arguments,1);return v.each(function(){var e,i,a=C.isPlainObject(m)?C.extend(!0,{},C.fn.rating.settings,m):C.extend({},C.fn.rating.settings),n=a.namespace,o=a.className,t=a.metadata,r=a.selector,s=(a.error,"."+n),l="module-"+n,c=this,u=C(this).data(l),d=C(this),g=d.find(r.icon);i={initialize:function(){i.verbose("Initializing rating module",a),0===g.length&&i.setup.layout(),a.interactive?i.enable():i.disable(),i.set.initialLoad(),i.set.rating(i.get.initialRating()),i.remove.initialLoad(),i.instantiate()},instantiate:function(){i.verbose("Instantiating module",a),u=i,d.data(l,i)},destroy:function(){i.verbose("Destroying previous instance",u),i.remove.events(),d.removeData(l)},refresh:function(){g=d.find(r.icon)},setup:{layout:function(){var e=i.get.maxRating(),n=C.fn.rating.settings.templates.icon(e);i.debug("Generating icon html dynamically"),d.html(n),i.refresh()}},event:{mouseenter:function(){var e=C(this);e.nextAll().removeClass(o.selected),d.addClass(o.selected),e.addClass(o.selected).prevAll().addClass(o.selected)},mouseleave:function(){d.removeClass(o.selected),g.removeClass(o.selected)},click:function(){var e=C(this),n=i.get.rating(),t=g.index(e)+1;("auto"==a.clearable?1===g.length:a.clearable)&&n==t?i.clearRating():i.set.rating(t)}},clearRating:function(){i.debug("Clearing current rating"),i.set.rating(0)},bind:{events:function(){i.verbose("Binding events"),d.on("mouseenter"+s,r.icon,i.event.mouseenter).on("mouseleave"+s,r.icon,i.event.mouseleave).on("click"+s,r.icon,i.event.click)}},remove:{events:function(){i.verbose("Removing events"),d.off(s)},initialLoad:function(){e=!1}},enable:function(){i.debug("Setting rating to interactive mode"),i.bind.events(),d.removeClass(o.disabled)},disable:function(){i.debug("Setting rating to read-only mode"),i.remove.events(),d.addClass(o.disabled)},is:{initialLoad:function(){return e}},get:{initialRating:function(){return d.data(t.rating)!==T?(d.removeData(t.rating),d.data(t.rating)):a.initialRating},maxRating:function(){return d.data(t.maxRating)!==T?(d.removeData(t.maxRating),d.data(t.maxRating)):a.maxRating},rating:function(){var e=g.filter("."+o.active).length;return i.verbose("Current rating retrieved",e),e}},set:{rating:function(e){var n=0<=e-1?e-1:0,t=g.eq(n);d.removeClass(o.selected),g.removeClass(o.selected).removeClass(o.active),0',n++;return t}}}}(jQuery,window,document); -------------------------------------------------------------------------------- /docs/assets/semantic/components/reset.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Reset 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}html{-webkit-box-sizing:border-box;box-sizing:border-box}input[type=email],input[type=password],input[type=search],input[type=text]{-webkit-appearance:none;-moz-appearance:none}/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none} -------------------------------------------------------------------------------- /docs/assets/semantic/components/reveal.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Reveal 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.reveal{display:inherit;position:relative!important;font-size:0!important}.ui.reveal>.visible.content{position:absolute!important;top:0!important;left:0!important;z-index:3!important;-webkit-transition:all .5s ease .1s;transition:all .5s ease .1s}.ui.reveal>.hidden.content{position:relative!important;z-index:2!important}.ui.active.reveal .visible.content,.ui.reveal:hover .visible.content{z-index:4!important}.ui.slide.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.slide.reveal>.content{display:block;width:100%;white-space:normal;float:left;margin:0;-webkit-transition:-webkit-transform .5s ease .1s;transition:-webkit-transform .5s ease .1s;transition:transform .5s ease .1s;transition:transform .5s ease .1s,-webkit-transform .5s ease .1s}.ui.slide.reveal>.visible.content{position:relative!important}.ui.slide.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important;-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.slide.active.reveal>.visible.content,.ui.slide.reveal:hover>.visible.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.slide.active.reveal>.hidden.content,.ui.slide.reveal:hover>.hidden.content{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}.ui.slide.right.reveal>.visible.content{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}.ui.slide.right.reveal>.hidden.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.slide.right.active.reveal>.visible.content,.ui.slide.right.reveal:hover>.visible.content{-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.slide.right.active.reveal>.hidden.content,.ui.slide.right.reveal:hover>.hidden.content{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}.ui.slide.up.reveal>.hidden.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.slide.up.active.reveal>.visible.content,.ui.slide.up.reveal:hover>.visible.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.slide.up.active.reveal>.hidden.content,.ui.slide.up.reveal:hover>.hidden.content{-webkit-transform:translateY(0)!important;transform:translateY(0)!important}.ui.slide.down.reveal>.hidden.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.slide.down.active.reveal>.visible.content,.ui.slide.down.reveal:hover>.visible.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.slide.down.active.reveal>.hidden.content,.ui.slide.down.reveal:hover>.hidden.content{-webkit-transform:translateY(0)!important;transform:translateY(0)!important}.ui.fade.reveal>.visible.content{opacity:1}.ui.fade.active.reveal>.visible.content,.ui.fade.reveal:hover>.visible.content{opacity:0}.ui.move.reveal{position:relative!important;overflow:hidden!important;white-space:nowrap}.ui.move.reveal>.content{display:block;float:left;white-space:normal;margin:0;-webkit-transition:-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s;transition:transform .5s cubic-bezier(.175,.885,.32,1) .1s,-webkit-transform .5s cubic-bezier(.175,.885,.32,1) .1s}.ui.move.reveal>.visible.content{position:relative!important}.ui.move.reveal>.hidden.content{position:absolute!important;left:0!important;width:100%!important}.ui.move.active.reveal>.visible.content,.ui.move.reveal:hover>.visible.content{-webkit-transform:translateX(-100%)!important;transform:translateX(-100%)!important}.ui.move.right.active.reveal>.visible.content,.ui.move.right.reveal:hover>.visible.content{-webkit-transform:translateX(100%)!important;transform:translateX(100%)!important}.ui.move.up.active.reveal>.visible.content,.ui.move.up.reveal:hover>.visible.content{-webkit-transform:translateY(-100%)!important;transform:translateY(-100%)!important}.ui.move.down.active.reveal>.visible.content,.ui.move.down.reveal:hover>.visible.content{-webkit-transform:translateY(100%)!important;transform:translateY(100%)!important}.ui.rotate.reveal>.visible.content{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transform:rotate(0);transform:rotate(0)}.ui.rotate.reveal>.visible.content,.ui.rotate.right.reveal>.visible.content{-webkit-transform-origin:bottom right;transform-origin:bottom right}.ui.rotate.active.reveal>.visible.content,.ui.rotate.reveal:hover>.visible.content,.ui.rotate.right.active.reveal>.visible.content,.ui.rotate.right.reveal:hover>.visible.content{-webkit-transform:rotate(110deg);transform:rotate(110deg)}.ui.rotate.left.reveal>.visible.content{-webkit-transform-origin:bottom left;transform-origin:bottom left}.ui.rotate.left.active.reveal>.visible.content,.ui.rotate.left.reveal:hover>.visible.content{-webkit-transform:rotate(-110deg);transform:rotate(-110deg)}.ui.disabled.reveal:hover>.visible.visible.content{position:static!important;display:block!important;opacity:1!important;top:0!important;left:0!important;right:auto!important;bottom:auto!important;-webkit-transform:none!important;transform:none!important}.ui.disabled.reveal:hover>.hidden.hidden.content{display:none!important}.ui.reveal>.ui.ribbon.label{z-index:5}.ui.visible.reveal{overflow:visible}.ui.instant.reveal>.content{-webkit-transition-delay:0s!important;transition-delay:0s!important}.ui.reveal>.content{font-size:1rem!important} -------------------------------------------------------------------------------- /docs/assets/semantic/components/search.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Search 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.search{position:relative}.ui.search>.prompt{margin:0;outline:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(255,255,255,0);text-shadow:none;font-style:normal;font-weight:400;line-height:1.21428571em;padding:.67857143em 1em;font-size:1em;background:#fff;border:1px solid #ccc;color:rgba(0,0,0,.87);-webkit-box-shadow:0 0 0 0 transparent inset;box-shadow:0 0 0 0 transparent inset;-webkit-transition:background-color .1s ease,color .1s ease,border-color .1s ease,-webkit-box-shadow .1s ease;transition:background-color .1s ease,color .1s ease,border-color .1s ease,-webkit-box-shadow .1s ease;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease;transition:background-color .1s ease,color .1s ease,box-shadow .1s ease,border-color .1s ease,-webkit-box-shadow .1s ease}.ui.search .prompt{border-radius:500rem}.ui.search .prompt~.search.icon{cursor:pointer}.ui.search>.results{display:none;position:absolute;top:100%;left:0;-webkit-transform-origin:center top;transform-origin:center top;white-space:normal;background:#fff;margin-top:.5em;width:18em;border-radius:.28571429rem;-webkit-box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);box-shadow:0 2px 4px 0 rgba(34,36,38,.12),0 2px 10px 0 rgba(34,36,38,.15);border:1px solid #d4d4d5;z-index:998}.ui.search>.results>:first-child{border-radius:.28571429rem .28571429rem 0 0}.ui.search>.results>:last-child{border-radius:0 0 .28571429rem .28571429rem}.ui.search>.results .result{cursor:pointer;display:block;overflow:hidden;font-size:1em;padding:.85714286em 1.14285714em;color:rgba(0,0,0,.87);line-height:1.33;border-bottom:1px solid #ccc}.ui.search>.results .result:last-child{border-bottom:none!important}.ui.search>.results .result .image{float:right;overflow:hidden;background:0 0;width:5em;height:3em;border-radius:.25em}.ui.search>.results .result .image img{display:block;width:auto;height:100%}.ui.search>.results .result .image+.content{margin:0 6em 0 0}.ui.search>.results .result .title{margin:-.14285714em 0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-weight:700;font-size:1em;color:rgba(0,0,0,.85)}.ui.search>.results .result .description{margin-top:0;font-size:.92857143em;color:rgba(0,0,0,.4)}.ui.search>.results .result .price{float:right;color:#21ba45}.ui.search>.results>.message{padding:1em 1em}.ui.search>.results>.message .header{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1rem;font-weight:700;color:rgba(0,0,0,.87)}.ui.search>.results>.message .description{margin-top:.25rem;font-size:1em;color:rgba(0,0,0,.87)}.ui.search>.results>.action{display:block;border-top:none;background:#f3f4f5;padding:.92857143em 1em;color:rgba(0,0,0,.87);font-weight:700;text-align:center}.ui.search>.prompt:focus{border-color:#ccc;background:#fff;color:rgba(0,0,0,.95)}.ui.loading.search .input>i.icon:before{position:absolute;content:'';top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;border-radius:500rem;border:.2em solid rgba(0,0,0,.1)}.ui.loading.search .input>i.icon:after{position:absolute;content:'';top:50%;left:50%;margin:-.64285714em 0 0 -.64285714em;width:1.28571429em;height:1.28571429em;-webkit-animation:button-spin .6s linear;animation:button-spin .6s linear;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;border-radius:500rem;border-color:#767676 transparent transparent;border-style:solid;border-width:.2em;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}.ui.category.search>.results .category .result:hover,.ui.search>.results .result:hover{background:#f9fafb}.ui.search .action:hover{background:#e0e0e0}.ui.category.search>.results .category.active{background:#f3f4f5}.ui.category.search>.results .category.active>.name{color:rgba(0,0,0,.87)}.ui.category.search>.results .category .result.active,.ui.search>.results .result.active{position:relative;border-left-color:#ccc;background:#f3f4f5;-webkit-box-shadow:none;box-shadow:none}.ui.search>.results .result.active .title{color:rgba(0,0,0,.85)}.ui.search>.results .result.active .description{color:rgba(0,0,0,.85)}.ui.disabled.search{cursor:default;pointer-events:none;opacity:.45}.ui.search.selection .prompt{border-radius:.28571429rem}.ui.search.selection>.icon.input>.remove.icon{pointer-events:none;position:absolute;left:auto;opacity:0;color:'';top:0;right:0;-webkit-transition:color .1s ease,opacity .1s ease;transition:color .1s ease,opacity .1s ease}.ui.search.selection>.icon.input>.active.remove.icon{cursor:pointer;opacity:.8;pointer-events:auto}.ui.search.selection>.icon.input:not([class*="left icon"])>.icon~.remove.icon{right:1.85714em}.ui.search.selection>.icon.input>.remove.icon:hover{opacity:1;color:#db2828}.ui.category.search .results{width:28em}.ui.category.search .results.animating,.ui.category.search .results.visible{display:table}.ui.category.search>.results .category{display:table-row;background:#f3f4f5;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:background .1s ease,border-color .1s ease;transition:background .1s ease,border-color .1s ease}.ui.category.search>.results .category:last-child{border-bottom:none}.ui.category.search>.results .category:first-child .name+.result{border-radius:0 .28571429rem 0 0}.ui.category.search>.results .category:last-child .result:last-child{border-radius:0 0 .28571429rem 0}.ui.category.search>.results .category>.name{display:table-cell;text-overflow:ellipsis;width:100px;white-space:nowrap;background:0 0;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:1em;padding:.4em 1em;font-weight:700;color:rgba(0,0,0,.4);border-bottom:1px solid #ccc}.ui.category.search>.results .category .results{display:table-cell;background:#fff;border-left:1px solid #ccc;border-bottom:1px solid #ccc}.ui.category.search>.results .category .result{border-bottom:1px solid #ccc;-webkit-transition:background .1s ease,border-color .1s ease;transition:background .1s ease,border-color .1s ease;padding:.85714286em 1.14285714em}.ui[class*="left aligned"].search>.results{right:auto;left:0}.ui[class*="right aligned"].search>.results{right:0;left:auto}.ui.fluid.search .results{width:100%}.ui.mini.search{font-size:.78571429em}.ui.small.search{font-size:.92857143em}.ui.search{font-size:1em}.ui.large.search{font-size:1.14285714em}.ui.big.search{font-size:1.28571429em}.ui.huge.search{font-size:1.42857143em}.ui.massive.search{font-size:1.71428571em}@media only screen and (max-width:767px){.ui.search .results{max-width:calc(100vw - 2rem)}} -------------------------------------------------------------------------------- /docs/assets/semantic/components/shape.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Shape 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Shape 14 | *******************************/ 15 | 16 | .ui.shape { 17 | position: relative; 18 | vertical-align: top; 19 | display: inline-block; 20 | -webkit-perspective: 2000px; 21 | perspective: 2000px; 22 | -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 23 | transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 24 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out; 25 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 26 | } 27 | .ui.shape .sides { 28 | -webkit-transform-style: preserve-3d; 29 | transform-style: preserve-3d; 30 | } 31 | .ui.shape .side { 32 | opacity: 1; 33 | width: 100%; 34 | margin: 0em !important; 35 | -webkit-backface-visibility: hidden; 36 | backface-visibility: hidden; 37 | } 38 | .ui.shape .side { 39 | display: none; 40 | } 41 | .ui.shape .side * { 42 | -webkit-backface-visibility: visible !important; 43 | backface-visibility: visible !important; 44 | } 45 | 46 | 47 | /******************************* 48 | Types 49 | *******************************/ 50 | 51 | .ui.cube.shape .side { 52 | min-width: 15em; 53 | height: 15em; 54 | padding: 2em; 55 | background-color: #E6E6E6; 56 | color: rgba(0, 0, 0, 0.87); 57 | -webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3); 58 | box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.3); 59 | } 60 | .ui.cube.shape .side > .content { 61 | width: 100%; 62 | height: 100%; 63 | display: table; 64 | text-align: center; 65 | -webkit-user-select: text; 66 | -moz-user-select: text; 67 | -ms-user-select: text; 68 | user-select: text; 69 | } 70 | .ui.cube.shape .side > .content > div { 71 | display: table-cell; 72 | vertical-align: middle; 73 | font-size: 2em; 74 | } 75 | 76 | 77 | /******************************* 78 | Variations 79 | *******************************/ 80 | 81 | .ui.text.shape.animating .sides { 82 | position: static; 83 | } 84 | .ui.text.shape .side { 85 | white-space: nowrap; 86 | } 87 | .ui.text.shape .side > * { 88 | white-space: normal; 89 | } 90 | 91 | 92 | /******************************* 93 | States 94 | *******************************/ 95 | 96 | 97 | /*-------------- 98 | Loading 99 | ---------------*/ 100 | 101 | .ui.loading.shape { 102 | position: absolute; 103 | top: -9999px; 104 | left: -9999px; 105 | } 106 | 107 | /*-------------- 108 | Animating 109 | ---------------*/ 110 | 111 | .ui.shape .animating.side { 112 | position: absolute; 113 | top: 0px; 114 | left: 0px; 115 | display: block; 116 | z-index: 100; 117 | } 118 | .ui.shape .hidden.side { 119 | opacity: 0.6; 120 | } 121 | 122 | /*-------------- 123 | CSS 124 | ---------------*/ 125 | 126 | .ui.shape.animating .sides { 127 | position: absolute; 128 | } 129 | .ui.shape.animating .sides { 130 | -webkit-transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 131 | transition: left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 132 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out; 133 | transition: transform 0.6s ease-in-out, left 0.6s ease-in-out, width 0.6s ease-in-out, height 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out; 134 | } 135 | .ui.shape.animating .side { 136 | -webkit-transition: opacity 0.6s ease-in-out; 137 | transition: opacity 0.6s ease-in-out; 138 | } 139 | 140 | /*-------------- 141 | Active 142 | ---------------*/ 143 | 144 | .ui.shape .active.side { 145 | display: block; 146 | } 147 | 148 | 149 | /******************************* 150 | Theme Overrides 151 | *******************************/ 152 | 153 | 154 | 155 | /******************************* 156 | User Overrides 157 | *******************************/ 158 | 159 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/shape.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Shape 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */.ui.shape{position:relative;vertical-align:top;display:inline-block;-webkit-perspective:2000px;perspective:2000px;-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape .sides{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.ui.shape .side{opacity:1;width:100%;margin:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ui.shape .side{display:none}.ui.shape .side *{-webkit-backface-visibility:visible!important;backface-visibility:visible!important}.ui.cube.shape .side{min-width:15em;height:15em;padding:2em;background-color:#e6e6e6;color:rgba(0,0,0,.87);-webkit-box-shadow:0 0 2px rgba(0,0,0,.3);box-shadow:0 0 2px rgba(0,0,0,.3)}.ui.cube.shape .side>.content{width:100%;height:100%;display:table;text-align:center;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ui.cube.shape .side>.content>div{display:table-cell;vertical-align:middle;font-size:2em}.ui.text.shape.animating .sides{position:static}.ui.text.shape .side{white-space:nowrap}.ui.text.shape .side>*{white-space:normal}.ui.loading.shape{position:absolute;top:-9999px;left:-9999px}.ui.shape .animating.side{position:absolute;top:0;left:0;display:block;z-index:100}.ui.shape .hidden.side{opacity:.6}.ui.shape.animating .sides{position:absolute}.ui.shape.animating .sides{-webkit-transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out;transition:transform .6s ease-in-out,left .6s ease-in-out,width .6s ease-in-out,height .6s ease-in-out,-webkit-transform .6s ease-in-out}.ui.shape.animating .side{-webkit-transition:opacity .6s ease-in-out;transition:opacity .6s ease-in-out}.ui.shape .active.side{display:block} -------------------------------------------------------------------------------- /docs/assets/semantic/components/site.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Site 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */ 10 | 11 | 12 | /******************************* 13 | Page 14 | *******************************/ 15 | 16 | html, 17 | body { 18 | height: 100%; 19 | } 20 | html { 21 | font-size: 14px; 22 | } 23 | body { 24 | margin: 0px; 25 | padding: 0px; 26 | overflow-x: hidden; 27 | min-width: 320px; 28 | background: #FFFFFF; 29 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; 30 | font-size: 14px; 31 | line-height: 1.4285em; 32 | color: rgba(0, 0, 0, 0.87); 33 | font-smoothing: antialiased; 34 | } 35 | 36 | 37 | /******************************* 38 | Headers 39 | *******************************/ 40 | 41 | h1, 42 | h2, 43 | h3, 44 | h4, 45 | h5 { 46 | font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; 47 | line-height: 1.28571429em; 48 | margin: calc(2rem - 0.14285714em ) 0em 1rem; 49 | font-weight: bold; 50 | padding: 0em; 51 | } 52 | h1 { 53 | min-height: 1rem; 54 | font-size: 2rem; 55 | } 56 | h2 { 57 | font-size: 1.71428571rem; 58 | } 59 | h3 { 60 | font-size: 1.28571429rem; 61 | } 62 | h4 { 63 | font-size: 1.07142857rem; 64 | } 65 | h5 { 66 | font-size: 1rem; 67 | } 68 | h1:first-child, 69 | h2:first-child, 70 | h3:first-child, 71 | h4:first-child, 72 | h5:first-child { 73 | margin-top: 0em; 74 | } 75 | h1:last-child, 76 | h2:last-child, 77 | h3:last-child, 78 | h4:last-child, 79 | h5:last-child { 80 | margin-bottom: 0em; 81 | } 82 | 83 | 84 | /******************************* 85 | Text 86 | *******************************/ 87 | 88 | p { 89 | margin: 0em 0em 1em; 90 | line-height: 1.4285em; 91 | } 92 | p:first-child { 93 | margin-top: 0em; 94 | } 95 | p:last-child { 96 | margin-bottom: 0em; 97 | } 98 | 99 | /*------------------- 100 | Links 101 | --------------------*/ 102 | 103 | a { 104 | color: #4183C4; 105 | text-decoration: none; 106 | } 107 | a:hover { 108 | color: #1e70bf; 109 | text-decoration: none; 110 | } 111 | 112 | 113 | /******************************* 114 | Scrollbars 115 | *******************************/ 116 | 117 | 118 | 119 | /******************************* 120 | Highlighting 121 | *******************************/ 122 | 123 | 124 | /* Site */ 125 | ::-webkit-selection { 126 | background-color: #CCE2FF; 127 | color: rgba(0, 0, 0, 0.87); 128 | } 129 | ::-moz-selection { 130 | background-color: #CCE2FF; 131 | color: rgba(0, 0, 0, 0.87); 132 | } 133 | ::selection { 134 | background-color: #CCE2FF; 135 | color: rgba(0, 0, 0, 0.87); 136 | } 137 | 138 | /* Form */ 139 | textarea::-webkit-selection, 140 | input::-webkit-selection { 141 | background-color: rgba(100, 100, 100, 0.4); 142 | color: rgba(0, 0, 0, 0.87); 143 | } 144 | textarea::-moz-selection, 145 | input::-moz-selection { 146 | background-color: rgba(100, 100, 100, 0.4); 147 | color: rgba(0, 0, 0, 0.87); 148 | } 149 | textarea::selection, 150 | input::selection { 151 | background-color: rgba(100, 100, 100, 0.4); 152 | color: rgba(0, 0, 0, 0.87); 153 | } 154 | 155 | /* Force Simple Scrollbars */ 156 | body ::-webkit-scrollbar { 157 | -webkit-appearance: none; 158 | width: 10px; 159 | height: 10px; 160 | } 161 | body ::-webkit-scrollbar-track { 162 | background: rgba(0, 0, 0, 0.1); 163 | border-radius: 0px; 164 | } 165 | body ::-webkit-scrollbar-thumb { 166 | cursor: pointer; 167 | border-radius: 5px; 168 | background: rgba(0, 0, 0, 0.25); 169 | -webkit-transition: color 0.2s ease; 170 | transition: color 0.2s ease; 171 | } 172 | body ::-webkit-scrollbar-thumb:window-inactive { 173 | background: rgba(0, 0, 0, 0.15); 174 | } 175 | body ::-webkit-scrollbar-thumb:hover { 176 | background: rgba(128, 135, 139, 0.8); 177 | } 178 | 179 | /* Inverted UI */ 180 | body .ui.inverted::-webkit-scrollbar-track { 181 | background: rgba(255, 255, 255, 0.1); 182 | } 183 | body .ui.inverted::-webkit-scrollbar-thumb { 184 | background: rgba(255, 255, 255, 0.25); 185 | } 186 | body .ui.inverted::-webkit-scrollbar-thumb:window-inactive { 187 | background: rgba(255, 255, 255, 0.15); 188 | } 189 | body .ui.inverted::-webkit-scrollbar-thumb:hover { 190 | background: rgba(255, 255, 255, 0.35); 191 | } 192 | 193 | 194 | /******************************* 195 | Global Overrides 196 | *******************************/ 197 | 198 | 199 | 200 | /******************************* 201 | Site Overrides 202 | *******************************/ 203 | 204 | -------------------------------------------------------------------------------- /docs/assets/semantic/components/site.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * # Semantic UI 2.3.3 - Site 3 | * http://github.com/semantic-org/semantic-ui/ 4 | * 5 | * 6 | * Released under the MIT license 7 | * http://opensource.org/licenses/MIT 8 | * 9 | */body,html{height:100%}html{font-size:14px}body{margin:0;padding:0;overflow-x:hidden;min-width:320px;background:#fff;font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4285em;color:rgba(0,0,0,.87);font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:Lato,'Helvetica Neue',Arial,Helvetica,sans-serif;line-height:1.28571429em;margin:calc(2rem - .14285714em) 0 1rem;font-weight:700;padding:0}h1{min-height:1rem;font-size:2rem}h2{font-size:1.71428571rem}h3{font-size:1.28571429rem}h4{font-size:1.07142857rem}h5{font-size:1rem}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child{margin-bottom:0}p{margin:0 0 1em;line-height:1.4285em}p:first-child{margin-top:0}p:last-child{margin-bottom:0}a{color:#4183c4;text-decoration:none}a:hover{color:#1e70bf;text-decoration:none}::-webkit-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::-moz-selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}::selection{background-color:#cce2ff;color:rgba(0,0,0,.87)}input::-webkit-selection,textarea::-webkit-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::-moz-selection,textarea::-moz-selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}input::selection,textarea::selection{background-color:rgba(100,100,100,.4);color:rgba(0,0,0,.87)}body ::-webkit-scrollbar{-webkit-appearance:none;width:10px;height:10px}body ::-webkit-scrollbar-track{background:rgba(0,0,0,.1);border-radius:0}body ::-webkit-scrollbar-thumb{cursor:pointer;border-radius:5px;background:rgba(0,0,0,.25);-webkit-transition:color .2s ease;transition:color .2s ease}body ::-webkit-scrollbar-thumb:window-inactive{background:rgba(0,0,0,.15)}body ::-webkit-scrollbar-thumb:hover{background:rgba(128,135,139,.8)}body .ui.inverted::-webkit-scrollbar-track{background:rgba(255,255,255,.1)}body .ui.inverted::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}body .ui.inverted::-webkit-scrollbar-thumb:window-inactive{background:rgba(255,255,255,.15)}body .ui.inverted::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.35)} -------------------------------------------------------------------------------- /docs/assets/semantic/components/site.min.js: -------------------------------------------------------------------------------- 1 | !function(b,p,v,h){b.site=b.fn.site=function(e){var a,c,i=(new Date).getTime(),t=[],n=e,o="string"==typeof n,l=[].slice.call(arguments,1),u=b.isPlainObject(e)?b.extend(!0,{},b.site.settings,e):b.extend({},b.site.settings),s=u.namespace,m=u.error,r="module-"+s,d=b(v),g=this,f=d.data(r);return a={initialize:function(){a.instantiate()},instantiate:function(){a.verbose("Storing instance of site",a),f=a,d.data(r,a)},normalize:function(){a.fix.console(),a.fix.requestAnimationFrame()},fix:{console:function(){a.debug("Normalizing window.console"),console!==h&&console.log!==h||(a.verbose("Console not available, normalizing events"),a.disable.console()),void 0!==console.group&&void 0!==console.groupEnd&&void 0!==console.groupCollapsed||(a.verbose("Console group not available, normalizing events"),p.console.group=function(){},p.console.groupEnd=function(){},p.console.groupCollapsed=function(){}),void 0===console.markTimeline&&(a.verbose("Mark timeline not available, normalizing events"),p.console.markTimeline=function(){})},consoleClear:function(){a.debug("Disabling programmatic console clearing"),p.console.clear=function(){}},requestAnimationFrame:function(){a.debug("Normalizing requestAnimationFrame"),p.requestAnimationFrame===h&&(a.debug("RequestAnimationFrame not available, normalizing event"),p.requestAnimationFrame=p.requestAnimationFrame||p.mozRequestAnimationFrame||p.webkitRequestAnimationFrame||p.msRequestAnimationFrame||function(e){setTimeout(e,0)})}},moduleExists:function(e){return b.fn[e]!==h&&b.fn[e].settings!==h},enabled:{modules:function(e){var o=[];return e=e||u.modules,b.each(e,function(e,n){a.moduleExists(n)&&o.push(n)}),o}},disabled:{modules:function(e){var o=[];return e=e||u.modules,b.each(e,function(e,n){a.moduleExists(n)||o.push(n)}),o}},change:{setting:function(t,s,e,r){e="string"==typeof e?"all"===e?u.modules:[e]:e||u.modules,r=r===h||r,b.each(e,function(e,n){var o,i=!a.moduleExists(n)||(b.fn[n].settings.namespace||!1);a.moduleExists(n)&&(a.verbose("Changing default setting",t,s,n),b.fn[n].settings[t]=s,r&&i&&0<(o=b(":data(module-"+i+")")).length&&(a.verbose("Modifying existing settings",o),o[n]("setting",t,s)))})},settings:function(i,e,t){e="string"==typeof e?[e]:e||u.modules,t=t===h||t,b.each(e,function(e,n){var o;a.moduleExists(n)&&(a.verbose("Changing default setting",i,n),b.extend(!0,b.fn[n].settings,i),t&&s&&0<(o=b(":data(module-"+s+")")).length&&(a.verbose("Modifying existing settings",o),o[n]("setting",i)))})}},enable:{console:function(){a.console(!0)},debug:function(e,n){e=e||u.modules,a.debug("Enabling debug for modules",e),a.change.setting("debug",!0,e,n)},verbose:function(e,n){e=e||u.modules,a.debug("Enabling verbose debug for modules",e),a.change.setting("verbose",!0,e,n)}},disable:{console:function(){a.console(!1)},debug:function(e,n){e=e||u.modules,a.debug("Disabling debug for modules",e),a.change.setting("debug",!1,e,n)},verbose:function(e,n){e=e||u.modules,a.debug("Disabling verbose debug for modules",e),a.change.setting("verbose",!1,e,n)}},console:function(e){if(e){if(f.cache.console===h)return void a.error(m.console);a.debug("Restoring console function"),p.console=f.cache.console}else a.debug("Disabling console function"),f.cache.console=p.console,p.console={clear:function(){},error:function(){},group:function(){},groupCollapsed:function(){},groupEnd:function(){},info:function(){},log:function(){},markTimeline:function(){},warn:function(){}}},destroy:function(){a.verbose("Destroying previous site for",d),d.removeData(r)},cache:{},setting:function(e,n){if(b.isPlainObject(e))b.extend(!0,u,e);else{if(n===h)return u[e];u[e]=n}},internal:function(e,n){if(b.isPlainObject(e))b.extend(!0,a,e);else{if(n===h)return a[e];a[e]=n}},debug:function(){u.debug&&(u.performance?a.performance.log(arguments):(a.debug=Function.prototype.bind.call(console.info,console,u.name+":"),a.debug.apply(console,arguments)))},verbose:function(){u.verbose&&u.debug&&(u.performance?a.performance.log(arguments):(a.verbose=Function.prototype.bind.call(console.info,console,u.name+":"),a.verbose.apply(console,arguments)))},error:function(){a.error=Function.prototype.bind.call(console.error,console,u.name+":"),a.error.apply(console,arguments)},performance:{log:function(e){var n,o;u.performance&&(o=(n=(new Date).getTime())-(i||n),i=n,t.push({Element:g,Name:e[0],Arguments:[].slice.call(e,1)||"","Execution Time":o})),clearTimeout(a.performance.timer),a.performance.timer=setTimeout(a.performance.display,500)},display:function(){var e=u.name+":",o=0;i=!1,clearTimeout(a.performance.timer),b.each(t,function(e,n){o+=n["Execution Time"]}),e+=" "+o+"ms",(console.group!==h||console.table!==h)&&0 dynLit} 13 | import scala.scalajs.js.annotation.JSExportTopLevel 14 | 15 | object CircleApp extends IntellijImplicits { 16 | 17 | val radiusVar: Var[Double] = Var(3.0) 18 | val offsetMVar: Var[Double] = Var(0) 19 | val diagramWidth = 500 20 | val unit = s"\\(m\\)" 21 | val unit2 = s"\\(m^2\\)" 22 | 23 | @JSExportTopLevel("runJSCircle") 24 | def runJSCircle(): Unit = { 25 | dom.render(document.getElementById("circleDiv"), printForm) 26 | plotGraph.watch 27 | } 28 | 29 | @dom 30 | private lazy val printForm: Binding[HTMLElement] = { 31 | 32 |
33 | 34 | 35 | {Binding.Constants( 36 | printRow("Radius", 37 | "r", 38 | None, 39 | unit, 40 | printInput( 41 | "radiusIn", 42 | radiusVar, 43 | r => r, 44 | r => radiusVar.value = r 45 | ), 46 | None 47 | ), 48 | printRow("Durchmesser", 49 | "d", 50 | Some("\\(2*r\\)"), 51 | unit, 52 | printInput( 53 | "diameterIn", 54 | radiusVar, 55 | r => 2 * r, 56 | d => radiusVar.value = d / 2 57 | ), 58 | Some("\\(r = d/2\\)") 59 | ), 60 | printRow("Umfang", 61 | "U", 62 | Some("\\(2*\\pi *r\\)"), 63 | unit, 64 | printInput( 65 | "circumferenceIn", 66 | radiusVar, 67 | r => 2 * r * Math.PI, 68 | c => radiusVar.value = c / 2 / Math.PI 69 | ), 70 | Some("\\(r = \\frac{U}{2 * \\pi} \\)") 71 | ), 72 | printRow("Fläche", 73 | "A", 74 | Some("\\(\\pi*r^2\\)"), 75 | unit2, 76 | printInput( 77 | "areaIn", 78 | radiusVar, 79 | r => r * r * Math.PI, 80 | area => radiusVar.value = Math.sqrt(area / Math.PI) 81 | ), 82 | Some("\\(r = \\sqrt{A/\\pi}\\)") 83 | ), 84 | printRow("Mittelpunkt", 85 | "M", 86 | Some("\\((offsetX + r; offsetY + r)\\)"), 87 | unit, 88 | printInput( 89 | "centerIn", 90 | offsetMVar, 91 | o => o, 92 | o => offsetMVar.value = o 93 | ), 94 | None 95 | ), 96 | ).map(_.bind)} 97 | 98 |
99 |
100 | } 101 | 102 | @dom 103 | private def printRow( 104 | label: String, 105 | abbreviation: String, 106 | formula: Option[String] = None, 107 | unit: String, 108 | inputElement: Binding[HTMLElement], 109 | radiusFormula: Option[String] = None 110 | ) = { 111 | 112 | 113 | {label} 114 | 115 | {abbreviation} 116 | 117 | {formula.getOrElse("")} 118 | 119 | {inputElement.bind} 120 | 121 | {unit} 122 | 123 | {radiusFormula.getOrElse("")} 124 | 125 | 126 | } 127 | 128 | @dom 129 | private def printInput( 130 | inId: String, 131 | bindValue: Var[Double], 132 | calcValue: Double => Double, 133 | onBlur: Double => Unit 134 | ) = { 135 | val v = bindValue.bind 136 | onBlur(jQuery(s"#CircleApp_$inId").value().toString.toDouble)}/> 139 | } 140 | 141 | private lazy val plotGraph = Binding { 142 | val radius = radiusVar.bind 143 | val offsetM = offsetMVar.bind 144 | 145 | val upper = offsetM + radius 146 | val textOffset = 0.03 * radius 147 | val data: js.Array[Data] = js.Array( 148 | dynLit( 149 | x = js.Array( 150 | offsetM + radius + textOffset, 151 | offsetM - radius / 2, 152 | offsetM + textOffset, 153 | offsetM + radius / 2 154 | ), 155 | y = js.Array( 156 | offsetM + textOffset, 157 | offsetM - radius / 2, 158 | offsetM + textOffset, 159 | offsetM + textOffset 160 | ), 161 | text = js.Array("U", "A", "M", "r"), 162 | mode = "text" 163 | ).asInstanceOf[Partial[Data]] 164 | ) 165 | val layout: Partial[Layout] = 166 | dynLit( 167 | xaxis = dynLit( 168 | zeroline = true 169 | ), 170 | yaxis = dynLit( 171 | zeroline = true 172 | ), 173 | width = diagramWidth, 174 | height = diagramWidth, 175 | shapes = js.Array( 176 | dynLit( 177 | `type` = "circle", 178 | xref = "x", 179 | yref = "y", 180 | x0 = offsetM - radius, 181 | y0 = offsetM - radius, 182 | x1 = upper, 183 | y1 = upper, 184 | line = dynLit( 185 | color = "rgba(50, 171, 96, 1)" 186 | ) 187 | ), 188 | dynLit( 189 | `type` = "circle", 190 | xref = "x", 191 | yref = "y", 192 | x0 = offsetM - 0.01 * radius, 193 | y0 = offsetM - 0.01 * radius, 194 | x1 = offsetM + 0.01 * radius, 195 | y1 = offsetM + 0.01 * radius, 196 | line = dynLit( 197 | color = "rgba(171, 171, 96, 1)" 198 | ) 199 | ), 200 | dynLit( 201 | `type` = "line", 202 | x0 = offsetM, 203 | y0 = offsetM, 204 | x1 = upper, 205 | y1 = offsetM, 206 | line = dynLit( 207 | color = "rgb(128, 0, 128, 0.5)", 208 | width = 2 209 | ) 210 | ) 211 | ) 212 | ).asInstanceOf[Partial[Layout]] 213 | 214 | Graph.plot( 215 | "plotCircle", 216 | data, 217 | layout 218 | ) 219 | } 220 | 221 | } 222 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/CubeApp.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding.Var 4 | import com.thoughtworks.binding.{Binding, dom} 5 | import org.scalajs.dom.document 6 | import org.scalajs.dom.raw.HTMLElement 7 | import typings.plotlyDotJsLib.plotlyDotJsMod._ 8 | import typings.stdLib.Partial 9 | import org.scalajs.jquery.jQuery 10 | 11 | import scala.scalajs.js 12 | import scala.scalajs.js.Dynamic.{literal => dynLit} 13 | import scala.scalajs.js.annotation.JSExportTopLevel 14 | import org.scalajs.dom.raw.Event 15 | 16 | object CubeApp extends MathApp { 17 | 18 | val lVar: Var[Double] = Var(1.0) 19 | val bVar: Var[Double] = Var(1.0) 20 | val hVar: Var[Double] = Var(1.0) 21 | 22 | @JSExportTopLevel("runJSCube") 23 | def runJSCube(): Unit = { 24 | dom.render(document.getElementById("cubeDiv"), printForm) 25 | plotGraph.watch 26 | } 27 | 28 | @dom 29 | private lazy val printForm: Binding[HTMLElement] = { 30 | 31 |
32 | 33 | 34 | { 35 | Binding 36 | .Constants( 37 | printRow( 38 | "Länge", 39 | "l", 40 | None, 41 | unit, 42 | printInput( 43 | "lIn", 44 | (l, _, _) => l, 45 | l => lVar.value = l 46 | ), 47 | None 48 | ), 49 | printRow( 50 | "Breite", 51 | "b", 52 | None, 53 | unit, 54 | printInput( 55 | "bIn", 56 | (_, b, _) => b, 57 | b => bVar.value = b 58 | ), 59 | None 60 | ), 61 | printRow( 62 | "Höhe", 63 | "h", 64 | None, 65 | unit, 66 | printInput( 67 | "hIn", 68 | (_, _, h) => h, 69 | h => hVar.value = h 70 | ), 71 | None 72 | ), 73 | printRow( 74 | "Umfang", 75 | "U", 76 | Some("4*(l + b + h)"), 77 | unit, 78 | printInput( 79 | "circumferenceIn", 80 | (l, b, h) => 4 * (l + b + h), 81 | u => lVar.value = u / 4 - bVar.value - hVar.value 82 | ), 83 | Some("l = U/4 - b - h") 84 | ), 85 | printRow( 86 | "Fläche", 87 | "A", 88 | Some("2*(l*b+l*h+b*h)"), 89 | unit2, 90 | printInput( 91 | "areaIn", 92 | (l, b, h) => 2 * (l * b + l * h + b * h), 93 | area => 94 | lVar.value = (area / 2 - bVar.value * hVar.value) / (bVar.value + hVar.value) 95 | ), 96 | Some("l = \\frac{A/2 - (b*h)}{b+h}") 97 | ), 98 | printRow( 99 | "Volumen", 100 | "V", 101 | Some("l*b*h"), 102 | unit3, 103 | printInput( 104 | "volIn", 105 | (l, b, h) => l*b*h, 106 | vol => 107 | {println(s"Volume: $vol") 108 | lVar.value = vol / (bVar.value * hVar.value)} 109 | ), 110 | Some("l = \\frac{V}{b*h}") 111 | ) 112 | ) 113 | .map(_.bind) 114 | } 115 | 116 |
117 |
118 | } 119 | 120 | @dom 121 | protected def printInput( 122 | inId: String, 123 | calcValue: (Double, Double, Double) => Double, 124 | onBlur: Double => Unit 125 | ): Binding[HTMLElement] = { 126 | val l = lVar.bind 127 | val b = bVar.bind 128 | val h = hVar.bind 129 | onBlur(jQuery(s"#CubeApp_$inId").value().toString.toDouble) 133 | }/> 134 | } 135 | 136 | private lazy val plotGraph = Binding { 137 | val l = lVar.bind 138 | val b = bVar.bind 139 | val h = hVar.bind 140 | 141 | val data: js.Array[Data] = js.Array( 142 | dynLit( 143 | x = js.Array(b, 0, 0, 0, 0, 0, 0, b, b, b, b, 0), 144 | y = js.Array(0, 0, l, l, 0, 0, 0, 0, 0, 0, l, l), 145 | z = js.Array(0, 0, 0, h, h, 0, h, h, 0, h, h, h), 146 | `type` = "scatter3d", 147 | mode = "lines", 148 | name = "Quader" 149 | ).asInstanceOf[Partial[Data]], 150 | dynLit( 151 | x = js.Array(b, b), 152 | y = js.Array(l, 0), 153 | z = js.Array(0, 0), 154 | `type` = "scatter3d", 155 | mode = "lines", 156 | name = "Länge" 157 | ).asInstanceOf[Partial[Data]], 158 | dynLit( 159 | x = js.Array(b, 0), 160 | y = js.Array(l, l), 161 | z = js.Array(0, 0), 162 | `type` = "scatter3d", 163 | mode = "lines", 164 | name = "Breite" 165 | ).asInstanceOf[Partial[Data]], 166 | dynLit( 167 | x = js.Array(b, b), 168 | y = js.Array(l, l), 169 | z = js.Array(0, h), 170 | `type` = "scatter3d", 171 | mode = "lines", 172 | name = "Höhe" 173 | ).asInstanceOf[Partial[Data]], 174 | dynLit( 175 | x = js.Array(b, 0), 176 | y = js.Array(l, 0), 177 | z = js.Array(h, 0), 178 | `type` = "scatter3d", 179 | mode = "lines", 180 | name = "Diagonale" 181 | ).asInstanceOf[Partial[Data]] 182 | ) 183 | val layout: Partial[Layout] = 184 | dynLit( 185 | width = diagramWidth * 1.5, 186 | height = diagramWidth, 187 | scene = dynLit( 188 | aspectmode = "data", 189 | aspectratio = dynLit( 190 | x = b, 191 | y = l, 192 | z = h 193 | ).asInstanceOf[Partial[Point]] 194 | ).asInstanceOf[Partial[Scene]] 195 | ).asInstanceOf[Partial[Layout]] 196 | 197 | Graph.plot( 198 | "plotCube", 199 | data, 200 | layout 201 | ) 202 | } 203 | 204 | } 205 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/Graph.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import typings.mathjaxLib.MathJaxNs.{^ => MathJax} 4 | import typings.mathjsLib.mathjsMod.{^ => Mathjs} 5 | import typings.plotlyDotJsLib.plotlyDotJsMod.{Data, Layout, ^ => Plotly} 6 | import typings.stdLib.Partial 7 | 8 | import scala.scalajs.js 9 | import scala.scalajs.js.Dynamic.{literal => dynLit} 10 | import scala.scalajs.js.annotation.JSExportTopLevel 11 | 12 | object Graph extends IntellijImplicits { 13 | 14 | import scala.scalajs.js.timers.setTimeout 15 | 16 | @JSExportTopLevel("plotGraph") 17 | def plotGraph( 18 | exprStr: String, // the formula you want to draw a Graph for (in form of `x*2` - it mus contain a `x`) 19 | plotDiv: String, // the name of the `
` where you want to create the Graph. 20 | rangeFrom: Int = -20, // the range of the x-axe - minimum 21 | rangeTo: Int = 20 // the range of the x-axe - maximum 22 | ) = { 23 | val expr = Mathjs.compile(exprStr) 24 | val xValues = js.Array((rangeFrom to rangeTo): _*) 25 | val yValues = xValues.map { x => 26 | expr.eval( 27 | dynLit( 28 | x = x 29 | ) 30 | ) 31 | } 32 | val data: js.Array[Data] = js.Array( 33 | dynLit( 34 | x = xValues, 35 | y = yValues 36 | ).asInstanceOf[Partial[Data]] 37 | ) 38 | val layout: Partial[Layout] = 39 | dynLit(showlegend = false) 40 | .asInstanceOf[Partial[Layout]] 41 | plot( 42 | plotDiv, 43 | data, 44 | layout 45 | ) 46 | } 47 | 48 | def plot(plotDiv: String, data: js.Array[Data], layout: Partial[Layout]) = 49 | setTimeout(200) { 50 | Plotly.newPlot(plotDiv, data, layout) 51 | if (!js.isUndefined(MathJax)) { 52 | MathJax.Hub.Queue(js.Array("Typeset", MathJax.Hub)) 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/GraphApp.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding.Var 4 | import com.thoughtworks.binding.{Binding, dom} 5 | import org.scalajs.dom.document 6 | import org.scalajs.dom.raw.{Event, HTMLElement} 7 | import typings.mathjaxLib.MathJaxNs.{^ => MathJax} 8 | 9 | import scala.scalajs.js 10 | import scala.scalajs.js.annotation.JSExportTopLevel 11 | import scala.scalajs.js.timers.setTimeout 12 | 13 | object GraphApp extends IntellijImplicits { 14 | 15 | val expressionVar: Var[String] = Var("x^2") 16 | 17 | @JSExportTopLevel("runJSGraph") 18 | def runJSGraph(): Unit = { 19 | dom.render(document.getElementById("graphDiv"), plotly) 20 | } 21 | 22 | @dom 23 | private lazy val plotly: Binding[HTMLElement] = { 24 | val expression = expressionVar.bind 25 | println(s"expression: $expression") 26 | 27 | Graph.plotGraph(expression, "plotGraph") 28 |
29 |
30 | 31 | 34 |
35 | 42 |

{s"Formula: \\($expression\\)"}

43 |
44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/GraphExample.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding.Var 4 | import com.thoughtworks.binding.{Binding, dom} 5 | import org.scalajs.dom.document 6 | import org.scalajs.dom.raw.{Event, HTMLElement} 7 | import typings.plotlyDotJsLib.plotlyDotJsMod.{Data, Layout} 8 | import typings.stdLib.Partial 9 | 10 | import scala.scalajs.js 11 | import scala.scalajs.js.Dynamic.{literal => dynLit} 12 | import scala.scalajs.js.annotation.JSExportTopLevel 13 | 14 | object GraphExample { 15 | 16 | val radiusVar: Var[Double] = Var(3.0) 17 | 18 | @JSExportTopLevel("exampleGraphOnly") 19 | def exampleGraph(plotDiv: String, radius: Double): Unit = { 20 | plotGraph(plotDiv, radius) 21 | } 22 | 23 | @JSExportTopLevel("exampleGraph") 24 | def exampleGraph(plotDiv: String, formDiv: String): Unit = { 25 | dom.render(document.getElementById(formDiv), printForm(plotDiv)) 26 | } 27 | 28 | @dom 29 | private def printForm(plotDiv: String): Binding[HTMLElement] = { 30 | val r = radiusVar.bind // bind radius 31 | // this code below here is executed whenever the radius changes 32 | plotGraph(plotDiv, r) 33 | 34 | val area = r * r * Math.PI 35 |
36 | 37 | 38 | 39 | 40 | 41 | 44 | 52 | 53 | 54 | 55 | 56 | 59 | 67 | 70 | 71 | 72 |
Radiusr 42 | {s"\\(r\\)"} 43 | 45 | // adjust the radius on blur 49 | radiusVar.value = radiusIn.value.toDouble 50 | }/> 51 |
AreaA 57 | {s"\\(\\pi*r^2\\)"} 58 | 60 | // adjust the radius with the area 64 | radiusVar.value = Math.sqrt(areaIn.value.toDouble / Math.PI) 65 | }/> 66 | 68 | {s"\\(r = \\sqrt{A/\\pi}\\)"} 69 |
73 |
74 | } 75 | 76 | private def plotGraph(plotDiv: String, radius: Double) = { 77 | println("plotGraph") 78 | val data: js.Array[Data] = js.Array() // we don't have data 79 | val layout: Partial[Layout] = 80 | dynLit( 81 | xaxis = dynLit( 82 | zeroline = true, 83 | range = js.Array(-radius - 0.5, radius + 0.5) 84 | ), 85 | yaxis = dynLit( 86 | zeroline = true, 87 | range = js.Array(-radius - 0.5, radius + 0.5) 88 | ), 89 | width = 500, 90 | height = 500, 91 | shapes = js.Array( // the only shape is our circle 92 | dynLit( 93 | `type` = "circle", 94 | x0 = -radius, 95 | y0 = -radius, 96 | x1 = radius, 97 | y1 = radius 98 | ) 99 | ) 100 | ).asInstanceOf[Partial[Layout]] // Partial is not very nice done in the Facade 101 | 102 | Graph.plot(plotDiv, data, layout) // use the little helper to draw the Graph 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/IntellijImplicits.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding 4 | import org.scalajs.dom.raw.HTMLElement 5 | 6 | import scala.language.implicitConversions 7 | 8 | trait IntellijImplicits { 9 | //noinspection NotImplementedCode 10 | implicit def makeIntellijHappy(x: scala.xml.Elem): Binding[HTMLElement] = ??? 11 | implicit def makeIntellijHappy2(x: HTMLElement): Binding[HTMLElement] = ??? 12 | } 13 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/MapExample.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding.Var 4 | import com.thoughtworks.binding.{Binding, dom} 5 | import org.scalajs.dom.document 6 | import org.scalajs.dom.raw.{Event, HTMLElement} 7 | import typings.openlayersLib 8 | import typings.openlayersLib.openlayersMod.layerNs.{Base, Tile} 9 | import typings.openlayersLib.openlayersMod.{ 10 | EventsListenerFunctionType, 11 | View, 12 | eventsNs, 13 | formatNs, 14 | layerNs, 15 | projNs, 16 | sourceNs, 17 | styleNs, 18 | Map => OLMap 19 | } 20 | import scala.scalajs.js.timers.{SetTimeoutHandle, clearTimeout, setTimeout} 21 | 22 | import typings.openlayersLib.openlayersMod.olxNs.{MapOptions, ViewOptions} 23 | import typings.openlayersLib.openlayersMod.olxNs.layerNs.{ 24 | TileOptions, 25 | VectorOptions 26 | } 27 | import typings.openlayersLib.openlayersMod.olxNs.sourceNs.{ 28 | VectorOptions => SourceVectorOptions 29 | } 30 | import typings.openlayersLib.openlayersMod.olxNs.sourceNs.OSMOptions 31 | 32 | import scala.scalajs.js 33 | import scala.scalajs.js.annotation.JSExportTopLevel 34 | import typings.openlayersLib.openlayersMod.olxNs.styleNs.{ 35 | StrokeOptions, 36 | StyleOptions 37 | } 38 | import typings.openlayersLib.openlayersMod.MapEvent 39 | 40 | object MapExample { 41 | 42 | val centerLatVar: Var[Double] = Var(47.06472) 43 | val centerLonVar: Var[Double] = Var(8.524444) 44 | 45 | @JSExportTopLevel("mapExample") 46 | def mapExample(formDiv: String): Unit = { 47 | dom.render(document.getElementById(formDiv), printForm) 48 | plotGraph.watch 49 | } 50 | 51 | @dom 52 | private lazy val printForm: Binding[HTMLElement] = { 53 |
54 | 55 | 56 | 57 | 58 | 59 | 62 | 63 | 64 | 65 | 66 | 69 | 70 | 71 |
Latitutelat 60 | {latInput.bind} 61 |
Longitutelon 67 | {lonInput.bind} 68 |
72 |
73 | } 74 | 75 | @dom 76 | private lazy val latInput = { 77 | val lat = centerLatVar.bind 78 | centerLatVar.value = latIn.value.toDouble}/> 81 | } 82 | 83 | @dom 84 | private lazy val lonInput = { 85 | val lon = centerLonVar.bind 86 | centerLonVar.value = lonIn.value.toDouble}/> 89 | } 90 | 91 | private lazy val plotGraph = Binding { 92 | val lat = centerLatVar.bind 93 | val lon = centerLonVar.bind 94 | map 95 | .getView() 96 | .setCenter( 97 | projNs.transform(js.Tuple2(lon, lat), "EPSG:4326", "EPSG:3857") 98 | ) 99 | } 100 | 101 | lazy val map = { 102 | // Layer with the Map 103 | val lmap = new Tile( 104 | TileOptions( 105 | source = new sourceNs.OSM() 106 | ) 107 | ) 108 | // Layer with the GPX Track 109 | val lgpx = new layerNs.Vector( 110 | VectorOptions( 111 | source = new sourceNs.Vector( 112 | SourceVectorOptions( 113 | url = "/assets/gps/rigi_kulm.gpx", 114 | format = new formatNs.GPX() 115 | ) 116 | ), 117 | style = new styleNs.Style( 118 | StyleOptions( 119 | stroke = new styleNs.Stroke( 120 | StrokeOptions( 121 | color = "#f00", 122 | width = 3 123 | ) 124 | ) 125 | ) 126 | ) 127 | ) 128 | ) 129 | 130 | val olMap = new OLMap( 131 | MapOptions( 132 | target = "mapExample", 133 | // projection= new OpenLayers.Projection("EPSG:900913"), 134 | // displayProjection= new OpenLayers.Projection("EPSG:4326"), 135 | layers = js.Array[Base]( 136 | lmap, 137 | lgpx 138 | ), 139 | view = new View( 140 | ViewOptions( 141 | center = projNs.fromLonLat( 142 | js.Tuple2(centerLonVar.value, centerLatVar.value) 143 | ), 144 | zoom = 10 145 | ) 146 | ) 147 | ) 148 | ) 149 | setTimeout(500) { 150 | val event: (js.Function1[eventsNs.Event, scala.Unit]) = { 151 | (e: eventsNs.Event) => 152 | val view = olMap.getView() 153 | if (view != null){ 154 | val center = view.getCenter() 155 | if (center != null && center._1 > Double.MinValue && center._1 < Double.MaxValue) { 156 | val center2 = projNs.transform(center, "EPSG:3857", "EPSG:4326") 157 | centerLatVar.value = center2._2 158 | centerLonVar.value = center2._1 159 | } 160 | } 161 | 162 | } 163 | olMap.on("moveend", event) 164 | } 165 | 166 | olMap 167 | } 168 | } 169 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/MathApp.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | import com.thoughtworks.binding.Binding.Var 4 | import com.thoughtworks.binding.{Binding, dom} 5 | import org.scalajs.dom.raw.{Event, HTMLElement} 6 | import org.scalajs.jquery.jQuery 7 | 8 | trait MathApp extends MathJaxUtils with IntellijImplicits { 9 | 10 | val diagramWidth = 500 11 | val unit: String = mjInline("m") 12 | val unit2: String = mjInline("m^2") 13 | val unit3: String = mjInline("m^3") 14 | 15 | @dom 16 | protected def printRow( 17 | label: String, 18 | abbreviation: String, 19 | formula: Option[String] = None, 20 | unit: String, 21 | inputElement: Binding[HTMLElement], 22 | radiusFormula: Option[String] = None 23 | ): Binding[HTMLElement] = { 24 | 25 | 26 | {label} 27 | 28 | {abbreviation} 29 | 30 | {mjInline(formula.getOrElse(""))} 31 | 32 | {inputElement.bind} 33 | 34 | {unit} 35 | 36 | {mjInline(radiusFormula.getOrElse(""))} 37 | 38 | 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/scala/pages/demo/MathJaxUtils.scala: -------------------------------------------------------------------------------- 1 | package pages.demo 2 | 3 | trait MathJaxUtils { 4 | 5 | def mjInline(expression: String) = s"\\($expression\\)" 6 | 7 | def mjBlock(expression: String) = s"\\[$expression\\]" 8 | 9 | } 10 | --------------------------------------------------------------------------------