Merge pull request #1 from PhaseII-eAmusement-Network/minified

Move minified branch into maser
This commit is contained in:
Trenton Zimmer
2024-07-01 15:11:40 -04:00
committed by GitHub
145 changed files with 3187 additions and 1646 deletions

2
.env.development Normal file
View 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
View File

@@ -0,0 +1,2 @@
VITE_API_URL="https://restfulsleep.phaseii.network"
VITE_API_KEY="your_api_key_should_be_here"

View File

@@ -7,6 +7,40 @@
<link rel="icon" href="/favicon.png"> <link rel="icon" href="/favicon.png">
<title>PhaseWeb 3</title> <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> </head>
<body class="scroll-smooth"> <body class="scroll-smooth">
<noscript> <noscript>
@@ -15,41 +49,6 @@
<div id="app"></div> <div id="app"></div>
<script type="module" src="/src/main.js"></script> <script type="module" src="/src/main.js"></script>
<!-- built files will be auto injected --> <!-- 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> </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> </html>

97
package-lock.json generated
View File

@@ -12,11 +12,15 @@
"@rushstack/eslint-patch": "^1.1.4", "@rushstack/eslint-patch": "^1.1.4",
"axios": "^0.27.0", "axios": "^0.27.0",
"chart.js": "^3.6.0", "chart.js": "^3.6.0",
"crypto-js": "^4.2.0",
"dotenv": "^16.4.5",
"js-cookie": "^3.0.5",
"numeral": "^2.0.6", "numeral": "^2.0.6",
"particles.js": "^2.0.0", "particles.js": "^2.0.0",
"pinia": "^2.0.13", "pinia": "^2.0.13",
"vue": "^3.0.0", "vue": "^3.0.0",
"vue-router": "^4.0.0" "vue-router": "^4.0.0",
"vue3-easy-data-table": "^1.5.47"
}, },
"devDependencies": { "devDependencies": {
"@rushstack/eslint-patch": "^1.1.4", "@rushstack/eslint-patch": "^1.1.4",
@@ -654,9 +658,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001554", "version": "1.0.30001628",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz",
"integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==", "integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -791,6 +795,11 @@
"node": ">= 8" "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": { "node_modules/cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -863,6 +872,17 @@
"node": ">=6.0.0" "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": { "node_modules/electron-to-chromium": {
"version": "1.4.567", "version": "1.4.567",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz",
@@ -1568,9 +1588,9 @@
"dev": true "dev": true
}, },
"node_modules/follow-redirects": { "node_modules/follow-redirects": {
"version": "1.15.2", "version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
"funding": [ "funding": [
{ {
"type": "individual", "type": "individual",
@@ -1840,6 +1860,14 @@
"jiti": "bin/jiti.js" "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": { "node_modules/js-sdsl": {
"version": "4.4.0", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
@@ -2926,9 +2954,9 @@
"dev": true "dev": true
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "3.2.7", "version": "3.2.10",
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz",
"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==", "integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.15.9", "esbuild": "^0.15.9",
@@ -3024,6 +3052,14 @@
"vue": "^3.2.0" "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": { "node_modules/which": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -3542,9 +3578,9 @@
"dev": true "dev": true
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001554", "version": "1.0.30001628",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001554.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz",
"integrity": "sha512-A2E3U//MBwbJVzebddm1YfNp7Nud5Ip+IPn4BozBmn4KqVX7AvluoIDFWjsv5OkGnKUXQVmMSoMKLa3ScCblcQ==", "integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==",
"dev": true "dev": true
}, },
"chalk": { "chalk": {
@@ -3635,6 +3671,11 @@
"which": "^2.0.1" "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": { "cssesc": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
@@ -3687,6 +3728,11 @@
"esutils": "^2.0.2" "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": { "electron-to-chromium": {
"version": "1.4.567", "version": "1.4.567",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.567.tgz",
@@ -4118,9 +4164,9 @@
"dev": true "dev": true
}, },
"follow-redirects": { "follow-redirects": {
"version": "1.15.2", "version": "1.15.6",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
}, },
"form-data": { "form-data": {
"version": "4.0.0", "version": "4.0.0",
@@ -4305,6 +4351,11 @@
"integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==",
"dev": true "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": { "js-sdsl": {
"version": "4.4.0", "version": "4.4.0",
"resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
@@ -5016,9 +5067,9 @@
"dev": true "dev": true
}, },
"vite": { "vite": {
"version": "3.2.7", "version": "3.2.10",
"resolved": "https://registry.npmjs.org/vite/-/vite-3.2.7.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.10.tgz",
"integrity": "sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==", "integrity": "sha512-Dx3olBo/ODNiMVk/cA5Yft9Ws+snLOXrhLtrI3F4XLt4syz2Yg8fayZMWScPKoz12v5BUv7VEmQHnsfpY80fYw==",
"dev": true, "dev": true,
"requires": { "requires": {
"esbuild": "^0.15.9", "esbuild": "^0.15.9",
@@ -5063,6 +5114,14 @@
"@vue/devtools-api": "^6.4.5" "@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": { "which": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

View File

@@ -12,11 +12,15 @@
"@rushstack/eslint-patch": "^1.1.4", "@rushstack/eslint-patch": "^1.1.4",
"axios": "^0.27.0", "axios": "^0.27.0",
"chart.js": "^3.6.0", "chart.js": "^3.6.0",
"crypto-js": "^4.2.0",
"dotenv": "^16.4.5",
"js-cookie": "^3.0.5",
"numeral": "^2.0.6", "numeral": "^2.0.6",
"particles.js": "^2.0.0", "particles.js": "^2.0.0",
"pinia": "^2.0.13", "pinia": "^2.0.13",
"vue": "^3.0.0", "vue": "^3.0.0",
"vue-router": "^4.0.0" "vue-router": "^4.0.0",
"vue3-easy-data-table": "^1.5.47"
}, },
"devDependencies": { "devDependencies": {
"@rushstack/eslint-patch": "^1.1.4", "@rushstack/eslint-patch": "^1.1.4",

BIN
public/assets/card/bst.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 415 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

BIN
public/assets/card/nost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

BIN
public/assets/card/time.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
public/assets/card/tsum.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 484 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

View File

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 513 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

BIN
public/assets/icon/bst.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

BIN
public/assets/icon/nost.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

BIN
public/assets/icon/tsum.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

File diff suppressed because one or more lines are too long

View File

@@ -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"}]}

View File

@@ -5,3 +5,48 @@ import { RouterView } from "vue-router";
<template> <template>
<RouterView :key="$route.fullPath" /> <RouterView :key="$route.fullPath" />
</template> </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>

View File

@@ -48,7 +48,7 @@ export const getButtonColor = (
success: "ring-emerald-300 dark:ring-emerald-700", success: "ring-emerald-300 dark:ring-emerald-700",
danger: "ring-red-300 dark:ring-red-700", danger: "ring-red-300 dark:ring-red-700",
warning: "ring-yellow-300 dark:ring-yellow-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: { active: {
white: "bg-gray-100", white: "bg-gray-100",
@@ -65,10 +65,10 @@ export const getButtonColor = (
whiteDark: "bg-white text-black dark:bg-slate-900 dark:text-white", 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", 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", contrast: "bg-gray-800 text-white dark:bg-white dark:text-black",
success: "bg-emerald-600 dark:bg-emerald-500 text-white", success: "bg-emerald-600 dark:bg-emerald-700 text-white",
danger: "bg-red-600 dark:bg-red-500 text-white", danger: "bg-red-600 dark:bg-red-800 text-white",
warning: "bg-yellow-600 dark:bg-yellow-500 text-white", warning: "bg-yellow-600 dark:bg-yellow-700 text-white",
info: "bg-blue-600 dark:bg-blue-500 text-white", info: "bg-blue-600 dark:bg-blue-900 text-white",
}, },
bgHover: { bgHover: {
white: "hover:bg-gray-100", white: "hover:bg-gray-100",

View File

@@ -1,87 +1,130 @@
<script setup> <script setup>
import { mdiTestTube, mdiStoreOutline, mdiHomeOutline } from "@mdi/js"; import {
import { getArea } from "@/constants/area"; 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 BaseLevel from "@/components/BaseLevel.vue";
import CardBox from "@/components/CardBox.vue"; import BaseButton from "@/components/BaseButton.vue";
import PillTag from "@/components/PillTag.vue"; import PillTag from "@/components/PillTag.vue";
const props = defineProps({ const props = defineProps({
useSmall: { useSmall: {
type: Boolean, type: Boolean,
required: false, required: false,
default: true, default: false,
}, },
arcadeData: { arcade: {
type: Object, type: Object,
required: true, required: true,
}, },
}); });
function getCardStyle(game) { var arcadeData = ref(props.arcade.data);
if (game !== null) { function getCardStyle(path) {
if (path !== null) {
return ` return `
background-image: url('${game}'); background-image: url('${path}');
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
`; `;
} }
} }
const areaData = getArea(props.arcadeData.area); // const areaData = getArea(props.arcadeData.area);
</script> </script>
<template> <template>
<CardBox :style="getCardStyle(arcadeData.image)"> <div
:style="getCardStyle('/assets/card/carpet.png')"
class="rounded-2xl mb-6 w-full"
>
<BaseLevel <BaseLevel
type="justify-center" 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"> <div class="space-y-3 text-center w-full">
<h1 class="text-2xl lg:text-3xl font-bold">{{ arcadeData.name }}</h1> <h1 class="text-2xl lg:text-3xl font-bold">{{ arcade.name }}</h1>
<div class="flex gap-2 justify-center items-center"> <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 }} {{ areaData.flag }}
</h2> </h2> -->
<h2 class="text-xl md:text-2xl font-bold"> <h2 class="text-xl md:text-2xl font-bold">
{{ areaData.name }} {{ arcade.description }}
</h2> </h2>
</div> </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"> <div class="flex flex-wrap gap-4 place-content-center">
<PillTag <PillTag
v-if="arcadeData.beta" v-if="arcadeData.is_beta"
label="Beta Enabled" label="Beta Enabled"
color="warning" color="warning"
:icon="mdiTestTube" :icon="mdiTestTube"
/> />
<PillTag <PillTag label="Private Arcade" color="info" :icon="mdiHomeOutline" />
v-if="arcadeData.public" </div>
label="Public Arcade"
color="success" <hr class="border-t border-1 w-full" />
:icon="mdiStoreOutline" <p v-if="arcade.owners && arcade.owners.length" class="text-lg">
/> Managed by
<PillTag <span
v-if="!arcadeData.public" v-for="(owner, index) in arcade.owners"
label="Private Arcade" :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" 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>
</div> </div>
</BaseLevel> </BaseLevel>
</CardBox> </div>
</template> </template>

View File

@@ -47,7 +47,7 @@ const props = defineProps({
}, },
outline: { outline: {
type: Boolean, type: Boolean,
default: true, default: false,
}, },
active: Boolean, active: Boolean,
disabled: Boolean, disabled: Boolean,

View File

@@ -49,7 +49,6 @@ function openNewsView() {
<div <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" 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> <p class="text-sm">{{ props.date }}</p>
<hr class="pb-1" /> <hr class="pb-1" />
<h2 class="text-xl pb-2">{{ props.title }}</h2> <h2 class="text-xl pb-2">{{ props.title }}</h2>

View 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>

View File

@@ -8,6 +8,8 @@ import {
import { dashCode } from "@/constants/userData"; import { dashCode } from "@/constants/userData";
import { getGameInfo } from "@/constants"; import { getGameInfo } from "@/constants";
import BaseButton from "@/components/BaseButton.vue"; 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"; import { getGitadoraColor, getJubilityColor } from "@/constants/skillColor.js";
const props = defineProps({ const props = defineProps({
@@ -15,6 +17,10 @@ const props = defineProps({
type: String, type: String,
default: null, default: null,
}, },
version: {
type: Number,
default: null,
},
profile: { profile: {
type: Object, type: Object,
required: true, required: true,
@@ -26,13 +32,10 @@ const props = defineProps({
}); });
function colorText() { function colorText() {
if (props.profile.stats) { if (props.profile.jubility) {
const stats = props.profile.stats; return getJubilityColor(props.profile.jubility);
if (stats.jubility) { } else if (props.profile.records) {
return getJubilityColor(stats.jubility); return getGitadoraColor(props.profile.records.skill);
} else if (stats.skillPoints) {
return getGitadoraColor(stats.skillPoints);
}
} }
} }
@@ -40,46 +43,79 @@ const thisGame = getGameInfo(props.game);
</script> </script>
<template> <template>
<div class="flex content-center justify-center items-center"> <div class="content-center justify-center items-center">
<img v-if="profile.avatar" class="h-40" :src="profile.avatar" /> <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"> <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"> <div class="pt-2 grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-3">
{{ 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">
<BaseButton <BaseButton
v-if="!useSmall && game" v-if="!useSmall && game"
:icon="mdiAccountDetails" :icon="mdiAccountDetails"
:href="`/#/games/${game}/profiles/${profile.id}`" :href="`/#/games/${game}/profiles/${profile.userId}`"
:outline="false"
color="info" color="info"
label="View Profile" label="View Profile"
/> />
<BaseButton <BaseButton
v-if="!useSmall && game" v-if="!useSmall && game"
:icon="mdiCog" :icon="mdiCog"
:href="`/#/games/${game}/profiles/${profile.id}/edit`" :href="`/#/games/${game}/edit`"
:outline="false"
color="info" color="info"
label="Edit Profile" label="Edit Profile"
/> />
<BaseButton <BaseButton
v-if="!useSmall && !thisGame.noScores" v-if="!useSmall && !thisGame.noScores"
:href="`/#/games/${game}/scores/${profile.id}`" :href="`/#/games/${game}/scores/${profile.userId}`"
:icon="mdiPlaylistMusicOutline" :icon="mdiPlaylistMusicOutline"
:outline="false"
color="info" color="info"
label="My Scores" label="My Scores"
/> />
<BaseButton <BaseButton
v-if="!useSmall && !thisGame.noRecords" v-if="!useSmall && !thisGame.noRecords"
:href="`/#/games/${game}/records/${profile.id}`" :href="`/#/games/${game}/records/${profile.userId}`"
:icon="mdiFormatListText" :icon="mdiFormatListText"
:outline="false"
color="info" color="info"
label="My Records" 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> </div>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More