|
|
@ -1,52 +1,5 @@ |
|
|
|
<template> |
|
|
|
<!-- QUICK NAV --> |
|
|
|
<nav id="QuickNav" class="fixed bottom-0 left-0 right-0 bg-slate-200 z-50"> |
|
|
|
<ul class="flex text-2xl p-2 gap-2"> |
|
|
|
<!-- Home Feed --> |
|
|
|
<li class="basis-1/5 rounded-md text-slate-500"> |
|
|
|
<router-link :to="{ name: 'home' }" class="block text-center py-3 px-1"> |
|
|
|
<fa icon="house-chimney" class="fa-fw"></fa> |
|
|
|
</router-link> |
|
|
|
</li> |
|
|
|
<!-- Search --> |
|
|
|
<li class="basis-1/5 rounded-md text-slate-500"> |
|
|
|
<router-link |
|
|
|
:to="{ name: 'discover' }" |
|
|
|
class="block text-center py-3 px-1" |
|
|
|
> |
|
|
|
<fa icon="magnifying-glass" class="fa-fw"></fa> |
|
|
|
</router-link> |
|
|
|
</li> |
|
|
|
<!-- Projects --> |
|
|
|
<li class="basis-1/5 rounded-md text-slate-500"> |
|
|
|
<router-link |
|
|
|
:to="{ name: 'projects' }" |
|
|
|
class="block text-center py-3 px-1" |
|
|
|
> |
|
|
|
<fa icon="folder-open" class="fa-fw"></fa> |
|
|
|
</router-link> |
|
|
|
</li> |
|
|
|
<!-- Contacts --> |
|
|
|
<li class="basis-1/5 rounded-md text-slate-500"> |
|
|
|
<router-link |
|
|
|
:to="{ name: 'contacts' }" |
|
|
|
class="block text-center py-3 px-1" |
|
|
|
> |
|
|
|
<fa icon="users" class="fa-fw"></fa> |
|
|
|
</router-link> |
|
|
|
</li> |
|
|
|
<!-- Profile --> |
|
|
|
<li class="basis-1/5 rounded-md bg-slate-400 text-white"> |
|
|
|
<router-link |
|
|
|
:to="{ name: 'account' }" |
|
|
|
class="block text-center py-3 px-1" |
|
|
|
> |
|
|
|
<fa icon="circle-user" class="fa-fw"></fa> |
|
|
|
</router-link> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
</nav> |
|
|
|
|
|
|
|
<QuickNav selected="Profile"></QuickNav> |
|
|
|
<!-- CONTENT --> |
|
|
|
<section id="Content" class="p-6 pb-24"> |
|
|
|
<!-- Heading --> |
|
|
@ -86,27 +39,34 @@ |
|
|
|
:alertMessage="alertMessage" |
|
|
|
></AlertMessage> |
|
|
|
</section> |
|
|
|
</template> |
|
|
|
</template> /** |
|
|
|
// from https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#examples |
|
|
|
// Adds a blank image const dataBlob = document |
|
|
|
.querySelector("#scene-container") .firstChild.toBlob((blob) => { const newImg = |
|
|
|
document.createElement("img"); const url = URL.createObjectURL(blob); |
|
|
|
newImg.onload = () => { // no longer need to read the blob so it's revoked |
|
|
|
URL.revokeObjectURL(url); }; newImg.src = url; |
|
|
|
document.body.appendChild(newImg); }); **/ |
|
|
|
|
|
|
|
<script lang="ts"> |
|
|
|
import { SVGRenderer } from "three/addons/renderers/SVGRenderer.js"; |
|
|
|
import { Component, Vue } from "vue-facing-decorator"; |
|
|
|
import { World } from "@/components/World/World.js"; |
|
|
|
import AlertMessage from "@/components/AlertMessage"; |
|
|
|
import QuickNav from "@/components/QuickNav"; |
|
|
|
|
|
|
|
interface WorldProperties { |
|
|
|
startTime?: string; |
|
|
|
endTime?: string; |
|
|
|
} |
|
|
|
|
|
|
|
@Component({ components: { AlertMessage, World } }) |
|
|
|
@Component({ components: { AlertMessage, World, QuickNav } }) |
|
|
|
export default class StatisticsView extends Vue { |
|
|
|
world: World; |
|
|
|
worldProperties: WorldProperties = {}; |
|
|
|
alertTitle = ""; |
|
|
|
alertMessage = ""; |
|
|
|
|
|
|
|
// 'mounted' hook runs after initial render |
|
|
|
mounted() { |
|
|
|
try { |
|
|
|
const container = document.querySelector("#scene-container"); |
|
|
|