<!DOCTYPE html> <html> <meta charset="UTF-8"> <head> <link href="animate.min.css" rel="stylesheet"> <link href="styles.css" rel="stylesheet"></link> <script src="vue.js"></script> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Righteous"> </head> <body> <div id="app"></div> <script type="text/x-template" id="app_template"> <div id="app"> <div class="chat-window" :style="this.style" :class="{ 'fadeOutUp animated': !showWindow, 'hidden': shouldHide }"> <div class="chat-messages" ref="messages"> <message v-for="msg in messages" :templates="templates" :multiline="msg.multiline" :args="msg.args" :color="msg.color" :template="msg.template" :template-id="msg.templateId" :key="msg"> </message> </div> </div> <div class="chat-input" v-show="showInput"> <div> <!-- <span class="prefix"><i class="fas fa-paper-plane fa-lg"></i></span> --> <input v-model="message" ref="input" type="text" placeholder="Type a command" autofocus spellcheck="false" @keyup.esc="hideInput" @keyup="keyUp" @keydown="keyDown" @keypress.enter.prevent="send"> </input> </div> <suggestions :message="message" :suggestions="suggestions"></suggestions> </div> </div> </script> <script type="text/x-template" id="message_template"> <div class="msg" :class="{ multiline }"> <span v-html="textEscaped"></span> </div> </script> <script type="text/x-template" id="suggestions_template"> <div class="suggestions-wrap" v-show="currentSuggestions.length > 0"> <ul class="suggestions"> <li class="suggestion" v-for="s in currentSuggestions"> <p> <span :class="{ 'disabled': s.disabled }"> {{s.name}} </span> <span class="param" v-for="(p, index) in s.params" :class="{ 'disabled': p.disabled }"> [{{p.name}}] </span> </p> <small class="help"> <template v-if="!s.disabled"> {{s.help}} </template> <template v-for="p in s.params" v-if="!p.disabled"> {{p.help}} </template> </small> </li> </ul> </div> </script> <script src="suggestions.js" type="text/javascript"></script> <script src="message.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <script type="text/javascript"> window.post = (url, data) => { var request = new XMLHttpRequest(); request.open('POST', url, true); request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8'); request.send(data); } const instance = new Vue({ el: '#app', render: h => h(APP), }); window.emulate = (type, detail = {}) => { detail.type = type; window.dispatchEvent(new CustomEvent('message', { detail, })); }; </script> </body> </html>