diff --git a/assets/css/theme.css b/assets/css/theme.css deleted file mode 100644 index e49b5f98a1162dbb5903f6a744bd2202a597a45c..0000000000000000000000000000000000000000 --- a/assets/css/theme.css +++ /dev/null @@ -1,24 +0,0 @@ -@charset "UTF-8"; -@import 'variables.css'; -@import 'chatbot.css'; - -* { - box-sizing: border-box; -} - -body { - font-family: 'Arial', sans-serif; - font-size: 14pt; - margin: 0; - color: var(--text-font-color); - padding: 1rem; -} - -.chatbot { - height: 85vh; -} - -.chat { - width: 60%; - height: 70%; -} \ No newline at end of file diff --git a/assets/js/mockup.js b/assets/js/mockup.js deleted file mode 100644 index cbbb2f1dfdd71cd81f1b8c8266b01237dd9f902b..0000000000000000000000000000000000000000 --- a/assets/js/mockup.js +++ /dev/null @@ -1,274 +0,0 @@ -"use strict" - -const api_gateway = 'https://1a64bb2a.eu-de.apigw.appdomain.cloud/api/kodias/dev'; - -function API(api_gateway, api_key){ - - let init_template = { - input_type: "text", - language: { - code: "de", - lable: "Deutsch", - name: "Deutsch" - }, - session_id: "", - customer_key: "HDA_0001", - - api_key: "8D347E8A-30F8-1F3A-ADF9-34AB035A953B", - } - - let send_template = { - input: "HDA_0001", - input_type: "Dies ist ein Echo Test der Api", - language: { - code: "de", - lable: "Deutsch", - name: "Deutsch" - }, - session_id: "", - customer_key: "YAT", - api_key: "8D347E8A-30F8-1F3A-ADF9-34AB035A953B" - } - - let session_info = { - api_key : api_key, - api_gateway : api_gateway, - session_id : null, - - } - - let handleFetchErrors = function (response) { - if(!response.ok) {throw Error(response.statusText);} - return response; - }; - - let initializeConnection = async () => { //watch out for using 'this' here - console.log(init_template); - const response = await fetch(`${api_gateway}/init`, { - method: 'POST', - mode: "cors", - cache: 'no-cache', - headers: { - 'Content-Type' : 'application/json; charset=UTF-8', - 'X-API-Client-Id' : '16147c04-17dc-4241-8bf2-956354c7d043' - }, - body: JSON.stringify(init_template), - }).then(handleFetchErrors) - .then(response => response.json()) - - - session_info.session_id = response.session_id; - console.log(session_info.session_id); - return response; - - } - - let sendRequest = async (message) => { - send_template.input_type = message; - - const response = await fetch(`${api_gateway}/send`, { - method: 'POST', - mode: "cors", - cache: "no-cache", - headers: { - 'Content-Type' : 'application/json', - 'X-API-Client-Id' : '16147c04-17dc-4241-8bf2-956354c7d043' - }, - body: JSON.stringify(send_template), - }).then(handleFetchErrors) - .then(response => response.json()) - - return response; - - } - - this.init = () => { //after running init, the api should either be initialized and ready to use, or uninitialized - - let status = initializeConnection() - .then(response => console.log(response)) - .catch(err => { - console.log("Error while initializing api object, see below."); - console.error(err); - }); - - } - - this.send = (message) => { - let response = sendRequest(message) - .then(response => { - if(response.items[0].hasOwnProperty("type") && response.items[0].value.hasOwnProperty("text")){ - let responseContent = response.items[0].value.text; - newBubble("bot", responseContent); - }else{ - console.error("Error while parsing message content, unrecognized item type"); - newBubble("ERROR: Unrecognized Item Type"); - } - }) - .catch(err => { - console.log("Error while sending request, see below"); - console.error(err); - }); - } - -} - -let api = new API(api_gateway, "test"); - -api.init(); - - -function toggleChat(){ - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - - if(chat.classList.contains("chat--open")) { - chat.classList.remove("chat--open"); - chat.classList.add("chat--closed"); - } else { - chat.classList.remove("chat--closed"); - chat.classList.add("chat--open"); - } - - if(bubble.classList.contains("chatbot__bubble--active")){ - bubble.classList.remove("chatbot__bubble--active"); - bubble.classList.add("chatbot__bubble--inactive"); - } else { - bubble.classList.remove("chatbot__bubble--inactive"); - bubble.classList.add("chatbot__bubble--active"); - } -} - -function openChat(){ - - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - bubble.classList.remove("chatbot__bubble--inactive"); - bubble.classList.add("chatbot__bubble--active"); - chat.classList.remove("chat--closed"); - chat.classList.add("chat--open"); -} - -function closeChat(){ - - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - bubble.classList.remove("chatbot__bubble--active"); - bubble.classList.add("chatbot__bubble--inactive"); - chat.classList.remove("chat--open"); - chat.classList.add("chat--closed"); -} - - -function newBubble(author, content){ - let bubbleContent = document.createElement("p"); - bubbleContent.appendChild(document.createTextNode(content)); - let bubble = document.createElement("div"); - if(author == "user"){ - bubble.setAttribute("class", "chat__dialogue__question speech-bubble"); - bubble.setAttribute("style", "background: lightgreen"); - - }else if(author == "bot"){ - bubble.setAttribute("class", "chat__dialogue__answer speech-bubble"); - } - bubble.appendChild(bubbleContent); - let chat__dialogue = document.querySelector(".chat__dialogue"); - chat__dialogue.appendChild(bubble); - chat__dialogue.scrollTop = chat__dialogue.scrollHeight; -} - - -function replyToUser(text){ - newBubble("bot", text); -} - - -let activeConversation = false; - -window.addEventListener("load", ()=>{ - let questionField = document.querySelector("#question"); - - questionField.addEventListener("focus", ()=>{ - activeConversation = true; - }); - - questionField.addEventListener("focusout", ()=>{ - activeConversation = false; - }); - - document.addEventListener('keydown', (e)=>{ - if(e.keyCode == 13 && questionField.value.length >0 && activeConversation){ - newBubble("user", questionField.value); - questionField.value=""; - } - }); - - let submitButton = document.querySelector("#submitText"); - submitButton.addEventListener('click', ()=>{ - if(questionField.value.length >0){ - newBubble("user", questionField.value); - questionField.value=""; - } - }); - - - -}); - -function newBubble(author, content){ - let bubbleContent = document.createElement("p"); - bubbleContent.appendChild(document.createTextNode(content)); - let bubble = document.createElement("div"); - if(author == "user"){ - bubble.setAttribute("class", "chat__dialogue__question speech-bubble"); - - }else if(author == "bot"){ - bubble.setAttribute("class", "chat__dialogue__answer speech-bubble"); - }else{ - throw `newBubble: Author ${author} is an invalid value for author parameter` - } - bubble.setAttribute("style", "background: #E0F8F7"); - bubble.appendChild(bubbleContent); - - let chat__dialogue = document.querySelector(".chat__dialogue"); - chat__dialogue.appendChild(bubble); - chat__dialogue.scrollTop = chat__dialogue.scrollHeight; -} - -let questionField = document.querySelector("#question"); - - questionField.addEventListener("focus", ()=>{ - activeConversation = true; - }); - - questionField.addEventListener("focusout", ()=>{ - activeConversation = false; - }); - - document.addEventListener('keydown', (e)=>{ - if(e.keyCode == 13 && questionField.value.length >0 && activeConversation){ - api.send(questionField.value.toString()); - newBubble("user", questionField.value); - questionField.value=""; - - - - } - }); - - let submitButton = document.querySelector("#submitText"); - submitButton.addEventListener('click', ()=>{ - if(questionField.value.length >0){ - api.send(questionField.value.toString()); - newBubble("user", questionField.value); - questionField.value=""; - } -}); - -window.addEventListener("scroll", () => { - /* - let elementTarget = document.getElementsByClassName("kimi-section")[0]; - //console.log(elementTarget.offsetTop + (elementTarget.offsetHeight /); - if (window.scrollY > (elementTarget.offsetTop - elementTarget.offsetHeight)) { - openChat(); - }*/ -}); diff --git a/assets/js/mockup.js.orig b/assets/js/mockup.js.orig deleted file mode 100644 index d55d71207bb8ccc65170f3a7df659b8380aadeba..0000000000000000000000000000000000000000 --- a/assets/js/mockup.js.orig +++ /dev/null @@ -1,128 +0,0 @@ - - -function toggleChat(){ - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - - if(chat.classList.contains("chat--open")) { - chat.classList.remove("chat--open"); - chat.classList.add("chat--closed"); - } else { - chat.classList.remove("chat--closed"); - chat.classList.add("chat--open"); - } - - if(bubble.classList.contains("chatbot__bubble--active")){ - bubble.classList.remove("chatbot__bubble--active"); - bubble.classList.add("chatbot__bubble--inactive"); - } else { - bubble.classList.remove("chatbot__bubble--inactive"); - bubble.classList.add("chatbot__bubble--active"); - } -} - -function openChat(){ - - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - bubble.classList.remove("chatbot__bubble--inactive"); - bubble.classList.add("chatbot__bubble--active"); - chat.classList.remove("chat--closed"); - chat.classList.add("chat--open"); -} - -function closeChat(){ - - let chat = document.getElementsByClassName("chat")[0]; - let bubble = document.getElementsByClassName("chatbot__bubble")[0]; - bubble.classList.remove("chatbot__bubble--active"); - bubble.classList.add("chatbot__bubble--inactive"); - chat.classList.remove("chat--open"); - chat.classList.add("chat--closed"); -} - -function newBubble(author, content){ - let bubbleContent = document.createElement("p"); - bubbleContent.appendChild(document.createTextNode(content)); - let bubble = document.createElement("div"); -<<<<<<< HEAD - if(author == "user"){ - bubble.setAttribute("class", "chat__dialogue__question speech-bubble"); - bubble.setAttribute("style", "background: lightgreen"); - - }else if(author == "bot"){ - bubble.setAttribute("class", "chat__dialogue__answer speech-bubble"); - } - bubble.appendChild(bubbleContent); - let chat__dialogue = document.querySelector(".chat__dialogue"); - chat__dialogue.appendChild(bubble); - chat__dialogue.scrollTop = chat__dialogue.scrollHeight; -} - - -function replyToUser(text){ - newBubble("bot", text); -} - - -let activeConversation = false; - -window.addEventListener("load", ()=>{ - let questionField = document.querySelector("#question"); - - questionField.addEventListener("focus", ()=>{ - activeConversation = true; - }); - - questionField.addEventListener("focusout", ()=>{ - activeConversation = false; - }); - - document.addEventListener('keydown', (e)=>{ - if(e.keyCode == 13 && questionField.value.length >0 && activeConversation){ - newBubble("user", questionField.value); - questionField.value=""; - } - }); - - let submitButton = document.querySelector("#submitText"); - submitButton.addEventListener('click', ()=>{ - if(questionField.value.length >0){ - newBubble("user", questionField.value); - questionField.value=""; - } - }); - - - -}); -======= - - if(author == "user"){ - bubble.setAttribute("class", "chat__dialogue__question speech-bubble"); - - }else if(author == "bot"){ - bubble.setAttribute("class", "chat__dialogue__answer speech-bubble"); - }else{ - throw `newBubble: Author ${author} is an invalid value for author parameter` - } - bubble.appendChild(bubbleContent); - - let chat__dialogue = document.querySelector(".chat__dialogue"); - chat__dialogue.appendChild(bubble); - - -} - - - ->>>>>>> 14d0c00a27f28b844712423b668c35b5ac5f7fed - -window.addEventListener("scroll", () => { - /* - let elementTarget = document.getElementsByClassName("kimi-section")[0]; - //console.log(elementTarget.offsetTop + (elementTarget.offsetHeight /); - if (window.scrollY > (elementTarget.offsetTop - elementTarget.offsetHeight)) { - openChat(); - }*/ -}); diff --git a/documentation.md b/documentation.md new file mode 100644 index 0000000000000000000000000000000000000000..62ce91012232de93180efa92b279651dfcb9d2a4 --- /dev/null +++ b/documentation.md @@ -0,0 +1,11 @@ +# Dokumentation +#### Überarbeitung der landing page: + +Bilder suchen + anpassen: +* Die verschiedenen Bilder getestet und eine passende Farbe ausgewählt. +* Die Bilder passend zugeschnitten und der Landingpage angepasst. +Implementation der Animationen (Frag mich section, Chatbubble, wichtige Portale) + +Erstellen und Einfügen der FAQ + +Einfügen des Responsive Designs (Mobile, Tablet) diff --git a/index.html b/index.html deleted file mode 100644 index 66a3dba0ba1e346fd063c45837005fe1579a140a..0000000000000000000000000000000000000000 --- a/index.html +++ /dev/null @@ -1,39 +0,0 @@ -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <link rel="stylesheet" href="assets/css/theme.css"> - <title>Document</title> -</head> -<body> - <h1>KIMI the chatbot</h1> - <aside class="chatbot"> - <section class="chat chat--open"> - <header class="chat__header"> - <a href="#">gib mir feedback</a> - <a href="#" class="chat__header__minimize" onclick="closeChat()">⌄</a> - </header> - <section class="chat__dialogue"> - <!-- - <div class="chat__dialogue__answer speech-bubble speech-bubble--left-top"> - <p>Hallo ich bin KIMI :)<br>Wie kann ich dir helfen?</p> - </div> - <div class="chat__dialogue__question speech-bubble speech-bubble--right-bottom"> - <p>Na du bist ja ein Süßer!</p> - </div> - <div class="chat__dialogue__answer speech-bubble speech-bubble--left-top"> - <p>Danke dir :)</p> - </div> - --> - </section> - <footer class="chat__footer"> - <input type="text" class="chat__input" name="question" id="question" > - <a class="chat__input__submit" href="#" id="submitText">▶</a> - </footer> - </section> - <section class="chatbot__bubble chatbot__bubble--inactive" onclick="toggleChat()"> - </section> - </aside> - <script language="javascript" type="text/javascript" src="assets/js/mockup.js"></script> -</body> -</html> diff --git a/landingpage/.gitignore b/landingpage/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..485dee64bcfb48793379b200a1afd14e85a8aaf4 --- /dev/null +++ b/landingpage/.gitignore @@ -0,0 +1 @@ +.idea diff --git a/landingpage/assets/css/animations.css b/landingpage/assets/css/animations.css new file mode 100644 index 0000000000000000000000000000000000000000..03645573718f929718c8675106aa9018b0e2f62d --- /dev/null +++ b/landingpage/assets/css/animations.css @@ -0,0 +1,20 @@ +@-moz-keyframes spin { 50% { -moz-transform: rotate(5deg); } } +@-webkit-keyframes spin { 50% { -webkit-transform: rotate(5deg); } } +@keyframes spin { 50% { -webkit-transform: rotate(5deg); transform:rotate(5deg); } } + + +@keyframes blinkingButton{ + 0% {transform: scale(.5)} + 50% {transform: scale(1.4)} + 100% {transform: scale(1.4); opacity: 0;} +} + +@keyframes example { + 0% {box-shadow: 0;} + 25% {box-shadow: 0px 0px 10px #fff;} + 100% {box-shadow: 0; } +} + +.kimi-teaser__input > input[type="text"]{ + animation: example 4s infinite; +} diff --git a/assets/css/chatbot.css b/landingpage/assets/css/chatbot.css similarity index 83% rename from assets/css/chatbot.css rename to landingpage/assets/css/chatbot.css index 3d765ff166ffd86e1497384594a744f816ab3c62..0887bbe88f7eed9859df7c12f6777d9def519d18 100644 --- a/assets/css/chatbot.css +++ b/landingpage/assets/css/chatbot.css @@ -56,7 +56,6 @@ position: sticky; bottom: 3rem; right: 3rem; - margin-bottom: 3rem; margin-left: auto; margin-right: 3rem; } @@ -134,7 +133,7 @@ padding: 0 1em 0 1em !important; } -.chat__dialogue__answer { +.chat__dialogue__answer { float: left; clear: left; color: var(--answer-text-color); @@ -176,27 +175,53 @@ position: absolute; right: 0; bottom: 50px; - width: var(--chatbot-bubble-size); height: var(--chatbot-bubble-size); + width: var(--chatbot-bubble-size); + max-width: var(--chatbot-bubble-size); + max-height: var(--chatbot-bubble-size); } -.chatbot__bubble:hover { +.chatbot__bubble:hover, .chatbot_button { cursor: pointer; } -.chatbot__bubble--active { + +.chatbot_button{ + position: absolute; z-index: 10; + width: 3.5em; + height: 3.5em; +} + + +.chatbot__bubble--active, .chatbot_button--active { background-image: url("../images/kimi/bubble_active.png"); background-size: contain; } -.chatbot__bubble--inactive { +.blinkerButton{ + width: 3em; position: absolute;height: 3em; opacity: .5; left: 0.25em; top: .25em; + animation: blinkingButton 2s infinite; +} + +#chatbutton_holder{ + position: relative; + width: 3.5em; + height: 3.5em; + -webkit-animation:spin 3s linear infinite; + -moz-animation:spin 3s linear infinite; + animation:spin 3s linear infinite; +} + +.chatbot__bubble--inactive, .chatbot_button--inactive { background-image: url("../images/kimi/bubble_inactive.png"); background-size: contain; background-repeat: no-repeat; + transition: .25s ease-in-out; + } -.chatbot__bubble--inactive:hover { +.chatbot__bubble--inactive:hover, .chatbot_button--inactive:hover { background-image: url("../images/kimi/bubble_active.png"); background-size: contain; background-repeat: no-repeat; -} \ No newline at end of file +} diff --git a/landingpage/assets/css/faq.css b/landingpage/assets/css/faq.css new file mode 100644 index 0000000000000000000000000000000000000000..7a8986bf35c70cf3149c4ef662aaaaa6d861e115 --- /dev/null +++ b/landingpage/assets/css/faq.css @@ -0,0 +1,98 @@ +@charset "UTF-8"; + + + +.plus-button{ + font-size:0.8em; + display:inline-block; + background-color: lightseagreen; + border-radius: .3em; + border-top-left-radius: 1.1em; + border-bottom-right-radius: 1.1em; + width: 2em; + height: 2em; + border: none; + color: white; + font-weight: bold; + outline:none; + margin-left: 1rem; + margin-right:1.5rem; + align-self:center; + content: "a"; +} +.plus-button:hover{ + transition: 0.3s; + transform: scale(1.1); + cursor: pointer; +} +.question h2{ + text-align: left; + text-align-last: left; + margin-left: 1.5rem; + margin-right:auto; + padding-top:1rem; + padding-bottom: 1rem; + font-size:1.5rem; + color:black; + white-space: normal; +} + +.question h2:hover{ + transition: 0.3s; + color: black; + transform: scale(1.03); + cursor: pointer; +} + +.question-answer-block{ + display:inline-block; + width: 100%; + text-align: center; + } + +div .question{ + display: flex; + justify-content: center; + flex:none; + white-space: nowrap; + -webkit-user-select: none; + -khtml-user-select: none; + +} +.answer{ + font-size: 1.2rem; + display: none; + font-family: Arial, Helvetica, sans-serif; + text-align: center; + color:black; + padding-top:0px; + padding-bottom: 0px; + background-color: #E0F8F7; + border-left:20px solid #E0F8F7; + border-right:20px solid #E0F8F7; + border-radius: 10px; + margin-left: 1.5rem; + margin-right: 1.5rem; + line-height: 1.7; + font-weight: normal; + box-shadow: 0px 0px 15px #E0F8F7, 0px 0px 10px #E0F8F7, 0px 0px 5px #E0F8F7; + +} + +@media (min-width: 767px) and (max-width: 1920px) { + .question h2 { + font-size: 2rem; + text-align: center; + text-align-last: center; + } + div .question{ + display: block; + text-align: center; + +} + .answer{ + max-width: 75%; + } + .plus-button{ + margin-left: 1rem;} +} diff --git a/landingpage/assets/css/flickity.css b/landingpage/assets/css/flickity.css new file mode 100644 index 0000000000000000000000000000000000000000..7a947f837092c01e448a92fda9389a9f0c7c716f --- /dev/null +++ b/landingpage/assets/css/flickity.css @@ -0,0 +1,137 @@ +/*! Flickity v2.2.1 +https://flickity.metafizzy.co +---------------------------------------------- */ + +.flickity-enabled { + position: relative; +} + +.flickity-enabled:focus { outline: none; } + +.flickity-viewport { + overflow: hidden; + position: relative; + height: 100%; +} + +.flickity-slider { + position: absolute; + width: 100%; + height: 100%; +} + +/* draggable */ + +.flickity-enabled.is-draggable { + -webkit-tap-highlight-color: transparent; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.flickity-enabled.is-draggable .flickity-viewport { + cursor: move; + cursor: -webkit-grab; + cursor: grab; +} + +.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down { + cursor: -webkit-grabbing; + cursor: grabbing; +} + +/* ---- flickity-button ---- */ + +.flickity-button { + position: absolute; + background: hsla(0, 0%, 100%, 0.75); + border: none; + color: #333; +} + +.flickity-button:hover { + background: white; + cursor: pointer; +} + +.flickity-button:focus { + outline: none; + box-shadow: 0 0 0 5px #19F; +} + +.flickity-button:active { + opacity: 0.6; +} + +.flickity-button:disabled { + opacity: 0.3; + cursor: auto; + /* prevent disabled button from capturing pointer up event. #716 */ + pointer-events: none; +} + +.flickity-button-icon { + fill: currentColor; +} + +/* ---- previous/next buttons ---- */ + +.flickity-prev-next-button { + top: 50%; + width: 44px; + height: 44px; + border-radius: 50%; + /* vertically center */ + transform: translateY(-50%); +} + +.flickity-prev-next-button.previous { left: 10px; } +.flickity-prev-next-button.next { right: 10px; } +/* right to left */ +.flickity-rtl .flickity-prev-next-button.previous { + left: auto; + right: 10px; +} +.flickity-rtl .flickity-prev-next-button.next { + right: auto; + left: 10px; +} + +.flickity-prev-next-button .flickity-button-icon { + position: absolute; + left: 20%; + top: 20%; + width: 60%; + height: 60%; +} + +/* ---- page dots ---- */ + +.flickity-page-dots { + position: absolute; + width: 100%; + bottom: -25px; + padding: 0; + margin: 0; + list-style: none; + text-align: center; + line-height: 1; +} + +.flickity-rtl .flickity-page-dots { direction: rtl; } + +.flickity-page-dots .dot { + display: inline-block; + width: 10px; + height: 10px; + margin: 0 8px; + background: #333; + border-radius: 50%; + opacity: 0.25; + cursor: pointer; +} + +.flickity-page-dots .dot.is-selected { + opacity: 1; +} diff --git a/landingpage/assets/css/icons.css b/landingpage/assets/css/icons.css new file mode 100644 index 0000000000000000000000000000000000000000..10970b439111ad0498e92c909da88cdffe89eb7b --- /dev/null +++ b/landingpage/assets/css/icons.css @@ -0,0 +1,980 @@ +@charset "UTF-8"; + +/* + * Icons are taken for the awesome handdrawn.css library from https://github.com/fxaeberhard/handdrawn.css. + * Library is published under CC0. See https://fxaeberhard.github.io/handdrawn.css/ for usage + * +*/ + +@font-face { + font-family: "icons"; + src: url("../fonts/icons.eot"); + src: url("../fonts/icons.eot?#iefix") format("eot"), url("../fonts/icons.woff") format("woff"), url("../fonts/icons.ttf") format("truetype"); + } + + i { + font-size: 2.5em; + } + + .icon-anchor:before, .icon-android:before, .icon-apple:before, .icon-archive:before, .icon-arrow-alt:before, .icon-arrow-down:before, .icon-arrow-left:before, .icon-arrow-right:before, .icon-arrow-up:before, .icon-balance-scale:before, .icon-ban:before, .icon-bar-chart:before, .icon-barcode:before, .icon-bars:before, .icon-battery-empty:before, .icon-battery-full:before, .icon-battery-half:before, .icon-battery-quarter:before, .icon-beer:before, .icon-behance:before, .icon-bell:before, .icon-bicycle:before, .icon-birthday-cake:before, .icon-bolt:before, .icon-bomb:before, .icon-book:before, .icon-bookmark-o:before, .icon-briefcase:before, .icon-bug:before, .icon-bullseye:before, .icon-calculator:before, .icon-calendar:before, .icon-caret-down:before, .icon-caret-left:before, .icon-caret-square-o-down:before, .icon-caret-square-o-left:before, .icon-caret-square-o-right:before, .icon-caret-square-o-up:before, .icon-caret-up:before, .icon-check:before, .icon-chevron-down:before, .icon-chevron-left:before, .icon-chevron-right:before, .icon-chevron-up:before, .icon-circle-o:before, .icon-clipboard:before, .icon-clone:before, .icon-cloud-remove:before, .icon-cloud-sync:before, .icon-cloud-upload:before, .icon-cloud:before, .icon-code-fork:before, .icon-code:before, .icon-coffee:before, .icon-cog:before, .icon-cogs:before, .icon-comment:before, .icon-comments:before, .icon-compass:before, .icon-compress:before, .icon-cutlery:before, .icon-dashboard:before, .icon-database:before, .icon-delicious:before, .icon-desktop:before, .icon-download:before, .icon-dribble:before, .icon-edit:before, .icon-eject:before, .icon-envelope:before, .icon-euro:before, .icon-exchange:before, .icon-expand:before, .icon-eye:before, .icon-eyedropper:before, .icon-facebook:before, .icon-female:before, .icon-file-ai-o:before, .icon-file-archive-o:before, .icon-file-css-o:before, .icon-file-doc-o:before, .icon-file-eps-o:before, .icon-file-gif-o:before, .icon-file-html-o:before, .icon-file-jpg-o:before, .icon-file-js-o:before, .icon-file-minus:before, .icon-file-o:before, .icon-file-pdf-o:before, .icon-file-php-o:before, .icon-file-png-o:before, .icon-file-psd-o:before, .icon-file-text-o:before, .icon-file-xls-o:before, .icon-files-o:before, .icon-film:before, .icon-filter:before, .icon-fire:before, .icon-flag:before, .icon-flask:before, .icon-floppy-o:before, .icon-folder-lock:before, .icon-folder-minus:before, .icon-folder-plus:before, .icon-folder-remove:before, .icon-font:before, .icon-frown-o:before, .icon-futbol-o:before, .icon-gamepad:before, .icon-gem:before, .icon-github:before, .icon-glass:before, .icon-globe:before, .icon-google-plus:before, .icon-graduation-cap:before, .icon-hdd-o:before, .icon-headphones:before, .icon-heart:before, .icon-home:before, .icon-hourglass-half:before, .icon-industry:before, .icon-info-circle-o:before, .icon-info-circle:before, .icon-instagram:before, .icon-jpy:before, .icon-key:before, .icon-keyboard:before, .icon-leaf:before, .icon-life-ring:before, .icon-lightbulb-o:before, .icon-line-chart:before, .icon-link:before, .icon-linkedin:before, .icon-list:before, .icon-location-arrow:before, .icon-lock:before, .icon-magic:before, .icon-magnet:before, .icon-male:before, .icon-map-marker:before, .icon-map-o:before, .icon-map-signs:before, .icon-map:before, .icon-mars:before, .icon-microphone:before, .icon-minus-circle:before, .icon-minus-square-o:before, .icon-minus:before, .icon-money:before, .icon-moon-o:before, .icon-music:before, .icon-paint-brush:before, .icon-paper-plane:before, .icon-paragraph:before, .icon-pause:before, .icon-pencil-22:before, .icon-pencil-square-o:before, .icon-pencil:before, .icon-phone:before, .icon-picture-o:before, .icon-pie-chart:before, .icon-pinterest:before, .icon-play:before, .icon-plus-circle-o:before, .icon-plus-square-o:before, .icon-plus:before, .icon-power-off:before, .icon-question-circle:before, .icon-question:before, .icon-quote-right:before, .icon-random:before, .icon-refresh:before, .icon-repeat:before, .icon-rss:before, .icon-scissors:before, .icon-search-minus:before, .icon-search-plus:before, .icon-search:before, .icon-share-alt:before, .icon-shopping-bag:before, .icon-shopping-cart:before, .icon-sign-in:before, .icon-sign-out:before, .icon-sitemap:before, .icon-skype:before, .icon-sliders:before, .icon-smile-o:before, .icon-sort:before, .icon-space-shuttle:before, .icon-square-o:before, .icon-star-half:before, .icon-star-o:before, .icon-step-backward:before, .icon-step-forward:before, .icon-suitcase:before, .icon-sun-o:before, .icon-tag:before, .icon-television:before, .icon-terminal:before, .icon-th-large:before, .icon-th:before, .icon-thumb-down:before, .icon-thumb-tack:before, .icon-thumbs-o-up:before, .icon-ticket:before, .icon-times-circle:before, .icon-times-square:before, .icon-times:before, .icon-tint:before, .icon-trash:before, .icon-tree:before, .icon-trophy:before, .icon-truck:before, .icon-twitter:before, .icon-umbrella:before, .icon-undo:before, .icon-unlock:before, .icon-usb:before, .icon-usd:before, .icon-user-minus:before, .icon-user-plus:before, .icon-user-star:before, .icon-user:before, .icon-users:before, .icon-venus:before, .icon-video-camera:before, .icon-vimeo:before, .icon-volume-diabled:before, .icon-volume-down-2:before, .icon-volume-down:before, .icon-volume-off:before, .icon-volume-up:before, .icon-warning:before, .icon-weather:before, .icon-webcam:before, .icon-wifi:before, .icon-windows:before, .icon-wrench:before { + font-family: "icons"; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-style: normal; + font-variant: normal; + font-weight: normal; + text-decoration: none; + text-transform: none; + } + + .icon-anchor:before { + content: ""; + } + + .icon-android:before { + content: ""; + } + + .icon-apple:before { + content: ""; + } + + .icon-archive:before { + content: ""; + } + + .icon-arrow-alt:before { + content: ""; + } + + .icon-arrow-down:before { + content: ""; + } + + .icon-arrow-left:before { + content: ""; + } + + .icon-arrow-right:before { + content: ""; + } + + .icon-arrow-up:before { + content: ""; + } + + .icon-balance-scale:before { + content: ""; + } + + .icon-ban:before { + content: ""; + } + + .icon-bar-chart:before { + content: ""; + } + + .icon-barcode:before { + content: ""; + } + + .icon-bars:before { + content: ""; + } + + .icon-battery-empty:before { + content: ""; + } + + .icon-battery-full:before { + content: ""; + } + + .icon-battery-half:before { + content: ""; + } + + .icon-battery-quarter:before { + content: ""; + } + + .icon-beer:before { + content: ""; + } + + .icon-behance:before { + content: ""; + } + + .icon-bell:before { + content: ""; + } + + .icon-bicycle:before { + content: ""; + } + + .icon-birthday-cake:before { + content: ""; + } + + .icon-bolt:before { + content: ""; + } + + .icon-bomb:before { + content: ""; + } + + .icon-book:before { + content: ""; + } + + .icon-bookmark-o:before { + content: ""; + } + + .icon-briefcase:before { + content: ""; + } + + .icon-bug:before { + content: ""; + } + + .icon-bullseye:before { + content: ""; + } + + .icon-calculator:before { + content: ""; + } + + .icon-calendar:before { + content: ""; + } + + .icon-caret-down:before { + content: ""; + } + + .icon-caret-left:before { + content: ""; + } + + .icon-caret-square-o-down:before { + content: ""; + } + + .icon-caret-square-o-left:before { + content: ""; + } + + .icon-caret-square-o-right:before { + content: ""; + } + + .icon-caret-square-o-up:before { + content: ""; + } + + .icon-caret-up:before { + content: ""; + } + + .icon-check:before { + content: ""; + } + + .icon-chevron-down:before { + content: ""; + } + + .icon-chevron-left:before { + content: ""; + } + + .icon-chevron-right:before { + content: ""; + } + + .icon-chevron-up:before { + content: ""; + } + + .icon-circle-o:before { + content: ""; + } + + .icon-clipboard:before { + content: ""; + } + + .icon-clone:before { + content: ""; + } + + .icon-cloud-remove:before { + content: ""; + } + + .icon-cloud-sync:before { + content: ""; + } + + .icon-cloud-upload:before { + content: ""; + } + + .icon-cloud:before { + content: ""; + } + + .icon-code-fork:before { + content: ""; + } + + .icon-code:before { + content: ""; + } + + .icon-coffee:before { + content: ""; + } + + .icon-cog:before { + content: ""; + } + + .icon-cogs:before { + content: ""; + } + + .icon-comment:before { + content: ""; + } + + .icon-comments:before { + content: ""; + } + + .icon-compass:before { + content: ""; + } + + .icon-compress:before { + content: ""; + } + + .icon-cutlery:before { + content: ""; + } + + .icon-dashboard:before { + content: ""; + } + + .icon-database:before { + content: ""; + } + + .icon-delicious:before { + content: ""; + } + + .icon-desktop:before { + content: ""; + } + + .icon-download:before { + content: ""; + } + + .icon-dribble:before { + content: ""; + } + + .icon-edit:before { + content: ""; + } + + .icon-eject:before { + content: ""; + } + + .icon-envelope:before { + content: ""; + } + + .icon-euro:before { + content: ""; + } + + .icon-exchange:before { + content: ""; + } + + .icon-expand:before { + content: ""; + } + + .icon-eye:before { + content: ""; + } + + .icon-eyedropper:before { + content: ""; + } + + .icon-facebook:before { + content: ""; + } + + .icon-female:before { + content: ""; + } + + .icon-file-ai-o:before { + content: ""; + } + + .icon-file-archive-o:before { + content: ""; + } + + .icon-file-css-o:before { + content: ""; + } + + .icon-file-doc-o:before { + content: ""; + } + + .icon-file-eps-o:before { + content: ""; + } + + .icon-file-gif-o:before { + content: ""; + } + + .icon-file-html-o:before { + content: ""; + } + + .icon-file-jpg-o:before { + content: ""; + } + + .icon-file-js-o:before { + content: ""; + } + + .icon-file-minus:before { + content: ""; + } + + .icon-file-o:before { + content: ""; + } + + .icon-file-pdf-o:before { + content: ""; + } + + .icon-file-php-o:before { + content: ""; + } + + .icon-file-png-o:before { + content: ""; + } + + .icon-file-psd-o:before { + content: ""; + } + + .icon-file-text-o:before { + content: ""; + } + + .icon-file-xls-o:before { + content: ""; + } + + .icon-files-o:before { + content: ""; + } + + .icon-film:before { + content: ""; + } + + .icon-filter:before { + content: ""; + } + + .icon-fire:before { + content: ""; + } + + .icon-flag:before { + content: ""; + } + + .icon-flask:before { + content: ""; + } + + .icon-floppy-o:before { + content: ""; + } + + .icon-folder-lock:before { + content: ""; + } + + .icon-folder-minus:before { + content: ""; + } + + .icon-folder-plus:before { + content: ""; + } + + .icon-folder-remove:before { + content: ""; + } + + .icon-font:before { + content: ""; + } + + .icon-frown-o:before { + content: ""; + } + + .icon-futbol-o:before { + content: ""; + } + + .icon-gamepad:before { + content: ""; + } + + .icon-gem:before { + content: ""; + } + + .icon-github:before { + content: ""; + } + + .icon-glass:before { + content: ""; + } + + .icon-globe:before { + content: ""; + } + + .icon-google-plus:before { + content: ""; + } + + .icon-graduation-cap:before { + content: ""; + } + + .icon-hdd-o:before { + content: ""; + } + + .icon-headphones:before { + content: ""; + } + + .icon-heart:before { + content: ""; + } + + .icon-home:before { + content: ""; + } + + .icon-hourglass-half:before { + content: ""; + } + + .icon-industry:before { + content: ""; + } + + .icon-info-circle-o:before { + content: ""; + } + + .icon-info-circle:before { + content: ""; + } + + .icon-instagram:before { + content: ""; + } + + .icon-jpy:before { + content: ""; + } + + .icon-key:before { + content: ""; + } + + .icon-keyboard:before { + content: ""; + } + + .icon-leaf:before { + content: ""; + } + + .icon-life-ring:before { + content: ""; + } + + .icon-lightbulb-o:before { + content: ""; + } + + .icon-line-chart:before { + content: ""; + } + + .icon-link:before { + content: ""; + } + + .icon-linkedin:before { + content: ""; + } + + .icon-list:before { + content: ""; + } + + .icon-location-arrow:before { + content: ""; + } + + .icon-lock:before { + content: ""; + } + + .icon-magic:before { + content: ""; + } + + .icon-magnet:before { + content: ""; + } + + .icon-male:before { + content: ""; + } + + .icon-map-marker:before { + content: ""; + } + + .icon-map-o:before { + content: ""; + } + + .icon-map-signs:before { + content: ""; + } + + .icon-map:before { + content: ""; + } + + .icon-mars:before { + content: ""; + } + + .icon-microphone:before { + content: ""; + } + + .icon-minus-circle:before { + content: ""; + } + + .icon-minus-square-o:before { + content: ""; + } + + .icon-minus:before { + content: ""; + } + + .icon-money:before { + content: ""; + } + + .icon-moon-o:before { + content: ""; + } + + .icon-music:before { + content: ""; + } + + .icon-paint-brush:before { + content: ""; + } + + .icon-paper-plane:before { + content: ""; + } + + .icon-paragraph:before { + content: ""; + } + + .icon-pause:before { + content: ""; + } + + .icon-pencil-22:before { + content: ""; + } + + .icon-pencil-square-o:before { + content: ""; + } + + .icon-pencil:before { + content: ""; + } + + .icon-phone:before { + content: ""; + } + + .icon-picture-o:before { + content: ""; + } + + .icon-pie-chart:before { + content: ""; + } + + .icon-pinterest:before { + content: ""; + } + + .icon-play:before { + content: ""; + } + + .icon-plus-circle-o:before { + content: ""; + } + + .icon-plus-square-o:before { + content: ""; + } + + .icon-plus:before { + content: ""; + } + + .icon-power-off:before { + content: ""; + } + + .icon-question-circle:before { + content: ""; + } + + .icon-question:before { + content: ""; + } + + .icon-quote-right:before { + content: ""; + } + + .icon-random:before { + content: ""; + } + + .icon-refresh:before { + content: ""; + } + + .icon-repeat:before { + content: ""; + } + + .icon-rss:before { + content: ""; + } + + .icon-scissors:before { + content: ""; + } + + .icon-search-minus:before { + content: ""; + } + + .icon-search-plus:before { + content: ""; + } + + .icon-search:before { + content: ""; + } + + .icon-share-alt:before { + content: ""; + } + + .icon-shopping-bag:before { + content: ""; + } + + .icon-shopping-cart:before { + content: ""; + } + + .icon-sign-in:before { + content: ""; + } + + .icon-sign-out:before { + content: ""; + } + + .icon-sitemap:before { + content: ""; + } + + .icon-skype:before { + content: ""; + } + + .icon-sliders:before { + content: ""; + } + + .icon-smile-o:before { + content: ""; + } + + .icon-sort:before { + content: ""; + } + + .icon-space-shuttle:before { + content: ""; + } + + .icon-square-o:before { + content: ""; + } + + .icon-star-half:before { + content: ""; + } + + .icon-star-o:before { + content: ""; + } + + .icon-step-backward:before { + content: ""; + } + + .icon-step-forward:before { + content: ""; + } + + .icon-suitcase:before { + content: ""; + } + + .icon-sun-o:before { + content: ""; + } + + .icon-tag:before { + content: ""; + } + + .icon-television:before { + content: ""; + } + + .icon-terminal:before { + content: ""; + } + + .icon-th-large:before { + content: ""; + } + + .icon-th:before { + content: ""; + } + + .icon-thumb-down:before { + content: ""; + } + + .icon-thumb-tack:before { + content: ""; + } + + .icon-thumbs-o-up:before { + content: ""; + } + + .icon-ticket:before { + content: ""; + } + + .icon-times-circle:before { + content: ""; + } + + .icon-times-square:before { + content: ""; + } + + .icon-times:before { + content: ""; + } + + .icon-tint:before { + content: ""; + } + + .icon-trash:before { + content: ""; + } + + .icon-tree:before { + content: ""; + } + + .icon-trophy:before { + content: ""; + } + + .icon-truck:before { + content: ""; + } + + .icon-twitter:before { + content: ""; + } + + .icon-umbrella:before { + content: ""; + } + + .icon-undo:before { + content: ""; + } + + .icon-unlock:before { + content: ""; + } + + .icon-usb:before { + content: ""; + } + + .icon-usd:before { + content: ""; + } + + .icon-user-minus:before { + content: ""; + } + + .icon-user-plus:before { + content: ""; + } + + .icon-user-star:before { + content: ""; + } + + .icon-user:before { + content: ""; + } + + .icon-users:before { + content: ""; + } + + .icon-venus:before { + content: ""; + } + + .icon-video-camera:before { + content: ""; + } + + .icon-vimeo:before { + content: ""; + } + + .icon-volume-diabled:before { + content: ""; + } + + .icon-volume-down-2:before { + content: ""; + } + + .icon-volume-down:before { + content: ""; + } + + .icon-volume-off:before { + content: ""; + } + + .icon-volume-up:before { + content: ""; + } + + .icon-warning:before { + content: ""; + } + + .icon-weather:before { + content: ""; + } + + .icon-webcam:before { + content: ""; + } + + .icon-wifi:before { + content: ""; + } + + .icon-windows:before { + content: ""; + } + + .icon-wrench:before { + content: ""; + } \ No newline at end of file diff --git a/landingpage/assets/css/main.css b/landingpage/assets/css/main.css new file mode 100644 index 0000000000000000000000000000000000000000..30971b59919da4c011089007a7369c526f743fc0 --- /dev/null +++ b/landingpage/assets/css/main.css @@ -0,0 +1,8 @@ +@charset "UTF-8"; +@import "variables.css"; +@import "icons.css"; +@import "chatbot.css"; +@import "theme.css"; +@import "responsive.css"; +@import "animations.css"; +@import "faq.css"; \ No newline at end of file diff --git a/landingpage/assets/css/responsive.css b/landingpage/assets/css/responsive.css new file mode 100644 index 0000000000000000000000000000000000000000..4d3c399c03734a0e9808ad082dcd8ef7f3e93388 --- /dev/null +++ b/landingpage/assets/css/responsive.css @@ -0,0 +1,330 @@ +/* mobile */ +@media(max-width: 767px){ + + body { + + } + + h1 { + font-size: 2rem; + margin: 1rem 0; + text-align: center; + + } + + h2 { + font-size: 2rem; + + } + + .container { + width: 100%; + margin: 0; + } + + .section { + margin: 0; + } + + .section--kimi > .container > p { + text-align: center; + } + + hr { + width: 100%; + } + + .main-nav { + padding: 1rem 0; + height: 10rem; + margin-bottom: 1rem; + } + + .main-nav__languages { + margin: 0; + } + + .container > * { + width: 100%; + margin: 0 !important; + } + + .info-article--video { + margin: 1rem 0 !important; + } + + .main-nav > .container > * { + width: auto; + } + + .main-header { + height: calc(100vh + var(--header-waves-height)); + } + + .main-header__heading { + padding: 2rem 0 2rem 0; + } + + .kimi-teaser__input { + display: none; + } + + .section--links .container { + padding-bottom: 2rem; + } + + /* links */ + .links:after { + content: 'flickity'; + display: none; + } + + .link { + text-align: center; + width: 100%; + margin: 1em; + } + + .gallery-cell { + width: 100%; + } + + .link__thumbnail { + display: inline-block; + height: 6em; + opacity: .8; + } + + /* chatbot */ + .chatbot { + position: fixed; + margin: 0; + padding: 1rem; + bottom: 0; + right: 0; + width: 100%; + } + + .chatbot__bubble { + width: 20vw; + height: 20vw; + margin: 1rem; + bottom: 0; + } + + .chat__footer { + padding:.5rem; + } + + .chat__header { + padding: 1rem; + } + + .chat__input { + display: inline-block; + flex: 1; + min-width: 10px; + } + + .chat__dialogue { + padding: 0 .5rem; + } + + .chat { + position: relative; + border-radius: .5rem; + padding: 0; + font-size: 10pt; + height: calc(100vh - 2rem); + right: 0; + margin: 0; + width: 100%; + min-width: 100%; + z-index: 1000; + } + + .chat__dialogue__question, .chat__dialogue__answer { + padding: .5 em; + } + + .chat::before { + display:none; + } + + /* kimi-faq questions */ + .kimi-faq__questions { + width: 100%; + padding: 0; + } + + .kimi-faq__question { + padding: .8rem; + } + + .kimi-faq__avatar { + width: 30%; + display: block; + margin-left: auto; + margin-right: auto; + float: none; + padding: 0; + } + + .footer-item{ + width: 100%; + padding: 0; + display: block; + } + + .footer-item__links{ + padding: 0; + } +} + +/* tablet */ +@media (min-width: 767px) and (max-width: 1279px) { + + h1 { + font-size: 2.5rem; + margin: 1rem 0; + text-align: center; + + } + + h2 { + font-size: 2.5rem; + + } + + .section { + padding: 1rem; + } + + .container { + width: 100%; + } + + .main-nav { + padding: 1rem; + height: 8rem; + } + + .info-article { + margin: 1rem !important; + } + + .main-header__teaser { + font-size: 10pt; + } + + .kimi-teaser__input { + padding: 0; + } + + .kimi-teaser__input > input[type="text"] { + font-size: 1em; + padding: .5em; + } + + + .link { + padding: 1rem 0; + } + + /* kimi-faq questions */ + .kimi-faq{ + width: 70%; + margin-left: auto; + margin-right: auto; + padding: 0 1rem; + } + + .kimi-faq__questions { + width: 70%; + padding: .8rem; + padding-left: 3rem; + } + + .kimi-faq__question { + padding: .8rem; + } + + .kimi-faq__avatar { + width: 30%; + display: block; + margin: auto; + margin-top: 2rem; + float: left; + padding: 0; + } + + /* chatbot */ + .chatbot { + position: fixed; + display: flex; + flex-direction: row; + justify-content: flex-end; + align-items: flex-end; + margin: 0; + bottom: 0; + padding: 1rem; + right: 0; + width: 100%; + } + + .chatbot__bubble { + position: static; + width: 20vw; + height: 20vw; + margin: 1rem; + bottom: 0; + right: 0; + } + + .chat__footer { + padding: .5rem; + } + + .chat__header { + padding: 1rem; + } + + .chat__input { + display: inline-block; + flex: 1; + min-width: 10px; + } + + .chat__dialogue { + padding: 0 .5rem; + } + + .chat { + position: static; + flex: auto; + margin: 0; + left: 0; + bottom: 0; + height: calc(100vh - 2rem); + max-height: 800px; + } + /* + .chat { + position: relative; + border-radius: .5rem; + padding: 0; + font-size: 10pt; + height: calc(100vh - 2rem); + margin: 0; + width: 100%; + min-width: 100%; + z-index: 1000; + right: 3em; + }*/ + + .chat::before { + display:none; + } + + +} \ No newline at end of file diff --git a/landingpage/assets/css/theme.css b/landingpage/assets/css/theme.css new file mode 100644 index 0000000000000000000000000000000000000000..9171527a9d090c0d4e74c670e28335f8e6961faf --- /dev/null +++ b/landingpage/assets/css/theme.css @@ -0,0 +1,495 @@ +@charset "UTF-8"; +@import 'variables.css'; + +* { + box-sizing: border-box; +} + +html { + height: 100%; +} + +body { + height: 100%; + font-family: 'Roboto', sans-serif; + font-size: 14pt; + margin: 0; + color: var(--text-font-color); + +} + +h1,h2,h3,h4,h5,h6 { + color: var(--heading-font-color); +} + +h1 { + font-family: 'Robot', sans-serif; + font-size: 3rem; +} + +h2 { + font-family: 'Indie Flower', cursive; + font-size: 3.5rem; + margin: 0 0 2rem 0; +} + +h3 { + font-family: 'Robot', sans-serif; + font-size: 3rem; + margin: 0 0 1rem 0; +} + +p { + overflow-wrap: break-word; +} + +hr { + width: var(--container-width); + margin-left: auto; + margin-right: auto; +} + +a, a:visited { + color: var(--text-font-color); + text-decoration: none; +} + +a:active, a:hover { + color: var(--primary-color); +} + +.section{ + padding: var(--section-top-bottom-padding) 0; +} + +.section:nth-of-type(even) { + background: var(--section-secondary-bg-color); +} + +.section h2 { + text-align: center; +} + +.container { + width: var(--container-width); + margin: auto; + padding: 1em; + overflow: hidden; +} + +.container--flex { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; +} + +.container--flex--space { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.highlighted { + border:solid 5px var(--primary-color); + border-top-left-radius: 255px 15px; + border-top-right-radius: 15px 225px; + border-bottom-right-radius: 225px 15px; + border-bottom-left-radius:15px 255px; + box-shadow:2px 8px 4px -6px rgb(0,0,0,.1); +} + +.highlighted--thin { + border:solid 3px var(--primary-color); +} + +/* Header */ +.main-header { + position: relative; + background-color: rgb(147, 204, 222); + background-image: url("../images/d14.png"); + background-repeat: no-repeat; + background-size: cover; + display: flex; + flex-direction: column; + background-position: 0% 50%; +} + +.main-header h1 { + color: white; + text-shadow: -1px 0 var(--text-font-color), 0 1px var(--text-font-color), 1px 0 var(--text-font-color), 0 -1px var(--text-font-color); +} + +.main-header a { + color:white; +} + +.main-header a:active, .main-header a:hover { + color: var(--primary-color); +} + +.main-nav { + width: 100%; + height: 14rem; + padding: 2rem 3rem; + margin-bottom: 1rem; +} + +.main-nav .container { + height: 100%; +} + +.brand { + position: relative; + height: 100%; + width: auto; + display: inline-block; + +} + +.main-nav__languages { + display: block; + float: right; + list-style: none; + font-size: 1rem; + text-decoration: none; +} + +.main-nav__languages > li { + display: inline-block; + padding: 0; + margin: 0; +} + +.main-nav__languages > li::after { + content: "|"; + display: inline-block; + padding: 0 .5rem; +} + +.main-nav__languages > li:last-of-type::after { + content: ""; + display: inline-block; + padding: 0; +} + +.main-header__heading { + height: auto; + width: 50%; + padding-right: 3em; + margin-top: 1em; + align-self: flex-start; +} + +.main-header__heading > h1 { + + margin-top:-1.5rem; + margin-bottom: 1rem; + color: white; + text-shadow: -1.5px 0 1.5px var(--text-font-color), + -1.5px -1.5px 1.5px var(--text-font-color), + -1.5px 1.5px 1.5px var(--text-font-color), + + 1.5px 0 1.5px var(--text-font-color), + 1.5px -1.5px 1.5px var(--text-font-color), + 1.5px 1.5px 2px var(--text-font-color); +} + +.main-header__heading > img { + margin-left: -1rem; +} + +.main-header__teaser { + width: 50%; + height: auto; + text-align: right; +} + +.section--teaser { + padding:0; + flex: auto; +} + +.section--teaser .container { + padding: 0 1rem; +} + +.section--links .container{ + width:100%; +} + +.kimi-teaser{ + padding: 0; +} + +.kimi-teaser__image { + display: block; + max-width: 24%; + height: auto; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; +} + +.kimi-teaser__input{ + width: 100%; + padding: .5rem; + display: flex; + flex-direction: row; + align-items: center; +} + + + +.kimi-teaser__input > input[type="text"]{ + background: white; + flex: auto; + margin-right: .5rem; + padding:1rem 1rem; + color:var(--text-font-color); + text-decoration: none; + font-size:1rem; + letter-spacing:1px; + outline:none; + opacity: .88; + border:solid 2px var(--text-font-color); + box-shadow:2px 8px 4px -6px rgb(0,0,0,.2); + border-top-left-radius: 255px 15px; + border-top-right-radius: 15px 225px; + border-bottom-right-radius: 225px 15px; + border-bottom-left-radius:15px 255px; + transition: .5s ease-in-out; +} + +.kimi-teaser__input > input[type="text"]::placeholder{ + color: var(--text-font-color); + opacity: .6; +} + +.kimi-teaser__input > input[type="text"]:hover { + cursor: pointer; + border-color: var(--primary-color); +} + +.kimi-teaser__input > input[type="text"]:focus { + border-color: var(--primary-color); + opacity: 1.0; + cursor: text; +} + +.main-header__footer { + overflow: hidden; + height: var(--header-waves-height); + width: 100%; + margin-bottom: -1px; /* ipad gap hack */ +} + +.main-header__footer__waves { + height: 100%; + width: 100%; +} + +/* main */ +/* info section */ +.section--introduction { +} + +.section--introduction .container > h2 { + display: none; +} + +.info-article { + padding: 1em; + display: inline-block; + align-self: center; + min-width: 25%; + margin: 0 0 2rem 0; +} + +.info-article:nth-of-type(5n), .info-article:first-of-type { + margin-right: 6rem; +} + +.info-article:nth-of-type(4n) { + margin-left: 6rem; +} + +.info-article--text { + width: 50%; + text-align: justify; +} + +.info-article h2 { + text-align: left; +} + +.info-article--video { + flex: auto; +} + +.info-article__media { + position: relative; + height: auto; + padding-top: 0; + overflow: hidden; + padding-bottom: 56.25%; +} + +.info-article__media--youtube { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +/* links */ +.section--links { + +} + +.links { + list-style: none; + text-align: center; +} + +/* hide flickity on desktop */ +.links:after { + content: ''; + display: none; +} + +.link { + display: inline-block; +} + +.link__thumbnail { + height: 5em; + margin-left: 1.5em; + margin-right: 1.5em; + opacity: .8; + transform: scale(.9); + transition: .5s ease; +} + +.link__thumbnail:hover{ + cursor: pointer; + transform: scale(1.0); + opacity: 1.0; + transition: .5s ease; +} + +/* FAQ */ +.section--faq { + +} + + +/* kimi */ +.section--kimi { + +} + +.kimi-faq { + width: 60%; +} + +.kimi-faq__questions { + display: inline-block; + padding: 1em; + padding-left: 3em; + width: 60%; +} + +.kimi-faq__question { + margin-bottom: 2em; +} + +.kimi-faq__question:hover { + background-color: var(--primary-color); + background-image: linear-gradient(to top, var(--bubble-primary-color), var(--bubble-secondary-color)); + color: white; + cursor: pointer; + transform: scale(1.05); + transition: .25s linear; + +} + +.kimi-faq__question:hover::before { + content: ''; + position: absolute; + width: 0; + height: 0; + top: 100%; + left: 1.5em; + border: .75rem solid transparent; + border-bottom: none; + border-top-color: var(--bubble-primary-color); + filter: drop-shadow(0.1rem 0.0625rem 0.0525rem rgba(0, 0, 0, 0.3)); + +} + +.kimi-faq__avatar { + width: 40%; + height: auto; + float: left; + padding: 1em; +} + +.kimi-faq__description { + clear: both; +} + +/* footer */ +.main-footer { + width: 100%; + background-color: var(--main-footer-bg-color); +} + +.main-footer { + color: lightgrey !important; +} + +.footer-item { + color: lightgrey; + padding: 2em; +} + +.main-footer h3 { + color: lightgrey; +} + +.footer-item__links { + list-style: none; +} + +.main-footer a { + color: lightgrey; +} + +.question-answer-block{ + width:75%; + margin: auto; +} +.plus-button{ + margin-left: 1.5em; + display: inline-block; + background-color: transparent; + vertical-align:middle; + border-radius: 50%; + +} +.question h2{ + display: inline-block; + text-align: center; + margin: 0; + vertical-align: middle; +} +.answer{ + display: block; + font-weight: bold; + text-align: center; + color:black; + padding-top:20px; + padding-bottom: 30px; +} diff --git a/assets/css/variables.css b/landingpage/assets/css/variables.css similarity index 70% rename from assets/css/variables.css rename to landingpage/assets/css/variables.css index 4517e75644d29ea5c6e9fbbc7e7f1c27f72f3092..4ad66c7f7d05b63ca50a3fa62b77bb15941e58ac 100644 --- a/assets/css/variables.css +++ b/landingpage/assets/css/variables.css @@ -5,16 +5,21 @@ --text-font-color: #717171; --heading-font-color: #282828; --primary-color: #f0570a; - --section-bg-color: white; - --section-top-bottom-margin: 4rem; + --bubble-secondary-color: #f0570a; + --bubble-primary-color: #ffa77a; --main-footer-bg-color: #343a40; --container-width: 1280px; --speech-bubble-bg-color: white; - --section-padding: 2em; --chatbot-bubble-size: 100px; --chatbot-window-bg-color: lightgrey; --answer-bg-color: white; --question-bg-color: white; --question-text-color: black; --answer-text-color: black; -} \ No newline at end of file + + --section-top-bottom-padding: 3rem; + --section-bg-color: white; + --section-secondary-bg-color: #E0F8F7; + + --header-waves-height: 110px; +} diff --git a/landingpage/assets/csv/faq.csv b/landingpage/assets/csv/faq.csv new file mode 100644 index 0000000000000000000000000000000000000000..016263868d026f297deb60cd4ce1f9be740db884 --- /dev/null +++ b/landingpage/assets/csv/faq.csv @@ -0,0 +1,5 @@ +Wie lange dauert das Studium?#Die Regelstudienzeit für den Studiengang Informatik, Kommunikation und Medien in der Informatik ist 6 Semestern.; +In Welcher Sprache wird unterrichtet?#Alle Modulen des Studiengangs sind auf Deutsch. Einzelne Module werden auch in englischer Sprache angeboten.; +Wo finden die Vorlesungen statt?#Die meisten Module des Studiengangs finden auf dem Hauptcampus Darmstadt statt. Einige Wahlpflichtmodule werden in Dieburg angeboten.; +Gibt es einen Numerus Clausus?#Der Studiengang Informatik, Kommunikation und Medien in der Informatik ist NC-freier Studiengang, es besteht Keine Zulassungsbeschränkung.; +Wo kann ich mich bewerben?#Persönlich beim Student Service Center Schöfferstraße 3 (Besuchsadresse) oder per Post an: Haardtring 100 (Postadresse) 64295 Darmstadt \ No newline at end of file diff --git a/landingpage/assets/fonts/LICENSE b/landingpage/assets/fonts/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..670154e3538863b2d9891fd5483160fbdfc89164 --- /dev/null +++ b/landingpage/assets/fonts/LICENSE @@ -0,0 +1,116 @@ +CC0 1.0 Universal + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator and +subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the +purpose of contributing to a commons of creative, cultural and scientific +works ("Commons") that the public can reliably and without fear of later +claims of infringement build upon, modify, incorporate in other works, reuse +and redistribute as freely as possible in any form whatsoever and for any +purposes, including without limitation commercial purposes. These owners may +contribute to the Commons to promote the ideal of a free culture and the +further production of creative, cultural and scientific works, or to gain +reputation or greater distribution for their Work in part through the use and +efforts of others. + +For these and/or other purposes and motivations, and without any expectation +of additional consideration or compensation, the person associating CC0 with a +Work (the "Affirmer"), to the extent that he or she is an owner of Copyright +and Related Rights in the Work, voluntarily elects to apply CC0 to the Work +and publicly distribute the Work under its terms, with knowledge of his or her +Copyright and Related Rights in the Work and the meaning and intended legal +effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not limited +to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, + and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness + depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in + a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation thereof, + including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world + based on applicable law or treaty, and any national implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention of, +applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and +unconditionally waives, abandons, and surrenders all of Affirmer's Copyright +and Related Rights and associated claims and causes of action, whether now +known or unknown (including existing as well as future claims and causes of +action), in the Work (i) in all territories worldwide, (ii) for the maximum +duration provided by applicable law or treaty (including future time +extensions), (iii) in any current or future medium and for any number of +copies, and (iv) for any purpose whatsoever, including without limitation +commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes +the Waiver for the benefit of each member of the public at large and to the +detriment of Affirmer's heirs and successors, fully intending that such Waiver +shall not be subject to revocation, rescission, cancellation, termination, or +any other legal or equitable action to disrupt the quiet enjoyment of the Work +by the public as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason be +judged legally invalid or ineffective under applicable law, then the Waiver +shall be preserved to the maximum extent permitted taking into account +Affirmer's express Statement of Purpose. In addition, to the extent the Waiver +is so judged Affirmer hereby grants to each affected person a royalty-free, +non transferable, non sublicensable, non exclusive, irrevocable and +unconditional license to exercise Affirmer's Copyright and Related Rights in +the Work (i) in all territories worldwide, (ii) for the maximum duration +provided by applicable law or treaty (including future time extensions), (iii) +in any current or future medium and for any number of copies, and (iv) for any +purpose whatsoever, including without limitation commercial, advertising or +promotional purposes (the "License"). The License shall be deemed effective as +of the date CC0 was applied by Affirmer to the Work. Should any part of the +License for any reason be judged legally invalid or ineffective under +applicable law, such partial invalidity or ineffectiveness shall not +invalidate the remainder of the License, and in such case Affirmer hereby +affirms that he or she will not (i) exercise any of his or her remaining +Copyright and Related Rights in the Work or (ii) assert any associated claims +and causes of action with respect to the Work, in either case contrary to +Affirmer's express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties + of any kind concerning the Work, express, implied, statutory or otherwise, + including without limitation warranties of title, merchantability, fitness + for a particular purpose, non infringement, or the absence of latent or + other defects, accuracy, or the present or absence of errors, whether or not + discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without limitation + any person's Copyright and Related Rights in the Work. Further, Affirmer + disclaims responsibility for obtaining any necessary consents, permissions + or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to this + CC0 or use of the Work. + +For more information, please see +<http://creativecommons.org/publicdomain/zero/1.0/> diff --git a/landingpage/assets/fonts/README b/landingpage/assets/fonts/README new file mode 100644 index 0000000000000000000000000000000000000000..0fa5cdfbf4bfc034684dd57efcf2fea518a2fcd4 --- /dev/null +++ b/landingpage/assets/fonts/README @@ -0,0 +1,2 @@ +The icons are taken from https://github.com/fxaeberhard/handdrawn.css. +Thanks to Francois-Xavier Aeberhard for putting the fonts under CC0 1.0 Universal license. License file is copied from original project repo. diff --git a/landingpage/assets/fonts/icons.eot b/landingpage/assets/fonts/icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..462498b217d638f18b241136668c4eed9159145b Binary files /dev/null and b/landingpage/assets/fonts/icons.eot differ diff --git a/landingpage/assets/fonts/icons.ttf b/landingpage/assets/fonts/icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e3cbd996f37270b1e33618a6fa4bf26056375b0e Binary files /dev/null and b/landingpage/assets/fonts/icons.ttf differ diff --git a/landingpage/assets/fonts/icons.woff b/landingpage/assets/fonts/icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..455230a49167db30761721400fd3062da03b3cf3 Binary files /dev/null and b/landingpage/assets/fonts/icons.woff differ diff --git a/landingpage/assets/images/GitLab_Logo.svg.png b/landingpage/assets/images/GitLab_Logo.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..15a128e5694896d4890f4a8acd8cc2e88c853062 Binary files /dev/null and b/landingpage/assets/images/GitLab_Logo.svg.png differ diff --git a/landingpage/assets/images/d14.png b/landingpage/assets/images/d14.png new file mode 100644 index 0000000000000000000000000000000000000000..a5c6db4770cd05ae425115aeb76f36ede718f2f0 Binary files /dev/null and b/landingpage/assets/images/d14.png differ diff --git a/landingpage/assets/images/dc.png b/landingpage/assets/images/dc.png new file mode 100644 index 0000000000000000000000000000000000000000..acec4f3662dd4a5bf7a4c029ebf317ba68b76747 Binary files /dev/null and b/landingpage/assets/images/dc.png differ diff --git a/landingpage/assets/images/fbiLogo.png b/landingpage/assets/images/fbiLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..11fb916654a2a63ba6987622ca25a0b2b0c1417f Binary files /dev/null and b/landingpage/assets/images/fbiLogo.png differ diff --git a/landingpage/assets/images/hda-logo.png b/landingpage/assets/images/hda-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..444262ea2d9f4db54e93708d0a56658cc20107cc Binary files /dev/null and b/landingpage/assets/images/hda-logo.png differ diff --git a/landingpage/assets/images/head-accent.png b/landingpage/assets/images/head-accent.png new file mode 100644 index 0000000000000000000000000000000000000000..a76ed301d765695f753a192b5d6a25981ae2fac1 Binary files /dev/null and b/landingpage/assets/images/head-accent.png differ diff --git a/landingpage/assets/images/head-accent2.png b/landingpage/assets/images/head-accent2.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bff8656dae96edd78cc98c8915276e0573f127 Binary files /dev/null and b/landingpage/assets/images/head-accent2.png differ diff --git a/landingpage/assets/images/header-bg.png b/landingpage/assets/images/header-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..de0964086e990a6762a40ea577f1eb645cdac43f Binary files /dev/null and b/landingpage/assets/images/header-bg.png differ diff --git a/assets/images/kimi/bubble_active.png b/landingpage/assets/images/kimi/bubble_active.png similarity index 100% rename from assets/images/kimi/bubble_active.png rename to landingpage/assets/images/kimi/bubble_active.png diff --git a/assets/images/kimi/bubble_inactive.png b/landingpage/assets/images/kimi/bubble_inactive.png similarity index 100% rename from assets/images/kimi/bubble_inactive.png rename to landingpage/assets/images/kimi/bubble_inactive.png diff --git a/landingpage/assets/images/kimi/confused.png b/landingpage/assets/images/kimi/confused.png new file mode 100644 index 0000000000000000000000000000000000000000..90be8c8f4b8168682379ae118f3863cd90e043ff Binary files /dev/null and b/landingpage/assets/images/kimi/confused.png differ diff --git a/landingpage/assets/images/kimi/curious.png b/landingpage/assets/images/kimi/curious.png new file mode 100644 index 0000000000000000000000000000000000000000..1914d378297b67ea9334a063d842a1d6e85b31a2 Binary files /dev/null and b/landingpage/assets/images/kimi/curious.png differ diff --git a/landingpage/assets/images/kimi/friendly.png b/landingpage/assets/images/kimi/friendly.png new file mode 100644 index 0000000000000000000000000000000000000000..399c9a3e90e51ab5d9104b1b5b3be03ddf924a93 Binary files /dev/null and b/landingpage/assets/images/kimi/friendly.png differ diff --git a/landingpage/assets/images/kimi/glad.png b/landingpage/assets/images/kimi/glad.png new file mode 100644 index 0000000000000000000000000000000000000000..9829b803d573e5e07e0d5418090b9748dc144470 Binary files /dev/null and b/landingpage/assets/images/kimi/glad.png differ diff --git a/landingpage/assets/images/kimi/happy.png b/landingpage/assets/images/kimi/happy.png new file mode 100644 index 0000000000000000000000000000000000000000..36fb035bc5a78da9c9a6232b5b6f38c43349ac30 Binary files /dev/null and b/landingpage/assets/images/kimi/happy.png differ diff --git a/landingpage/assets/images/kimi/sad.png b/landingpage/assets/images/kimi/sad.png new file mode 100644 index 0000000000000000000000000000000000000000..11fc5c46118f0b239e70fb05903114fe9b04e504 Binary files /dev/null and b/landingpage/assets/images/kimi/sad.png differ diff --git a/landingpage/assets/images/kimi/winking.png b/landingpage/assets/images/kimi/winking.png new file mode 100644 index 0000000000000000000000000000000000000000..ae22b12279b008a6b1c5dc25752b7e6a650014a5 Binary files /dev/null and b/landingpage/assets/images/kimi/winking.png differ diff --git a/landingpage/assets/images/moodleLogo.png b/landingpage/assets/images/moodleLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..04e561a1a808cfe9177bcdfad2dde33547e035e9 Binary files /dev/null and b/landingpage/assets/images/moodleLogo.png differ diff --git a/landingpage/assets/images/obs_standart.png b/landingpage/assets/images/obs_standart.png new file mode 100644 index 0000000000000000000000000000000000000000..e18eb0b32e02f1c8f8ee0a6eb530c9d9a0374ba2 Binary files /dev/null and b/landingpage/assets/images/obs_standart.png differ diff --git a/landingpage/assets/images/placeholder.png b/landingpage/assets/images/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..53ae29217e5347a6106d2078cff3783ed3872a68 Binary files /dev/null and b/landingpage/assets/images/placeholder.png differ diff --git a/landingpage/assets/images/qis_standart.png b/landingpage/assets/images/qis_standart.png new file mode 100644 index 0000000000000000000000000000000000000000..b3dc783a2dd8b86982879fd5d396a53f92157149 Binary files /dev/null and b/landingpage/assets/images/qis_standart.png differ diff --git a/landingpage/assets/images/roundcube.png b/landingpage/assets/images/roundcube.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5540996b0c72637a7ccb2f82eb00faaeea132f Binary files /dev/null and b/landingpage/assets/images/roundcube.png differ diff --git a/landingpage/assets/js/flickity.pkgd.min.js b/landingpage/assets/js/flickity.pkgd.min.js new file mode 100644 index 0000000000000000000000000000000000000000..4a42c10f072cc2bbbc22ae6ff8ec3deef87c9233 --- /dev/null +++ b/landingpage/assets/js/flickity.pkgd.min.js @@ -0,0 +1,12 @@ +/*! + * Flickity PACKAGED v2.2.1 + * Touch, responsive, flickable carousels + * + * Licensed GPLv3 for open source use + * or Flickity Commercial License for commercial use + * + * https://flickity.metafizzy.co + * Copyright 2015-2019 Metafizzy + */ + +!function(e,i){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("jquery")):e.jQueryBridget=i(e,e.jQuery)}(window,function(t,e){"use strict";var i=Array.prototype.slice,n=t.console,d=void 0===n?function(){}:function(t){n.error(t)};function s(h,s,c){(c=c||e||t.jQuery)&&(s.prototype.option||(s.prototype.option=function(t){c.isPlainObject(t)&&(this.options=c.extend(!0,this.options,t))}),c.fn[h]=function(t){return"string"==typeof t?function(t,o,r){var a,l="$()."+h+'("'+o+'")';return t.each(function(t,e){var i=c.data(e,h);if(i){var n=i[o];if(n&&"_"!=o.charAt(0)){var s=n.apply(i,r);a=void 0===a?s:a}else d(l+" is not a valid method")}else d(h+" not initialized. Cannot call methods, i.e. "+l)}),void 0!==a?a:t}(this,t,i.call(arguments,1)):(function(t,n){t.each(function(t,e){var i=c.data(e,h);i?(i.option(n),i._init()):(i=new s(e,n),c.data(e,h,i))})}(this,t),this)},o(c))}function o(t){!t||t&&t.bridget||(t.bridget=s)}return o(e||t.jQuery),s}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],s=0;s<i.length;s++){var o=i[s];n&&n[o]&&(this.off(t,o),delete n[o]),o.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function m(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}var i="undefined"==typeof console?function(){}:function(t){console.error(t)},y=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],b=y.length;function E(t){var e=getComputedStyle(t);return e||i("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}var S,C=!1;function x(t){if(function(){if(!C){C=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var e=document.body||document.documentElement;e.appendChild(t);var i=E(t);S=200==Math.round(m(i.width)),x.isBoxSizeOuter=S,e.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var e=E(t);if("none"==e.display)return function(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<b;e++){t[y[e]]=0}return t}();var i={};i.width=t.offsetWidth,i.height=t.offsetHeight;for(var n=i.isBorderBox="border-box"==e.boxSizing,s=0;s<b;s++){var o=y[s],r=e[o],a=parseFloat(r);i[o]=isNaN(a)?0:a}var l=i.paddingLeft+i.paddingRight,h=i.paddingTop+i.paddingBottom,c=i.marginLeft+i.marginRight,d=i.marginTop+i.marginBottom,u=i.borderLeftWidth+i.borderRightWidth,f=i.borderTopWidth+i.borderBottomWidth,p=n&&S,g=m(e.width);!1!==g&&(i.width=g+(p?0:l+u));var v=m(e.height);return!1!==v&&(i.height=v+(p?0:h+f)),i.innerWidth=i.width-(l+u),i.innerHeight=i.height-(h+f),i.outerWidth=i.width+c,i.outerHeight=i.height+d,i}}return x}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var i=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i]+"MatchesSelector";if(t[n])return n}}();return function(t,e){return t[i](e)}}),function(e,i){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("desandro-matches-selector")):e.fizzyUIUtils=i(e,e.matchesSelector)}(window,function(h,o){var c={extend:function(t,e){for(var i in e)t[i]=e[i];return t},modulo:function(t,e){return(t%e+e)%e}},e=Array.prototype.slice;c.makeArray=function(t){return Array.isArray(t)?t:null==t?[]:"object"==typeof t&&"number"==typeof t.length?e.call(t):[t]},c.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},c.getParent=function(t,e){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,o(t,e))return t},c.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},c.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},c.filterFindElements=function(t,n){t=c.makeArray(t);var s=[];return t.forEach(function(t){if(t instanceof HTMLElement)if(n){o(t,n)&&s.push(t);for(var e=t.querySelectorAll(n),i=0;i<e.length;i++)s.push(e[i])}else s.push(t)}),s},c.debounceMethod=function(t,e,n){n=n||100;var s=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,i=this;this[o]=setTimeout(function(){s.apply(i,e),delete i[o]},n)}},c.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},c.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var d=h.console;return c.htmlInit=function(a,l){c.docReady(function(){var t=c.toDashed(l),s="data-"+t,e=document.querySelectorAll("["+s+"]"),i=document.querySelectorAll(".js-"+t),n=c.makeArray(e).concat(c.makeArray(i)),o=s+"-options",r=h.jQuery;n.forEach(function(e){var t,i=e.getAttribute(s)||e.getAttribute(o);try{t=i&&JSON.parse(i)}catch(t){return void(d&&d.error("Error parsing "+s+" on "+e.className+": "+t))}var n=new a(e,t);r&&r.data(e,l,n)})})},c}),function(e,i){"function"==typeof define&&define.amd?define("flickity/js/cell",["get-size/get-size"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("get-size")):(e.Flickity=e.Flickity||{},e.Flickity.Cell=i(e,e.getSize))}(window,function(t,e){function i(t,e){this.element=t,this.parent=e,this.create()}var n=i.prototype;return n.create=function(){this.element.style.position="absolute",this.element.setAttribute("aria-hidden","true"),this.x=0,this.shift=0},n.destroy=function(){this.unselect(),this.element.style.position="";var t=this.parent.originSide;this.element.style[t]=""},n.getSize=function(){this.size=e(this.element)},n.setPosition=function(t){this.x=t,this.updateTarget(),this.renderPosition(t)},n.updateTarget=n.setDefaultTarget=function(){var t="left"==this.parent.originSide?"marginLeft":"marginRight";this.target=this.x+this.size[t]+this.size.width*this.parent.cellAlign},n.renderPosition=function(t){var e=this.parent.originSide;this.element.style[e]=this.parent.getPositionValue(t)},n.select=function(){this.element.classList.add("is-selected"),this.element.removeAttribute("aria-hidden")},n.unselect=function(){this.element.classList.remove("is-selected"),this.element.setAttribute("aria-hidden","true")},n.wrapShift=function(t){this.shift=t,this.renderPosition(this.x+this.parent.slideableWidth*t)},n.remove=function(){this.element.parentNode.removeChild(this.element)},i}),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/slide",e):"object"==typeof module&&module.exports?module.exports=e():(t.Flickity=t.Flickity||{},t.Flickity.Slide=e())}(window,function(){"use strict";function t(t){this.parent=t,this.isOriginLeft="left"==t.originSide,this.cells=[],this.outerWidth=0,this.height=0}var e=t.prototype;return e.addCell=function(t){if(this.cells.push(t),this.outerWidth+=t.size.outerWidth,this.height=Math.max(t.size.outerHeight,this.height),1==this.cells.length){this.x=t.x;var e=this.isOriginLeft?"marginLeft":"marginRight";this.firstMargin=t.size[e]}},e.updateTarget=function(){var t=this.isOriginLeft?"marginRight":"marginLeft",e=this.getLastCell(),i=e?e.size[t]:0,n=this.outerWidth-(this.firstMargin+i);this.target=this.x+this.firstMargin+n*this.parent.cellAlign},e.getLastCell=function(){return this.cells[this.cells.length-1]},e.select=function(){this.cells.forEach(function(t){t.select()})},e.unselect=function(){this.cells.forEach(function(t){t.unselect()})},e.getCellElements=function(){return this.cells.map(function(t){return t.element})},t}),function(e,i){"function"==typeof define&&define.amd?define("flickity/js/animate",["fizzy-ui-utils/utils"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("fizzy-ui-utils")):(e.Flickity=e.Flickity||{},e.Flickity.animatePrototype=i(e,e.fizzyUIUtils))}(window,function(t,e){var i={startAnimation:function(){this.isAnimating||(this.isAnimating=!0,this.restingFrames=0,this.animate())},animate:function(){this.applyDragForce(),this.applySelectedAttraction();var t=this.x;if(this.integratePhysics(),this.positionSlider(),this.settle(t),this.isAnimating){var e=this;requestAnimationFrame(function(){e.animate()})}},positionSlider:function(){var t=this.x;this.options.wrapAround&&1<this.cells.length&&(t=e.modulo(t,this.slideableWidth),t-=this.slideableWidth,this.shiftWrapCells(t)),this.setTranslateX(t,this.isAnimating),this.dispatchScrollEvent()},setTranslateX:function(t,e){t+=this.cursorPosition,t=this.options.rightToLeft?-t:t;var i=this.getPositionValue(t);this.slider.style.transform=e?"translate3d("+i+",0,0)":"translateX("+i+")"},dispatchScrollEvent:function(){var t=this.slides[0];if(t){var e=-this.x-t.target,i=e/this.slidesWidth;this.dispatchEvent("scroll",null,[i,e])}},positionSliderAtSelected:function(){this.cells.length&&(this.x=-this.selectedSlide.target,this.velocity=0,this.positionSlider())},getPositionValue:function(t){return this.options.percentPosition?.01*Math.round(t/this.size.innerWidth*1e4)+"%":Math.round(t)+"px"},settle:function(t){this.isPointerDown||Math.round(100*this.x)!=Math.round(100*t)||this.restingFrames++,2<this.restingFrames&&(this.isAnimating=!1,delete this.isFreeScrolling,this.positionSlider(),this.dispatchEvent("settle",null,[this.selectedIndex]))},shiftWrapCells:function(t){var e=this.cursorPosition+t;this._shiftCells(this.beforeShiftCells,e,-1);var i=this.size.innerWidth-(t+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i,1)},_shiftCells:function(t,e,i){for(var n=0;n<t.length;n++){var s=t[n],o=0<e?i:0;s.wrapShift(o),e-=s.size.outerWidth}},_unshiftCells:function(t){if(t&&t.length)for(var e=0;e<t.length;e++)t[e].wrapShift(0)},integratePhysics:function(){this.x+=this.velocity,this.velocity*=this.getFrictionFactor()},applyForce:function(t){this.velocity+=t},getFrictionFactor:function(){return 1-this.options[this.isFreeScrolling?"freeScrollFriction":"friction"]},getRestingPosition:function(){return this.x+this.velocity/(1-this.getFrictionFactor())},applyDragForce:function(){if(this.isDraggable&&this.isPointerDown){var t=this.dragX-this.x-this.velocity;this.applyForce(t)}},applySelectedAttraction:function(){if(!(this.isDraggable&&this.isPointerDown)&&!this.isFreeScrolling&&this.slides.length){var t=(-1*this.selectedSlide.target-this.x)*this.options.selectedAttraction;this.applyForce(t)}}};return i}),function(r,a){if("function"==typeof define&&define.amd)define("flickity/js/flickity",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./cell","./slide","./animate"],function(t,e,i,n,s,o){return a(r,t,e,i,n,s,o)});else if("object"==typeof module&&module.exports)module.exports=a(r,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./cell"),require("./slide"),require("./animate"));else{var t=r.Flickity;r.Flickity=a(r,r.EvEmitter,r.getSize,r.fizzyUIUtils,t.Cell,t.Slide,t.animatePrototype)}}(window,function(n,t,e,a,i,r,s){var l=n.jQuery,o=n.getComputedStyle,h=n.console;function c(t,e){for(t=a.makeArray(t);t.length;)e.appendChild(t.shift())}var d=0,u={};function f(t,e){var i=a.getQueryElement(t);if(i){if(this.element=i,this.element.flickityGUID){var n=u[this.element.flickityGUID];return n.option(e),n}l&&(this.$element=l(this.element)),this.options=a.extend({},this.constructor.defaults),this.option(e),this._create()}else h&&h.error("Bad element for Flickity: "+(i||t))}f.defaults={accessibility:!0,cellAlign:"center",freeScrollFriction:.075,friction:.28,namespaceJQueryEvents:!0,percentPosition:!0,resize:!0,selectedAttraction:.025,setGallerySize:!0},f.createMethods=[];var p=f.prototype;a.extend(p,t.prototype),p._create=function(){var t=this.guid=++d;for(var e in this.element.flickityGUID=t,(u[t]=this).selectedIndex=0,this.restingFrames=0,this.x=0,this.velocity=0,this.originSide=this.options.rightToLeft?"right":"left",this.viewport=document.createElement("div"),this.viewport.className="flickity-viewport",this._createSlider(),(this.options.resize||this.options.watchCSS)&&n.addEventListener("resize",this),this.options.on){var i=this.options.on[e];this.on(e,i)}f.createMethods.forEach(function(t){this[t]()},this),this.options.watchCSS?this.watchCSS():this.activate()},p.option=function(t){a.extend(this.options,t)},p.activate=function(){this.isActive||(this.isActive=!0,this.element.classList.add("flickity-enabled"),this.options.rightToLeft&&this.element.classList.add("flickity-rtl"),this.getSize(),c(this._filterFindCellElements(this.element.children),this.slider),this.viewport.appendChild(this.slider),this.element.appendChild(this.viewport),this.reloadCells(),this.options.accessibility&&(this.element.tabIndex=0,this.element.addEventListener("keydown",this)),this.emitEvent("activate"),this.selectInitialIndex(),this.isInitActivated=!0,this.dispatchEvent("ready"))},p._createSlider=function(){var t=document.createElement("div");t.className="flickity-slider",t.style[this.originSide]=0,this.slider=t},p._filterFindCellElements=function(t){return a.filterFindElements(t,this.options.cellSelector)},p.reloadCells=function(){this.cells=this._makeCells(this.slider.children),this.positionCells(),this._getWrapShiftCells(),this.setGallerySize()},p._makeCells=function(t){return this._filterFindCellElements(t).map(function(t){return new i(t,this)},this)},p.getLastCell=function(){return this.cells[this.cells.length-1]},p.getLastSlide=function(){return this.slides[this.slides.length-1]},p.positionCells=function(){this._sizeCells(this.cells),this._positionCells(0)},p._positionCells=function(t){t=t||0,this.maxCellHeight=t&&this.maxCellHeight||0;var e=0;if(0<t){var i=this.cells[t-1];e=i.x+i.size.outerWidth}for(var n=this.cells.length,s=t;s<n;s++){var o=this.cells[s];o.setPosition(e),e+=o.size.outerWidth,this.maxCellHeight=Math.max(o.size.outerHeight,this.maxCellHeight)}this.slideableWidth=e,this.updateSlides(),this._containSlides(),this.slidesWidth=n?this.getLastSlide().target-this.slides[0].target:0},p._sizeCells=function(t){t.forEach(function(t){t.getSize()})},p.updateSlides=function(){if(this.slides=[],this.cells.length){var n=new r(this);this.slides.push(n);var s="left"==this.originSide?"marginRight":"marginLeft",o=this._getCanCellFit();this.cells.forEach(function(t,e){if(n.cells.length){var i=n.outerWidth-n.firstMargin+(t.size.outerWidth-t.size[s]);o.call(this,e,i)||(n.updateTarget(),n=new r(this),this.slides.push(n)),n.addCell(t)}else n.addCell(t)},this),n.updateTarget(),this.updateSelectedSlide()}},p._getCanCellFit=function(){var t=this.options.groupCells;if(!t)return function(){return!1};if("number"==typeof t){var e=parseInt(t,10);return function(t){return t%e!=0}}var i="string"==typeof t&&t.match(/^(\d+)%$/),n=i?parseInt(i[1],10)/100:1;return function(t,e){return e<=(this.size.innerWidth+1)*n}},p._init=p.reposition=function(){this.positionCells(),this.positionSliderAtSelected()},p.getSize=function(){this.size=e(this.element),this.setCellAlign(),this.cursorPosition=this.size.innerWidth*this.cellAlign};var g={center:{left:.5,right:.5},left:{left:0,right:1},right:{right:0,left:1}};return p.setCellAlign=function(){var t=g[this.options.cellAlign];this.cellAlign=t?t[this.originSide]:this.options.cellAlign},p.setGallerySize=function(){if(this.options.setGallerySize){var t=this.options.adaptiveHeight&&this.selectedSlide?this.selectedSlide.height:this.maxCellHeight;this.viewport.style.height=t+"px"}},p._getWrapShiftCells=function(){if(this.options.wrapAround){this._unshiftCells(this.beforeShiftCells),this._unshiftCells(this.afterShiftCells);var t=this.cursorPosition,e=this.cells.length-1;this.beforeShiftCells=this._getGapCells(t,e,-1),t=this.size.innerWidth-this.cursorPosition,this.afterShiftCells=this._getGapCells(t,0,1)}},p._getGapCells=function(t,e,i){for(var n=[];0<t;){var s=this.cells[e];if(!s)break;n.push(s),e+=i,t-=s.size.outerWidth}return n},p._containSlides=function(){if(this.options.contain&&!this.options.wrapAround&&this.cells.length){var t=this.options.rightToLeft,e=t?"marginRight":"marginLeft",i=t?"marginLeft":"marginRight",n=this.slideableWidth-this.getLastCell().size[i],s=n<this.size.innerWidth,o=this.cursorPosition+this.cells[0].size[e],r=n-this.size.innerWidth*(1-this.cellAlign);this.slides.forEach(function(t){s?t.target=n*this.cellAlign:(t.target=Math.max(t.target,o),t.target=Math.min(t.target,r))},this)}},p.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),l&&this.$element){var s=t+=this.options.namespaceJQueryEvents?".flickity":"";if(e){var o=l.Event(e);o.type=t,s=o}this.$element.trigger(s,i)}},p.select=function(t,e,i){if(this.isActive&&(t=parseInt(t,10),this._wrapSelect(t),(this.options.wrapAround||e)&&(t=a.modulo(t,this.slides.length)),this.slides[t])){var n=this.selectedIndex;this.selectedIndex=t,this.updateSelectedSlide(),i?this.positionSliderAtSelected():this.startAnimation(),this.options.adaptiveHeight&&this.setGallerySize(),this.dispatchEvent("select",null,[t]),t!=n&&this.dispatchEvent("change",null,[t]),this.dispatchEvent("cellSelect")}},p._wrapSelect=function(t){var e=this.slides.length;if(!(this.options.wrapAround&&1<e))return t;var i=a.modulo(t,e),n=Math.abs(i-this.selectedIndex),s=Math.abs(i+e-this.selectedIndex),o=Math.abs(i-e-this.selectedIndex);!this.isDragSelect&&s<n?t+=e:!this.isDragSelect&&o<n&&(t-=e),t<0?this.x-=this.slideableWidth:e<=t&&(this.x+=this.slideableWidth)},p.previous=function(t,e){this.select(this.selectedIndex-1,t,e)},p.next=function(t,e){this.select(this.selectedIndex+1,t,e)},p.updateSelectedSlide=function(){var t=this.slides[this.selectedIndex];t&&(this.unselectSelectedSlide(),(this.selectedSlide=t).select(),this.selectedCells=t.cells,this.selectedElements=t.getCellElements(),this.selectedCell=t.cells[0],this.selectedElement=this.selectedElements[0])},p.unselectSelectedSlide=function(){this.selectedSlide&&this.selectedSlide.unselect()},p.selectInitialIndex=function(){var t=this.options.initialIndex;if(this.isInitActivated)this.select(this.selectedIndex,!1,!0);else{if(t&&"string"==typeof t)if(this.queryCell(t))return void this.selectCell(t,!1,!0);var e=0;t&&this.slides[t]&&(e=t),this.select(e,!1,!0)}},p.selectCell=function(t,e,i){var n=this.queryCell(t);if(n){var s=this.getCellSlideIndex(n);this.select(s,e,i)}},p.getCellSlideIndex=function(t){for(var e=0;e<this.slides.length;e++){if(-1!=this.slides[e].cells.indexOf(t))return e}},p.getCell=function(t){for(var e=0;e<this.cells.length;e++){var i=this.cells[e];if(i.element==t)return i}},p.getCells=function(t){t=a.makeArray(t);var i=[];return t.forEach(function(t){var e=this.getCell(t);e&&i.push(e)},this),i},p.getCellElements=function(){return this.cells.map(function(t){return t.element})},p.getParentCell=function(t){var e=this.getCell(t);return e||(t=a.getParent(t,".flickity-slider > *"),this.getCell(t))},p.getAdjacentCellElements=function(t,e){if(!t)return this.selectedSlide.getCellElements();e=void 0===e?this.selectedIndex:e;var i=this.slides.length;if(i<=1+2*t)return this.getCellElements();for(var n=[],s=e-t;s<=e+t;s++){var o=this.options.wrapAround?a.modulo(s,i):s,r=this.slides[o];r&&(n=n.concat(r.getCellElements()))}return n},p.queryCell=function(t){if("number"==typeof t)return this.cells[t];if("string"==typeof t){if(t.match(/^[#\.]?[\d\/]/))return;t=this.element.querySelector(t)}return this.getCell(t)},p.uiChange=function(){this.emitEvent("uiChange")},p.childUIPointerDown=function(t){"touchstart"!=t.type&&t.preventDefault(),this.focus()},p.onresize=function(){this.watchCSS(),this.resize()},a.debounceMethod(f,"onresize",150),p.resize=function(){if(this.isActive){this.getSize(),this.options.wrapAround&&(this.x=a.modulo(this.x,this.slideableWidth)),this.positionCells(),this._getWrapShiftCells(),this.setGallerySize(),this.emitEvent("resize");var t=this.selectedElements&&this.selectedElements[0];this.selectCell(t,!1,!0)}},p.watchCSS=function(){this.options.watchCSS&&(-1!=o(this.element,":after").content.indexOf("flickity")?this.activate():this.deactivate())},p.onkeydown=function(t){var e=document.activeElement&&document.activeElement!=this.element;if(this.options.accessibility&&!e){var i=f.keyboardHandlers[t.keyCode];i&&i.call(this)}},f.keyboardHandlers={37:function(){var t=this.options.rightToLeft?"next":"previous";this.uiChange(),this[t]()},39:function(){var t=this.options.rightToLeft?"previous":"next";this.uiChange(),this[t]()}},p.focus=function(){var t=n.pageYOffset;this.element.focus({preventScroll:!0}),n.pageYOffset!=t&&n.scrollTo(n.pageXOffset,t)},p.deactivate=function(){this.isActive&&(this.element.classList.remove("flickity-enabled"),this.element.classList.remove("flickity-rtl"),this.unselectSelectedSlide(),this.cells.forEach(function(t){t.destroy()}),this.element.removeChild(this.viewport),c(this.slider.children,this.element),this.options.accessibility&&(this.element.removeAttribute("tabIndex"),this.element.removeEventListener("keydown",this)),this.isActive=!1,this.emitEvent("deactivate"))},p.destroy=function(){this.deactivate(),n.removeEventListener("resize",this),this.allOff(),this.emitEvent("destroy"),l&&this.$element&&l.removeData(this.element,"flickity"),delete this.element.flickityGUID,delete u[this.guid]},a.extend(p,s),f.data=function(t){var e=(t=a.getQueryElement(t))&&t.flickityGUID;return e&&u[e]},a.htmlInit(f,"flickity"),l&&l.bridget&&l.bridget("flickity",f),f.setJQuery=function(t){l=t},f.Cell=i,f.Slide=r,f}),function(e,i){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("ev-emitter")):e.Unipointer=i(e,e.EvEmitter)}(window,function(s,t){function e(){}var i=e.prototype=Object.create(t.prototype);i.bindStartEvent=function(t){this._bindStartEvent(t,!0)},i.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},i._bindStartEvent=function(t,e){var i=(e=void 0===e||e)?"addEventListener":"removeEventListener",n="mousedown";s.PointerEvent?n="pointerdown":"ontouchstart"in s&&(n="touchstart"),t[i](n,this)},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.getTouch=function(t){for(var e=0;e<t.length;e++){var i=t[e];if(i.identifier==this.pointerIdentifier)return i}},i.onmousedown=function(t){var e=t.button;e&&0!==e&&1!==e||this._pointerDown(t,t)},i.ontouchstart=function(t){this._pointerDown(t,t.changedTouches[0])},i.onpointerdown=function(t){this._pointerDown(t,t)},i._pointerDown=function(t,e){t.button||this.isPointerDown||(this.isPointerDown=!0,this.pointerIdentifier=void 0!==e.pointerId?e.pointerId:e.identifier,this.pointerDown(t,e))},i.pointerDown=function(t,e){this._bindPostStartEvents(t),this.emitEvent("pointerDown",[t,e])};var n={mousedown:["mousemove","mouseup"],touchstart:["touchmove","touchend","touchcancel"],pointerdown:["pointermove","pointerup","pointercancel"]};return i._bindPostStartEvents=function(t){if(t){var e=n[t.type];e.forEach(function(t){s.addEventListener(t,this)},this),this._boundPointerEvents=e}},i._unbindPostStartEvents=function(){this._boundPointerEvents&&(this._boundPointerEvents.forEach(function(t){s.removeEventListener(t,this)},this),delete this._boundPointerEvents)},i.onmousemove=function(t){this._pointerMove(t,t)},i.onpointermove=function(t){t.pointerId==this.pointerIdentifier&&this._pointerMove(t,t)},i.ontouchmove=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerMove(t,e)},i._pointerMove=function(t,e){this.pointerMove(t,e)},i.pointerMove=function(t,e){this.emitEvent("pointerMove",[t,e])},i.onmouseup=function(t){this._pointerUp(t,t)},i.onpointerup=function(t){t.pointerId==this.pointerIdentifier&&this._pointerUp(t,t)},i.ontouchend=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerUp(t,e)},i._pointerUp=function(t,e){this._pointerDone(),this.pointerUp(t,e)},i.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e])},i._pointerDone=function(){this._pointerReset(),this._unbindPostStartEvents(),this.pointerDone()},i._pointerReset=function(){this.isPointerDown=!1,delete this.pointerIdentifier},i.pointerDone=function(){},i.onpointercancel=function(t){t.pointerId==this.pointerIdentifier&&this._pointerCancel(t,t)},i.ontouchcancel=function(t){var e=this.getTouch(t.changedTouches);e&&this._pointerCancel(t,e)},i._pointerCancel=function(t,e){this._pointerDone(),this.pointerCancel(t,e)},i.pointerCancel=function(t,e){this.emitEvent("pointerCancel",[t,e])},e.getPointerPoint=function(t){return{x:t.pageX,y:t.pageY}},e}),function(e,i){"function"==typeof define&&define.amd?define("unidragger/unidragger",["unipointer/unipointer"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("unipointer")):e.Unidragger=i(e,e.Unipointer)}(window,function(o,t){function e(){}var i=e.prototype=Object.create(t.prototype);i.bindHandles=function(){this._bindHandles(!0)},i.unbindHandles=function(){this._bindHandles(!1)},i._bindHandles=function(t){for(var e=(t=void 0===t||t)?"addEventListener":"removeEventListener",i=t?this._touchActionValue:"",n=0;n<this.handles.length;n++){var s=this.handles[n];this._bindStartEvent(s,t),s[e]("click",this),o.PointerEvent&&(s.style.touchAction=i)}},i._touchActionValue="none",i.pointerDown=function(t,e){this.okayPointerDown(t)&&(this.pointerDownPointer=e,t.preventDefault(),this.pointerDownBlur(),this._bindPostStartEvents(t),this.emitEvent("pointerDown",[t,e]))};var s={TEXTAREA:!0,INPUT:!0,SELECT:!0,OPTION:!0},r={radio:!0,checkbox:!0,button:!0,submit:!0,image:!0,file:!0};return i.okayPointerDown=function(t){var e=s[t.target.nodeName],i=r[t.target.type],n=!e||i;return n||this._pointerReset(),n},i.pointerDownBlur=function(){var t=document.activeElement;t&&t.blur&&t!=document.body&&t.blur()},i.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.emitEvent("pointerMove",[t,e,i]),this._dragMove(t,e,i)},i._dragPointerMove=function(t,e){var i={x:e.pageX-this.pointerDownPointer.pageX,y:e.pageY-this.pointerDownPointer.pageY};return!this.isDragging&&this.hasDragStarted(i)&&this._dragStart(t,e),i},i.hasDragStarted=function(t){return 3<Math.abs(t.x)||3<Math.abs(t.y)},i.pointerUp=function(t,e){this.emitEvent("pointerUp",[t,e]),this._dragPointerUp(t,e)},i._dragPointerUp=function(t,e){this.isDragging?this._dragEnd(t,e):this._staticClick(t,e)},i._dragStart=function(t,e){this.isDragging=!0,this.isPreventingClicks=!0,this.dragStart(t,e)},i.dragStart=function(t,e){this.emitEvent("dragStart",[t,e])},i._dragMove=function(t,e,i){this.isDragging&&this.dragMove(t,e,i)},i.dragMove=function(t,e,i){t.preventDefault(),this.emitEvent("dragMove",[t,e,i])},i._dragEnd=function(t,e){this.isDragging=!1,setTimeout(function(){delete this.isPreventingClicks}.bind(this)),this.dragEnd(t,e)},i.dragEnd=function(t,e){this.emitEvent("dragEnd",[t,e])},i.onclick=function(t){this.isPreventingClicks&&t.preventDefault()},i._staticClick=function(t,e){this.isIgnoringMouseUp&&"mouseup"==t.type||(this.staticClick(t,e),"mouseup"!=t.type&&(this.isIgnoringMouseUp=!0,setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)))},i.staticClick=function(t,e){this.emitEvent("staticClick",[t,e])},e.getPointerPoint=t.getPointerPoint,e}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unidragger"),require("fizzy-ui-utils")):n.Flickity=s(n,n.Flickity,n.Unidragger,n.fizzyUIUtils)}(window,function(i,t,e,a){a.extend(t.defaults,{draggable:">1",dragThreshold:3}),t.createMethods.push("_createDrag");var n=t.prototype;a.extend(n,e.prototype),n._touchActionValue="pan-y";var s="createTouch"in document,o=!1;n._createDrag=function(){this.on("activate",this.onActivateDrag),this.on("uiChange",this._uiChangeDrag),this.on("deactivate",this.onDeactivateDrag),this.on("cellChange",this.updateDraggable),s&&!o&&(i.addEventListener("touchmove",function(){}),o=!0)},n.onActivateDrag=function(){this.handles=[this.viewport],this.bindHandles(),this.updateDraggable()},n.onDeactivateDrag=function(){this.unbindHandles(),this.element.classList.remove("is-draggable")},n.updateDraggable=function(){">1"==this.options.draggable?this.isDraggable=1<this.slides.length:this.isDraggable=this.options.draggable,this.isDraggable?this.element.classList.add("is-draggable"):this.element.classList.remove("is-draggable")},n.bindDrag=function(){this.options.draggable=!0,this.updateDraggable()},n.unbindDrag=function(){this.options.draggable=!1,this.updateDraggable()},n._uiChangeDrag=function(){delete this.isFreeScrolling},n.pointerDown=function(t,e){this.isDraggable?this.okayPointerDown(t)&&(this._pointerDownPreventDefault(t),this.pointerDownFocus(t),document.activeElement!=this.element&&this.pointerDownBlur(),this.dragX=this.x,this.viewport.classList.add("is-pointer-down"),this.pointerDownScroll=l(),i.addEventListener("scroll",this),this._pointerDownDefault(t,e)):this._pointerDownDefault(t,e)},n._pointerDownDefault=function(t,e){this.pointerDownPointer={pageX:e.pageX,pageY:e.pageY},this._bindPostStartEvents(t),this.dispatchEvent("pointerDown",t,[e])};var r={INPUT:!0,TEXTAREA:!0,SELECT:!0};function l(){return{x:i.pageXOffset,y:i.pageYOffset}}return n.pointerDownFocus=function(t){r[t.target.nodeName]||this.focus()},n._pointerDownPreventDefault=function(t){var e="touchstart"==t.type,i="touch"==t.pointerType,n=r[t.target.nodeName];e||i||n||t.preventDefault()},n.hasDragStarted=function(t){return Math.abs(t.x)>this.options.dragThreshold},n.pointerUp=function(t,e){delete this.isTouchScrolling,this.viewport.classList.remove("is-pointer-down"),this.dispatchEvent("pointerUp",t,[e]),this._dragPointerUp(t,e)},n.pointerDone=function(){i.removeEventListener("scroll",this),delete this.pointerDownScroll},n.dragStart=function(t,e){this.isDraggable&&(this.dragStartPosition=this.x,this.startAnimation(),i.removeEventListener("scroll",this),this.dispatchEvent("dragStart",t,[e]))},n.pointerMove=function(t,e){var i=this._dragPointerMove(t,e);this.dispatchEvent("pointerMove",t,[e,i]),this._dragMove(t,e,i)},n.dragMove=function(t,e,i){if(this.isDraggable){t.preventDefault(),this.previousDragX=this.dragX;var n=this.options.rightToLeft?-1:1;this.options.wrapAround&&(i.x=i.x%this.slideableWidth);var s=this.dragStartPosition+i.x*n;if(!this.options.wrapAround&&this.slides.length){var o=Math.max(-this.slides[0].target,this.dragStartPosition);s=o<s?.5*(s+o):s;var r=Math.min(-this.getLastSlide().target,this.dragStartPosition);s=s<r?.5*(s+r):s}this.dragX=s,this.dragMoveTime=new Date,this.dispatchEvent("dragMove",t,[e,i])}},n.dragEnd=function(t,e){if(this.isDraggable){this.options.freeScroll&&(this.isFreeScrolling=!0);var i=this.dragEndRestingSelect();if(this.options.freeScroll&&!this.options.wrapAround){var n=this.getRestingPosition();this.isFreeScrolling=-n>this.slides[0].target&&-n<this.getLastSlide().target}else this.options.freeScroll||i!=this.selectedIndex||(i+=this.dragEndBoostSelect());delete this.previousDragX,this.isDragSelect=this.options.wrapAround,this.select(i),delete this.isDragSelect,this.dispatchEvent("dragEnd",t,[e])}},n.dragEndRestingSelect=function(){var t=this.getRestingPosition(),e=Math.abs(this.getSlideDistance(-t,this.selectedIndex)),i=this._getClosestResting(t,e,1),n=this._getClosestResting(t,e,-1);return i.distance<n.distance?i.index:n.index},n._getClosestResting=function(t,e,i){for(var n=this.selectedIndex,s=1/0,o=this.options.contain&&!this.options.wrapAround?function(t,e){return t<=e}:function(t,e){return t<e};o(e,s)&&(n+=i,s=e,null!==(e=this.getSlideDistance(-t,n)));)e=Math.abs(e);return{distance:s,index:n-i}},n.getSlideDistance=function(t,e){var i=this.slides.length,n=this.options.wrapAround&&1<i,s=n?a.modulo(e,i):e,o=this.slides[s];if(!o)return null;var r=n?this.slideableWidth*Math.floor(e/i):0;return t-(o.target+r)},n.dragEndBoostSelect=function(){if(void 0===this.previousDragX||!this.dragMoveTime||100<new Date-this.dragMoveTime)return 0;var t=this.getSlideDistance(-this.dragX,this.selectedIndex),e=this.previousDragX-this.dragX;return 0<t&&0<e?1:t<0&&e<0?-1:0},n.staticClick=function(t,e){var i=this.getParentCell(t.target),n=i&&i.element,s=i&&this.cells.indexOf(i);this.dispatchEvent("staticClick",t,[e,n,s])},n.onscroll=function(){var t=l(),e=this.pointerDownScroll.x-t.x,i=this.pointerDownScroll.y-t.y;(3<Math.abs(e)||3<Math.abs(i))&&this._pointerDone()},t}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}(window,function(t,e,i,n){"use strict";var s="http://www.w3.org/2000/svg";function o(t,e){this.direction=t,this.parent=e,this._create()}(o.prototype=Object.create(i.prototype))._create=function(){this.isEnabled=!0,this.isPrevious=-1==this.direction;var t=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t;var e=this.element=document.createElement("button");e.className="flickity-button flickity-prev-next-button",e.className+=this.isPrevious?" previous":" next",e.setAttribute("type","button"),this.disable(),e.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i=this.createSVG();e.appendChild(i),this.parent.on("select",this.update.bind(this)),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},o.prototype.activate=function(){this.bindStartEvent(this.element),this.element.addEventListener("click",this),this.parent.element.appendChild(this.element)},o.prototype.deactivate=function(){this.parent.element.removeChild(this.element),this.unbindStartEvent(this.element),this.element.removeEventListener("click",this)},o.prototype.createSVG=function(){var t=document.createElementNS(s,"svg");t.setAttribute("class","flickity-button-icon"),t.setAttribute("viewBox","0 0 100 100");var e=document.createElementNS(s,"path"),i=function(t){return"string"!=typeof t?"M "+t.x0+",50 L "+t.x1+","+(t.y1+50)+" L "+t.x2+","+(t.y2+50)+" L "+t.x3+",50 L "+t.x2+","+(50-t.y2)+" L "+t.x1+","+(50-t.y1)+" Z":t}(this.parent.options.arrowShape);return e.setAttribute("d",i),e.setAttribute("class","arrow"),this.isLeft||e.setAttribute("transform","translate(100, 100) rotate(180) "),t.appendChild(e),t},o.prototype.handleEvent=n.handleEvent,o.prototype.onclick=function(){if(this.isEnabled){this.parent.uiChange();var t=this.isPrevious?"previous":"next";this.parent[t]()}},o.prototype.enable=function(){this.isEnabled||(this.element.disabled=!1,this.isEnabled=!0)},o.prototype.disable=function(){this.isEnabled&&(this.element.disabled=!0,this.isEnabled=!1)},o.prototype.update=function(){var t=this.parent.slides;if(this.parent.options.wrapAround&&1<t.length)this.enable();else{var e=t.length?t.length-1:0,i=this.isPrevious?0:e;this[this.parent.selectedIndex==i?"disable":"enable"]()}},o.prototype.destroy=function(){this.deactivate(),this.allOff()},n.extend(e.defaults,{prevNextButtons:!0,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}}),e.createMethods.push("_createPrevNextButtons");var r=e.prototype;return r._createPrevNextButtons=function(){this.options.prevNextButtons&&(this.prevButton=new o(-1,this),this.nextButton=new o(1,this),this.on("activate",this.activatePrevNextButtons))},r.activatePrevNextButtons=function(){this.prevButton.activate(),this.nextButton.activate(),this.on("deactivate",this.deactivatePrevNextButtons)},r.deactivatePrevNextButtons=function(){this.prevButton.deactivate(),this.nextButton.deactivate(),this.off("deactivate",this.deactivatePrevNextButtons)},e.PrevNextButton=o,e}),function(n,s){"function"==typeof define&&define.amd?define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t,e,i){return s(n,t,e,i)}):"object"==typeof module&&module.exports?module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils")):s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}(window,function(t,e,i,n){function s(t){this.parent=t,this._create()}(s.prototype=Object.create(i.prototype))._create=function(){this.holder=document.createElement("ol"),this.holder.className="flickity-page-dots",this.dots=[],this.handleClick=this.onClick.bind(this),this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))},s.prototype.activate=function(){this.setDots(),this.holder.addEventListener("click",this.handleClick),this.bindStartEvent(this.holder),this.parent.element.appendChild(this.holder)},s.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick),this.unbindStartEvent(this.holder),this.parent.element.removeChild(this.holder)},s.prototype.setDots=function(){var t=this.parent.slides.length-this.dots.length;0<t?this.addDots(t):t<0&&this.removeDots(-t)},s.prototype.addDots=function(t){for(var e=document.createDocumentFragment(),i=[],n=this.dots.length,s=n+t,o=n;o<s;o++){var r=document.createElement("li");r.className="dot",r.setAttribute("aria-label","Page dot "+(o+1)),e.appendChild(r),i.push(r)}this.holder.appendChild(e),this.dots=this.dots.concat(i)},s.prototype.removeDots=function(t){this.dots.splice(this.dots.length-t,t).forEach(function(t){this.holder.removeChild(t)},this)},s.prototype.updateSelected=function(){this.selectedDot&&(this.selectedDot.className="dot",this.selectedDot.removeAttribute("aria-current")),this.dots.length&&(this.selectedDot=this.dots[this.parent.selectedIndex],this.selectedDot.className="dot is-selected",this.selectedDot.setAttribute("aria-current","step"))},s.prototype.onTap=s.prototype.onClick=function(t){var e=t.target;if("LI"==e.nodeName){this.parent.uiChange();var i=this.dots.indexOf(e);this.parent.select(i)}},s.prototype.destroy=function(){this.deactivate(),this.allOff()},e.PageDots=s,n.extend(e.defaults,{pageDots:!0}),e.createMethods.push("_createPageDots");var o=e.prototype;return o._createPageDots=function(){this.options.pageDots&&(this.pageDots=new s(this),this.on("activate",this.activatePageDots),this.on("select",this.updateSelectedPageDots),this.on("cellChange",this.updatePageDots),this.on("resize",this.updatePageDots),this.on("deactivate",this.deactivatePageDots))},o.activatePageDots=function(){this.pageDots.activate()},o.updateSelectedPageDots=function(){this.pageDots.updateSelected()},o.updatePageDots=function(){this.pageDots.setDots()},o.deactivatePageDots=function(){this.pageDots.deactivate()},e.PageDots=s,e}),function(t,n){"function"==typeof define&&define.amd?define("flickity/js/player",["ev-emitter/ev-emitter","fizzy-ui-utils/utils","./flickity"],function(t,e,i){return n(t,e,i)}):"object"==typeof module&&module.exports?module.exports=n(require("ev-emitter"),require("fizzy-ui-utils"),require("./flickity")):n(t.EvEmitter,t.fizzyUIUtils,t.Flickity)}(window,function(t,e,i){function n(t){this.parent=t,this.state="stopped",this.onVisibilityChange=this.visibilityChange.bind(this),this.onVisibilityPlay=this.visibilityPlay.bind(this)}(n.prototype=Object.create(t.prototype)).play=function(){"playing"!=this.state&&(document.hidden?document.addEventListener("visibilitychange",this.onVisibilityPlay):(this.state="playing",document.addEventListener("visibilitychange",this.onVisibilityChange),this.tick()))},n.prototype.tick=function(){if("playing"==this.state){var t=this.parent.options.autoPlay;t="number"==typeof t?t:3e3;var e=this;this.clear(),this.timeout=setTimeout(function(){e.parent.next(!0),e.tick()},t)}},n.prototype.stop=function(){this.state="stopped",this.clear(),document.removeEventListener("visibilitychange",this.onVisibilityChange)},n.prototype.clear=function(){clearTimeout(this.timeout)},n.prototype.pause=function(){"playing"==this.state&&(this.state="paused",this.clear())},n.prototype.unpause=function(){"paused"==this.state&&this.play()},n.prototype.visibilityChange=function(){this[document.hidden?"pause":"unpause"]()},n.prototype.visibilityPlay=function(){this.play(),document.removeEventListener("visibilitychange",this.onVisibilityPlay)},e.extend(i.defaults,{pauseAutoPlayOnHover:!0}),i.createMethods.push("_createPlayer");var s=i.prototype;return s._createPlayer=function(){this.player=new n(this),this.on("activate",this.activatePlayer),this.on("uiChange",this.stopPlayer),this.on("pointerDown",this.stopPlayer),this.on("deactivate",this.deactivatePlayer)},s.activatePlayer=function(){this.options.autoPlay&&(this.player.play(),this.element.addEventListener("mouseenter",this))},s.playPlayer=function(){this.player.play()},s.stopPlayer=function(){this.player.stop()},s.pausePlayer=function(){this.player.pause()},s.unpausePlayer=function(){this.player.unpause()},s.deactivatePlayer=function(){this.player.stop(),this.element.removeEventListener("mouseenter",this)},s.onmouseenter=function(){this.options.pauseAutoPlayOnHover&&(this.player.pause(),this.element.addEventListener("mouseleave",this))},s.onmouseleave=function(){this.player.unpause(),this.element.removeEventListener("mouseleave",this)},i.Player=n,i}),function(i,n){"function"==typeof define&&define.amd?define("flickity/js/add-remove-cell",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("./flickity"),require("fizzy-ui-utils")):n(i,i.Flickity,i.fizzyUIUtils)}(window,function(t,e,n){var i=e.prototype;return i.insert=function(t,e){var i=this._makeCells(t);if(i&&i.length){var n=this.cells.length;e=void 0===e?n:e;var s=function(t){var e=document.createDocumentFragment();return t.forEach(function(t){e.appendChild(t.element)}),e}(i),o=e==n;if(o)this.slider.appendChild(s);else{var r=this.cells[e].element;this.slider.insertBefore(s,r)}if(0===e)this.cells=i.concat(this.cells);else if(o)this.cells=this.cells.concat(i);else{var a=this.cells.splice(e,n-e);this.cells=this.cells.concat(i).concat(a)}this._sizeCells(i),this.cellChange(e,!0)}},i.append=function(t){this.insert(t,this.cells.length)},i.prepend=function(t){this.insert(t,0)},i.remove=function(t){var e=this.getCells(t);if(e&&e.length){var i=this.cells.length-1;e.forEach(function(t){t.remove();var e=this.cells.indexOf(t);i=Math.min(e,i),n.removeFrom(this.cells,t)},this),this.cellChange(i,!0)}},i.cellSizeChange=function(t){var e=this.getCell(t);if(e){e.getSize();var i=this.cells.indexOf(e);this.cellChange(i)}},i.cellChange=function(t,e){var i=this.selectedElement;this._positionCells(t),this._getWrapShiftCells(),this.setGallerySize();var n=this.getCell(i);n&&(this.selectedIndex=this.getCellSlideIndex(n)),this.selectedIndex=Math.min(this.slides.length-1,this.selectedIndex),this.emitEvent("cellChange",[t]),this.select(this.selectedIndex),e&&this.positionSliderAtSelected()},e}),function(i,n){"function"==typeof define&&define.amd?define("flickity/js/lazyload",["./flickity","fizzy-ui-utils/utils"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("./flickity"),require("fizzy-ui-utils")):n(i,i.Flickity,i.fizzyUIUtils)}(window,function(t,e,o){"use strict";e.createMethods.push("_createLazyload");var i=e.prototype;function s(t,e){this.img=t,this.flickity=e,this.load()}return i._createLazyload=function(){this.on("select",this.lazyLoad)},i.lazyLoad=function(){var t=this.options.lazyLoad;if(t){var e="number"==typeof t?t:0,i=this.getAdjacentCellElements(e),n=[];i.forEach(function(t){var e=function(t){if("IMG"==t.nodeName){var e=t.getAttribute("data-flickity-lazyload"),i=t.getAttribute("data-flickity-lazyload-src"),n=t.getAttribute("data-flickity-lazyload-srcset");if(e||i||n)return[t]}var s=t.querySelectorAll("img[data-flickity-lazyload], img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]");return o.makeArray(s)}(t);n=n.concat(e)}),n.forEach(function(t){new s(t,this)},this)}},s.prototype.handleEvent=o.handleEvent,s.prototype.load=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this);var t=this.img.getAttribute("data-flickity-lazyload")||this.img.getAttribute("data-flickity-lazyload-src"),e=this.img.getAttribute("data-flickity-lazyload-srcset");this.img.src=t,e&&this.img.setAttribute("srcset",e),this.img.removeAttribute("data-flickity-lazyload"),this.img.removeAttribute("data-flickity-lazyload-src"),this.img.removeAttribute("data-flickity-lazyload-srcset")},s.prototype.onload=function(t){this.complete(t,"flickity-lazyloaded")},s.prototype.onerror=function(t){this.complete(t,"flickity-lazyerror")},s.prototype.complete=function(t,e){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this);var i=this.flickity.getParentCell(this.img),n=i&&i.element;this.flickity.cellSizeChange(n),this.img.classList.add(e),this.flickity.dispatchEvent("lazyLoad",t,n)},e.LazyLoader=s,e}),function(t,e){"function"==typeof define&&define.amd?define("flickity/js/index",["./flickity","./drag","./prev-next-button","./page-dots","./player","./add-remove-cell","./lazyload"],e):"object"==typeof module&&module.exports&&(module.exports=e(require("./flickity"),require("./drag"),require("./prev-next-button"),require("./page-dots"),require("./player"),require("./add-remove-cell"),require("./lazyload")))}(window,function(t){return t}),function(t,e){"function"==typeof define&&define.amd?define("flickity-as-nav-for/as-nav-for",["flickity/js/index","fizzy-ui-utils/utils"],e):"object"==typeof module&&module.exports?module.exports=e(require("flickity"),require("fizzy-ui-utils")):t.Flickity=e(t.Flickity,t.fizzyUIUtils)}(window,function(n,s){n.createMethods.push("_createAsNavFor");var t=n.prototype;return t._createAsNavFor=function(){this.on("activate",this.activateAsNavFor),this.on("deactivate",this.deactivateAsNavFor),this.on("destroy",this.destroyAsNavFor);var t=this.options.asNavFor;if(t){var e=this;setTimeout(function(){e.setNavCompanion(t)})}},t.setNavCompanion=function(t){t=s.getQueryElement(t);var e=n.data(t);if(e&&e!=this){this.navCompanion=e;var i=this;this.onNavCompanionSelect=function(){i.navCompanionSelect()},e.on("select",this.onNavCompanionSelect),this.on("staticClick",this.onNavStaticClick),this.navCompanionSelect(!0)}},t.navCompanionSelect=function(t){var e=this.navCompanion&&this.navCompanion.selectedCells;if(e){var i=e[0],n=this.navCompanion.cells.indexOf(i),s=n+e.length-1,o=Math.floor(function(t,e,i){return(e-t)*i+t}(n,s,this.navCompanion.cellAlign));if(this.selectCell(o,!1,t),this.removeNavSelectedElements(),!(o>=this.cells.length)){var r=this.cells.slice(n,1+s);this.navSelectedElements=r.map(function(t){return t.element}),this.changeNavSelectedClass("add")}}},t.changeNavSelectedClass=function(e){this.navSelectedElements.forEach(function(t){t.classList[e]("is-nav-selected")})},t.activateAsNavFor=function(){this.navCompanionSelect(!0)},t.removeNavSelectedElements=function(){this.navSelectedElements&&(this.changeNavSelectedClass("remove"),delete this.navSelectedElements)},t.onNavStaticClick=function(t,e,i,n){"number"==typeof n&&this.navCompanion.selectCell(n)},t.deactivateAsNavFor=function(){this.removeNavSelectedElements()},t.destroyAsNavFor=function(){this.navCompanion&&(this.navCompanion.off("select",this.onNavCompanionSelect),this.off("staticClick",this.onNavStaticClick),delete this.navCompanion)},n}),function(e,i){"use strict";"function"==typeof define&&define.amd?define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(t){return i(e,t)}):"object"==typeof module&&module.exports?module.exports=i(e,require("ev-emitter")):e.imagesLoaded=i(e,e.EvEmitter)}("undefined"!=typeof window?window:this,function(e,t){var s=e.jQuery,o=e.console;function r(t,e){for(var i in e)t[i]=e[i];return t}var a=Array.prototype.slice;function l(t,e,i){if(!(this instanceof l))return new l(t,e,i);var n=t;"string"==typeof t&&(n=document.querySelectorAll(t)),n?(this.elements=function(t){return Array.isArray(t)?t:"object"==typeof t&&"number"==typeof t.length?a.call(t):[t]}(n),this.options=r({},this.options),"function"==typeof e?i=e:r(this.options,e),i&&this.on("always",i),this.getImages(),s&&(this.jqDeferred=new s.Deferred),setTimeout(this.check.bind(this))):o.error("Bad element for imagesLoaded "+(n||t))}(l.prototype=Object.create(t.prototype)).options={},l.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},l.prototype.addElementImages=function(t){"IMG"==t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);var e=t.nodeType;if(e&&h[e]){for(var i=t.querySelectorAll("img"),n=0;n<i.length;n++){var s=i[n];this.addImage(s)}if("string"==typeof this.options.background){var o=t.querySelectorAll(this.options.background);for(n=0;n<o.length;n++){var r=o[n];this.addElementBackgroundImages(r)}}}};var h={1:!0,9:!0,11:!0};function i(t){this.img=t}function n(t,e){this.url=t,this.element=e,this.img=new Image}return l.prototype.addElementBackgroundImages=function(t){var e=getComputedStyle(t);if(e)for(var i=/url\((['"])?(.*?)\1\)/gi,n=i.exec(e.backgroundImage);null!==n;){var s=n&&n[2];s&&this.addBackground(s,t),n=i.exec(e.backgroundImage)}},l.prototype.addImage=function(t){var e=new i(t);this.images.push(e)},l.prototype.addBackground=function(t,e){var i=new n(t,e);this.images.push(i)},l.prototype.check=function(){var n=this;function e(t,e,i){setTimeout(function(){n.progress(t,e,i)})}this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(t){t.once("progress",e),t.check()}):this.complete()},l.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&o&&o.log("progress: "+i,t,e)},l.prototype.complete=function(){var t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){var e=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e](this)}},(i.prototype=Object.create(t.prototype)).check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},i.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},i.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.img,e])},i.prototype.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},i.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},i.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},(n.prototype=Object.create(i.prototype)).check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},n.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},n.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},l.makeJQueryPlugin=function(t){(t=t||e.jQuery)&&((s=t).fn.imagesLoaded=function(t,e){return new l(this,t,e).jqDeferred.promise(s(this))})},l.makeJQueryPlugin(),l}),function(i,n){"function"==typeof define&&define.amd?define(["flickity/js/index","imagesloaded/imagesloaded"],function(t,e){return n(i,t,e)}):"object"==typeof module&&module.exports?module.exports=n(i,require("flickity"),require("imagesloaded")):i.Flickity=n(i,i.Flickity,i.imagesLoaded)}(window,function(t,e,i){"use strict";e.createMethods.push("_createImagesLoaded");var n=e.prototype;return n._createImagesLoaded=function(){this.on("activate",this.imagesLoaded)},n.imagesLoaded=function(){if(this.options.imagesLoaded){var n=this;i(this.slider).on("progress",function(t,e){var i=n.getParentCell(e.img);n.cellSizeChange(i&&i.element),n.options.freeScroll||n.positionSliderAtSelected()})}},e}); \ No newline at end of file diff --git a/landingpage/assets/js/landingpg.js b/landingpage/assets/js/landingpg.js new file mode 100644 index 0000000000000000000000000000000000000000..e94dcb0aa7129475a405284a854219153150cef7 --- /dev/null +++ b/landingpage/assets/js/landingpg.js @@ -0,0 +1,7 @@ +"use strict" +window.addEventListener("load", (e)=>{ + + +}); +var bubbles = document.getElementsByClassName(".kimi-faq__question"); +alert(bubbles.length) diff --git a/landingpage/assets/js/mockup.js b/landingpage/assets/js/mockup.js new file mode 100644 index 0000000000000000000000000000000000000000..7ce5f679452d4d480fe55dd61f19c1e9fd50f4a3 --- /dev/null +++ b/landingpage/assets/js/mockup.js @@ -0,0 +1,123 @@ +"use strict"; + +function toggleChat(){ + let chat = document.getElementsByClassName("chat")[0]; + let bubble = document.getElementsByClassName("chatbot__bubble")[0]; + + if(chat.classList.contains("chat--open")) { + chat.classList.remove("chat--open"); + chat.classList.add("chat--closed"); + } else { + chat.classList.remove("chat--closed"); + chat.classList.add("chat--open"); + } + + if(bubble.classList.contains("chatbot__bubble--active")){ + bubble.classList.remove("chatbot__bubble--active"); + bubble.classList.add("chatbot__bubble--inactive"); + } else { + bubble.classList.remove("chatbot__bubble--inactive"); + bubble.classList.add("chatbot__bubble--active"); + } +} + +function openChat(){ + + let chat = document.getElementsByClassName("chat")[0]; + let bubble = document.getElementsByClassName("chatbot__bubble")[0]; + bubble.classList.remove("chatbot__bubble--inactive"); + bubble.classList.add("chatbot__bubble--active"); + chat.classList.remove("chat--closed"); + chat.classList.add("chat--open"); +} + +function closeChat(){ + + let chat = document.getElementsByClassName("chat")[0]; + let bubble = document.getElementsByClassName("chatbot__bubble")[0]; + bubble.classList.remove("chatbot__bubble--active"); + bubble.classList.add("chatbot__bubble--inactive"); + chat.classList.remove("chat--open"); + chat.classList.add("chat--closed"); +} + +window.addEventListener("scroll", () => { + /* + let elementTarget = document.getElementsByClassName("kimi-section")[0]; + //console.log(elementTarget.offsetTop + (elementTarget.offsetHeight /); + if (window.scrollY > (elementTarget.offsetTop - elementTarget.offsetHeight)) { + openChat(); + }*/ +}); + +/* start flickity */ +var flkty = new Flickity( '.links', { + // options + cellAlign: 'center', + contain: true, + watchCSS: true +}); + +function showAnswer(answerNumber) { + var answer = document.getElementById("answer-"+answerNumber); + var btn = document.getElementById("btn-"+answerNumber); + + if (answer.style.display === "inline-block") { + answer.style.display = "none"; + btn.style.background="lightseagreen"; + btn.firstChild.data="+"; + } else { + answer.style.display = "inline-block"; + btn.style.background="#FE642E"; + btn.firstChild.data="-"; + } +} + +function createCSVData(data) +{ + let faq_gen = document.getElementById("faq-gen"); + var csvFile = data.split(";"); + csvFile.forEach((item, i) => { + var qa = item.split("#"); + var q = document.createTextNode(qa[0]); + var a = document.createTextNode(qa[1]); + var div = document.createElement("div"); + div.classList.add("question"); + + var h = document.createElement("h2"); + h.setAttribute("id", "question-"+i); + h.setAttribute("onclick", "showAnswer("+i+")"); + h.appendChild(q); + div.appendChild(h); + + var btn = document.createElement("button"); + btn.setAttribute("class", "plus-button"); + btn.setAttribute("id", "btn-"+i); + btn.setAttribute("onclick", "showAnswer("+i+")"); + btn.appendChild(document.createTextNode("+")); + div.appendChild(btn); + + + var a_div = document.createElement("div"); + a_div.classList.add("answer"); + a_div.setAttribute("id", "answer-"+i); + + var p = document.createElement("p"); + p.appendChild(a); + a_div.appendChild(p); + faq_gen.appendChild(div); + faq_gen.appendChild(a_div); + + }); +} + +window.addEventListener("load",() => { + var xhttp = new XMLHttpRequest(); + xhttp.onreadystatechange = function() { + if (this.readyState == 4 && this.status == 200) { + createCSVData(xhttp.responseText); + } + }; + xhttp.open("GET", "assets/csv/faq.csv", true); + xhttp.send(); +}); diff --git a/landingpage/index.html b/landingpage/index.html new file mode 100644 index 0000000000000000000000000000000000000000..22be3572609709af4a8cf1352df9046a005b045a --- /dev/null +++ b/landingpage/index.html @@ -0,0 +1,188 @@ +<!DOCTYPE html> + +<html lang="de"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1"> + <link href="https://fonts.googleapis.com/css2?family=Indie+Flower&display=swap" rel="stylesheet"> + <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet"> + <link rel="stylesheet" href="assets/css/flickity.css"> + <link rel="stylesheet" href="assets/css/main.css"> + + <title>h_da - Kommunikation und Medien in der Informatik</title> +</head> +<body> + <header class="main-header"> + <nav class="main-nav"> + <div class="container"> + <img class="brand" alt="hda logo" src="assets/images/hda-logo.png"> + <ul class="main-nav__languages"> + <li><a href="#">EN</a></li><li><a href="#">DE</a></li> + </ul> + </div> + </nav> + <section class="section section--teaser"> + <div class="container container--flex"> + <div class="main-header__heading"> + <h1>Kommunikation und Medien in der Informatik</h1> + </div> + <div class="main-header__teaser"> + <div class="kimi-teaser"> + <img class="kimi-teaser__image" src="assets/images/kimi/winking.png" alt=""> + <div class="kimi-teaser__input"> + <input type="text" placeholder="Frag mich doch mal was ..." /> + <div id="chatbutton_holder"> + <div class="chatbot_button chatbot_button--inactive" onclick="toggleChat()"></div> + <img src="assets/images/kimi/bubble_active.png" alt="send kimi a message" class="blinkerButton"/> + </div> + </div> + </div> + </div> + </div> + </section> + <div class="main-header__footer"> + <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 110" class="main-header__footer__waves" preserveAspectRatio="none" > + <path d="m 0,2 79.382504,0.562607 c 79.997986,0.566969 239.999996,0 399.999996,16 160,16.000003 320,48.000003 480,58.700003 160,10.3 320,0.3 400,-5.4 L 1440,64.71012 V 112 H 0 Z" style="fill:#2eccfa;fill-opacity:0.7" /> + <path d="m 0,14.912524 h 80.000001 c 80.000009,0 240.000009,0 400.000009,19.131586 160,19.13158 320,57.39475 480,70.189 C 1120,116.54907 1280,104.59183 1360,97.7762 l 80,-6.33734 V 112 H 0 Z" style="fill:#ffffff;fill-opacity:1;stroke-width:1.09349167"/> + </svg> + </div> + </header> + <main> + <section class="section section--introduction"> + <div class="container container--flex"> + <h2>Introduction</h2> + <div class="info-article info-article--video highlighted"> + <div class="info-article__media"> + <iframe class="info-article__media--youtube" src="https://www.youtube.com/embed/6LOnEMBuW0I" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> + </div> + </div> + <div class="info-article info-article--text"> + <h2>Was ist KMI?</h2> + <p class="info-article__description"> + Im Bachelor-Studiengang Informatik mit Schwerpunkt Kommunikation und Medien in der Informatik (KMI) erlernen + Studierende zunächst die fachlichen und methodischen Grundlagen der + Informatik einschließlich der gängigen Programmiersprachen. + Einen Schwerpunkt des Curri-culums bildet die theoretische und praktische Softwareentwicklung und kommunikative Kompetenzen wie Teamreflexion im Fokus. + </p> + </div> + <div class="info-article info-article--text"> + <h2>Projekte stehen im Vordergrund</h2> + <p class="info-article__description"> + Bereits im ersten Semester starten Sie mit einem Projekt und lernen so wesentliche Elemente der Informatik kennen, + die Organisation über + <a href="https://about.gitlab.com/">gitlab</a> + , erste Erfahrungen mit der agilen Methode + <a href="https://de.wikipedia.org/wiki/Scrum">Scrum</a>, + Einblicke in nutzerzentrierte Softwareentwicklung und + <a href="https://www.interaction-design.org/literature/topics/ux-design">UX</a> + und natürlich die Um-setzung der eigenen Ideen unter Verwendung von + <a href="http://www.appinventor.org/">AppInventor</a> + (für Studierende, die ohne Programmier Vorkenntnisse bei uns starten), + <a href="https://about.gitlab.com/https://www.arduino.cc/">Arduino</a> + , + <a href="https://p5js.org/">p5js</a> + (für Studierende mit Programmierkenntnissen). Links auf dieser Seite finden Sie daraus entstandenen Videos des WiSe18/19 und des WiSe19/20.</p> + </div> + <div class="info-article info-article--video highlighted"> + <div class="info-article__media"> + <iframe class="info-article__media--youtube" src="https://www.youtube.com/embed/7-zvaghwb6M" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> + </div> + </div> + <div class="info-article info-article--video highlighted"> + <div class="info-article__media"> + <iframe class="info-article__media--youtube" src="https://www.youtube.com/embed/OEgASTpkwmw" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> + </div> + </div> + <div class="info-article info-article--text"> + <h2>KMI vs Informatik</h2> + <p class="info-article__description"> + Der Studienschwerpunkt Kommunikation und Medien in der Informatik + ist eine Variante des Allgemeinen Bachelors Informatik. Die Variante + Kommunikation und Medien ist zu ca. 80% identisch mit dem allgemeinen + Bachelor Informatik, d.h. auch diese Variante ist ein + Informatikstudium mit einem hohen Programmier Anteil. + In jedem Semester werden Akzente gesetzt: Im ersten und + dritten Semester ha-ben Sie beispielsweise ein Projekt + anstelle eher technisch ausge-richteter Module und im fünften + Semester absolvieren Sie die Hälfte Ihrer Wahlpflichtmodule am + Fachbereich Media. + </p> + </div> + </div> + </section> + <section class="section section--links"> + <div class="container"> + <h2>Wichtige Portale für dein Studium</h2> + <div class="links"> + <div class="link gallery-cell"><a href=""><img class="link__thumbnail" src="assets/images/obs_standart.png" title="Online Belegsystem OBS" /></a></div> + <div class="link gallery-cell"><a href=""><img class="link__thumbnail" src="assets/images/qis_standart.png" title="Onlinesystem QIS" /></a></div> + <div class="link gallery-cell"><a href="https://lernen.h-da.de"><img class="link__thumbnail" src="assets/images/moodleLogo.png" title="Moodle" /></a></div> + <div class="link gallery-cell"><a href="https://webmail.stud.h-da.de"><img class="link__thumbnail" src="assets/images/roundcube.png" title="Discord Channel des Fachbereichs Informatik" /></a></div> + <div class="link gallery-cell"><a href="https://code.fbi.h-da.de"><img class="link__thumbnail" src="assets/images/GitLab_Logo.svg.png" title="GitLab der Hochschule Darmstadt" /></a></div> + <div class="link gallery-cell"><a href="https://fbihome.de"><img class="link__thumbnail" src="assets/images/fbiLogo.png" title="Fachbereich Informatik" /></a></div> + <div class="link gallery-cell"><a href="https://discord.com/invite/22w3knc"><img class="link__thumbnail" src="assets/images/dc.png" title="Discord Channel des Fachbereichs Informatik" /></a></div> + </div> + </div> + </section> + <div id="faq"></div> + <section class="section section--faq" id="faq-section"> + <div class="container"> + <h2>FAQ</h2> + <hr> + <div class="question-answer-block" id="faq-gen"> + + </div> + </div> + </section> + <section class="section section--kimi"> + <h2>Noch Fragen?</h2> + <div class="container"> + <div class="kimi-faq"> + <img class="kimi-faq__avatar" alt="kimi is a happy chatbot" src="assets/images/kimi/happy.png" /> + <div class="kimi-faq__questions"> + <p class="kimi-faq__question speech-bubble speech-bubble--left-bottom">Wer bist du?</p> + <p class="kimi-faq__question speech-bubble speech-bubble--left-bottom">Wo ist Gebäude D10?</p> + <p class="kimi-faq__question speech-bubble speech-bubble--left-bottom">Was ist KMI?</p> + <p class="kimi-faq__question speech-bubble speech-bubble--left-bottom">Erzähl mal einen Witz!</p> + </div> + </div> + </div> + </section> + <aside class="chatbot"> + <div class="chat chat--closed"> + <div class="chat__header"> + <a href="#">gib mir feedback</a> + <a href="#" class="chat__header__minimize" onclick="closeChat()">⌄</a> + </div> + <div class="chat__dialogue"> + <div class="chat__dialogue__answer speech-bubble speech-bubble--left-top"> + <p>Hallo ich bin KIMI :)<br>Wie kann ich dir helfen?</p> + </div> + <div class="chat__dialogue__question speech-bubble speech-bubble--right-bottom"> + <p>Na du bist ja ein Süßer!</p> + </div> + <div class="chat__dialogue__answer speech-bubble speech-bubble--left-top"> + <p>Danke dir :)</p> + </div> + </div> + <div class="chat__footer"> + <input type="text" class="chat__input" name="question" > + <a class="chat__input__submit" href="#">▶</a> + </div> + </div> + <div class="chatbot__bubble chatbot__bubble--inactive" onclick="toggleChat()"> + </div> + </aside> + </main> + <footer class="main-footer"> + <div class="container"> + <article class="footer-item"> + <h3>Fachbereich Informatik</h3> + <p>Haardtring 100<br> 64295 Darmstadt</p><p><strong>ZENTRALE</strong><br> Telefon +49.6151.16-02</p><p><strong>STUDENT SERVICE CENTER</strong><br> Telefon +49.6151.16-33333<br><a href="https://www.h-da.de/?16445" title="Öffnet externen Link in neuem Fenster" target="_blank" class="external-link-new-window">Student Service Center</a></p> + </article> + </div> + </footer> + <script src="assets/js/flickity.pkgd.min.js"></script> + <script src="assets/js/mockup.js"></script> +</body> +</html> diff --git a/need_to_implement/.gitkeep b/need_to_implement/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/need_to_implement/faq/.gitkeep b/need_to_implement/faq/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/need_to_implement/faq/faq.csv b/need_to_implement/faq/faq.csv new file mode 100644 index 0000000000000000000000000000000000000000..a9aa4a790c109ecd349178ce5568e49690a76c59 --- /dev/null +++ b/need_to_implement/faq/faq.csv @@ -0,0 +1 @@ +What ist KIMI?,KIMI is our chatbot,what does KIMI?,KIMI help students who are new to university,Test question?,Answer for test question diff --git a/need_to_implement/faq/faq.php b/need_to_implement/faq/faq.php new file mode 100644 index 0000000000000000000000000000000000000000..f0f29ba5c09b85b8b99552fa3394e1234fd5bfde --- /dev/null +++ b/need_to_implement/faq/faq.php @@ -0,0 +1,41 @@ +<html> +<head> + <title>Title</title> + <style type="text/css"> +.question{ + color:blue; + font-weight: bold; + text-align: center; + +} +.answer{ + color:black; + text-align: center; + + } +.faq-header{ + font-family:bold; + text-align: center; + } +</style> + </head> + <body> + <p class="faq-header">Frequently Asked Questions</p> +<?php +if (($handle = fopen("faq.csv", "r")) !== FALSE) { + while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { + $num = count($data); + for ($c=0; $c < $num; $c++) { + + if (($c % 2) ==0) {echo "<p class=\"question\" > " ;echo $data[$c];} + else if (($c % 2) ==1) {echo "<p class=\"answer\" > " . $data[$c];} + + echo "</p>"; + + } + } + fclose($handle); +} +?> + </body> +</html> \ No newline at end of file