mirror of
https://github.com/Kugelschieber/breach.git
synced 2026-01-18 12:00:25 +00:00
Added basic components for UI.
This commit is contained in:
32
src/components/Buffer.vue
Normal file
32
src/components/Buffer.vue
Normal file
@@ -0,0 +1,32 @@
|
||||
<template>
|
||||
<div class="buffer">
|
||||
<h2>Buffer</h2>
|
||||
<div class="buffer-slots">
|
||||
<div class="buffer-slots-slot buffer-slots-border" v-for="(slot, i) in slots" :key="i">
|
||||
{{slot}}
|
||||
</div>
|
||||
</div>
|
||||
<h2>Sequences</h2>
|
||||
<div class="buffer-codes" v-for="(code, i) in codes" :key="i">
|
||||
<div class="buffer-slots">
|
||||
<div class="buffer-slots-slot" v-for="(digit, j) in code.code" :key="j">
|
||||
{{digit}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="buffer-points">
|
||||
{{code.points}} Pts
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent} from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
slots: {type: Array, required: true},
|
||||
codes: {type: Array, required: true}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -1,16 +0,0 @@
|
||||
import "jest";
|
||||
import {shallowMount} from "@vue/test-utils";
|
||||
import HelloWorld from "../components/HelloWorld.vue";
|
||||
|
||||
describe("HelloWorld.vue", () => {
|
||||
test("renders props.msg when passed", () => {
|
||||
const msg = "new message"
|
||||
const wrapper = shallowMount(HelloWorld, {
|
||||
propsData: {
|
||||
msg
|
||||
}
|
||||
});
|
||||
|
||||
expect(wrapper.text()).toMatch(msg)
|
||||
});
|
||||
});
|
||||
@@ -1,61 +0,0 @@
|
||||
<template>
|
||||
<div class="hello">
|
||||
<h1>{{ msg }}</h1>
|
||||
<p>
|
||||
For a guide and recipes on how to configure / customize this project,<br>
|
||||
check out the
|
||||
<a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
|
||||
</p>
|
||||
<h3>Installed CLI Plugins</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target="_blank" rel="noopener">typescript</a></li>
|
||||
<li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
|
||||
</ul>
|
||||
<h3>Essential Links!</h3>
|
||||
<ul>
|
||||
<li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
|
||||
<li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
|
||||
<li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
|
||||
<li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
|
||||
<li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
|
||||
</ul>
|
||||
<h3>Ecosystem</h3>
|
||||
<ul>
|
||||
<li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
|
||||
<li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
|
||||
<li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
|
||||
<li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
|
||||
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent} from 'vue';
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
msg: String
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
h3 {
|
||||
margin: 40px 0 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
display: inline-block;
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #42b983;
|
||||
}
|
||||
</style>
|
||||
16
src/components/Level.vue
Normal file
16
src/components/Level.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<template>
|
||||
<div class="level">
|
||||
<h1>Breach</h1>
|
||||
<div class="level-display">Level <span>{{level}}</span></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent} from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
level: {type: Number, required: true}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
21
src/components/Matrix.vue
Normal file
21
src/components/Matrix.vue
Normal file
@@ -0,0 +1,21 @@
|
||||
<template>
|
||||
<div class="matrix">
|
||||
<h2>Code-Matrix</h2>
|
||||
<div class="matrix-row" v-for="i in size" :key="i">
|
||||
<div class="matrix-column" v-for="j in size" :key="j">
|
||||
{{matrix[(i-1)*5+(j-1)]}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent} from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
size: {type: Number, required: true},
|
||||
matrix: {type: Array, required: true}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
37
src/components/Timer.vue
Normal file
37
src/components/Timer.vue
Normal file
@@ -0,0 +1,37 @@
|
||||
<template>
|
||||
<div class="timer">
|
||||
<div class="timer-countdown">{{countdown}}</div>
|
||||
<div class="timer-progress" :style="{width: `${progress}%`}"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent, ref} from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
props: {
|
||||
time: {type: Object, required: true}
|
||||
},
|
||||
setup(props) {
|
||||
const countdown = ref("60.00");
|
||||
const progress = ref(100);
|
||||
|
||||
setInterval(() => {
|
||||
const remaining = (props.time.getTime()-new Date().getTime())/1000;
|
||||
|
||||
if(remaining > 0) {
|
||||
countdown.value = remaining.toFixed(2);
|
||||
progress.value = remaining/60*100;
|
||||
} else {
|
||||
countdown.value = "0.00";
|
||||
progress.value = 0;
|
||||
}
|
||||
}, 100);
|
||||
|
||||
return {
|
||||
countdown,
|
||||
progress
|
||||
};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user