• Based on the JVM • Multi-threaded JavaScript • JVM Memory Modell with huge heap: -Xms2G -Xmx4G • Java Libraries accessible via JavaScript • Spring, Guava, Apache Commons, Geo-Tools, …
data-component="Incidence" data-area-key="9" ></script> • Display a Vue component in a standalone mode. • Embeddable & customizable via <script> • Always use the latest version of vue-corona!
components, will be compiled away. • Well known: Slots distribute content into components. • Less known: Dynamic components with the meta component. ✨ <component :is="" /> ✨
2⃣ widgets.js = initializes WidgetApp + renders it into the DOM 3⃣ webpack con fi guration = packs everything together 4⃣ CMS Integration / Widget Chooser
import Ampel from '@/views/Ampel' import Incidence from '@/components/Incidence' import EpiDiff from '@/components/EpiDiff' import Vaccinations from '@/components/Vaccinations' // Bind the meta component to a state <template> <div class="corona-widget"> <component :is="componentName" // One of the imported components. :areaKey="areaKey" // Optional; pre-selects a state. /> </div> </template>
BMI • Number of total tests is 0 🙄 • Day in timeline missing 🙈 • CSV fi les with wrong separator 🥹 • Invalid encoding, e.g. Windows-1252 🤖 • Invalid Date of Death, e.g. 01.02.2020 🗓
Prevention and Control • JSON invalid, e.g. using 1234,0 as Number. • JSON not validating against the known schema. • Inconsistent naming "Dark Gray" vs. "dark grey". • Invalid / mixed encoding instead of UTF-8.