Merge pull request #1 from PhaseII-eAmusement-Network/minified
Move minified branch into maser
2
.env.development
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
VITE_API_URL="http://10.5.7.231:8000/"
|
||||
VITE_API_KEY="your_api_key_should_be_here"
|
||||
2
.env.production
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
VITE_API_URL="https://restfulsleep.phaseii.network"
|
||||
VITE_API_KEY="your_api_key_should_be_here"
|
||||
71
index.html
|
|
@ -7,6 +7,40 @@
|
|||
<link rel="icon" href="/favicon.png">
|
||||
<title>PhaseWeb 3</title>
|
||||
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background-color: #1f2937;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var pattern = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
|
||||
var current = 0;
|
||||
|
||||
var keyHandler = function (event) {
|
||||
if (pattern.indexOf(event.key) < 0 || event.key !== pattern[current]) {
|
||||
current = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
current++;
|
||||
|
||||
if (pattern.length === current) {
|
||||
current = 0;
|
||||
document.getElementById('audio').play();
|
||||
window.alert('+30 lives.');
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
document.addEventListener('keydown', keyHandler, false);
|
||||
</script>
|
||||
</head>
|
||||
<body class="scroll-smooth">
|
||||
<noscript>
|
||||
|
|
@ -15,41 +49,6 @@
|
|||
<div id="app"></div>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
<!-- built files will be auto injected -->
|
||||
<audio id="audio" src="/assets/sounds/konami.mp3" class="hidden" />
|
||||
<audio id="audio" src="/assets/sounds/konami.mp3" class="hidden">
|
||||
</body>
|
||||
|
||||
<style>
|
||||
body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background-color: #1f2937;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
var pattern = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a'];
|
||||
var current = 0;
|
||||
|
||||
var keyHandler = function (event) {
|
||||
if (pattern.indexOf(event.key) < 0 || event.key !== pattern[current]) {
|
||||
current = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
current++;
|
||||
|
||||
if (pattern.length === current) {
|
||||
current = 0;
|
||||
document.getElementById('audio').play();
|
||||
window.alert('+30 lives.');
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
document.addEventListener('keydown', keyHandler, false);
|
||||
</script>
|
||||
</html>
|
||||
|
|
|
|||
97
package-lock.json
generated
|
|
@ -12,11 +12,15 @@
|
|||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
"axios": "^0.27.0",
|
||||
"chart.js": "^3.6.0",
|
||||
"crypto-js": "^4.2.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"js-cookie": "^3.0.5",
|
||||
"numeral": "^2.0.6",
|
||||
"particles.js": "^2.0.0",
|
||||
"pinia": "^2.0.13",
|
||||
"vue": "^3.0.0",
|
||||
"vue-router": "^4.0.0"
|
||||
"vue-router": "^4.0.0",
|
||||
"vue3-easy-data-table": "^1.5.47"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
|
|
@ -654,9 +658,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001554",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz",
|
||||
"integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==",
|
||||
"version": "1.0.30001628",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz",
|
||||
"integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
|
@ -791,6 +795,11 @@
|
|||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/crypto-js": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||
},
|
||||
"node_modules/cssesc": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
||||
|
|
@ -863,6 +872,17 @@
|
|||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dotenv": {
|
||||
"version": "16.4.5",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://dotenvx.com"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.567",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz",
|
||||
|
|
@ -1568,9 +1588,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
|
|
@ -1840,6 +1860,14 @@
|
|||
"jiti": "bin/jiti.js"
|
||||
}
|
||||
},
|
||||
"node_modules/js-cookie": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
|
||||
"integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/js-sdsl": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
|
||||
|
|
@ -2926,9 +2954,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz",
|
||||
"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==",
|
||||
"version": "3.2.10",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz",
|
||||
"integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.15.9",
|
||||
|
|
@ -3024,6 +3052,14 @@
|
|||
"vue": "^3.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue3-easy-data-table": {
|
||||
"version": "1.5.47",
|
||||
"resolved": "https://registry.npmjs.org/vue3-easy-data-table/-/vue3-easy-data-table-1.5.47.tgz",
|
||||
"integrity": "sha512-q0bZBlWIwQ3FIhB+F98ylFPfBJWiS3Xv7QqBe3xS5MbRNZP96RFjaQn7C0Pi0J/aaucNW8gFWxPyh9NESS1ehw==",
|
||||
"dependencies": {
|
||||
"vue": "^3.2.45"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
|
|
@ -3542,9 +3578,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"caniuse-lite": {
|
||||
"version": "1.0.30001554",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz",
|
||||
"integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==",
|
||||
"version": "1.0.30001628",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz",
|
||||
"integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
|
|
@ -3635,6 +3671,11 @@
|
|||
"which": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"crypto-js": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz",
|
||||
"integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q=="
|
||||
},
|
||||
"cssesc": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
||||
|
|
@ -3687,6 +3728,11 @@
|
|||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"dotenv": {
|
||||
"version": "16.4.5",
|
||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
|
||||
"integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg=="
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.4.567",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz",
|
||||
|
|
@ -4118,9 +4164,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
|
||||
"version": "1.15.6",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "4.0.0",
|
||||
|
|
@ -4305,6 +4351,11 @@
|
|||
"integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==",
|
||||
"dev": true
|
||||
},
|
||||
"js-cookie": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
|
||||
"integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw=="
|
||||
},
|
||||
"js-sdsl": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
|
||||
|
|
@ -5016,9 +5067,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"vite": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz",
|
||||
"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==",
|
||||
"version": "3.2.10",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz",
|
||||
"integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esbuild": "^0.15.9",
|
||||
|
|
@ -5063,6 +5114,14 @@
|
|||
"@vue/devtools-api": "^6.4.5"
|
||||
}
|
||||
},
|
||||
"vue3-easy-data-table": {
|
||||
"version": "1.5.47",
|
||||
"resolved": "https://registry.npmjs.org/vue3-easy-data-table/-/vue3-easy-data-table-1.5.47.tgz",
|
||||
"integrity": "sha512-q0bZBlWIwQ3FIhB+F98ylFPfBJWiS3Xv7QqBe3xS5MbRNZP96RFjaQn7C0Pi0J/aaucNW8gFWxPyh9NESS1ehw==",
|
||||
"requires": {
|
||||
"vue": "^3.2.45"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
|
|
|
|||
|
|
@ -12,11 +12,15 @@
|
|||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
"axios": "^0.27.0",
|
||||
"chart.js": "^3.6.0",
|
||||
"crypto-js": "^4.2.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"js-cookie": "^3.0.5",
|
||||
"numeral": "^2.0.6",
|
||||
"particles.js": "^2.0.0",
|
||||
"pinia": "^2.0.13",
|
||||
"vue": "^3.0.0",
|
||||
"vue-router": "^4.0.0"
|
||||
"vue-router": "^4.0.0",
|
||||
"vue3-easy-data-table": "^1.5.47"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@rushstack/eslint-patch": "^1.1.4",
|
||||
|
|
|
|||
BIN
public/assets/card/bst.png
Normal file
|
After Width: | Height: | Size: 532 KiB |
BIN
public/assets/card/carpet.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
public/assets/card/dancerush.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
public/assets/card/danevo.png
Normal file
|
After Width: | Height: | Size: 278 KiB |
BIN
public/assets/card/loveplus.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
public/assets/card/museca.png
Normal file
|
After Width: | Height: | Size: 5.3 MiB |
BIN
public/assets/card/newbishi.png
Normal file
|
After Width: | Height: | Size: 339 KiB |
BIN
public/assets/card/nost.png
Normal file
|
After Width: | Height: | Size: 339 KiB |
BIN
public/assets/card/reflec.png
Normal file
|
After Width: | Height: | Size: 513 KiB |
BIN
public/assets/card/time.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
public/assets/card/tsum.png
Normal file
|
After Width: | Height: | Size: 4.0 MiB |
BIN
public/assets/games/bst/card/1.png
Normal file
|
After Width: | Height: | Size: 732 KiB |
BIN
public/assets/games/bst/card/2.png
Normal file
|
After Width: | Height: | Size: 388 KiB |
BIN
public/assets/games/dancerush/card/1.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
public/assets/games/danevo/card/1.png
Normal file
|
After Width: | Height: | Size: 278 KiB |
BIN
public/assets/games/ddr/card/11.png
Normal file
|
After Width: | Height: | Size: 370 KiB |
BIN
public/assets/games/ddr/card/12.png
Normal file
|
After Width: | Height: | Size: 484 KiB |
BIN
public/assets/games/ddrclass/card/10.png
Normal file
|
After Width: | Height: | Size: 316 KiB |
BIN
public/assets/games/ddrclass/card/9.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
public/assets/games/ddromni/card/13.png
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
public/assets/games/ddromni/card/14.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/assets/games/ddromni/card/15.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/assets/games/ddromni/card/16.png
Normal file
|
After Width: | Height: | Size: 616 KiB |
BIN
public/assets/games/ddromni/card/17.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |
BIN
public/assets/games/ddromni/card/18.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/ddromni/card/19.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/assets/games/gitadora_dm/card/1.png
Normal file
|
After Width: | Height: | Size: 670 KiB |
BIN
public/assets/games/gitadora_dm/card/2.png
Normal file
|
After Width: | Height: | Size: 629 KiB |
BIN
public/assets/games/gitadora_dm/card/3.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/gitadora_dm/card/4.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/gitadora_dm/card/5.png
Normal file
|
After Width: | Height: | Size: 950 KiB |
BIN
public/assets/games/gitadora_dm/card/6.png
Normal file
|
After Width: | Height: | Size: 958 KiB |
BIN
public/assets/games/gitadora_dm/card/7.png
Normal file
|
After Width: | Height: | Size: 669 KiB |
BIN
public/assets/games/gitadora_dm/card/8.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/assets/games/gitadora_dm/card/9.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/gitadora_gf/card/1.png
Normal file
|
After Width: | Height: | Size: 670 KiB |
BIN
public/assets/games/gitadora_gf/card/2.png
Normal file
|
After Width: | Height: | Size: 629 KiB |
BIN
public/assets/games/gitadora_gf/card/3.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/gitadora_gf/card/4.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/gitadora_gf/card/5.png
Normal file
|
After Width: | Height: | Size: 968 KiB |
BIN
public/assets/games/gitadora_gf/card/6.png
Normal file
|
After Width: | Height: | Size: 958 KiB |
BIN
public/assets/games/gitadora_gf/card/7.png
Normal file
|
After Width: | Height: | Size: 669 KiB |
BIN
public/assets/games/gitadora_gf/card/8.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/assets/games/gitadora_gf/card/9.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/assets/games/iidxclass/card/14.png
Normal file
|
After Width: | Height: | Size: 475 KiB |
BIN
public/assets/games/iidxclass/card/15.png
Normal file
|
After Width: | Height: | Size: 659 KiB |
BIN
public/assets/games/iidxclass/card/16.png
Normal file
|
After Width: | Height: | Size: 831 KiB |
BIN
public/assets/games/iidxclass/card/17.png
Normal file
|
After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 243 KiB After Width: | Height: | Size: 243 KiB |
BIN
public/assets/games/jubeat/card/1.png
Normal file
|
After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 94 KiB |
BIN
public/assets/games/jubeat/card/11.png
Normal file
|
After Width: | Height: | Size: 441 KiB |
BIN
public/assets/games/jubeat/card/12.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/assets/games/jubeat/card/14.png
Normal file
|
After Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 93 KiB |
BIN
public/assets/games/jubeat/card/4.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
public/assets/games/jubeat/card/5.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/assets/games/jubeat/card/6.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/assets/games/jubeat/card/7.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/assets/games/jubeat/card/8.png
Normal file
|
After Width: | Height: | Size: 411 KiB |
BIN
public/assets/games/jubeat/card/9.png
Normal file
|
After Width: | Height: | Size: 131 KiB |
BIN
public/assets/games/loveplus/card/1.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
public/assets/games/loveplus/card/2.png
Normal file
|
After Width: | Height: | Size: 95 KiB |
BIN
public/assets/games/reflec/card/1.png
Normal file
|
After Width: | Height: | Size: 513 KiB |
BIN
public/assets/games/reflec/card/2.png
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
public/assets/games/reflec/card/3.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
public/assets/games/reflec/card/3_a.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
public/assets/games/reflec/card/3_sp.png
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
public/assets/games/reflec/card/3_su.png
Normal file
|
After Width: | Height: | Size: 102 KiB |
BIN
public/assets/games/reflec/card/3_w.png
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
public/assets/games/reflec/card/4.png
Normal file
|
After Width: | Height: | Size: 355 KiB |
BIN
public/assets/games/reflec/card/5.png
Normal file
|
After Width: | Height: | Size: 944 KiB |
BIN
public/assets/games/reflec/card/6.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/assets/games/reflec/card/rb2_2.png
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
public/assets/games/tsum/card/1.png
Normal file
|
After Width: | Height: | Size: 4.0 MiB |
BIN
public/assets/icon/bishi.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
public/assets/icon/bst.png
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
public/assets/icon/dancerush.png
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
public/assets/icon/danevo.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
public/assets/icon/loveplus.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
public/assets/icon/museca.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
public/assets/icon/newbishi.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
public/assets/icon/nost.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
public/assets/icon/reflec.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
public/assets/icon/tsum.png
Normal file
|
After Width: | Height: | Size: 310 KiB |
|
|
@ -1 +0,0 @@
|
|||
{"data":[{"amount":375.53,"account":"45721474","name":"Home Loan Account","date":"3 days ago","type":"deposit","business":"Turcotte"},{"amount":470.26,"account":"94486537","name":"Savings Account","date":"3 days ago","type":"payment","business":"Murazik - Graham"},{"amount":971.34,"account":"63189893","name":"Checking Account","date":"5 days ago","type":"invoice","business":"Fahey - Keebler"},{"amount":374.63,"account":"74828780","name":"Auto Loan Account","date":"7 days ago","type":"withdrawal","business":"Collier - Hintz"}]}
|
||||
45
src/App.vue
|
|
@ -5,3 +5,48 @@ import { RouterView } from "vue-router";
|
|||
<template>
|
||||
<RouterView :key="$route.fullPath" />
|
||||
</template>
|
||||
|
||||
<style>
|
||||
.customize-table {
|
||||
--easy-table-border: 1px solid #1f2937;
|
||||
--easy-table-row-border: 1px solid #445269;
|
||||
|
||||
--easy-table-header-font-size: 15px;
|
||||
--easy-table-header-height: 50px;
|
||||
--easy-table-header-font-color: #c1cad4;
|
||||
--easy-table-header-background-color: #0f172a;
|
||||
|
||||
--easy-table-header-item-padding: 10px 15px;
|
||||
|
||||
--easy-table-body-even-row-font-color: #fff;
|
||||
--easy-table-body-even-row-background-color: #475569;
|
||||
|
||||
--easy-table-body-row-font-color: #c0c7d2;
|
||||
--easy-table-body-row-background-color: #334155;
|
||||
--easy-table-body-row-height: 50px;
|
||||
--easy-table-body-row-font-size: 15px;
|
||||
|
||||
--easy-table-body-row-hover-font-color: #c0c7d2;
|
||||
--easy-table-body-row-hover-background-color: #475569;
|
||||
|
||||
--easy-table-body-item-padding: 10px 15px;
|
||||
|
||||
--easy-table-footer-background-color: #0f172a;
|
||||
--easy-table-footer-font-color: #c0c7d2;
|
||||
--easy-table-footer-click-button-color: #c0c7d2;
|
||||
--easy-table-footer-font-size: 14px;
|
||||
--easy-table-footer-padding: 0px 10px;
|
||||
--easy-table-footer-height: 50px;
|
||||
|
||||
--easy-table-rows-per-page-selector-width: 70px;
|
||||
--easy-table-rows-per-page-selector-option-padding: 10px;
|
||||
--easy-table-rows-per-page-selector-z-index: 1;
|
||||
|
||||
--easy-table-scrollbar-track-color: #2d3a4f;
|
||||
--easy-table-scrollbar-color: #2d3a4f;
|
||||
--easy-table-scrollbar-thumb-color: #4c5d7a;
|
||||
--easy-table-scrollbar-corner-color: #2d3a4f;
|
||||
|
||||
--easy-table-loading-mask-background-color: #2d3a4f;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ export const getButtonColor = (
|
|||
success: "ring-emerald-300 dark:ring-emerald-700",
|
||||
danger: "ring-red-300 dark:ring-red-700",
|
||||
warning: "ring-yellow-300 dark:ring-yellow-700",
|
||||
info: "ring-blue-300 dark:ring-blue-700",
|
||||
info: "ring-blue-300 dark:ring-blue-800",
|
||||
},
|
||||
active: {
|
||||
white: "bg-gray-100",
|
||||
|
|
@ -65,10 +65,10 @@ export const getButtonColor = (
|
|||
whiteDark: "bg-white text-black dark:bg-slate-900 dark:text-white",
|
||||
lightDark: "bg-gray-100 text-black dark:bg-slate-800 dark:text-white",
|
||||
contrast: "bg-gray-800 text-white dark:bg-white dark:text-black",
|
||||
success: "bg-emerald-600 dark:bg-emerald-500 text-white",
|
||||
danger: "bg-red-600 dark:bg-red-500 text-white",
|
||||
warning: "bg-yellow-600 dark:bg-yellow-500 text-white",
|
||||
info: "bg-blue-600 dark:bg-blue-500 text-white",
|
||||
success: "bg-emerald-600 dark:bg-emerald-700 text-white",
|
||||
danger: "bg-red-600 dark:bg-red-800 text-white",
|
||||
warning: "bg-yellow-600 dark:bg-yellow-700 text-white",
|
||||
info: "bg-blue-600 dark:bg-blue-900 text-white",
|
||||
},
|
||||
bgHover: {
|
||||
white: "hover:bg-gray-100",
|
||||
|
|
|
|||
|
|
@ -1,87 +1,130 @@
|
|||
<script setup>
|
||||
import { mdiTestTube, mdiStoreOutline, mdiHomeOutline } from "@mdi/js";
|
||||
import { getArea } from "@/constants/area";
|
||||
import {
|
||||
mdiTestTube,
|
||||
mdiHomeOutline,
|
||||
mdiNewspaperVariantMultiple,
|
||||
mdiGamepad,
|
||||
mdiCashRegister,
|
||||
mdiHome,
|
||||
} from "@mdi/js";
|
||||
import { ref } from "vue";
|
||||
// import { getArea } from "@/constants/area";
|
||||
import BaseLevel from "@/components/BaseLevel.vue";
|
||||
import CardBox from "@/components/CardBox.vue";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import PillTag from "@/components/PillTag.vue";
|
||||
|
||||
const props = defineProps({
|
||||
useSmall: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: true,
|
||||
default: false,
|
||||
},
|
||||
arcadeData: {
|
||||
arcade: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
});
|
||||
|
||||
function getCardStyle(game) {
|
||||
if (game !== null) {
|
||||
var arcadeData = ref(props.arcade.data);
|
||||
function getCardStyle(path) {
|
||||
if (path !== null) {
|
||||
return `
|
||||
background-image: url('${game}');
|
||||
background-image: url('${path}');
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
const areaData = getArea(props.arcadeData.area);
|
||||
// const areaData = getArea(props.arcadeData.area);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<CardBox :style="getCardStyle(arcadeData.image)">
|
||||
<div
|
||||
:style="getCardStyle('/assets/card/carpet.png')"
|
||||
class="rounded-2xl mb-6 w-full"
|
||||
>
|
||||
<BaseLevel
|
||||
type="justify-center"
|
||||
class="bg-white dark:bg-slate-900/90 rounded-2xl p-3"
|
||||
class="bg-white dark:bg-slate-900/90 rounded-2xl p-6 w-full"
|
||||
>
|
||||
<div class="space-y-3 text-center">
|
||||
<h1 class="text-2xl lg:text-3xl font-bold">{{ arcadeData.name }}</h1>
|
||||
<div class="space-y-3 text-center w-full">
|
||||
<h1 class="text-2xl lg:text-3xl font-bold">{{ arcade.name }}</h1>
|
||||
<div class="flex gap-2 justify-center items-center">
|
||||
<h2 class="text-2xl md:text-3xl font-bold lg:hidden">
|
||||
<!-- <h2 class="text-2xl md:text-3xl font-bold lg:hidden">
|
||||
{{ areaData.flag }}
|
||||
</h2>
|
||||
</h2> -->
|
||||
<h2 class="text-xl md:text-2xl font-bold">
|
||||
{{ areaData.name }}
|
||||
{{ arcade.description }}
|
||||
</h2>
|
||||
</div>
|
||||
<hr class="border-t border-1 w-full" />
|
||||
<p class="text-lg">
|
||||
Managed by
|
||||
<span
|
||||
v-for="(user, index) in arcadeData.admins"
|
||||
:key="index"
|
||||
class="font-bold"
|
||||
>
|
||||
<span v-if="index === 0">{{ user }}</span>
|
||||
<span v-else-if="index >= arcadeData.admins.length - 1"
|
||||
>, <span class="font-normal">and</span> {{ user }}.</span
|
||||
>
|
||||
<span v-else>, {{ user }}</span>
|
||||
</span>
|
||||
</p>
|
||||
<div class="flex flex-wrap gap-4 place-content-center">
|
||||
<PillTag
|
||||
v-if="arcadeData.beta"
|
||||
v-if="arcadeData.is_beta"
|
||||
label="Beta Enabled"
|
||||
color="warning"
|
||||
:icon="mdiTestTube"
|
||||
/>
|
||||
<PillTag
|
||||
v-if="arcadeData.public"
|
||||
label="Public Arcade"
|
||||
color="success"
|
||||
:icon="mdiStoreOutline"
|
||||
/>
|
||||
<PillTag
|
||||
v-if="!arcadeData.public"
|
||||
label="Private Arcade"
|
||||
<PillTag label="Private Arcade" color="info" :icon="mdiHomeOutline" />
|
||||
</div>
|
||||
|
||||
<hr class="border-t border-1 w-full" />
|
||||
<p v-if="arcade.owners && arcade.owners.length" class="text-lg">
|
||||
Managed by
|
||||
<span
|
||||
v-for="(owner, index) in arcade.owners"
|
||||
:key="owner.username"
|
||||
class="font-bold"
|
||||
>
|
||||
<template v-if="arcade.owners.length === 2 && index === 0">{{
|
||||
owner.username
|
||||
}}</template>
|
||||
<template v-else-if="arcade.owners.length === 2 && index === 1">
|
||||
<span class="font-normal"> and</span>
|
||||
{{ owner.username }}.</template
|
||||
>
|
||||
<template v-else-if="index === 0">{{ owner.username }}</template>
|
||||
<template v-else-if="index === arcade.owners.length - 1"
|
||||
>, <span class="font-normal"> and</span>
|
||||
{{ owner.username }}.</template
|
||||
>
|
||||
<template v-else>, {{ owner.username }}</template>
|
||||
</span>
|
||||
</p>
|
||||
|
||||
<div
|
||||
v-if="!useSmall"
|
||||
class="md:w-full grid grid-cols-1 md:grid-cols-3 gap-3"
|
||||
>
|
||||
<BaseButton
|
||||
:href="`/#/arcade/${arcade.id}/events`"
|
||||
:icon="mdiNewspaperVariantMultiple"
|
||||
color="info"
|
||||
:icon="mdiHomeOutline"
|
||||
label="Event Settings"
|
||||
/>
|
||||
<BaseButton
|
||||
:href="`/#/arcade/${arcade.id}/machines`"
|
||||
:icon="mdiGamepad"
|
||||
color="info"
|
||||
label="Machine List"
|
||||
/>
|
||||
<BaseButton
|
||||
:href="`/#/arcade/${arcade.id}/paseli`"
|
||||
:icon="mdiCashRegister"
|
||||
color="info"
|
||||
label="PASELI"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="useSmall" class="w-full flex justify-center">
|
||||
<BaseButton
|
||||
:href="`/#/arcade/${arcade.id}`"
|
||||
:icon="mdiHome"
|
||||
color="info"
|
||||
label="Arcade Home"
|
||||
class="w-full md:w-[150px]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</BaseLevel>
|
||||
</CardBox>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ const props = defineProps({
|
|||
},
|
||||
outline: {
|
||||
type: Boolean,
|
||||
default: true,
|
||||
default: false,
|
||||
},
|
||||
active: Boolean,
|
||||
disabled: Boolean,
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ function openNewsView() {
|
|||
<div
|
||||
class="outline outline-green-900/50 hover:scale-[1.01] hover:shadow-xl hover:outline hover:outline-blue-500/50 hover:bg-slate-500 hover:dark:bg-slate-950/90 bg-white dark:bg-slate-900/90 rounded-xl p-4 h-full w-full transition-all duration-10"
|
||||
>
|
||||
<p class="text-sm font-bold">Unread</p>
|
||||
<p class="text-sm">{{ props.date }}</p>
|
||||
<hr class="pb-1" />
|
||||
<h2 class="text-xl pb-2">{{ props.title }}</h2>
|
||||
|
|
|
|||
132
src/components/Cards/EmblemCardBox.vue
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
<script setup>
|
||||
import axios from "axios";
|
||||
import { watch, ref, reactive } from "vue";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import CardBox from "@/components/CardBox.vue";
|
||||
import FormField from "@/components/FormField.vue";
|
||||
import FormControl from "@/components/FormControl.vue";
|
||||
import UserEmblem from "@/components/UserEmblem.vue";
|
||||
import PillTag from "@/components/PillTag.vue";
|
||||
|
||||
const props = defineProps({
|
||||
profile: {
|
||||
type: Object,
|
||||
default: null,
|
||||
},
|
||||
version: {
|
||||
type: Number,
|
||||
default: 14,
|
||||
},
|
||||
});
|
||||
|
||||
const userProfile = ref(props.profile);
|
||||
const version = ref(props.version);
|
||||
const emblemKey = ref(0);
|
||||
|
||||
const newEmblem = reactive(formatEmblem(userProfile.value?.last?.emblem));
|
||||
const emblemSettings = ref([]);
|
||||
|
||||
watch(
|
||||
() => props.version,
|
||||
() => {
|
||||
userProfile.value = props.profile;
|
||||
version.value = props.version;
|
||||
loadEmblemSettings();
|
||||
newEmblem.value = formatEmblem(userProfile.value.last?.emblem);
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
newEmblem,
|
||||
() => {
|
||||
emblemKey.value++;
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
loadEmblemSettings();
|
||||
function loadEmblemSettings() {
|
||||
axios
|
||||
.get(
|
||||
`https://web3.phaseii.network/gameassets/emblems/${version.value}.json`
|
||||
)
|
||||
.then((r) => {
|
||||
if (r.data) {
|
||||
emblemSettings.value = r.data;
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log(error.message);
|
||||
});
|
||||
}
|
||||
|
||||
function formatEmblem(emblem) {
|
||||
if (emblem) {
|
||||
return {
|
||||
background: emblem[0],
|
||||
main: emblem[1],
|
||||
ornament: emblem[2],
|
||||
effect: emblem[3],
|
||||
speech_bubble: emblem[4],
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
background: 0,
|
||||
main: 0,
|
||||
ornament: 0,
|
||||
effect: 0,
|
||||
speech_bubble: 0,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function encodeEmblem(emblem) {
|
||||
if (emblem) {
|
||||
return [
|
||||
emblem.background,
|
||||
emblem.main,
|
||||
emblem.ornament,
|
||||
emblem.effect,
|
||||
emblem.speech_bubble,
|
||||
];
|
||||
} else {
|
||||
return [0, 0, 0, 0, 0];
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<CardBox class="mt-6">
|
||||
<PillTag color="info" label="Emblem" class="mb-2" />
|
||||
<div class="grid md:grid-cols-2 space-y-6 align-center">
|
||||
<div>
|
||||
<FormField
|
||||
v-for="option of emblemSettings"
|
||||
:key="option.id"
|
||||
:label="option.name"
|
||||
:help="option.help"
|
||||
>
|
||||
<FormControl
|
||||
v-model="newEmblem[option.id]"
|
||||
:options="option.options"
|
||||
/>
|
||||
</FormField>
|
||||
</div>
|
||||
<div class="place-self-center">
|
||||
<UserEmblem
|
||||
:key="emblemKey"
|
||||
:version="version"
|
||||
:profile="{ last: { emblem: encodeEmblem(newEmblem) } }"
|
||||
:size="300"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="space-x-2">
|
||||
<BaseButton type="submit" color="success" label="Save" />
|
||||
<BaseButton type="submit" color="danger" label="Revert" />
|
||||
</div>
|
||||
</template>
|
||||
</CardBox>
|
||||
</template>
|
||||
|
|
@ -8,6 +8,8 @@ import {
|
|||
import { dashCode } from "@/constants/userData";
|
||||
import { getGameInfo } from "@/constants";
|
||||
import BaseButton from "@/components/BaseButton.vue";
|
||||
import UserEmblem from "@/components/UserEmblem.vue";
|
||||
import UserQpro from "@/components/UserQpro.vue";
|
||||
import { getGitadoraColor, getJubilityColor } from "@/constants/skillColor.js";
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -15,6 +17,10 @@ const props = defineProps({
|
|||
type: String,
|
||||
default: null,
|
||||
},
|
||||
version: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
profile: {
|
||||
type: Object,
|
||||
required: true,
|
||||
|
|
@ -26,13 +32,10 @@ const props = defineProps({
|
|||
});
|
||||
|
||||
function colorText() {
|
||||
if (props.profile.stats) {
|
||||
const stats = props.profile.stats;
|
||||
if (stats.jubility) {
|
||||
return getJubilityColor(stats.jubility);
|
||||
} else if (stats.skillPoints) {
|
||||
return getGitadoraColor(stats.skillPoints);
|
||||
}
|
||||
if (props.profile.jubility) {
|
||||
return getJubilityColor(props.profile.jubility);
|
||||
} else if (props.profile.records) {
|
||||
return getGitadoraColor(props.profile.records.skill);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -40,46 +43,79 @@ const thisGame = getGameInfo(props.game);
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex content-center justify-center items-center">
|
||||
<img v-if="profile.avatar" class="h-40" :src="profile.avatar" />
|
||||
<div class="content-center justify-center items-center">
|
||||
<div
|
||||
class="md:flex md:space-x-12 md:justify-center md:items-center grid grid-cols-1 text-center"
|
||||
>
|
||||
<UserEmblem
|
||||
v-if="game == 'jubeat' && version >= 10 && profile.last?.emblem"
|
||||
:version="version"
|
||||
:profile="profile"
|
||||
class="place-self-center pb-6 md:pb-0"
|
||||
/>
|
||||
<UserQpro
|
||||
v-if="game == 'iidx' && version >= 20 && profile.qpro"
|
||||
:version="version"
|
||||
:profile="profile"
|
||||
class="place-self-center pb-6 md:pb-0"
|
||||
/>
|
||||
<div class="drop-shadow-xl">
|
||||
<h1 :class="colorText()" class="text-4xl md:text-5xl font-bold">
|
||||
{{ profile.username }}
|
||||
</h1>
|
||||
<p class="text-xl font-mono">{{ dashCode(profile.extid) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-2 text-center md:text-left lg:mx-12 p-2">
|
||||
<h1 :class="colorText()" class="text-3xl md:text-4xl font-bold">
|
||||
{{ profile.name }}
|
||||
</h1>
|
||||
<p class="text-xl font-mono">{{ dashCode(profile.extid) }}</p>
|
||||
<p class="text-md md:text-lg">
|
||||
Last played at <b>{{ profile.last.arcade }}</b> on
|
||||
<b>{{ profile.last.date }}</b>
|
||||
</p>
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-3">
|
||||
<div class="pt-2 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-3">
|
||||
<BaseButton
|
||||
v-if="!useSmall && game"
|
||||
:icon="mdiAccountDetails"
|
||||
:href="`/#/games/${game}/profiles/${profile.id}`"
|
||||
:href="`/#/games/${game}/profiles/${profile.userId}`"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="View Profile"
|
||||
/>
|
||||
<BaseButton
|
||||
v-if="!useSmall && game"
|
||||
:icon="mdiCog"
|
||||
:href="`/#/games/${game}/profiles/${profile.id}/edit`"
|
||||
:href="`/#/games/${game}/edit`"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="Edit Profile"
|
||||
/>
|
||||
<BaseButton
|
||||
v-if="!useSmall && !thisGame.noScores"
|
||||
:href="`/#/games/${game}/scores/${profile.id}`"
|
||||
:href="`/#/games/${game}/scores/${profile.userId}`"
|
||||
:icon="mdiPlaylistMusicOutline"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="My Scores"
|
||||
/>
|
||||
<BaseButton
|
||||
v-if="!useSmall && !thisGame.noRecords"
|
||||
:href="`/#/games/${game}/records/${profile.id}`"
|
||||
:href="`/#/games/${game}/records/${profile.userId}`"
|
||||
:icon="mdiFormatListText"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="My Records"
|
||||
/>
|
||||
<BaseButton
|
||||
v-if="!useSmall && !thisGame.noScores"
|
||||
:href="`/#/games/${game}/scores`"
|
||||
:icon="mdiPlaylistMusicOutline"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="Network Scores"
|
||||
/>
|
||||
<BaseButton
|
||||
v-if="!useSmall && !thisGame.noRecords"
|
||||
:href="`/#/games/${game}/records`"
|
||||
:icon="mdiFormatListText"
|
||||
:outline="false"
|
||||
color="info"
|
||||
label="Network Records"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||