mirror of
https://github.com/Rakantor/personal-portfolio.git
synced 2026-10-28 04:02:28 +01:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e84c0f2316 | ||
|
|
a776437177 | ||
|
|
5f547af7fc | ||
|
|
2343170527 | ||
|
|
39cadb2da9 | ||
|
|
b19887b6a4 | ||
|
|
68ecb8a732 | ||
|
|
a6bb4b2eb2 | ||
|
|
2f480d7fdb | ||
|
|
42f28f397a | ||
|
|
2abac9a712 | ||
|
|
8438b312c2 | ||
|
|
b19f3ba49f | ||
|
|
83399330a9 | ||
|
|
dd7a35e5e0 | ||
|
|
3b269ae45f | ||
|
|
a3d86dda60 | ||
|
|
c1e990e4ee | ||
|
|
422896a87c | ||
|
|
355496f070 | ||
|
|
e66c98d760 | ||
|
|
9db07b2883 | ||
|
|
fb7e864033 | ||
|
|
97a79eae12 | ||
|
|
824fc4b474 | ||
|
|
4cb0114196 | ||
|
|
e468105c7b | ||
|
|
7784ca4e43 | ||
|
|
eecb8156ab | ||
|
|
b4947a900c | ||
|
|
a503bf3073 | ||
|
|
bb5702eb8f | ||
|
|
f367ba9db9 | ||
|
|
89a55ecf85 | ||
|
|
646e8c86dd | ||
|
|
3f07477aa3 | ||
|
|
1071ecb334 | ||
|
|
0586f4d366 | ||
|
|
d795d9b82b |
No files matched your search
@@ -0,0 +1,13 @@
|
|||||||
|
# editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
charset = utf-8
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
node: true,
|
||||||
|
},
|
||||||
|
parserOptions: {
|
||||||
|
parser: '@babel/eslint-parser',
|
||||||
|
requireConfigFile: false,
|
||||||
|
},
|
||||||
|
extends: ['@nuxtjs', 'plugin:nuxt/recommended', 'prettier'],
|
||||||
|
plugins: [],
|
||||||
|
// add your custom rules here
|
||||||
|
rules: {},
|
||||||
|
}
|
||||||
+90
@@ -0,0 +1,90 @@
|
|||||||
|
# Created by .ignore support plugin (hsz.mobi)
|
||||||
|
### Node template
|
||||||
|
# Logs
|
||||||
|
/logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower dependency directory (https://bower.io/)
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# TypeScript v1 declaration files
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variables file
|
||||||
|
.env
|
||||||
|
|
||||||
|
# parcel-bundler cache (https://parceljs.org/)
|
||||||
|
.cache
|
||||||
|
|
||||||
|
# next.js build output
|
||||||
|
.next
|
||||||
|
|
||||||
|
# nuxt.js build output
|
||||||
|
.nuxt
|
||||||
|
|
||||||
|
# Nuxt generate
|
||||||
|
dist
|
||||||
|
|
||||||
|
# vuepress build output
|
||||||
|
.vuepress/dist
|
||||||
|
|
||||||
|
# Serverless directories
|
||||||
|
.serverless
|
||||||
|
|
||||||
|
# IDE / Editor
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Service worker
|
||||||
|
sw.*
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Vim swap files
|
||||||
|
*.swp
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
###
|
||||||
|
# Place your Prettier ignore content here
|
||||||
|
|
||||||
|
###
|
||||||
|
# .gitignore content is duplicated here due to https://github.com/prettier/prettier/issues/8506
|
||||||
|
|
||||||
|
# Created by .ignore support plugin (hsz.mobi)
|
||||||
|
### Node template
|
||||||
|
# Logs
|
||||||
|
/logs
|
||||||
|
*.log
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
|
||||||
|
# nyc test coverage
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower dependency directory (https://bower.io/)
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf configuration
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# TypeScript v1 declaration files
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variables file
|
||||||
|
.env
|
||||||
|
|
||||||
|
# parcel-bundler cache (https://parceljs.org/)
|
||||||
|
.cache
|
||||||
|
|
||||||
|
# next.js build output
|
||||||
|
.next
|
||||||
|
|
||||||
|
# nuxt.js build output
|
||||||
|
.nuxt
|
||||||
|
|
||||||
|
# Nuxt generate
|
||||||
|
dist
|
||||||
|
|
||||||
|
# vuepress build output
|
||||||
|
.vuepress/dist
|
||||||
|
|
||||||
|
# Serverless directories
|
||||||
|
.serverless
|
||||||
|
|
||||||
|
# IDE / Editor
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Service worker
|
||||||
|
sw.*
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Vim swap files
|
||||||
|
*.swp
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"semi": false,
|
||||||
|
"singleQuote": true
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375602,false]</script></body></html>
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375603,false]</script></body></html>
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 Rakantor
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# mave.dev
|
||||||
|
|
||||||
|
My personal website/portfolio. Built with [Nuxt](https://nuxt.com) and [Vuetify](https://vuetifyjs.com). Hosted with [GitHub Pages](https://pages.github.com/).
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as a,c as o,b as i,w as t,i as u,o as g,j as h,k as b,d as r,l as d,a as e,t as l}from"./Dhg5knF6.js";const m={name:"ImprintPage"},w={style:{"font-weight":"400"}},f=["href"];function p(s,n,k,D,z,c){return g(),o("div",null,[i(u,{class:"mb-2"},{default:t(()=>[i(h,null,{default:t(()=>[i(b,null,{default:t(()=>[...n[0]||(n[0]=[r("Offenlegung nach § 25 Mediengesetz",-1)])]),_:1})]),_:1}),i(d,null,{default:t(()=>[n[1]||(n[1]=e("strong",null,"Medieninhaber:",-1)),n[2]||(n[2]=e("br",null,null,-1)),r(" "+l(s.$config.public.myName),1),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=r(" Wien, Österreich",-1)),n[5]||(n[5]=e("br",null,null,-1)),r(" "+l(s.$config.public.myEmail),1),n[6]||(n[6]=e("br",null,null,-1))]),_:1}),i(d,null,{default:t(()=>[...n[7]||(n[7]=[r(" Zweck dieser Website: Präsentation des Medieninhabers. ",-1)])]),_:1})]),_:1}),i(u,null,{default:t(()=>[i(d,null,{default:t(()=>[n[14]||(n[14]=e("h1",null,"Datenschutzerklärung",-1)),n[15]||(n[15]=e("h2",{id:"einleitung-ueberblick"},"Einleitung und Überblick",-1)),n[16]||(n[16]=e("p",null,[r("Wir haben diese Datenschutzerklärung (Fassung 26.04.2023-112487332) verfasst, um Ihnen gemäß der Vorgaben der "),e("a",{href:"https://eur-lex.europa.eu/legal-content/DE/TXT/HTML/?uri=CELEX:32016R0679&from=DE&tid=112487332#d1e2269-1-1",target:"_blank",rel:"noopener"},"Datenschutz-Grundverordnung (EU) 2016/679"),r(" und anwendbaren nationalen Gesetzen zu erklären, welche personenbezogenen Daten (kurz Daten) wir als Verantwortliche – und die von uns beauftragten Auftragsverarbeiter (z. B. Provider) – verarbeiten, zukünftig verarbeiten werden und welche rechtmäßigen Möglichkeiten Sie haben. Die verwendeten Begriffe sind geschlechtsneutral zu verstehen."),e("br"),e("strong",null,"Kurz gesagt:"),r(" Wir informieren Sie umfassend über Daten, die wir über Sie verarbeiten. ")],-1)),n[17]||(n[17]=e("p",null,[r("Datenschutzerklärungen klingen für gewöhnlich sehr technisch und verwenden juristische Fachbegriffe. Diese Datenschutzerklärung soll Ihnen hingegen die wichtigsten Dinge so einfach und transparent wie möglich beschreiben. Soweit es der Transparenz förderlich ist, werden technische "),e("strong",null,"Begriffe leserfreundlich erklärt"),r(", Links zu weiterführenden Informationen geboten und "),e("strong",null,"Grafiken"),r(" zum Einsatz gebracht. Wir informieren damit in klarer und einfacher Sprache, dass wir im Rahmen unserer Geschäftstätigkeiten nur dann personenbezogene Daten verarbeiten, wenn eine entsprechende gesetzliche Grundlage gegeben ist. Das ist sicher nicht möglich, wenn man möglichst knappe, unklare und juristisch-technische Erklärungen abgibt, so wie sie im Internet oft Standard sind, wenn es um Datenschutz geht. Ich hoffe, Sie finden die folgenden Erläuterungen interessant und informativ und vielleicht ist die eine oder andere Information dabei, die Sie noch nicht kannten."),e("br"),r(" Wenn trotzdem Fragen bleiben, möchten wir Sie bitten, sich an die unten bzw. im Impressum genannte verantwortliche Stelle zu wenden, den vorhandenen Links zu folgen und sich weitere Informationen auf Drittseiten anzusehen. Unsere Kontaktdaten finden Sie selbstverständlich auch im Impressum.")],-1)),n[18]||(n[18]=e("h2",{id:"kontaktdaten-verantwortliche"},"Kontaktdaten des Verantwortlichen",-1)),e("p",null,[n[10]||(n[10]=r("Sollten Sie Fragen zum Datenschutz oder zur Verarbeitung personenbezogener Daten haben, finden Sie nachfolgend die Kontaktdaten der verantwortlichen Person bzw. Stelle:",-1)),n[11]||(n[11]=e("br",null,null,-1)),e("span",w,[r(l(s.$config.public.myName),1),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=r(" Wien, Österreich ",-1))]),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=r(" E-Mail: ",-1)),e("a",{href:`mailto:${s.$config.public.myEmail}`},l(s.$config.public.myEmail),9,f)]),n[19]||(n[19]=e("h2",{id:"rechte-dsgvo"},"Rechte laut Datenschutz-Grundverordnung",-1)),n[20]||(n[20]=e("p",null,"Gemäß Artikel 13, 14 DSGVO informieren wir Sie über die folgenden Rechte, die Ihnen zustehen, damit es zu einer fairen und transparenten Verarbeitung von Daten kommt:",-1)),n[21]||(n[21]=e("ul",null,[e("li",null,[r("Sie haben laut Artikel 15 DSGVO ein Auskunftsrecht darüber, ob wir Daten von Ihnen verarbeiten. Sollte das zutreffen, haben Sie Recht darauf eine Kopie der Daten zu erhalten und die folgenden Informationen zu erfahren: "),e("ul",null,[e("li",null,"zu welchem Zweck wir die Verarbeitung durchführen;"),e("li",null,"die Kategorien, also die Arten von Daten, die verarbeitet werden;"),e("li",null,"wer diese Daten erhält und wenn die Daten an Drittländer übermittelt werden, wie die Sicherheit garantiert werden kann;"),e("li",null,"wie lange die Daten gespeichert werden;"),e("li",null,"das Bestehen des Rechts auf Berichtigung, Löschung oder Einschränkung der Verarbeitung und dem Widerspruchsrecht gegen die Verarbeitung;"),e("li",null,"dass Sie sich bei einer Aufsichtsbehörde beschweren können (Links zu diesen BeLine truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as a}from"./wKjIcb_L.js";import{_ as i,u,o as c,c as l,a as e,t as r,b as d,w as p,d as f}from"./Dhg5knF6.js";const m={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},g={class:"max-w-520px text-center z-20"},b=["textContent"],h=["textContent"],x={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:404},statusText:{type:String,default:"Not Found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(t){const n=t;return u({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,o)=>{const s=a;return c(),l("div",m,[o[0]||(o[0]=e("div",{class:"fixed left-0 right-0 spotlight z-10"},null,-1)),e("div",g,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:r(t.status)},null,8,b),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:r(t.description)},null,8,h),e("div",x,[d(s,{to:"/",class:"cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md"},{default:p(()=>[f(r(t.backHome),1)]),_:1})])])])}}},v=i(y,[["__scopeId","data-v-1bd9e11a"]]);export{v as default};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as c}from"./wKjIcb_L.js";import{_ as l,h as p,w as t,V as d,r as m,o as _,b as e,e as a,a as f,t as s,d as n,m as u}from"./Dhg5knF6.js";const h={name:"IndexPage"},x={class:"text-h4 text-md-h3 text-lg-h2 text-high-emphasis"};function g(o,$,y,V,k,w){const i=c,r=m("i18n-t");return _(),p(d,{justify:"center"},{default:t(()=>[e(a,{cols:"12"},{default:t(()=>[f("span",x,s(o.$t("greeting")),1)]),_:1}),e(a,{cols:"12",class:"my-6"},{default:t(()=>[e(r,{keypath:"introduction",tag:"p",class:"text-body-1 text-md-h6 text-medium-emphasis",style:{"max-width":"550px"}},{portfolio:t(()=>[e(i,{to:"/portfolio"},{default:t(()=>[n(s(o.$t("portfolio")),1)]),_:1})]),_:1})]),_:1}),e(a,{cols:"12"},{default:t(()=>[e(u,{variant:"outlined",color:"primary","prepend-icon":"mdi-email-outline",href:`mailto:<${o.$config.public.myEmail}>`},{default:t(()=>[n(s(o.$t("getInTouch")),1)]),_:1},8,["href"])]),_:1})]),_:1})}const b=l(h,[["render",g]]);export{b as default};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as s,u as a,o as i,c as u,a as e,t as o}from"./Dhg5knF6.js";const l={class:"antialiased bg-white dark:bg-black dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-black"},c={class:"max-w-520px text-center"},d=["textContent"],p=["textContent"],f={__name:"error-500",props:{appName:{type:String,default:"Nuxt"},version:{type:String,default:""},status:{type:Number,default:500},statusText:{type:String,default:"Server error"},description:{type:String,default:"This page is temporarily unavailable."}},setup(t){const n=t;return a({title:`${n.status} - ${n.statusText} | ${n.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(g,r)=>(i(),u("div",l,[r[0]||(r[0]=e("div",{class:"-bottom-1/2 fixed h-1/2 left-0 right-0 spotlight"},null,-1)),e("div",c,[e("h1",{class:"font-medium mb-8 sm:text-10xl text-8xl",textContent:o(t.status)},null,8,d),e("p",{class:"font-light leading-tight mb-16 px-8 sm:px-0 sm:text-4xl text-xl",textContent:o(t.description)},null,8,p)])]))}},b=s(f,[["__scopeId","data-v-a01dd0ba"]]);export{b as default};
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
import{_ as Y,o,h as z,w as r,b as a,m as B,p as m7,q as U,c as d,F as C,g as k,s as O,v as f7,a as F,l as R,x as v7,j as i7,t as b,y as l7,k as s7,z as W,A as a7,d as T,B as o7,i as r7,V as w7,C as b7,e as n7,f as x7,D as y7,E as $7,n as c7}from"./Dhg5knF6.js";const C7={name:"ImageCarousel",data:()=>({show:!1,images:[],index:0})};function z7(t,h,s,A,_,v){return o(),z(f7,{modelValue:t.show,"onUpdate:modelValue":h[1]||(h[1]=w=>t.show=w)},{default:r(()=>[a(B,{position:"absolute",location:"top right",icon:"mdi-close",onClick:h[0]||(h[0]=m7(w=>t.show=!1,["prevent"])),style:{"z-index":"5000"}}),a(U,{"model-value":t.index,"show-arrows":t.images.length>1,class:"ma-auto",height:"90vh"},{default:r(()=>[(o(!0),d(C,null,k(t.images,w=>(o(),z(O,{key:w,src:w,class:"img-height"},null,8,["src"]))),128))]),_:1},8,["model-value","show-arrows"])]),_:1},8,["modelValue"])}const k7=Y(C7,[["render",z7],["__scopeId","data-v-47fe2410"]]);var N,u7;function V7(){if(u7)return N;u7=1;var t=Object.defineProperty,h=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,A=Object.prototype.hasOwnProperty,_=(e,l)=>()=>(l||e((l={exports:{}}).exports,l),l.exports),v=(e,l)=>{for(var n in l)t(e,n,{get:l[n],enumerable:!0})},w=(e,l,n,u)=>{if(l&&typeof l=="object"||typeof l=="function")for(let g of s(l))!A.call(e,g)&&g!==n&&t(e,g,{get:()=>l[g],enumerable:!(u=h(l,g))||u.enumerable});return e},i=e=>w(t({},"__esModule",{value:!0}),e),q=_((e,l)=>{l.exports=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,39,43,50,90,70,120,80,30,50,50,70,90,40,50,40,50,70,70,70,70,70,70,70,70,70,70,50,50,90,90,90,60,110,75,75,77,85,70,63,85,83,46,50,76,61,93,82,87,66,87,76,75,68,81,75,110,75,68,75,50,50,50,90,70,70,66,69,57,69,66,39,69,70,30,38,65,30,110,70,67,69,69,47,57,43,70,65,90,65,65,58,70,50,70,90,0,61,110,110,110,110,110,110,110,110,110,110,110,110,110,55,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,55,110,39,43,70,70,70,70,50,70,70,110,60,71,90,0,110,70,60,90,60,60,70,71,70,40,70,60,60,71,110,110,110,60,75,75,75,75,75,75,110,77,70,70,70,70,46,46,46,46,85,82,87,87,87,87,87,90,87,81,81,81,81,68,67,68,66,66,66,66,66,66,110,57,66,66,66,66,30,30,30,30,67,70,67,67,67,67,67,90,67,70,70,70,70,65,69,65,75,66,75,66,75,66,77,57,77,57,77,57,77,57,85,71,85,69,70,66,70,66,70,66,70,66,70,66,85,69,85,69,85,69,85,69,83,70,83,70,46,30,46,30,46,30,46,30,46,30,96,68,50,38,76,65,65,61,30,61,30,61,33,61,50,62,31,82,70,82,70,82,70,80,82,70,87,67,87,67,87,67,120,110,76,47,76,47,76,47,75,57,75,57,75,57,75,57,68,43,68,43,68,43,81,70,81,70,81,69,81,70,81,70,81,69,110,90,68,65,68,75,58,75,58,75,58,33,69,77,64,69,75,62,76,76,59,83,96,64,69,65,60,83,58,59,70,79,72,100,43,43,73,64,42,65,120,81,68,86,89,67,120,98,74,69,70,59,56,65,58,41,74,41,70,83,73,86,78,68,74,67,63,61,61,56,57,70,70,52,50,67,29,48,50,32,140,140,130,94,90,61,110,110,99,76,61,32,32,85,68,76,68,76,68,81,70,76,68,81,70,61,76,61,76,61,100,94,88,69,79,69,72,64,85,68,85,68,61,56,28,140,140,130,85,69,110,61,82,70,75,66,110,110,87,67,72,60,76,61,63,58,60,61,30,27,32,32,76,63,85,68,68,37,70,45,71,61,76,68,75,57,68,43,58,55,81,68,81,100,85,68,67,63,76,61,60,61,85,68,85,68,85,68,85,68,69,57,63,100,63,28,100,100,75,81,56,62,68,55,55,62,62,81,95,75,75,62,61,25,96,69,87,44,86,69,61,69,69,69,56,61,70,70,61,66,86,51,51,71,64,45,70,69,65,59,65,68,68,68,42,41,45,56,53,33,72,100,100,100,69,70,69,68,89,86,84,45,45,47,45,45,45,45,61,61,56,47,48,53,59,41,41,72,73,68,57,85,57,53,63,77,56,59,49,49,49,53,85,58,65,67,69,53,64,51,70,50,49,110,110,130,88,78,96,110,74,77,68,64,71,71,40,40,26,27,27,35,35,51,36,26,52,35,22,28,29,29,31,31,38,39,40,40,70,70,20,70,31,31,20,40,31,31,42,42,31,31,50,50,50,50,70,70,70,70,70,70,23,38,41,20,35,40,31,43,43,43,43,43,42,42,37,46,48,24,24,26,26,32,31,47,47,41,27,31,31,31,31,42,42,50,0,0,53,0,51,68,52,39,49,0,46,51,53,38,47,0,52,52,39,39,39,11,46,47,44,44,26,17,41,48,48,48,48,25,25,0,49,46,21,40,41,38,40,57,53,53,52,52,52,51,68,68,62,62,68,62,79,41,0,40,57,48,41,68,0,0,52,42,53,38,40,51,47,45,52,52,52,57,44,0,45,41,52,48,45,45,56,41,20,48,51,47,83,52,51,51,51,51,51,45,44,36,45,44,44,45,44,51,40,41,45,45,46,37,65,51,32,32,79,64,79,79,68,56,56,56,50,66,79,79,79,79,70,70,75,50,83,96,59,79,97,79,83,100,30,75,75,62,77,70,75,83,87,46,76,75,93,82,71,87,83,66,79,74,68,68,90,75,96,90,46,68,69,56,70,30,69,69,68,65,67,56,50,70,69,30,65,65,70,65,55,67,70,69,56,69,55,69,87,65,90,89,30,69,67,69,89,62,57,64,59,59,70,85,86,61,85,68,73,59,59,56,60,56,73,88,98,92,74,61,74,55,73,73,67,66,81,61,51,45,61,67,56,33,86,58,58,63,67,76,95,80,78,81,81,81,70,70,87,62,77,75,46,46,50,120,120,90,76,83,68,83,75,75,75,62,82,70,110,68,83,83,76,81,93,83,87,83,66,77,68,68,90,75,84,78,110,110,86,100,75,77,110,78,66,68,65,52,68,66,88,58,70,70,65,68,77,70,67,70,69,59,55,65,92,65,71,67,96,98,70,87,63,60,92,66,66,66,70,52,60,57,30,30,38,100,100,70,65,70,65,70,97,85,69,60,99,82,66,59,97,83,94,81,120,110,57,53,76,77,75,63,69,55,69,55,130,110,75,62,96,84,97,85,71,59,69,0,0,0,0,0,0,0,78,63,69,60,70,62,62,52,62,52,67,55,11Line truncated
|
|
||||||
<title>${E}</title>
|
|
||||||
<g>
|
|
||||||
<rect fill="#${x}" width="${$}" height="200"/>
|
|
||||||
<rect fill="#${u}" x="${$}" width="${G}" height="200"/>
|
|
||||||
</g>
|
|
||||||
<g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
|
|
||||||
<text x="${D+10}" y="148" textLength="${S}" fill="#000" opacity="0.1">${e}</text>
|
|
||||||
<text x="${D}" y="138" textLength="${S}">${e}</text>
|
|
||||||
<text x="${$+55}" y="148" textLength="${L}" fill="#000" opacity="0.1">${n}</text>
|
|
||||||
<text x="${$+45}" y="138" textLength="${L}">${n}</text>
|
|
||||||
</g>
|
|
||||||
${c?`<image x="40" y="35" width="${y}" height="132" xlink:href="${c}"/>`:""}
|
|
||||||
</svg>`:`<svg width="${j*M/10}" height="${j*20}" viewBox="0 0 ${M} 200" xmlns="http://www.w3.org/2000/svg"${K} role="img" aria-label="${E}">
|
|
||||||
<title>${E}</title>
|
|
||||||
<linearGradient id="${e7}" x2="0" y2="100%">
|
|
||||||
<stop offset="0" stop-opacity=".1" stop-color="#EEE"/>
|
|
||||||
<stop offset="1" stop-opacity=".1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<mask id="${t7}"><rect width="${M}" height="200" rx="30" fill="#FFF"/></mask>
|
|
||||||
<g mask="url(#${t7})">
|
|
||||||
<rect width="${$}" height="200" fill="#${x}"/>
|
|
||||||
<rect width="${G}" height="200" fill="#${u}" x="${$}"/>
|
|
||||||
<rect width="${M}" height="200" fill="url(#${e7})"/>
|
|
||||||
</g>
|
|
||||||
<g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
|
|
||||||
<text x="${D+10}" y="148" textLength="${S}" fill="#000" opacity="0.25">${e}</text>
|
|
||||||
<text x="${D}" y="138" textLength="${S}">${e}</text>
|
|
||||||
<text x="${$+55}" y="148" textLength="${L}" fill="#000" opacity="0.25">${n}</text>
|
|
||||||
<text x="${$+45}" y="138" textLength="${L}">${n}</text>
|
|
||||||
</g>
|
|
||||||
${c?`<image x="40" y="35" width="${y}" height="130" xlink:href="${c}"/>`:""}
|
|
||||||
</svg>`}function d7({status:e,color:l="blue",style:n,scale:u=1}){Z(typeof e=="string","<status> must be string"),l=I[l]||l||I.blue;let g=H(e),c=g+115,y=P(5),x=P(5);return e=V(e),l=V(l),n==="flat"?`<svg width="${u*c/10}" height="${u*20}" viewBox="0 0 ${c} 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="${e}">
|
|
||||||
<title>${e}</title>
|
|
||||||
<g>
|
|
||||||
<rect fill="#${l}" x="0" width="${c}" height="200"/>
|
|
||||||
</g>
|
|
||||||
<g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
|
|
||||||
<text x="65" y="148" textLength="${g}" fill="#000" opacity="0.1">${e}</text>
|
|
||||||
<text x="55" y="138" textLength="${g}">${e}</text>
|
|
||||||
</g>
|
|
||||||
</svg>`:`<svg width="${u*c/10}" height="${u*20}" viewBox="0 0 ${c} 200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="${e}">
|
|
||||||
<title>${e}</title>
|
|
||||||
<linearGradient id="${y}" x2="0" y2="100%">
|
|
||||||
<stop offset="0" stop-opacity=".1" stop-color="#EEE"/>
|
|
||||||
<stop offset="1" stop-opacity=".1"/>
|
|
||||||
</linearGradient>
|
|
||||||
<mask id="${x}"><rect width="${c}" height="200" rx="30" fill="#FFF"/></mask>
|
|
||||||
<g mask="url(#${x})">
|
|
||||||
<rect width="${c}" height="200" fill="#${l}" x="0"/>
|
|
||||||
<rect width="${c}" height="200" fill="url(#${y})"/>
|
|
||||||
</g>
|
|
||||||
<g aria-hidden="true" fill="#fff" text-anchor="start" font-family="Verdana,DejaVu Sans,sans-serif" font-size="110">
|
|
||||||
<text x="65" y="148" textLength="${g}" fill="#000" opacity="0.25">${e}</text>
|
|
||||||
<text x="55" y="138" textLength="${g}">${e}</text>
|
|
||||||
</g>
|
|
||||||
</svg>`}function V(e){return e.replace(/\u0026/g,"&").replace(/\u003C/g,"<").replace(/\u003E/g,">").replace(/\u0022/g,""").replace(/\u0027/g,"'")}function P(e){let l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",n="";for(let u=0;u<e;u++)n+=l.charAt(Math.floor(Math.random()*l.length));return n}function p7({label:e,status:l}){return(e?`${e}: `:"")+l}function Z(e,l){if(!e)throw new TypeError(l)}return typeof window=="object"&&(window.badgen=Q),N}var A7=V7();const p='<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>',m='</title><path d="',f='"/></svg>',_7={title:"Amazon AWS",slug:"amazonaws",get svg(){return p+"Amazon AWS"+m+this.path+f},path:"M6.763 10.036c0 .296.032.535.088.71.064.176.144.368.256.576.04.063.056.127.056.183 0 .08-.048.16-.152.24l-.503.335a.383.383 0 0 1-.208.072c-.08 0-.16-.04-.239-.112a2.47 2.47 0 0 1-.287-.375 6.18 6.18 0 0 1-.248-.471c-.622.734-1.405 1.101-2.347 1.101-.67 0-1.205-.191-1.596-.574-.391-.384-.59-.894-.59-1.533 0-.678.239-1.23.726-1.644.487-.415 1.133-.623 1.955-.623.272 0 .551.024.846.064.296.04.6.104.918.176v-.583c0-.607-.127-1.03-.375-1.277-.255-.248-.686-.367-1.3-.367-.28 0-.568.031-.863.103-.295.072-.583.16-.862.272a2.287 2.287 0 0 1-.28.104.488.488 0 0 1-.127.023c-.112 0-.168-.08-.168-.247v-.391c0-.128.016-.224.056-.28a.597.597 0 0 1 .224-.167c.279-.144.614-.264 1.005-.36a4.84 4.84 0 0 1 1.246-.151c.95 0 1.644.216 2.091.647.439.43.662 1.085.662 1.963v2.586zm-3.24 1.214c.263 0 .534-.048.822-.144.287-.096.543-.271.758-.51.128-.152.224-.32.272-.512.047-.191.08-.423.08-.694v-.335a6.66 6.66 0 0 0-.735-.136 6.02 6.02 0 0 0-.75-.048c-.535 0-.926.104-1.19.32-.263.215-.39.518-.39.917 0 .375.095.655.295.846.191.2.47.296.838.296zm6.41.862c-.144 0-.24-.024-.304-.08-.064-.048-.12-.16-.168-.311L7.586 5.55a1.398 1.398 0 0 1-.072-.32c0-.128.064-.2.191-.2h.783c.151 0 .255.025.31.08.065.048.113.16.16.312l1.342 5.284 1.245-5.284c.04-.16.088-.264.151-.312a.549.549 0 0 1 .32-.08h.638c.152 0 .256.025.32.08.063.048.12.16.151.312l1.261 5.348 1.381-5.348c.048-.16.104-.264.16-.312a.52.52 0 0 1 .311-.08h.743c.127 0 .2.065.2.2 0 .04-.009.08-.017.128a1.137 1.137 0 0 1-.056.2l-1.923 6.17c-.048.16-.104.263-.168.311a.51.51 0 0 1-.303.08h-.687c-.151 0-.255-.024-.32-.08-.063-.056-.119-.16-.15-.32l-1.238-5.148-1.23 5.14c-.04.16-.087.264-.15.32-.065.056-.177.08-.32.08zm10.256.215c-.415 0-.83-.048-1.229-.143-.399-.096-.71-.2-.918-.32-.128-.071-.215-.151-.247-.223a.563.563 0 0 1-.048-.224v-.407c0-.167.064-.247.183-.247.048 0 .096.008.144.024.048.016.12.048.2.08.271.12.566.215.878.279.319.064.63.096.95.096.502 0 .894-.088 1.165-.264a.86.86 0 0 0 .415-.758.777.777 0 0 0-.215-.559c-.144-.151-.416-.287-.807-.415l-1.157-.36c-.583-.183-1.014-.454-1.277-.813a1.902 1.902 0 0 1-.4-1.158c0-.335.073-.63.216-.886.144-.255.335-.479.575-.654.24-.184.51-.32.83-.415.32-.096.655-.136 1.006-.136.175 0 .359.008.535.032.183.024.35.056.518.088.16.04.312.08.455.127.144.048.256.096.336.144a.69.69 0 0 1 .24.2.43.43 0 0 1 .071.263v.375c0 .168-.064.256-.184.256a.83.83 0 0 1-.303-.096 3.652 3.652 0 0 0-1.532-.311c-.455 0-.815.071-1.062.223-.248.152-.375.383-.375.71 0 .224.08.416.24.567.159.152.454.304.877.44l1.134.358c.574.184.99.44 1.237.767.247.327.367.702.367 1.117 0 .343-.072.655-.207.926-.144.272-.336.511-.583.703-.248.2-.543.343-.886.447-.36.111-.734.167-1.142.167zM21.698 16.207c-2.626 1.94-6.442 2.969-9.722 2.969-4.598 0-8.74-1.7-11.87-4.526-.247-.223-.024-.527.272-.351 3.384 1.963 7.559 3.153 11.877 3.153 2.914 0 6.114-.607 9.06-1.852.439-.2.814.287.383.607zM22.792 14.961c-.336-.43-2.22-.207-3.074-.103-.255.032-.295-.192-.063-.36 1.5-1.053 3.967-.75 4.254-.399.287.36-.08 2.826-1.485 4.007-.215.184-.423.088-.327-.151.32-.79 1.03-2.57.695-2.994z",source:"https://upload.wikimedia.org/wikipedia/commons/9/93/Amazon_Web_Services_Logo.svg",hex:"232F3E",guidelines:void 0,license:void 0},M7={title:"Android",slug:"android",get svg(){return p+"Android"+m+this.path+f},path:"M17.523 15.3414c-.5511 0-.9993-.4486-.9993-.9997s.4483-.9993.9993-.9993c.5511 0 .9993.4483.9993.9993.0001.5511-.4482.9997-.9993.9997m-11.046 0c-.5511 0-.9993-.4486-.9993-.9997s.4482-.9993.9993-.9993c.5511 0 .9993.4483.9993.9993 0 .5511-.4483.9997-.9993.9997m11.4045-6.02l1.9973-3.4592a.416.416 0 00-.1521-.5676.416.416 0 00-.5676.1521l-2.0223 3.503C15.5902 8.2439 13.8533 7.8508 12 7.8508s-3.5902.3931-5.1367 1.0989L4.841 5.4467a.4161.4161 0 00-.5677-.1521.4157.4157 0 00-.1521.5676l1.9973 3.4592C2.6889 11.1867.3432 14.6589 0 18.761h24c-.3435-4.1021-2.6892-7.5743-6.1185-9.4396",source:"https://thepartnermarketinghub.withgoogle.com/brands/android/visual-identity/visual-identity/logo-lock-ups/",hex:"3DDC84",guidelines:void 0,license:void 0},j7={title:"CoffeeScript",slug:"coffeescript",get svg(){return p+"CoffeeScript"+m+this.path+f},path:"M4.645 7.472c2.1.53 4.779.8 8.008.8 3.299 0 5.918-.27 8.008-.8 2.23-.52 3.299-1.22 3.299-1.88 0-.47-.48-.93-1.35-1.28.2.13.35.35.35.59 0 .67-1.01 1.22-3.039 1.68-1.88.41-4.279.7-7.198Line truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as nt}from"./wKjIcb_L.js";import{_ as it,c as W,b as g,w as p,V as Z,r as at,o as E,e as D,a as K,t as M,f as ot,d as z,F as Q,g as k,h as ee,i as st,j as ut,k as lt,l as ft,m as ct,n as pt}from"./Dhg5knF6.js";var Ue=typeof global=="object"&&global&&global.Object===Object&&global,dt=typeof self=="object"&&self&&self.Object===Object&&self,w=Ue||dt||Function("return this")(),S=w.Symbol,Ne=Object.prototype,gt=Ne.hasOwnProperty,ht=Ne.toString,F=S?S.toStringTag:void 0;function mt(e){var t=gt.call(e,F),r=e[F];try{e[F]=void 0;var n=!0}catch{}var i=ht.call(e);return n&&(t?e[F]=r:delete e[F]),i}var _t=Object.prototype,yt=_t.toString;function bt(e){return yt.call(e)}var vt="[object Null]",wt="[object Undefined]",ye=S?S.toStringTag:void 0;function L(e){return e==null?e===void 0?wt:vt:ye&&ye in Object(e)?mt(e):bt(e)}function fe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var Tt="[object AsyncFunction]",At="[object Function]",Ot="[object GeneratorFunction]",Pt="[object Proxy]";function Ge(e){if(!fe(e))return!1;var t=L(e);return t==At||t==Ot||t==Tt||t==Pt}var te=w["__core-js_shared__"],be=(function(){var e=/[^.]+$/.exec(te&&te.keys&&te.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function St(e){return!!be&&be in e}var $t=Function.prototype,xt=$t.toString;function C(e){if(e!=null){try{return xt.call(e)}catch{}try{return e+""}catch{}}return""}var Et=/[\\^$.*+?()[\]{}|]/g,jt=/^\[object .+?Constructor\]$/,Ct=Function.prototype,It=Object.prototype,Mt=Ct.toString,Rt=It.hasOwnProperty,Lt=RegExp("^"+Mt.call(Rt).replace(Et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Dt(e){if(!fe(e)||St(e))return!1;var t=Ge(e)?Lt:jt;return t.test(C(e))}function zt(e,t){return e?.[t]}function I(e,t){var r=zt(e,t);return Dt(r)?r:void 0}var ve=(function(){try{var e=I(Object,"defineProperty");return e({},"",{}),e}catch{}})();function Ft(e,t,r){t=="__proto__"&&ve?ve(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}function Bt(e,t,r,n){for(var i=-1,a=e==null?0:e.length;++i<a;){var o=e[i];t(n,o,r(o),e)}return n}function Ut(e){return function(t,r,n){for(var i=-1,a=Object(t),o=n(t),l=o.length;l--;){var u=o[++i];if(r(a[u],u,a)===!1)break}return t}}var Nt=Ut();function Gt(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}function R(e){return e!=null&&typeof e=="object"}var Ht="[object Arguments]";function we(e){return R(e)&&L(e)==Ht}var He=Object.prototype,Wt=He.hasOwnProperty,Kt=He.propertyIsEnumerable,We=we((function(){return arguments})())?we:function(e){return R(e)&&Wt.call(e,"callee")&&!Kt.call(e,"callee")},b=Array.isArray;function Vt(){return!1}var Ke=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Te=Ke&&typeof module=="object"&&module&&!module.nodeType&&module,Yt=Te&&Te.exports===Ke,Ae=Yt?w.Buffer:void 0,Xt=Ae?Ae.isBuffer:void 0,ae=Xt||Vt,qt=9007199254740991,Jt=/^(?:0|[1-9]\d*)$/;function Ve(e,t){var r=typeof e;return t=t??qt,!!t&&(r=="number"||r!="symbol"&&Jt.test(e))&&e>-1&&e%1==0&&e<t}var Zt=9007199254740991;function ce(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Zt}var Qt="[object Arguments]",kt="[object Array]",er="[object Boolean]",tr="[object Date]",rr="[object Error]",nr="[object Function]",ir="[object Map]",ar="[object Number]",or="[object Object]",sr="[object RegExp]",ur="[object Set]",lr="[object String]",fr="[object WeakMap]",cr="[object ArrayBuffer]",pr="[object DataView]",dr="[object Float32Array]",gr="[object Float64Array]",hr="[object Int8Array]",mr="[object Int16Array]",_r="[object Int32Array]",yr="[object Uint8Array]",br="[object Uint8ClampedArray]",vr="[object Uint16Array]",wr="[object Uint32Array]",f={};f[dr]=f[gr]=f[hr]=f[mr]=f[_r]=f[yr]=f[br]=f[vr]=f[wr]=!0;f[Qt]=f[kt]=f[cr]=f[er]=f[pr]=f[tr]=f[rr]=f[nr]=f[ir]=f[ar]=f[or]=f[sr]=f[ur]=f[lr]=f[fr]=!1;function Tr(e){return R(e)&&ce(e.length)&&!!f[L(e)]}function Ar(e){return function(t){return e(t)}}var Ye=typeof exports=="object"&&exports&&!exports.nodeType&&exports,B=Ye&&typeof module=="object"&&module&&!module.nodeType&&module,Or=B&&B.exports===Ye,re=Or&&Ue.process,Oe=(function(){try{var e=B&&B.require&&B.require("util").types;return e||re&&re.binding&&re.binding("util")}catch{}})(),Pe=Oe&&Oe.isTypedArray,Xe=Pe?Ar(Pe):Tr,Pr=Object.prototype,Sr=Pr.hasOwnProperty;function $r(e,t){var r=b(e),n=!r&&We(e),i=!r&&!n&&ae(e),a=!r&&!n&&!i&&Xe(e),o=r||n||i||a,l=o?Gt(e.length,String):[],u=l.length;for(var s in e)Sr.call(e,s)&&!(o&&(s=="length"||i&&(s=="offset"||s=="parent")||a&&(s=="buffer"||s=="byteLength"||s=="byteOffset")||Ve(s,u)))&&l.push(s);return l}var xr=Object.prototype;function Er(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||xr;return e===r}function jr(e,t){return function(r){return e(t(r))}}var Cr=jr(Object.keys,Object),Ir=Object.prototype,Mr=Ir.hasOwnProperty;function Rr(e){if(!Er(e))return Cr(e);var t=[];for(var r in Object(e))Mr.call(e,r)&&r!="constructor"&&t.push(r);return t}function qe(e){return e!=null&&ce(e.length)&&!Ge(e)}functionLine truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
const e=()=>({legacy:!1,locale:"en",messages:{en:{bi:"BI",bioBody:"My passion for programming ignited in 2007, as I delved into SQL in an attempt to set up a private server for my favorite {mmorpg} - a venture that proved successful. Eager to dive deeper into the world of coding, I attended a {htl} specializing in IT in 2009, where I learned the basics of C, Java, HTML and CSS. Some years later, I took my passion further by heading to university, where I got my degree in {bi}, specializing in web and mobile app development. Over the past {yearsOfExp} years, self-study and hands-on experience with personal projects have been the cornerstone of my learning journey.",bioTitle:"My Journey as a Developer",bioSubtitle:"Here's some of the tech that I've worked with before:",getInTouch:"Get in touch",greeting:"Hey. I'm Manuel.",headerAbout:"About",headerContact:"Contact",headerHome:"Home",headerWork:"Projects",introduction:"I'm a Software Developer from Vienna, Austria. I have a passion for crafting a wide range of applications. Feel free to explore my {portfolio} to see some of my projects.",imprint:"Imprint",iuGamerApp:"An Android app designed to help a group of board game enthusiasts better organize their regular evening game sessions. Users will be reliably informed about the time and location of the next appointment. They can suggest games, vote on suggested games, rate past appointments, and communicate with each other via an integrated chat feature.",iuQuizApp:"An online quiz system that supports distance learning students at IU in solidifying their learning content in preparation for the exam. It enables students to cooperatively and collaboratively find answers to subject-related questions. The focus is particularly on working together and playing/learning together. Similar to the popular app Quizduel, students can, but do not have to, play against each other.",lang:"Languages",languagesFrameworks:"Languages, Frameworks & Libraries",os:"Operating Systems",personalWebsite:"My first portfolio website.",pmb:"A 2D game inspired by the 2000s Pokémon games. Built from scratch! Features include animated NPCs, objects and battles (including online multiplayer), custom maps built in Tiled, game sound, 3 difficulty levels and so much more.",portfolio:"portfolio",portfolioTitle:"Featured Projects",toolsPlatforms:"Technologies & Tools",toriiInfo:"25,000+ registered users!",toriiJava:"A Japanese vocabulary learning tool that harnesses the power of spaced repetition to make memorizing new words a breeze. It combines a straightforward interface with robust features. Designed for both casual learners and those preparing for the Japanese Language Proficiency Test (JLPT), Torii offers specialized vocabulary lists and review methods. Key features include audio reviews, font randomization, progress tracking, and automatic cloud synchronization.",toriiWeb:"Version 2 of my Japanese vocabulary learning tool introduces significant enhancements. Offline functionality is now available (through the utilization of IndexedDB). The web app features an integrated dictionary for efficient word addition, expanded review methods for enhancing vocabulary retention, a review forecast chart for effective study session planning, and enhancements to the word search and statistics functions for improved user insights."},de:{bi:"WI",bioBody:"Den Einstieg in die Programmierung habe ich 2007 gemacht, als ich mich mit SQL beschäftigt habe, in dem Versuch, einen Privatserver für mein Lieblings-{mmorpg} aufzusetzen - mit Erfolg. Nach dem Gymnasium habe ich mich 2009 dazu entschlossen, eine auf IT spezialisierte {htl} zu besuchen, wo ich die Grundlagen in C, Java, HTML and CSS gelernt habe. Ein paar Jahre später habe ich {bi} studiert - Wahlpflichtfächer Web- und Mobile-App-Development. Den Großteil meines Wissens habe ich mir im Zuge persönlicher Projekte in den letzten {yearsOfExp} Jahren autodidaktisch angeeignet.",bioTitle:"Mein Werdegang als Developer",bioSubtitle:"Einige der Technologien, mit denen ich gearbeitet habe:",getInTouch:"Kontaktieren",greeting:"Hey. Ich bin Manuel.",headerAbout:"Über mich",headerContact:"Kontakt",headerHome:"Home",headerWork:"Projekte",introduction:"Ich bin ein Software Developer aus Wien, Österreich. Ich entwickle ganz unterschiedliche Applikationen. Die wichtigsten Projekte habe ich in meinem {portfolio} aufgelistet.",imprint:"Impressum",iuGamerApp:"Eine Android App, die einer Gruppe von Brettspielfans dabei helfen soll, ihre regelmäßigen abendlichen Spieltermine besser zu organisieren. Benutzer werden zuverlässig über Zeit & Ort des nächsten Termins informiert. Sie können Spiele vorschlagen und über Vorschläge abstimmen, veLine truncated
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CRlenhn2.js","./wKjIcb_L.js","./BN5pGhFp.js","./BEl2LAkQ.js","./imprint.Bg2LVb4w.css","./BrwJbHal.js","./portfolio.CsD-7uez.css","./jiv3OOnY.js","./default.DvXYmI2S.css","./fKpzCM01.js","./error.CnqMh6AM.css","./BHlbuXNu.js","./error-404.DL_4WIao.css","./BOpdKnyW.js","./error-500.I1Dtv2V5.css"])))=>i.map(i=>d[i]);
|
|
||||||
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))a(l);new MutationObserver(l=>{for(const r of l)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const r={};return l.integrity&&(r.integrity=l.integrity),l.referrerPolicy&&(r.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?r.credentials="include":l.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(l){if(l.ep)return;l.ep=!0;const r=n(l);fetch(l.href,r)}})();function Tf(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const mt={},Nr=[],ba=()=>{},ub=()=>!1,wi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Js=e=>e.startsWith("onUpdate:"),Ht=Object.assign,Ef=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kC=Object.prototype.hasOwnProperty,lt=(e,t)=>kC.call(e,t),Me=Array.isArray,Fr=e=>so(e)==="[object Map]",cb=e=>so(e)==="[object Set]",Om=e=>so(e)==="[object Date]",wC=e=>so(e)==="[object RegExp]",$e=e=>typeof e=="function",bt=e=>typeof e=="string",En=e=>typeof e=="symbol",nt=e=>e!==null&&typeof e=="object",Af=e=>(nt(e)||$e(e))&&$e(e.then)&&$e(e.catch),db=Object.prototype.toString,so=e=>db.call(e),_C=e=>so(e).slice(8,-1),fb=e=>so(e)==="[object Object]",Zs=e=>bt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,jl=Tf(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Qs=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},CC=/-\w/g,Qt=Qs(e=>e.replace(CC,t=>t.slice(1).toUpperCase())),xC=/\B([A-Z])/g,cr=Qs(e=>e.replace(xC,"-$1").toLowerCase()),xa=Qs(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ju=Qs(e=>e?`on${xa(e)}`:""),va=(e,t)=>!Object.is(e,t),Br=(e,...t)=>{for(let n=0;n<e.length;n++)e[n](...t)},vb=(e,t,n,a=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},Vf=e=>{const t=parseFloat(e);return isNaN(t)?e:t},mb=e=>{const t=bt(e)?Number(e):NaN;return isNaN(t)?e:t};let Mm;const eu=()=>Mm||(Mm=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function pe(e){if(Me(e)){const t={};for(let n=0;n<e.length;n++){const a=e[n],l=bt(a)?EC(a):pe(a);if(l)for(const r in l)t[r]=l[r]}return t}else if(bt(e)||nt(e))return e}const IC=/;(?![^(]*\))/g,PC=/:([^]+)/,TC=/\/\*[^]*?\*\//g;function EC(e){const t={};return e.replace(TC,"").split(IC).forEach(n=>{if(n){const a=n.split(PC);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function ue(e){let t="";if(bt(e))t=e;else if(Me(e))for(let n=0;n<e.length;n++){const a=ue(e[n]);a&&(t+=a+" ")}else if(nt(e))for(const n in e)e[n]&&(t+=n+" ");return t.trim()}function hb(e){if(!e)return null;let{class:t,style:n}=e;return t&&!bt(t)&&(e.class=ue(t)),n&&(e.style=pe(n)),e}const AC="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",VC=Tf(AC);function gb(e){return!!e||e===""}function LC(e,t){if(e.length!==t.length)return!1;let n=!0;for(let a=0;n&&a<e.length;a++)n=Lf(e[a],t[a]);return n}function Lf(e,t){if(e===t)return!0;let n=Om(e),a=Om(t);if(n||a)return n&&a?e.getTime()===t.getTime():!1;if(n=En(e),a=En(t),n||a)return e===t;if(n=Me(e),a=Me(t),n||a)return n&&a?LC(e,t):!1;if(n=nt(e),a=nt(t),n||a){if(!n||!a)return!1;const l=Object.keys(e).length,r=Object.keys(t).length;if(l!==r)return!1;for(const o in e){const i=e.hasOwnProperty(o),s=t.hasOwnProperty(o);if(i&&!s||!i&&s||!Lf(e[o],t[o]))return!1}}return String(e)===String(t)}const yb=e=>!!(e&&e.__v_isRef===!0),za=e=>bt(e)?e:e==null?"":Me(e)||nt(e)&&(e.toString===db||!$e(e.toString))?yb(e)?za(e.value):JSON.stringify(e,bb,2):String(e),bb=(e,t)=>yb(t)?bb(e,t.value):Fr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,l],r)=>(n[Zu(a,r)+" =>"]=l,n),{})}:cb(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Zu(n))}:En(t)?Zu(t):nt(t)&&!Me(t)&&!fb(t)?String(t):t,Zu=(e,t="")=>{var n;return En(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let an;class pb{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=an,!t&&an&&(this.index=(an.scopes||(an.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].pause();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t<n;t++)this.scopes[t].resume();for(t=0,n=this.effects.length;t<n;t++)this.effects[t].resume()}}run(t){if(this._active){const n=an;try{return an=this,t()}finally{an=n}}}on(){++this._on===1&&(this.prevScope=an,an=this)}off(){this._on>0&&--this._on===0&&(an=this.prevScLine truncated
|
|
||||||
`&&(b.tagName==="PRE"||b.tagName==="TEXTAREA")&&(q=q.slice(1));const{textContent:Z}=b;Z!==q&&Z!==q.replace(/\r\n|\r/g,`
|
|
||||||
`)&&(Ki(b,0)||_r(),b.textContent=w.children)}if(T){if(B||!C||D&48){const q=b.tagName.includes("-");for(const Z in T)(B&&(Z.endsWith("value")||Z==="indeterminate")||wi(Z)&&!jl(Z)||Z[0]==="."||q&&!jl(Z))&&a(b,Z,null,T[Z],void 0,S)}else if(T.onClick)a(b,"onClick",null,T.onClick,void 0,S);else if(D&4&&Wa(T.style))for(const q in T.style)T.style[q]}let U;(U=T&&T.onVnodeBeforeMount)&&hn(U,S,w),A&&ca(w,null,S,"beforeMount"),((U=T&&T.onVnodeMounted)||A||W)&&wp(()=>{U&&hn(U,S,w),W&&V.enter(b),A&&ca(w,null,S,"mounted")},y)}return b.nextSibling},v=(b,w,S,y,_,C,E)=>{E=E||!!w.dynamicChildren;const T=w.children,D=T.length;for(let L=0;L<D;L++){const A=E?T[L]:T[L]=kn(T[L]),V=A.type===Ua;b?(V&&!E&&L+1<D&&kn(T[L+1]).type===Ua&&(s(l(b.data.slice(A.children.length)),S,r(b)),b.data=A.children),b=d(b,A,y,_,C,E)):V&&!A.children?s(A.el=l(""),S):(Ki(S,1)||_r(),n(null,A,S,null,y,_,zi(S),C))}return b},g=(b,w,S,y,_,C)=>{const{slotScopeIds:E}=w;E&&(_=_?_.concat(E):E);const T=o(b),D=v(r(b),w,T,S,y,_,C);return D&&Rr(D)&&D.data==="]"?r(w.anchor=D):(_r(),s(w.anchor=u("]"),T,D),D)},m=(b,w,S,y,_,C)=>{if(Ki(b.parentElement,1)||_r(),w.el=null,C){const D=k(b);for(;;){const L=r(b);if(L&&L!==D)i(L);else break}}const E=r(b),T=o(b);return i(b),n(null,w,T,E,S,y,zi(T),_),S&&(S.vnode.el=w.el,su(S,w.el)),E},k=(b,w="[",S="]")=>{let y=0;for(;b;)if(b=r(b),b&&Rr(b)&&(b.data===w&&y++,b.data===S)){if(y===0)return r(b);y--}return b},h=(b,w,S)=>{const y=w.parentNode;y&&y.replaceChild(b,w);let _=S;for(;_;)_.vnode.el===w&&(_.vnode.el=_.subTree.el=b),_=_.parent},p=b=>b.nodeType===1&&b.tagName==="TEMPLATE";return[c,d]}const Km="data-allow-mismatch",wx={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function Ki(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Km);)e=e.parentElement;const n=e&&e.getAttribute(Km);if(n==null)return!1;if(n==="")return!0;{const a=n.split(",");return t===0&&a.includes("children")?!0:a.includes(wx[t])}}eu().requestIdleCallback;eu().cancelIdleCallback;function _x(e,t){if(Rr(e)&&e.data==="["){let n=1,a=e.nextSibling;for(;a;){if(a.nodeType===1){if(t(a)===!1)break}else if(Rr(a))if(a.data==="]"){if(--n===0)break}else a.data==="["&&n++;a=a.nextSibling}}else t(e)}const ja=e=>!!e.type.__asyncLoader;function _s(e){$e(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:a,delay:l=200,hydrate:r,timeout:o,suspensible:i=!0,onError:s}=e;let u=null,c,d=0;const f=()=>(d++,u=null,v()),v=()=>{let g;return u||(g=u=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),s)return new Promise((k,h)=>{s(m,()=>k(f()),()=>h(m),d+1)});throw m}).then(m=>g!==u&&u?u:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return Vn({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(g,m,k){let h=!1;(m.bu||(m.bu=[])).push(()=>h=!0);const p=()=>{h||k()},b=r?()=>{const w=r(p,S=>_x(g,S));w&&(m.bum||(m.bum=[])).push(w)}:p;c?b():v().then(()=>!m.isUnmounted&&b())},get __asyncResolved(){return c},setup(){const g=Xt;if(Wf(g),c)return()=>Gi(c,g);const m=b=>{u=null,fo(b,g,13,!a)};if(i&&g.suspense||Gr)return v().then(b=>()=>Gi(b,g)).catch(b=>(m(b),()=>a?x(a,{error:b}):null));const k=re(!1),h=re(),p=re(!!l);return l&&setTimeout(()=>{p.value=!1},l),o!=null&&setTimeout(()=>{if(!k.value&&!h.value){const b=new Error(`Async component timed out after ${o}ms.`);m(b),h.value=b}},o),v().then(()=>{k.value=!0,g.parent&&xi(g.parent.vnode)&&g.parent.update()}).catch(b=>{m(b),h.value=b}),()=>{if(k.value&&c)return Gi(c,g);if(h.value&&a)return x(a,{error:h.value});if(n&&!p.value)return Gi(n,g)}}})}function Gi(e,t){const{ref:n,props:a,children:l,ce:r}=t.vnode,o=x(e,a,l);return o.ref=n,o.ce=r,delete t.vnode.ce,o}const xi=e=>e.type.__isKeepAlive,Cx={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Ln(),a=n.ctx;if(!a.renderer)return()=>{const p=t.default&&t.default();return p&&p.length===1?p[0]:p};const l=new Map,r=new Set;let o=null;const i=n.suspense,{renderer:{p:s,m:u,um:c,o:{createElement:d}}}=a,f=d("div");a.activate=(p,b,w,S,y)=>{const _=p.component;u(p,b,w,0,i),s(_.vnode,p,b,w,_,i,S,p.slotScopeIds,y),Ft(()=>{_.isDeactivated=!1,_.a&&Br(_.a);const C=p.props&&p.props.onVnodeMounted;C&&hn(C,_.parent,p)},i)},a.deactivate=p=>{const b=p.component;xs(b.m),xs(b.a),u(p,f,null,1,i),Ft(()=>{b.da&&Br(b.da);const w=p.props&&p.props.onVnodeUnmounted;w&&hn(w,b.parent,p),b.isDeactivated=!0},i)};function v(p){ac(p),c(p,n,i,!0)}function g(p){l.forEach((b,w)=>{const S=td(ja(b)?b.type.__asyncResolved||{}:b.type);S&&!p(S)&&m(w)})}function m(p){const b=l.get(p);b&&(!o||!Kn(b,o))?v(b):o&&ac(o),l.delete(p),r.delete(p)}ge(()=>[e.include,e.exclude],([p,b])=>{p&&g(w=>Lo(p,w)),b&&g(w=>!Lo(b,w))},{flush:"post",deep:!0});let k=null;const h=()=>{k!=null&&(Is(n.subTree.type)?Ft(()=>{l.set(k,Yi(n.subTree))},n.subTree.suspense):l.set(k,Yi(n.subTree)))};return pt(h),Ii(h),Wt(()=>{l.forEach(p=>{const{subTree:b,suspense:w}=n,S=Yi(b);if(p.type===S.type&&p.key===S.key){ac(S);cons
Line truncated
|
|
||||||
<template v-if="mounted$">${e.template}</template>
|
|
||||||
<template v-else>${es}</template>
|
|
||||||
`,t.setup=(n,a)=>{const l=it(),r=fe(l.isHydrating===!1),o=Ln();if(l.isHydrating){const s={...o.attrs},u=TA(o);for(const c in s)delete o.attrs[c];pt(()=>{Object.assign(o.attrs,s),o.vnode.dirs=u})}pt(()=>{r.value=!0});const i=e.setup?.(n,a)||{};return Af(i)?Promise.resolve(i).then(s=>typeof s!="function"?(s||={},s.mounted$=r,s):(...u)=>{if(r.value||!l.isHydrating){const c=s(...u);return c.children===null||typeof c.children=="string"?Tn(c):qe(c)}return kc(o?.vnode.el,es)}):typeof i=="function"?(...s)=>{if(r.value){const u=i(...s),c=t.inheritAttrs!==!1?a.attrs:void 0;return u.children===null||typeof u.children=="string"?Tn(u,c):qe(u,c)}return kc(o?.vnode.el,es)}:Object.assign(i,{mounted$:r})},wc.set(e,t),t}function TA(e){if(!e||!e.vnode.dirs)return null;const t=e.vnode.dirs;return e.vnode.dirs=null,t}const EA="$s";function MS(...e){const t=typeof e[e.length-1]=="string"?e.pop():void 0;typeof e[0]!="string"&&e.unshift(t);const[n,a]=e;if(!n||typeof n!="string")throw new TypeError("[nuxt] [useState] key must be a string: "+n);if(a!==void 0&&typeof a!="function")throw new Error("[nuxt] [useState] init must be a function: "+a);const l=EA+n,r=it(),o=M(r.payload.state,l);if(o.value===void 0&&a){const i=a();if(dt(i))return r.payload.state[l]=i,i;o.value=i}return o}const AA=(()=>{const e=function(){};return e.prototype=Object.create(null),e})();function VA(e,t){if(typeof e!="string")throw new TypeError("argument str must be a string");const n=new AA,a=t||{},l=a.decode||LA;let r=0;for(;r<e.length;){const o=e.indexOf("=",r);if(o===-1)break;let i=e.indexOf(";",r);if(i===-1)i=e.length;else if(i<o){r=e.lastIndexOf(";",o-1)+1;continue}const s=e.slice(r,o).trim();if(a?.filter&&!a?.filter(s)){r=i+1;continue}if(n[s]===void 0){let u=e.slice(o+1,i).trim();u.codePointAt(0)===34&&(u=u.slice(1,-1)),n[s]=DA(u,l)}r=i+1}return n}function LA(e){return e.includes("%")?decodeURIComponent(e):e}function DA(e,t){try{return t(e)}catch{return e}}const ts=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function sg(e,t,n){const a=n||{},l=a.encode||encodeURIComponent;if(typeof l!="function")throw new TypeError("option encode is invalid");if(!ts.test(e))throw new TypeError("argument name is invalid");const r=l(t);if(r&&!ts.test(r))throw new TypeError("argument val is invalid");let o=e+"="+r;if(a.maxAge!==void 0&&a.maxAge!==null){const i=a.maxAge-0;if(Number.isNaN(i)||!Number.isFinite(i))throw new TypeError("option maxAge is invalid");o+="; Max-Age="+Math.floor(i)}if(a.domain){if(!ts.test(a.domain))throw new TypeError("option domain is invalid");o+="; Domain="+a.domain}if(a.path){if(!ts.test(a.path))throw new TypeError("option path is invalid");o+="; Path="+a.path}if(a.expires){if(!RA(a.expires)||Number.isNaN(a.expires.valueOf()))throw new TypeError("option expires is invalid");o+="; Expires="+a.expires.toUTCString()}if(a.httpOnly&&(o+="; HttpOnly"),a.secure&&(o+="; Secure"),a.priority)switch(typeof a.priority=="string"?a.priority.toLowerCase():a.priority){case"low":{o+="; Priority=Low";break}case"medium":{o+="; Priority=Medium";break}case"high":{o+="; Priority=High";break}default:throw new TypeError("option priority is invalid")}if(a.sameSite)switch(typeof a.sameSite=="string"?a.sameSite.toLowerCase():a.sameSite){case!0:{o+="; SameSite=Strict";break}case"lax":{o+="; SameSite=Lax";break}case"strict":{o+="; SameSite=Strict";break}case"none":{o+="; SameSite=None";break}default:throw new TypeError("option sameSite is invalid")}return a.partitioned&&(o+="; Partitioned"),o}function RA(e){return Object.prototype.toString.call(e)==="[object Date]"||e instanceof Date}function zn(e){if(typeof e!="object")return e;var t,n,a=Object.prototype.toString.call(e);if(a==="[object Object]"){if(e.constructor!==Object&&typeof e.constructor=="function"){n=new e.constructor;for(t in e)e.hasOwnProperty(t)&&n[t]!==e[t]&&(n[t]=zn(e[t]))}else{n={};for(t in e)t==="__proto__"?Object.defineProperty(n,t,{value:zn(e[t]),configurable:!0,enumerable:!0,writable:!0}):n[t]=zn(e[t])}return n}if(a==="[object Array]"){for(t=e.length,n=Array(t);t--;)n[t]=zn(e[t]);return n}return a==="[object Set]"?(n=new Set,e.forEach(function(l){n.add(zn(l))}),n):a==="[object Map]"?(n=new Map,e.forEach(function(l,r){n.set(zn(r),zn(l))}),n):a==="[object Date]"?new Date(+e):a==="[object RegExp]"?(n=new RegExp(e.source,e.flags),n.lastIndex=e.lastIndex,n):a==="[object DataView]"?new e.constructor(zn(e.buffer)):a==="[object ArrayBuffer]"?e.slice(0):a.slice(-6)==="Array]"?new e.constructor(e):e}const OA={path:"/",watch:!0,decode:e=>{const t=decodeURIComponent(e),n=ei(t);return typeof n=="number"&&(!Number.isFinite(n)||String(n)!==t)?t:n},encode:e=>encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))},ns=globalThis.cookieStore;function MA(e,t){const n={...OA,...t};n.filter??=u=>u===e;const a=ug(n)||{};let l;n.maxAge!==void 0?l=n.maxAge*1e3:n.expires&&(l=n.expires.getTime()-Date.now());const r=l!==void 0&&l<=0,o=r||a[e]===void 0||a[e]===null,i=zn(r?void 0:a[e]??n.default?.()),s=l&&!r?BA(i,l,n.watch&&n.watch!=
Line truncated
|
|
||||||
`,TV="\u2028",EV="\u2029";function AV(e){const t=e;let n=0,a=1,l=1,r=0;const o=_=>t[_]===PV&&t[_+1]===dn,i=_=>t[_]===dn,s=_=>t[_]===EV,u=_=>t[_]===TV,c=_=>o(_)||i(_)||s(_)||u(_),d=()=>n,f=()=>a,v=()=>l,g=()=>r,m=_=>o(_)||s(_)||u(_)?dn:t[_],k=()=>m(n),h=()=>m(n+r);function p(){return r=0,c(n)&&(a++,l=0),o(n)&&n++,n++,l++,t[n]}function b(){return o(n+r)&&r++,r++,t[n+r]}function w(){n=0,a=1,l=1,r=0}function S(_=0){r=_}function y(){const _=n+r;for(;_!==n;)p();r=0}return{index:d,line:f,column:v,peekOffset:g,charAt:m,currentChar:k,currentPeek:h,next:p,peek:b,reset:w,resetPeek:S,skipToPeek:y}}const sl=void 0,VV=".",fg="'",LV="tokenizer";function DV(e,t={}){const n=t.location!==!1,a=AV(e),l=()=>a.index(),r=()=>CV(a.line(),a.column(),a.index()),o=r(),i=l(),s={currentType:13,offset:i,startLoc:o,endLoc:o,lastType:13,lastOffset:i,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},u=()=>s,{onError:c}=t;function d(O,F,$,...le){const oe=u();if(F.column+=$,F.offset+=$,c){const G=n?xd(oe.startLoc,F):null,H=pu(O,G,{domain:LV,args:le});c(H)}}function f(O,F,$){O.endLoc=r(),O.currentType=F;const le={type:F};return n&&(le.loc=xd(O.startLoc,O.endLoc)),$!=null&&(le.value=$),le}const v=O=>f(O,13);function g(O,F){return O.currentChar()===F?(O.next(),F):(d(st.EXPECTED_TOKEN,r(),0,F),"")}function m(O){let F="";for(;O.currentPeek()===Va||O.currentPeek()===dn;)F+=O.currentPeek(),O.peek();return F}function k(O){const F=m(O);return O.skipToPeek(),F}function h(O){if(O===sl)return!1;const F=O.charCodeAt(0);return F>=97&&F<=122||F>=65&&F<=90||F===95}function p(O){if(O===sl)return!1;const F=O.charCodeAt(0);return F>=48&&F<=57}function b(O,F){const{currentType:$}=F;if($!==2)return!1;m(O);const le=h(O.currentPeek());return O.resetPeek(),le}function w(O,F){const{currentType:$}=F;if($!==2)return!1;m(O);const le=O.currentPeek()==="-"?O.peek():O.currentPeek(),oe=p(le);return O.resetPeek(),oe}function S(O,F){const{currentType:$}=F;if($!==2)return!1;m(O);const le=O.currentPeek()===fg;return O.resetPeek(),le}function y(O,F){const{currentType:$}=F;if($!==7)return!1;m(O);const le=O.currentPeek()===".";return O.resetPeek(),le}function _(O,F){const{currentType:$}=F;if($!==8)return!1;m(O);const le=h(O.currentPeek());return O.resetPeek(),le}function C(O,F){const{currentType:$}=F;if(!($===7||$===11))return!1;m(O);const le=O.currentPeek()===":";return O.resetPeek(),le}function E(O,F){const{currentType:$}=F;if($!==9)return!1;const le=()=>{const G=O.currentPeek();return G==="{"?h(O.peek()):G==="@"||G==="|"||G===":"||G==="."||G===Va||!G?!1:G===dn?(O.peek(),le()):D(O,!1)},oe=le();return O.resetPeek(),oe}function T(O){m(O);const F=O.currentPeek()==="|";return O.resetPeek(),F}function D(O,F=!0){const $=(oe=!1,G="")=>{const H=O.currentPeek();return H==="{"||H==="@"||!H?oe:H==="|"?!(G===Va||G===dn):H===Va?(O.peek(),$(!0,Va)):H===dn?(O.peek(),$(!0,dn)):!0},le=$();return F&&O.resetPeek(),le}function L(O,F){const $=O.currentChar();return $===sl?sl:F($)?(O.next(),$):null}function A(O){const F=O.charCodeAt(0);return F>=97&&F<=122||F>=65&&F<=90||F>=48&&F<=57||F===95||F===36}function V(O){return L(O,A)}function B(O){const F=O.charCodeAt(0);return F>=97&&F<=122||F>=65&&F<=90||F>=48&&F<=57||F===95||F===36||F===45}function W(O){return L(O,B)}function U(O){const F=O.charCodeAt(0);return F>=48&&F<=57}function q(O){return L(O,U)}function Z(O){const F=O.charCodeAt(0);return F>=48&&F<=57||F>=65&&F<=70||F>=97&&F<=102}function K(O){return L(O,Z)}function te(O){let F="",$="";for(;F=q(O);)$+=F;return $}function X(O){let F="";for(;;){const $=O.currentChar();if($==="{"||$==="}"||$==="@"||$==="|"||!$)break;if($===Va||$===dn)if(D(O))F+=$,O.next();else{if(T(O))break;F+=$,O.next()}else F+=$,O.next()}return F}function z(O){k(O);let F="",$="";for(;F=W(O);)$+=F;return O.currentChar()===sl&&d(st.UNTERMINATED_CLOSING_BRACE,r(),0),$}function J(O){k(O);let F="";return O.currentChar()==="-"?(O.next(),F+=`-${te(O)}`):F+=te(O),O.currentChar()===sl&&d(st.UNTERMINATED_CLOSING_BRACE,r(),0),F}function ve(O){return O!==fg&&O!==dn}function we(O){k(O),g(O,"'");let F="",$="";for(;F=L(O,ve);)F==="\\"?$+=j(O):$+=F;const le=O.currentChar();return le===dn||le===sl?(d(st.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),le===dn&&(O.next(),g(O,"'")),$):(g(O,"'"),$)}function j(O){const F=O.currentChar();switch(F){case"\\":case"'":return O.next(),`\\${F}`;case"u":return ne(O,F,4);case"U":return ne(O,F,6);default:return d(st.UNKNOWN_ESCAPE_SEQUENCE,r(),0,F),""}}function ne(O,F,$){g(O,F);let le="";for(let oe=0;oe<$;oe++){const G=K(O);if(!G){d(st.INVALID_UNICODE_ESCAPE_SEQUENCE,r(),0,`\\${F}${le}${O.currentChar()}`);break}le+=G}return`\\${F}${le}`}function me(O){return O!=="{"&&O!=="}"&&O!==Va&&O!==dn}function he(O){k(O);let F="",$="";for(;F=L(O,me);)$+=F;return $}function _e(O){let F="",$="";for(;F=V(O);)$+=F;return $}function Le(O){const F=$=>{const le=O.currentChar();return le==="{"||le==="@"||le==="|"||le==="("||le===")"||!le||le===Va?$:($+=le,O.next(),F($))};return F("")}function N(O){k(O);const F=g(O,"|")
Line truncated
|
|
||||||
`,r=t.needIndent?t.needIndent:n!=="arrow",o=e.helpers||[],i=HV(e,{filename:a,breakLineCode:l,needIndent:r});i.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),o.length>0&&(i.push(`const { ${uv(o.map(c=>`${c}: _${c}`),", ")} } = ctx`),i.newline()),i.push("return "),Qr(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:s,map:u}=i.context();return{ast:e,code:s,map:u?u.toJSON():void 0}};function GV(e,t={}){const n=_t({},t),a=!!n.jit,l=!!n.minify,r=n.optimize==null?!0:n.optimize,i=NV(n).parse(e);return a?(r&&$V(i),l&&Lr(i),{ast:i,code:""}):(BV(i,n),KV(i,n))}function YV(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(sv().__INTLIFY_PROD_DEVTOOLS__=!1)}function pa(e){return Xe(e)&&mv(e)===0&&(Yn(e,"b")||Yn(e,"body"))}const XS=["b","body"];function qV(e){return Pl(e,XS)}const JS=["c","cases"];function XV(e){return Pl(e,JS,[])}const ZS=["s","static"];function JV(e){return Pl(e,ZS)}const QS=["i","items"];function ZV(e){return Pl(e,QS,[])}const ek=["t","type"];function mv(e){return Pl(e,ek)}const tk=["v","value"];function as(e,t){const n=Pl(e,tk);if(n!=null)return n;throw ai(t)}const nk=["m","modifier"];function QV(e){return Pl(e,nk)}const ak=["k","key"];function eL(e){const t=Pl(e,ak);if(t)return t;throw ai(6)}function Pl(e,t,n){for(let a=0;a<t.length;a++){const l=t[a];if(Yn(e,l)&&e[l]!=null)return e[l]}return n}const lk=[...XS,...JS,...ZS,...QS,...ak,...nk,...tk,...ek];function ai(e){return new Error(`unhandled node type: ${e}`)}function _c(e){return n=>tL(n,e)}function tL(e,t){const n=qV(t);if(n==null)throw ai(0);if(mv(n)===1){const r=XV(n);return e.plural(r.reduce((o,i)=>[...o,hg(e,i)],[]))}else return hg(e,n)}function hg(e,t){const n=JV(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const a=ZV(t).reduce((l,r)=>[...l,Id(e,r)],[]);return e.normalize(a)}}function Id(e,t){const n=mv(t);switch(n){case 3:return as(t,n);case 9:return as(t,n);case 4:{const a=t;if(Yn(a,"k")&&a.k)return e.interpolate(e.named(a.k));if(Yn(a,"key")&&a.key)return e.interpolate(e.named(a.key));throw ai(n)}case 5:{const a=t;if(Yn(a,"i")&&Bt(a.i))return e.interpolate(e.list(a.i));if(Yn(a,"index")&&Bt(a.index))return e.interpolate(e.list(a.index));throw ai(n)}case 6:{const a=t,l=QV(a),r=eL(a);return e.linked(Id(e,r),l?Id(e,l):void 0,e.type)}case 7:return as(t,n);case 8:return as(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const nL=e=>e;let ls=ct();function aL(e,t={}){let n=!1;const a=t.onError||IV;return t.onError=l=>{n=!0,a(l)},{...GV(e,t),detectError:n}}function lL(e,t){if(Ie(e)){Ct(t.warnHtmlMessage)&&t.warnHtmlMessage;const a=(t.onCacheKey||nL)(e),l=ls[a];if(l)return l;const{ast:r,detectError:o}=aL(e,{...t,location:!1,jit:!0}),i=_c(r);return o?i:ls[a]=i}else{const n=e.cacheKey;if(n){const a=ls[n];return a||(ls[n]=_c(e))}else return _c(e)}}let li=null;function rL(e){li=e}function oL(e,t,n){li&&li.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const iL=sL("function:translate");function sL(e){return t=>li&&li.emit(e,t)}const Ba={INVALID_ARGUMENT:xV,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},uL=24;function $a(e){return pu(e,null,void 0)}function hv(e,t){return t.locale!=null?gg(t.locale):gg(e.locale)}let Cc;function gg(e){if(Ie(e))return e;if(ht(e)){if(e.resolvedOnce&&Cc!=null)return Cc;if(e.constructor.name==="Function"){const t=e();if(pA(t))throw $a(Ba.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Cc=t}else throw $a(Ba.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw $a(Ba.NOT_SUPPORT_LOCALE_TYPE)}function cL(e,t,n){return[...new Set([n,...Vt(t)?t:Xe(t)?Object.keys(t):Ie(t)?[t]:[n]])]}function rk(e,t,n){const a=Ie(n)?n:Fs,l=e;l.__localeChainCache||(l.__localeChainCache=new Map);let r=l.__localeChainCache.get(a);if(!r){r=[];let o=[n];for(;Vt(o);)o=yg(r,o,t);const i=Vt(t)||!Ge(t)?t:t.default?t.default:null;o=Ie(i)?[i]:i,Vt(o)&&yg(r,o,!1),l.__localeChainCache.set(a,r)}return r}function yg(e,t,n){let a=!0;for(let l=0;l<t.length&&Ct(a);l++){const r=t[l];Ie(r)&&(a=dL(e,t[l],n))}return a}function dL(e,t,n){let a;const l=t.split("-");do{const r=l.join("-");a=fL(e,r,n),l.splice(-1,1)}while(l.length&&a===!0);return a}function fL(e,t,n){let a=!1;if(!e.includes(t)&&(a=!0,t)){a=t[t.length-1]!=="!";const l=t.replace(/!/g,"");e.push(l),(Vt(n)||Ge(n))&&n[l]&&(a=n[l])}return a}const Tl=[];Tl[0]={w:[0],i:[3,0],"[":[4],o:[7]};Tl[1]={w:[1],".":[2],"[":[4],o:[7]};Tl[2]={w:[2],i:[3,0],0:[3,0]};Tl[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};Tl[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};Tl[5]={"'":[4,0],o:8,l:[5,0]};Tl[6]={'"':[4,0],o:8,l:[6,0]};const vL=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function mL(e){return vL.test(e)}function hL(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function gL(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:retur
Line truncated
|
|
||||||
Expected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)}function wa(e){const{h:t,s:n,v:a,a:l}=e,r=i=>{const s=(i+t/60)%6;return a-a*n*Math.max(Math.min(s,4-s,1),0)},o=[r(5),r(3),r(1)].map(i=>Math.round(i*255));return{r:o[0],g:o[1],b:o[2],a:l}}function sy(e){return wa(Iv(e))}function Ei(e){if(!e)return{h:0,s:1,v:1,a:1};const t=e.r/255,n=e.g/255,a=e.b/255,l=Math.max(t,n,a),r=Math.min(t,n,a);let o=0;l!==r&&(l===t?o=60*(0+(n-a)/(l-r)):l===n?o=60*(2+(a-t)/(l-r)):l===a&&(o=60*(4+(t-n)/(l-r)))),o<0&&(o=o+360);const i=l===0?0:(l-r)/l,s=[o,i,l];return{h:s[0],s:s[1],v:s[2],a:e.a}}function $d(e){const{h:t,s:n,v:a,a:l}=e,r=a-a*n/2,o=r===1||r===0?0:(a-r)/Math.min(r,1-r);return{h:t,s:o,l:r,a:l}}function Iv(e){const{h:t,s:n,l:a,a:l}=e,r=a+n*Math.min(a,1-a),o=r===0?0:2-2*a/r;return{h:t,s:o,v:r,a:l}}function Mk(e){let{r:t,g:n,b:a,a:l}=e;return l===void 0?`rgb(${t}, ${n}, ${a})`:`rgba(${t}, ${n}, ${a}, ${l})`}function Nk(e){return Mk(wa(e))}function ss(e){const t=Math.round(e).toString(16);return("00".substr(0,2-t.length)+t).toUpperCase()}function Fk(e){let{r:t,g:n,b:a,a:l}=e;return`#${[ss(t),ss(n),ss(a),l!==void 0?ss(Math.round(l*255)):""].join("")}`}function Bk(e){e=lR(e);let[t,n,a,l]=VD(e,2).map(r=>parseInt(r,16));return l=l===void 0?l:l/255,{r:t,g:n,b:a,a:l}}function aR(e){const t=Bk(e);return Ei(t)}function $k(e){return Fk(wa(e))}function lR(e){return e.startsWith("#")&&(e=e.slice(1)),e=e.replace(/([^0-9a-f])/gi,"F"),(e.length===3||e.length===4)&&(e=e.split("").map(t=>t+t).join("")),e.length!==6&&(e=zg(zg(e,6),8,"F")),e}function rR(e,t){const n=Dk(xv(e));return n[0]=n[0]+t*10,Ok(Rk(n))}function oR(e,t){const n=Dk(xv(e));return n[0]=n[0]-t*10,Ok(Rk(n))}function Hd(e){const t=Cn(e);return xv(t)[1]}function iR(e,t){const n=Hd(e),a=Hd(t),l=Math.max(n,a),r=Math.min(n,a);return(l+.05)/(r+.05)}function Hk(e){const t=Math.abs(oy(Cn(0),Cn(e)));return Math.abs(oy(Cn(16777215),Cn(e)))>Math.min(t,50)?"#fff":"#000"}function Y(e,t){return n=>Object.keys(e).reduce((a,l)=>{const o=typeof e[l]=="object"&&e[l]!=null&&!Array.isArray(e[l])?e[l]:{type:e[l]};return n&&l in n?a[l]={...o,default:n[l]}:a[l]=o,t&&!a[l].source&&(a[l].source=t),a},{})}const Ce=Y({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},"component");function It(e,t){const n=Ln();if(!n)throw new Error(`[Vuetify] ${e} must be called from inside a setup function`);return n}function Pa(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"composables";const t=It(e).type;return Gl(t?.aliasName||t?.name)}function sR(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:It("injectSelf");const{provides:n}=t;if(n&&e in n)return n[e]}const no=Symbol.for("vuetify:defaults");function uR(e){return re(e)}function Pv(){const e=Re(no);if(!e)throw new Error("[Vuetify] Could not find defaults instance");return e}function St(e,t){const n=Pv(),a=re(e),l=P(()=>{if(Oe(t?.disabled))return n.value;const o=Oe(t?.scoped),i=Oe(t?.reset),s=Oe(t?.root);if(a.value==null&&!(o||i||s))return n.value;let u=Zt(a.value,{prev:n.value});if(o)return u;if(i||s){const c=Number(i||1/0);for(let d=0;d<=c&&!(!u||!("prev"in u));d++)u=u.prev;return u&&typeof s=="string"&&s in u&&(u=Zt(Zt(u,{prev:u}),u[s])),u}return u.prev?Zt(u.prev,u):u});return Ke(no,l),l}function cR(e,t){return e.props&&(typeof e.props[t]<"u"||typeof e.props[Gl(t)]<"u")}function dR(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Pv();const a=It("useDefaults");if(t=t??a.type.name??a.type.__name,!t)throw new Error("[Vuetify] Could not determine component name");const l=P(()=>n.value?.[e._as??t]),r=new Proxy(e,{get(s,u){const c=Reflect.get(s,u);if(u==="class"||u==="style")return[l.value?.[u],c].filter(v=>v!=null);if(cR(a.vnode,u))return c;const d=l.value?.[u];if(d!==void 0)return d;const f=n.value?.global?.[u];return f!==void 0?f:c}}),o=fe();vt(()=>{if(l.value){const s=Object.entries(l.value).filter(u=>{let[c]=u;return c.startsWith(c[0].toUpperCase())});o.value=s.length?Object.fromEntries(s):void 0}else o.value=void 0});function i(){const s=sR(no,a);Ke(no,P(()=>o.value?Zt(s?.value??{},o.value):s?.value))}return{props:r,provideSubDefaults:i}}function on(e){if(e._setup=e._setup??e.setup,!e.name)return e;if(e._setup){e.props=Y(e.props??{},e.name)();const t=Object.keys(e.props).filter(n=>n!=="class"&&n!=="style");e.filterProps=function(a){return mn(a,t)},e.props._as=String,e.setup=function(a,l){const r=Pv();if(!r.value)return e._setup(a,l);const{props:o,provideSubDefaults:i}=dR(a,a._as??e.name,r),s=e._setup(o,l);return i(),s}}return e}function ie(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return t=>(e?on:Vn)(t)}function fR(e,t){return t.props=e,t}function el(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"div",n=arguments.length>2?arguments[2]:void 0;return ie()({name:n??xa(Qt(e.replace(/__/g,"-"))),props:{tag:{type:String,default:t},...Ce()
Line truncated
|
|
||||||
KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US
|
|
||||||
VE VI WS YE ZA ZW`.includes(t):return{firstDay:0,firstWeekSize:1};case`AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
|
|
||||||
MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(t):return{firstDay:1,firstWeekSize:1};case`AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
|
|
||||||
IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(t):return{firstDay:1,firstWeekSize:4};case"AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY".includes(t):return{firstDay:6,firstWeekSize:1};case t==="MV":return{firstDay:5,firstWeekSize:1};case t==="PT":return{firstDay:0,firstWeekSize:4};default:return null}}function LR(e,t,n){const a=[];let l=[];const r=Gk(e),o=Yk(e),i=n??Ai(t)?.firstDay??0,s=(r.getDay()-i+7)%7,u=(o.getDay()-i+7)%7;for(let c=0;c<s;c++){const d=new Date(r);d.setDate(d.getDate()-(s-c)),l.push(d)}for(let c=1;c<=o.getDate();c++){const d=new Date(e.getFullYear(),e.getMonth(),c);l.push(d),l.length===7&&(a.push(l),l=[])}for(let c=1;c<7-u;c++){const d=new Date(o);d.setDate(d.getDate()+c),l.push(d)}return l.length>0&&a.push(l),a}function Ko(e,t,n){let a=(n??Ai(t)?.firstDay??0)%7;[0,1,2,3,4,5,6].includes(a)||(a=0);const l=new Date(e);for(;l.getDay()!==a;)l.setDate(l.getDate()-1);return l}function DR(e,t){const n=new Date(e),a=((Ai(t)?.firstDay??0)+6)%7;for(;n.getDay()!==a;)n.setDate(n.getDate()+1);return n}function Gk(e){return new Date(e.getFullYear(),e.getMonth(),1)}function Yk(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function RR(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}const OR=/^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;function qk(e){if(e==null)return new Date;if(e instanceof Date)return e;if(typeof e=="string"){let t;if(OR.test(e))return RR(e);if(t=Date.parse(e),!isNaN(t))return new Date(t)}return null}const vy=new Date(2e3,0,2);function MR(e,t,n){const a=t??Ai(e)?.firstDay??0;return ya(7).map(l=>{const r=new Date(vy);return r.setDate(vy.getDate()+a+l),new Intl.DateTimeFormat(e,{weekday:n??"narrow"}).format(r)})}function NR(e,t,n,a){const l=qk(e)??new Date,r=a?.[t];if(typeof r=="function")return r(l,t,n);let o={};switch(t){case"fullDate":o={year:"numeric",month:"short",day:"numeric"};break;case"fullDateWithWeekday":o={weekday:"long",year:"numeric",month:"long",day:"numeric"};break;case"normalDate":const i=l.getDate(),s=new Intl.DateTimeFormat(n,{month:"long"}).format(l);return`${i} ${s}`;case"normalDateWithWeekday":o={weekday:"short",day:"numeric",month:"short"};break;case"shortDate":o={month:"short",day:"numeric"};break;case"year":o={year:"numeric"};break;case"month":o={month:"long"};break;case"monthShort":o={month:"short"};break;case"monthAndYear":o={month:"long",year:"numeric"};break;case"monthAndDate":o={month:"long",day:"numeric"};break;case"weekday":o={weekday:"long"};break;case"weekdayShort":o={weekday:"short"};break;case"dayOfMonth":return new Intl.NumberFormat(n).format(l.getDate());case"hours12h":o={hour:"numeric",hour12:!0};break;case"hours24h":o={hour:"numeric",hour12:!1};break;case"minutes":o={minute:"numeric"};break;case"seconds":o={second:"numeric"};break;case"fullTime":o={hour:"numeric",minute:"numeric"};break;case"fullTime12h":o={hour:"numeric",minute:"numeric",hour12:!0};break;case"fullTime24h":o={hour:"numeric",minute:"numeric",hour12:!1};break;case"fullDateTime":o={year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric"};break;case"fullDateTime12h":o={year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0};break;case"fullDateTime24h":o={year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!1};break;case"keyboardDate":o={year:"numeric",month:"2-digit",day:"2-digit"};break;case"keyboardDateTime":return o={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric"},new Intl.DateTimeFormat(n,o).format(l).replace(/, /g," ");case"keyboardDateTime12h":return o={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",hour12:!0},new Intl.DateTimeFormat(n,o).format(l).replace(/, /g," ");case"keyboardDateTime24h":return o={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",hour12:!1},new Intl.DateTimeFormat(n,o).format(l).replace(/, /g," ");default:o=r??{timeZone:"UTC",timeZoneName:"short"}}return new Intl.DateTimeFormat(n,o).format(l)}function FR(e,t){const n=e.toJsDate(t),a=n.getFullYear(),l=Kg(String(n.getMonth()+1),2,"0"),r=Kg(String(n.getDate()),2,"0");return`${a}-${l}-${r}`}function BR(e){const[t,n,a]=e.split("-").map(Number);return new Date(t,n-1,a)}function $R(e,t){const n=new Date(e);return n.setMinutes(n.getMinutes()+t),n}function HR(e,t){const n=new Date(e);return n.setHours(n.getHours()+t),n}function ql(e,t){const n=new Date(e);return n.setDate(n.getDate()+t),n}function WR(e,t){const n=new Date(e);return n.setDate(n.getDate()+t*7),n}function jR(e,t){const n=new Date(e);return n.setDate(1),n.setMonth(n.getMonth()+t),n}function si(e){return e.getFullYear()}function UR(e){return e.getMonth()}function zR(e,t,n,a){const l=Ai(t),r=n??l?.firstDay??0,o=l?.firstWeekSize??1;return a!==void 0?KR(e,t,r,a):GR(e,t,r,o)}function KR(e,t,n,a){const l=(7+a-n)%7,r=Ko(e,t,n),o=ql(r,6);function i(f){return(7+new Date(f,0,1).getDay()-n)%7}let s=si(r);s<si(o)&&i(s+1)<=l&&s++;const u=new D
Line truncated
|
|
||||||
`,...n.map(l=>` ${l};
|
|
||||||
`),`}
|
|
||||||
`)}function wy(e,t){const n=e.dark?2:1,a=e.dark?1:2,l=[];for(const[r,o]of Object.entries(e.colors)){const i=Cn(o);l.push(`--${t}theme-${r}: ${i.r},${i.g},${i.b}`),r.startsWith("on-")||l.push(`--${t}theme-${r}-overlay-multiplier: ${Hd(o)>.18?n:a}`)}for(const[r,o]of Object.entries(e.variables)){const i=typeof o=="string"&&o.startsWith("#")?Cn(o):void 0,s=i?`${i.r}, ${i.g}, ${i.b}`:void 0;l.push(`--${t}${r}: ${s??o}`)}return l}function _O(e,t,n){const a={};if(n)for(const l of["lighten","darken"]){const r=l==="lighten"?rR:oR;for(const o of ya(n[l],1))a[`${e}-${l}-${o}`]=Fk(r(Cn(t),o))}return a}function CO(e,t){if(!t)return{};let n={};for(const a of t.colors){const l=e[a];l&&(n={...n,..._O(a,l,t)})}return n}function xO(e){const t={};for(const n of Object.keys(e)){if(n.startsWith("on-")||e[`on-${n}`])continue;const a=`on-${n}`,l=Cn(e[n]);t[a]=Hk(l)}return t}function IO(e,t){if(!t)return e;const n=`:where(${t})`;return e===":root"?n:`${n} ${e}`}function PO(e,t,n){const a=TO(e,t);a&&(a.innerHTML=n)}function TO(e,t){if(!Ze)return null;let n=document.getElementById(e);return n||(n=document.createElement("style"),n.id=e,n.type="text/css",t&&n.setAttribute("nonce",t),document.head.appendChild(n)),n}function EO(e){const t=wO(e),n=fe(t.defaultTheme),a=re(t.themes),l=fe("light"),r=P({get(){return n.value==="system"?l.value:n.value},set(h){n.value=h}}),o=P(()=>{const h={};for(const[p,b]of Object.entries(a.value)){const w={...b.colors,...CO(b.colors,t.variations)};h[p]={...b,colors:{...w,...xO(w)}}}return h}),i=M(()=>o.value[r.value]),s=M(()=>n.value==="system"),u=P(()=>{const h=[],p=t.unimportant?"":" !important",b=t.scoped?t.prefix:"";i.value?.dark&&Ml(h,":root",["color-scheme: dark"],t.scope),Ml(h,":root",wy(i.value,t.prefix),t.scope);for(const[S,y]of Object.entries(o.value))Ml(h,`.${t.prefix}theme--${S}`,[`color-scheme: ${y.dark?"dark":"normal"}`,...wy(y,t.prefix)],t.scope);if(t.utilities){const S=[],y=[],_=new Set(Object.values(o.value).flatMap(C=>Object.keys(C.colors)));for(const C of _)C.startsWith("on-")?Ml(y,`.${C}`,[`color: rgb(var(--${t.prefix}theme-${C}))${p}`],t.scope):(Ml(S,`.${b}bg-${C}`,[`--${t.prefix}theme-overlay-multiplier: var(--${t.prefix}theme-${C}-overlay-multiplier)`,`background-color: rgb(var(--${t.prefix}theme-${C}))${p}`,`color: rgb(var(--${t.prefix}theme-on-${C}))${p}`],t.scope),Ml(y,`.${b}text-${C}`,[`color: rgb(var(--${t.prefix}theme-${C}))${p}`],t.scope),Ml(y,`.${b}border-${C}`,[`--${t.prefix}border-color: var(--${t.prefix}theme-${C})`],t.scope));t.layers?h.push(`@layer background {
|
|
||||||
`,...S.map(C=>` ${C}`),`}
|
|
||||||
`,`@layer foreground {
|
|
||||||
`,...y.map(C=>` ${C}`),`}
|
|
||||||
`):h.push(...S,...y)}let w=h.map((S,y)=>y===0?S:` ${S}`).join("");return t.layers&&(w=`@layer vuetify.theme {
|
|
||||||
`+h.map(S=>` ${S}`).join("")+`
|
|
||||||
}`),w}),c=M(()=>t.isDisabled?void 0:`${t.prefix}theme--${r.value}`),d=M(()=>Object.keys(o.value));if(Sv){let p=function(){l.value=h.matches?"dark":"light"};const h=window.matchMedia("(prefers-color-scheme: dark)");p(),h.addEventListener("change",p,{passive:!0}),uo()&&ft(()=>{h.removeEventListener("change",p)})}function f(h){if(t.isDisabled)return;const p=h._context.provides.usehead;if(p){let b=function(){return{style:[{textContent:u.value,id:t.stylesheetId,nonce:t.cspNonce||!1}]}};if(p.push){const w=p.push(b);Ze&&ge(u,()=>{w.patch(b)})}else Ze?(p.addHeadObjs(M(b)),vt(()=>p.updateDOM())):p.addHeadObjs(b())}else{let b=function(){PO(t.stylesheetId,t.cspNonce,u.value)};Ze?ge(u,b,{immediate:!0}):b()}}function v(h){h!=="system"&&!d.value.includes(h)||(r.value=h)}function g(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.value;const p=h.indexOf(r.value),b=p===-1?0:(p+1)%h.length;v(h[b])}function m(){let h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["light","dark"];g(h)}const k=new Proxy(r,{get(h,p){return Reflect.get(h,p)},set(h,p,b){return p==="value"&&kk(`theme.global.name.value = ${b}`,`theme.change('${b}')`),Reflect.set(h,p,b)}});return{install:f,change:v,cycle:g,toggle:m,isDisabled:t.isDisabled,isSystem:s,name:r,themes:a,current:i,computedThemes:o,prefix:t.prefix,themeClasses:c,styles:u,global:{name:k,current:i}}}function ze(e){It("provideTheme");const t=Re(ci,null);if(!t)throw new Error("Could not find Vuetify theme injection");const n=M(()=>e.theme??t.name.value),r={...t,name:n,current:M(()=>t.themes.value[n.value]),themeClasses:M(()=>t.isDisabled?void 0:`${t.prefix}theme--${n.value}`)};return Ke(ci,r),r}function Iu(){It("useTheme");const e=Re(ci,null);if(!e)throw new Error("Could not find Vuetify theme injection");return e}function Wn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"content";const n=oi(),a=re();if(Ze){const l=new ResizeObserver(r=>{e?.(r,l),r.length&&(t==="content"?a.value=r[0].contentRect:a.value=r[0].target.getBoundingClientRect())});Wt(()=>{l.disconnect()}),ge(()=>n.el,(r,o)=>{o&&(l.unobserve(o),a.value=void 0),r&&l.observe(r)},{flush:"post"})}return{resizeRef:n,contentRect:Zl(a)}}const di=Symbol.for("vuetify:layout"),tw=Symbol.for("vuetify:layout-item"),_y=1e3,nw=Y({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},"layout"),mr=Y({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},"layout-item");function aw(){const e=Re(di);if(!e)throw new Error("[Vuetify] Could not find injected layout");return{getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function hr(e){const t=Re(di);if(!t)throw new Error("[Vuetify] Could not find injected layout");const n=e.id??`layout-item-${zt()}`,a=It("useLayoutItem");Ke(tw,{id:n});const l=fe(!1);lu(()=>l.value=!0),jf(()=>l.value=!1);const{layoutItemStyles:r,layoutItemScrimStyles:o}=t.register(a,{...e,active:P(()=>l.value?!1:e.active.value),id:n});return Wt(()=>t.unregister(n)),{layoutItemStyles:r,layoutRect:t.layoutRect,layoutItemScrimStyles:o}}const AO=(e,t,n,a)=>{let l={top:0,left:0,right:0,bottom:0};const r=[{id:"",layer:{...l}}];for(const o of e){const i=t.get(o),s=n.get(o),u=a.get(o);if(!i||!s||!u)continue;const c={...l,[i.value]:parseInt(l[i.value],10)+(u.value?parseInt(s.value,10):0)};r.push({id:o,layer:c}),l=c}return r};function lw(e){const t=Re(di,null),n=P(()=>t?t.rootZIndex.value-100:_y),a=re([]),l=wt(new Map),r=wt(new Map),o=wt(new Map),i=wt(new Map),s=wt(new Map),{resizeRef:u,contentRect:c}=Wn(),d=P(()=>{const y=new Map,_=e.overlaps??[];for(const C of _.filter(E=>E.includes(":"))){const[E,T]=C.split(":");if(!a.value.includes(E)||!a.value.includes(T))continue;const D=l.get(E),L=l.get(T),A=r.get(E),V=r.get(T);!D||!L||!A||!V||(y.set(T,{position:D.value,amount:parseInt(A.value,10)}),y.set(E,{position:L.value,amount:-parseInt(V.value,10)}))}return y}),f=P(()=>{const y=[...new Set([...o.values()].map(C=>C.value))].sort((C,E)=>C-E),_=[];for(const C of y){const E=a.value.filter(T=>o.get(T)?.value===C);_.push(...E)}return AO(_,l,r,i)}),v=P(()=>!Array.from(s.values()).some(y=>y.value)),g=P(()=>f.value[f.value.length-1].layer),m=M(()=>({"--v-layout-left":be(g.value.left),"--v-layout-right":be(g.value.right),"--v-layout-top":be(g.value.top),"--v-layout-bottom":be(g.value.bottom),...v.value?void 0:{transition:"none"}})),k=P(()=>f.value.slice(1).map((y,_)=>{let{id:C}=y;const{layer:E}=f.value[_],T=r.get(C),D=l.get(C);return{id:C,...E,size:Number(T.value),position:D.value}})),h=y=>k.value.find(_=>_.id===y),p=It("createLayout"),b=fe(!1);return pt(()=>{b.value=!0}),Ke(di,{register:(y,_)=>{let{id:C,order:E,position:T,layoutSize:D,elementSize:L,active:A,disableTransitions:V,absolute:B}=_;o.set(C,E),l.set(C,T),r.set(C,D),i.set(C,A),V&&s.set(C,V);const U=Or(tw,p?.vnode).indexOf(y);U>-1?a.value.splice(U,0,C):a.value.push(C);const q=P(()=>k.value.findIndex(X=>X.id===C)),Z=P(()=>n.value+f.value.length*2-q.value*2),K=P(()=>{const X=T.value==="left"||T.value==="right",z
Line truncated
|
|
||||||
`,...e.delimiters??[]].map($s).join("|");return G.split(new RegExp(`(?:${ae})+`))}async function F(G){for(let H of G)H=H.trim(),H&&(de(Gn(e,H)),await Ee())}function $(G){o.value=!0,setTimeout(()=>{s.value=!0})}function le(G){s.value=!1,r.value?.$el.contains(G.relatedTarget)||(o.value=!1)}function oe(G){u.value?.contentEl?.contains(G.relatedTarget)&&(o.value=!0)}return ge(o,(G,H)=>{if(!(G||G===H)&&(d.value=-1,U.value=!1,T.value)){if(e.multiple){de(Gn(e,T.value));return}if(!_.value)return;b.value.some(ae=>{let{title:ye}=ae;return ye===T.value})?C.value="":de(Gn(e,T.value))}}),ge(U,G=>{if(!e.hideSelected&&G&&b.value.length&&i.value){const H=V.value.findIndex(ae=>b.value.some(ye=>(e.valueComparator||$t)(ye.value,ae.value)));Ze&&window.requestAnimationFrame(()=>{H>=0&&c.value?.scrollToIndex(H)})}G&&(E.value=null)}),ge(v,(G,H)=>{U.value||o.value&&!H.length&&G.length&&(U.value=!0)}),ce(()=>{const G=!!(!e.hideNoData||V.value.length||a["prepend-item"]||a["append-item"]||a["no-data"]),H=b.value.length>0,ae=Ca.filterProps(e),ye={search:T,filteredItems:L.value};return x(Ca,ee({ref:r},ae,{modelValue:T.value,"onUpdate:modelValue":Se=>T.value=Se,focused:o.value,"onUpdate:focused":Se=>o.value=Se,validationValue:b.externalValue,counterValue:D.value,dirty:H,class:["v-combobox",{"v-combobox--active-menu":U.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!_.value,"v-combobox--selecting-index":d.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:w.isReadonly.value,placeholder:H?void 0:e.placeholder,"onClick:clear":me,"onMousedown:control":he,onKeydown:N,onPaste:R,onBlur:oe,"aria-expanded":Z.value,"aria-controls":K.value}),{...a,default:Se=>{let{id:Te}=Se;return I(ke,null,[x(oo,ee({id:q.value,ref:u,modelValue:U.value,"onUpdate:modelValue":De=>U.value=De,activator:"parent",contentClass:"v-combobox__content",disabled:B.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Q,onAfterLeave:se},e.menuProps),{default:()=>[x(_l,{onFocusin:$,onKeydown:Le},{default:()=>[a["menu-header"]&&I("header",{ref:ve},[a["menu-header"](ye)]),G&&x(ro,ee({key:"combobox-list",ref:J,filterable:!0,selected:te.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:De=>De.preventDefault(),selectable:!!V.value.length,onFocusout:le,tabindex:"-1","aria-live":"polite","aria-labelledby":`${Te.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},j,e.listProps),{default:()=>[a["prepend-item"]?.(),!V.value.length&&!e.hideNoData&&(a["no-data"]?.()??x(jn,{key:"no-data",title:l(e.noDataText)},null)),x(Ru,{ref:c,renderless:!0,items:V.value,itemKey:"value"},{default:De=>{let{item:Ae,index:je,itemRef:et}=De;const Dt=ee(Ae.props,{ref:et,key:Ae.value,active:z.value&&Ae===X.value?!0:void 0,onClick:()=>de(Ae,null),"aria-posinset":je+1,"aria-setsize":V.value.length});return Ae.type==="divider"?a.divider?.({props:Ae.raw,index:je})??x(In,ee(Ae.props,{key:`divider-${je}`}),null):Ae.type==="subheader"?a.subheader?.({props:Ae.raw,index:je})??x(ko,ee(Ae.props,{key:`subheader-${je}`}),null):a.item?.({item:Ae,index:je,props:Dt})??x(jn,ee(Dt,{role:"option"}),{prepend:Un=>{let{isSelected:nn}=Un;return I(ke,null,[e.multiple&&!e.hideSelected?x(aa,{key:Ae.value,modelValue:nn,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:un=>un.preventDefault()},null):void 0,Ae.props.prependAvatar&&x(An,{image:Ae.props.prependAvatar},null),Ae.props.prependIcon&&x(Ue,{icon:Ae.props.prependIcon},null)])},title:()=>i.value?Ae.title:om("v-combobox",Ae.title,A(Ae)?.title)})}}),a["append-item"]?.()]}),a["menu-footer"]&&I("footer",{ref:we},[a["menu-footer"](ye)])]})]}),b.value.map((De,Ae)=>{function je(nn){nn.stopPropagation(),nn.preventDefault(),de(De,!1)}const et=ee(Ja.filterProps(De.props),{"onClick:close":je,onKeydown(nn){nn.key!=="Enter"&&nn.key!==" "||(nn.preventDefault(),nn.stopPropagation(),je(nn))},onMousedown(nn){nn.preventDefault(),nn.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),Dt=y.value?!!a.chip:!!a.selection,Un=Dt?wu(y.value?a.chip({item:De,index:Ae,props:et}):a.selection({item:De,index:Ae})):void 0;if(!(Dt&&!Un))return I("div",{key:De.value,class:ue(["v-combobox__selection",Ae===d.value&&["v-combobox__selection--selected",k.value]]),style:pe(Ae===d.value?h.value:{})},[y.value?a.chip?x(Fe,{key:"chip-defaults",defaults:{VChip:{closable:S.value,size:"small",text:De.title}}},{default:()=>[Un]}):x(Ja,ee({key:"chip",closable:S.value,size:"small",text:De.title,disabled:De.props.disabled},et),null):Un??I("span",{class:"v-combobox__selection-text"},[De.title,e.multiple&&Ae<b.value.length-1&&I("span",{class:"v-combobox__selection-comma"},[pn(",")])])])})])},"append-inner":function(){for(var Se=arguments.length,Te=new Array(Se),De=0;De<Se;De++)Te[De]=arguments[De];return I(ke,null,[a["append-inner"]?.(...Te),(!e.hideNoData||e.items.length)&&e.menuIcon?x(Ue,{class:"v-combobox__menu-icon",color:r.value?.fieldIconColor,icon:e.menuIcon,onMousedown:_e,
Line truncated
|
|
||||||
`):J}),w=M(()=>{let J=l.date();return J=l.setDate(J,1),J=l.setMonth(J,m.value),J=l.setYear(J,h.value),J}),S=M(()=>l.format(w.value,"monthAndYear")),y=M(()=>l.format(w.value,"monthShort")),_=M(()=>l.format(w.value,"year")),C=M(()=>`date-picker-header${p.value?"-reverse":""}-transition`),E=P(()=>{if(e.disabled)return!0;const J=[];if(s.value!=="month")J.push("prev-month","next-month","prev-year","next-year");else{let ve=l.date();if(ve=l.startOfMonth(ve),ve=l.setMonth(ve,m.value),ve=l.setYear(ve,h.value),u.value){const we=l.addDays(l.startOfMonth(ve),-1),j=l.addDays(l.startOfYear(ve),-1);l.isAfter(u.value,we)&&J.push("prev-month"),l.isAfter(u.value,j)&&J.push("prev-year")}if(c.value){const we=l.addDays(l.endOfMonth(ve),1),j=l.addDays(l.endOfYear(ve),1);l.isAfter(we,c.value)&&J.push("next-month"),l.isAfter(j,c.value)&&J.push("next-year")}}return J}),T=P(()=>e.allowedYears||A),D=P(()=>e.allowedMonths||V);function L(J,ve){const we=e.allowedDates;if(typeof we!="function")return!0;const j=1+Jk(l,J,ve);for(let ne=0;ne<j;ne++)if(we(l.addDays(J,ne)))return!0;return!1}function A(J){if(typeof e.allowedDates=="function"){const ve=l.parseISO(`${J}-01-01`);return L(ve,l.endOfYear(ve))}if(Array.isArray(e.allowedDates)&&e.allowedDates.length){for(const ve of e.allowedDates)if(l.getYear(l.date(ve))===J)return!0;return!1}return!0}function V(J){if(typeof e.allowedDates=="function"){const ve=String(J+1).padStart(2,"0"),we=l.parseISO(`${h.value}-${ve}-01`);return L(we,l.endOfMonth(we))}if(Array.isArray(e.allowedDates)&&e.allowedDates.length){for(const ve of e.allowedDates)if(l.getYear(l.date(ve))===h.value&&l.getMonth(l.date(ve))===J)return!0;return!1}return!0}function B(){m.value<11?m.value++:(h.value++,m.value=0,z()),X()}function W(){m.value>0?m.value--:(h.value--,m.value=11,z()),X()}function U(){if(h.value++,c.value){const J=String(m.value+1).padStart(2,"0"),ve=l.parseISO(`${h.value}-${J}-01`);l.isAfter(ve,c.value)&&(m.value=l.getMonth(c.value))}z()}function q(){if(h.value--,u.value){const J=String(m.value+1).padStart(2,"0"),ve=l.endOfMonth(l.parseISO(`${h.value}-${J}-01`));l.isAfter(u.value,ve)&&(m.value=l.getMonth(u.value))}z()}function Z(){s.value="month"}function K(){s.value=s.value==="months"?"month":"months"}function te(){s.value=s.value==="year"?"month":"year"}function X(){s.value==="months"&&K()}function z(){s.value==="year"&&te()}return ge(i,(J,ve)=>{const we=rt(ve),j=rt(J);if(!j.length)return;const ne=l.date(we[we.length-1]),me=l.date(j[j.length-1]);if(l.isSameDay(ne,me))return;const he=l.getMonth(me),_e=l.getYear(me);he!==m.value&&(m.value=he,X()),_e!==h.value&&(h.value=_e,z()),p.value=l.isBefore(ne,me)}),ce(()=>{const J=io.filterProps(e),ve=Be(hf.filterProps(e),["viewMode"]),we=gf.filterProps(e),j=yf.filterProps(e),ne=Be(bf.filterProps(e),["modelValue"]),me=Be(pf.filterProps(e),["modelValue"]),he={color:v.value,header:b.value,transition:C.value};return x(io,ee(J,{color:v.value,class:["v-date-picker",`v-date-picker--${s.value}`,{"v-date-picker--show-week":e.showWeek},o.value,e.class],style:[{"--v-date-picker-landscape-header-width":be(e.landscapeHeaderWidth)},e.style]}),{title:()=>a.title?.()??I("div",{class:"v-date-picker__title"},[r(e.title)]),header:()=>a.header?x(Fe,{defaults:{VDatePickerHeader:{...he}}},{default:()=>[a.header?.(he)]}):x(gf,ee({key:"header"},we,he,{onClick:s.value!=="month"?Z:void 0}),{prepend:a.prepend,append:a.append}),default:()=>I(ke,null,[x(hf,ee(ve,{disabled:E.value,viewMode:s.value,text:S.value,monthText:y.value,yearText:_.value,"onClick:next":B,"onClick:prev":W,"onClick:nextYear":U,"onClick:prevYear":q,"onClick:month":K,"onClick:year":te}),{default:a.controls}),x(fi,{hideOnLeave:!0},{default:()=>[s.value==="months"?x(bf,ee({key:"date-picker-months"},ne,{modelValue:m.value,"onUpdate:modelValue":[_e=>m.value=_e,X],min:u.value,max:c.value,year:h.value,allowedMonths:D.value}),{month:a.month}):s.value==="year"?x(pf,ee({key:"date-picker-years"},me,{modelValue:h.value,"onUpdate:modelValue":[_e=>h.value=_e,z],min:u.value,max:c.value,allowedYears:T.value}),{year:a.year}):x(yf,ee({key:"date-picker-month"},j,{modelValue:i.value,"onUpdate:modelValue":_e=>i.value=_e,month:m.value,"onUpdate:month":[_e=>m.value=_e,X],year:h.value,"onUpdate:year":[_e=>h.value=_e,z],min:u.value,max:c.value}),{day:a.day})]})]),actions:a.actions})}),{}}}),g2=Y({actionText:String,bgColor:String,color:String,icon:Pe,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...Ce(),...Pt(),...Ea({size:void 0}),...We()},"VEmptyState"),y2=ie()({name:"VEmptyState",props:g2(),emits:{"click:action":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const{themeClasses:l}=ze(e),{backgroundColorClasses:r,backgroundColorStyles:o}=Ye(()=>e.bgColor),{dimensionStyles:i}=Tt(e),{displayClasses:s}=Rn();function u(c){n("click:action",c)}return ce(()=>{const c=!!(a.actions||e.actionText),d=!!(a.headline||e.headline),f=!!(a.title||e.title),v=!!(a.text||e
Line truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"id":"59de4f49-4f4c-4256-a61d-535d6efee325","timestamp":1775577367830}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"id":"59de4f49-4f4c-4256-a61d-535d6efee325","timestamp":1775577367830,"prerendered":[]}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.v-app-bg[data-v-49c35caf]{background:rgb(var(--v-theme-background))}.link-active[data-v-49c35caf]{color:rgb(var(--v-theme-primary))!important}.v-btn--variant-plain[data-v-49c35caf]{color:rgb(var(--v-theme-on-background));opacity:1;transition:all .28s cubic-bezier(.4,0,.2,1)}.v-btn--variant-plain[data-v-49c35caf]:focus,.v-btn--variant-plain[data-v-49c35caf]:hover{color:rgb(var(--v-theme-primary))}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
@charset "UTF-8";html{font-family:Roboto,sans-serif;font-size:1rem;line-height:1.5;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}.text-h1,.text-h2{font-family:Roboto,sans-serif;font-weight:300;line-height:1;text-transform:none!important}.text-h3,.text-h4{font-family:Roboto,sans-serif;font-weight:400;text-transform:none!important}.text-h5,.text-h6{font-family:Roboto,sans-serif;text-transform:none!important}.text-subtitle-1,.text-subtitle-2{font-family:Roboto,sans-serif;text-transform:none!important}.text-body-1,.text-body-2{font-family:Roboto,sans-serif;font-weight:400;text-transform:none!important}.text-button{font-family:Roboto,sans-serif;font-weight:500;letter-spacing:.0892857143em!important;line-height:2.6;text-transform:uppercase!important}.text-caption,.text-overline{font-family:Roboto,sans-serif;font-size:.75rem!important}@media(min-width:600px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.float-sm-none{float:none!important}.float-sm-left{float:left!important}.float-sm-right{float:right!important}.v-locale--is-rtl .float-sm-end{float:left!important}.v-locale--is-ltr .float-sm-end,.v-locale--is-rtl .float-sm-start{float:right!important}.v-locale--is-ltr .float-sm-start{float:left!important}.flex-sm-1-1,.flex-sm-fill{flex:1 1 auto!important}.flex-sm-1-0{flex:1 0 auto!important}.flex-sm-0-1{flex:0 1 auto!important}.flex-sm-0-0{flex:0 0 auto!important}.flex-sm-1-1-100{flex:1 1 100%!important}.flex-sm-1-0-100{flex:1 0 100%!important}.flex-sm-0-1-100{flex:0 1 100%!important}.flex-sm-0-0-100{flex:0 0 100%!important}.flex-sm-1-1-0{flex:1 1 0!important}.flex-sm-1-0-0{flex:1 0 0!important}.flex-sm-0-1-0{flex:0 1 0!important}.flex-sm-0-0-0{flex:0 0 0!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-sm-start{justify-content:flex-start!important}.justify-sm-end{justify-content:flex-end!important}.justify-sm-center{justify-content:center!important}.justify-sm-space-between{justify-content:space-between!important}.justify-sm-space-around{justify-content:space-around!important}.justify-sm-space-evenly{justify-content:space-evenly!important}.justify-items-sm-start{justify-items:flex-start!important}.justify-items-sm-end{justify-items:flex-end!important}.justify-items-sm-center{justify-items:center!important}.justify-items-sm-stretch{justify-items:stretch!important}.align-sm-start{align-items:flex-start!important}.align-sm-end{align-items:flex-end!important}.align-sm-center{align-items:center!important}.align-sm-baseline{align-items:baseline!important}.align-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-space-between{align-content:space-between!important}.align-content-sm-space-around{align-content:space-around!important}.align-content-sm-space-evenly{align-content:space-evenly!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-6{order:6!important}.order-sm-7{order:7!important}.order-sm-8{order:8!important}.order-sm-9{order:9!important}.order-sm-10{order:10!important}.order-sm-11{order:11!important}.order-sm-12{order:12!important}.order-sm-last{order:13!important}.ga-sm-0{gap:0!important}.ga-sm-1{gap:4px!important}.ga-sm-2{gap:8px!important}.ga-sm-3{gap:12px!important}.ga-sm-4{gap:16px!important}.ga-sm-5{gap:20px!important}.ga-sm-6{gap:24px!important}.ga-sm-7{gap:28px!important}.ga-sm-8{gap:32px!important}.ga-sm-9{gap:36px!important}.ga-sm-10{gap:40px!important}.ga-sm-11{gap:44px!important}.ga-sm-12{gapLine truncated
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.spotlight[data-v-1bd9e11a]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-1bd9e11a]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media(prefers-color-scheme:light){.gradient-border[data-v-1bd9e11a]{background-color:#ffffff4d}.gradient-border[data-v-1bd9e11a]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media(prefers-color-scheme:dark){.gradient-border[data-v-1bd9e11a]{background-color:#1414144d}.gradient-border[data-v-1bd9e11a]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-1bd9e11a]:before{background-size:400% auto;border-radius:.5rem;content:"";inset:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-1bd9e11a]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-1bd9e11a]{position:fixed}.left-0[data-v-1bd9e11a]{left:0}.right-0[data-v-1bd9e11a]{right:0}.z-10[data-v-1bd9e11a]{z-index:10}.z-20[data-v-1bd9e11a]{z-index:20}.grid[data-v-1bd9e11a]{display:grid}.mb-16[data-v-1bd9e11a]{margin-bottom:4rem}.mb-8[data-v-1bd9e11a]{margin-bottom:2rem}.max-w-520px[data-v-1bd9e11a]{max-width:520px}.min-h-screen[data-v-1bd9e11a]{min-height:100vh}.w-full[data-v-1bd9e11a]{width:100%}.flex[data-v-1bd9e11a]{display:flex}.cursor-pointer[data-v-1bd9e11a]{cursor:pointer}.place-content-center[data-v-1bd9e11a]{place-content:center}.items-center[data-v-1bd9e11a]{align-items:center}.justify-center[data-v-1bd9e11a]{justify-content:center}.overflow-hidden[data-v-1bd9e11a]{overflow:hidden}.bg-white[data-v-1bd9e11a]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-1bd9e11a]{padding-left:1rem;padding-right:1rem}.px-8[data-v-1bd9e11a]{padding-left:2rem;padding-right:2rem}.py-2[data-v-1bd9e11a]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-1bd9e11a]{text-align:center}.text-8xl[data-v-1bd9e11a]{font-size:6rem;line-height:1}.text-xl[data-v-1bd9e11a]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-1bd9e11a]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-1bd9e11a]{font-weight:300}.font-medium[data-v-1bd9e11a]{font-weight:500}.leading-tight[data-v-1bd9e11a]{line-height:1.25}.font-sans[data-v-1bd9e11a]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-1bd9e11a]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-black[data-v-1bd9e11a]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-1bd9e11a]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:px-0[data-v-1bd9e11a]{padding-left:0;padding-right:0}.sm\:px-6[data-v-1bd9e11a]{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3[data-v-1bd9e11a]{padding-bottom:.75rem;padding-top:.75rem}.sm\:text-4xl[data-v-1bd9e11a]{font-size:2.25rem;line-height:2.5rem}.sm\:text-xl[data-v-1bd9e11a]{font-size:1.25rem;line-height:1.75rem}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.spotlight[data-v-a01dd0ba]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-a01dd0ba]{position:fixed}.-bottom-1\/2[data-v-a01dd0ba]{bottom:-50%}.left-0[data-v-a01dd0ba]{left:0}.right-0[data-v-a01dd0ba]{right:0}.grid[data-v-a01dd0ba]{display:grid}.mb-16[data-v-a01dd0ba]{margin-bottom:4rem}.mb-8[data-v-a01dd0ba]{margin-bottom:2rem}.h-1\/2[data-v-a01dd0ba]{height:50%}.max-w-520px[data-v-a01dd0ba]{max-width:520px}.min-h-screen[data-v-a01dd0ba]{min-height:100vh}.place-content-center[data-v-a01dd0ba]{place-content:center}.overflow-hidden[data-v-a01dd0ba]{overflow:hidden}.bg-white[data-v-a01dd0ba]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-a01dd0ba]{padding-left:2rem;padding-right:2rem}.text-center[data-v-a01dd0ba]{text-align:center}.text-8xl[data-v-a01dd0ba]{font-size:6rem;line-height:1}.text-xl[data-v-a01dd0ba]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-a01dd0ba]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-a01dd0ba]{font-weight:300}.font-medium[data-v-a01dd0ba]{font-weight:500}.leading-tight[data-v-a01dd0ba]{line-height:1.25}.font-sans[data-v-a01dd0ba]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-a01dd0ba]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\:bg-black[data-v-a01dd0ba]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\:text-white[data-v-a01dd0ba]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\:px-0[data-v-a01dd0ba]{padding-left:0;padding-right:0}.sm\:text-4xl[data-v-a01dd0ba]{font-size:2.25rem;line-height:2.5rem}}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
h1[data-v-f5e084b9]{font-size:20px}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as p}from"./wKjIcb_L.js";import{_,o as t,h as u,w as r,c as s,t as a,b as i,d as l,T as h}from"./Dhg5knF6.js";const m={name:"EmptyLayout",layout:"empty",props:{error:{type:Object,default:null}},data(){return{pageNotFound:"404 Not Found",otherError:"An error occurred"}},head(){return{title:this.error.statusCode===404?this.pageNotFound:this.otherError}}},f={key:0},y={key:1};function k(n,e,c,x,o,N){const d=p;return t(),u(h,{dark:""},{default:r(()=>[c.error.statusCode===404?(t(),s("h1",f,a(o.pageNotFound),1)):(t(),s("h1",y,a(o.otherError),1)),i(d,{to:"/"},{default:r(()=>[...e[0]||(e[0]=[l(" Home page ",-1)])]),_:1})]),_:1})}const F=_(m,[["render",k],["__scopeId","data-v-f5e084b9"]]);export{F as default};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
h1[data-v-7bb417f6],h2[data-v-7bb417f6],h3[data-v-7bb417f6],h4[data-v-7bb417f6],h5[data-v-7bb417f6],h6[data-v-7bb417f6],ul[data-v-7bb417f6]{margin-bottom:1rem}p[data-v-7bb417f6],table[data-v-7bb417f6]{margin-bottom:2rem}li[data-v-7bb417f6]{margin-left:2rem}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as w,o as n,h as d,w as e,b as t,G as _,H as f,c as m,F as h,g as v,I as g,J as y,t as o,n as L,a as c,m as r,d as i,K as C,z as D,L as A,p as B,E as I,x as N,M as S,N as b,O as z,P as E,V as U,e as u,D as $,Q as F,R as M,S as R,T,U as H}from"./Dhg5knF6.js";const j=""+new URL("avatar_blueish.DLBh9fAt.png",import.meta.url).href,P={name:"DefaultLayout",setup(){const{smAndDown:a}=H();return{smAndDown:a}},data:()=>({projectUrl:"https://github.com/Rakantor/personal-portfolio",availableLocales:[{code:"en",name:"English"},{code:"de",name:"Deutsch"}],pages:[{icon:"mdi-home",title:"headerHome",url:"/"},{icon:"mdi-text-account",title:"headerAbout",url:"/bio"},{icon:"mdi-briefcase",title:"headerWork",url:"/portfolio"}],drawer:!1}),methods:{changeLocale(a){this.$i18n.setLocale(a),localStorage.setItem("lang",a)}},created(){const a=localStorage.getItem("lang")||this.$i18n.locale;a!=this.$i18n.locale&&this.$i18n.setLocale(a)}},W={class:"pa-2"},G={class:"text-caption text-no-wrap"};function J(a,s,K,V,O,k){return n(),d(T,{class:"v-app-bg"},{default:e(()=>[t(_,{"model-value":a.drawer,location:"right",app:"","disable-resize-watcher":""},{append:e(()=>[c("div",W,[t(r,{block:"",outlined:"",color:"primary","prepend-icon":"mdi-email-outline",href:`mailto:<${a.$config.public.myEmail}>`},{default:e(()=>[...s[2]||(s[2]=[i(" Contact ",-1)])]),_:1},8,["href"])])]),default:e(()=>[t(f,{nav:"",lines:!1},{default:e(()=>[(n(!0),m(h,null,v(a.pages,(l,p)=>(n(),d(g,{key:p,to:l.url,"active-color":"primary",router:"",exact:""},{prepend:e(()=>[t(L,{icon:l.icon},null,8,["icon"])]),default:e(()=>[t(y,{textContent:o(a.$t(l.title))},null,8,["textContent"])]),_:2},1032,["to"]))),128))]),_:1})]),_:1},8,["model-value"]),t(C,{app:"",color:"background",class:"px-md-10 py-md-4"},{prepend:e(()=>[t(N,{size:"48",color:"surface",style:{cursor:"pointer"},onClick:s[0]||(s[0]=l=>a.$router.push("/"))},{default:e(()=>[...s[3]||(s[3]=[c("img",{src:j,width:"55"},null,-1)])]),_:1})]),default:e(()=>[t(D),V.smAndDown?(n(),d(A,{key:0,onClick:s[1]||(s[1]=B(l=>a.drawer=!a.drawer,["stop"]))})):(n(),d(I,{key:1,"model-value":0,mandatory:"",variant:"plain","selected-class":"link-active"},{default:e(()=>[t(r,{ripple:!1,to:"/"},{default:e(()=>[i(o(a.$t("headerHome")),1)]),_:1}),t(r,{ripple:!1,to:"/bio"},{default:e(()=>[i(o(a.$t("headerAbout")),1)]),_:1}),t(r,{ripple:!1,to:"/portfolio"},{default:e(()=>[i(o(a.$t("headerWork")),1)]),_:1}),t(r,{ripple:!1,href:`mailto:<${a.$config.public.myEmail}>`},{default:e(()=>[i(o(a.$t("headerContact")),1)]),_:1},8,["href"])]),_:1}))]),_:1}),t(S,null,{default:e(()=>[t(b,{class:"pa-md-16 my-16"},{default:e(()=>[z(a.$slots,"default",{},void 0,!0)]),_:3})]),_:3}),t(E,{app:"",absolute:"",color:"transparent",style:{"border-top":"1px solid rgba(var(--v-theme-on-surface), 0.1)"}},{default:e(()=>[t(b,{class:"d-flex py-0 my-0"},{default:e(()=>[t(U,{"no-gutters":""},{default:e(()=>[t(u,{cols:"4",class:$(["my-auto",a.$vuetify.display.mobile?"text-left":"text-center"])},{default:e(()=>[t(r,{variant:"plain",size:"x-small",density:"compact",color:"on-surface",ripple:!1,class:"link",to:"/imprint"},{default:e(()=>[i(o(a.$t("imprint")),1)]),_:1})]),_:1},8,["class"]),t(u,{cols:"4",class:"text-center my-auto"},{default:e(()=>[c("span",G," © "+o(new Date().getFullYear())+" "+o(a.$config.public.myName),1)]),_:1}),t(u,{cols:"4",class:$(["my-auto",a.$vuetify.display.mobile?"text-right":"text-center"])},{default:e(()=>[t(r,{variant:"plain",icon:"mdi-github",density:"comfortable",color:"on-surface",ripple:!1,class:"link",href:a.projectUrl,target:"_blank"},null,8,["href"]),t(F,{location:"top right","close-on-content-click":!1},{activator:e(({props:l})=>[t(r,R(l,{variant:"plain",icon:"mdi-translate",density:"comfortable",color:"on-surface",ripple:!1,class:"link"}),null,16)]),default:e(()=>[t(f,{nav:"","min-width":"150"},{default:e(()=>[t(M,null,{default:e(()=>[i(o(a.$t("lang").toUpperCase()),1)]),_:1}),(n(!0),m(h,null,v(a.availableLocales,l=>(n(),d(g,{key:l.code,value:l,active:l.code==a.$i18n.locale,"active-color":"primary"},{default:e(()=>[t(y,{onClick:p=>k.changeLocale(l.code)},{default:e(()=>[i(o(l.name),1)]),_:2},1032,["onClick"])]),_:2},1032,["value","active"]))),128))]),_:1})]),_:1})]),_:1},8,["class"])]),_:1})]),_:1})]),_:1})]),_:3})}const Y=w(P,[["render",J],["__scopeId","data-v-49c35caf"]]);export{Y as default};
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +0,0 @@
|
|||||||
.img-height[data-v-47fe2410]{height:calc(90vh - 50px)}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{W as O,X as L,Y as q,Z as j,$ as E,a0 as N,a1 as U,a2 as I,a3 as P,r as _,a4 as H,a5 as D,a6 as F,a7 as V,a8 as T,a9 as W,aa as o,ab as z,ac as b,ad as B,ae as M,af as $,ag as G,ah as Q,C as X}from"./Dhg5knF6.js";const Y=(...t)=>t.find(c=>c!==void 0);function Z(t){const c=t.componentName||"NuxtLink";function v(e){return typeof e=="string"&&e.startsWith("#")}function S(e,l,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return k(e,a);const i="path"in e&&e.path!==void 0?e.path:l(e).path;return{...e,name:void 0,path:k(i,a)}}function w(e){const l=L(),d=X(),a=b(()=>!!o(e.target)&&o(e.target)!=="_self"),i=b(()=>{const u=o(e.to)||o(e.href)||"";return typeof u=="string"&&B(u,{acceptRelative:!0})}),m=_("RouterLink"),g=m&&typeof m!="string"?m.useLink:void 0,f=b(()=>{if(o(e.external))return!0;const u=o(e.to)||o(e.href)||"";return typeof u=="object"?!1:u===""||i.value}),r=b(()=>{const u=o(e.to)||o(e.href)||"";return f.value?u:S(u,l.resolve,o(e.trailingSlash))}),y=f.value?void 0:g?.({...e,to:r,viewTransition:o(e.viewTransition)}),p=b(()=>{const u=o(e.trailingSlash)??t.trailingSlash;if(!r.value||i.value||v(r.value))return r.value;if(f.value){const C=typeof r.value=="object"&&"path"in r.value?T(r.value):r.value,R=typeof C=="object"?l.resolve(C).href:C;return k(R,u)}return typeof r.value=="object"?l.resolve(r.value)?.href??null:k(M(d.app.baseURL,r.value),u)});return{to:r,hasTarget:a,isAbsoluteUrl:i,isExternal:f,href:p,isActive:y?.isActive??b(()=>r.value===l.currentRoute.value.path),isExactActive:y?.isExactActive??b(()=>r.value===l.currentRoute.value.path),route:y?.route??b(()=>l.resolve(r.value)),async navigate(u){await z(p.value,{replace:o(e.replace),external:f.value||a.value})}}}return O({name:c,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:w,setup(e,{slots:l}){const d=L(),{to:a,href:i,navigate:m,isExternal:g,hasTarget:f,isAbsoluteUrl:r}=w(e),y=F(!1),p=V(null),u=s=>{p.value=e.custom?s?.$el?.nextElementSibling:s?.$el};function C(s){return!y.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===s:e.prefetchOn?.[s]??t.prefetchOn?.[s])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ee()}async function R(s=q()){if(y.value)return;y.value=!0;const h=typeof a.value=="string"?a.value:g.value?T(a.value):d.resolve(a.value).fullPath,n=g.value?new URL(h,window.location.href).href:h;await Promise.all([s.hooks.callHook("link:prefetch",n).catch(()=>{}),!g.value&&!f.value&&W(a.value,d).catch(()=>{})])}if(C("visibility")){const s=q();let h,n=null;j(()=>{const x=J();E(()=>{h=N(()=>{p?.value?.tagName&&(n=x.observe(p.value,async()=>{n?.(),n=null,await R(s)}))})})}),U(()=>{h&&I(h),n?.(),n=null})}return()=>{if(!g.value&&!f.value&&!v(a.value)){const n={ref:u,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(C("interaction")&&(n.onPointerenter=R.bind(null,void 0),n.onFocus=R.bind(null,void 0)),y.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),P(_("RouterLink"),n,l.default)}const s=e.target||null,h=Y(e.noRel?"":e.rel,t.externalRelAttribute,r.value||f.value?"noopener noreferrer":"")||null;return e.custom?l.default?l.default({href:i.value,navigate:m,prefetch:R,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return H(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:h,target:s,isExternal:g.value||f.value,isActive:!1,isExactActive:!1}):null:P("a",{ref:p,href:i.value||null,rel:h,target:s,onClick:async n=>{if(!(g.value||f.value)){n.preventDefault();try{const x=D(i.value);return await(e.replace?d.replace(x):d.push(x))}finally{if(v(a.value)){const x=a.value.slice(1);let A=x;try{A=decodeURIComponent(x)}catch{}document.getElementById(A)?.focus()}}}}},l.default?.())}}})}const ne=Z($);function k(t,c){const v=c==="append"?G:Q;return B(t)&&!t.startsWith("http")?t:v(t,!0)}function J(){const t=q();if(t._observer)return t._observer;let c=null;const v=new Map,S=(e,l)=>(c||=new InLine truncated
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 216 KiB |
File renamed without changes.
@@ -0,0 +1,44 @@
|
|||||||
|
// Ref: https://github.com/nuxt-community/vuetify-module#customvariables
|
||||||
|
//
|
||||||
|
// The variables you want to modify
|
||||||
|
// $font-size-root: 20px;
|
||||||
|
|
||||||
|
$font-inter: 'Inter', sans-serif;
|
||||||
|
@use 'vuetify' with (
|
||||||
|
$body-font-family: $font-inter,
|
||||||
|
);
|
||||||
|
|
||||||
|
p a {
|
||||||
|
color: rgb(var(--v-theme-primary));
|
||||||
|
text-decoration: none;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 2px;
|
||||||
|
border-radius: 2px;
|
||||||
|
background-color: rgb(var(--v-theme-primary));
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
transform-origin: right;
|
||||||
|
transform: scaleX(0);
|
||||||
|
transition: transform .3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover::before {
|
||||||
|
transform-origin: left;
|
||||||
|
transform: scaleX(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.link {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: rgb(var(--v-theme-primary));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375601,false]</script></body></html>
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
<template>
|
||||||
|
<v-dialog v-model="show" class="d-flex align-center justify-center">
|
||||||
|
<v-carousel
|
||||||
|
:model-value="index"
|
||||||
|
:show-arrows="images.length > 1"
|
||||||
|
hide-delimiters
|
||||||
|
>
|
||||||
|
<v-carousel-item v-for="image of images" :key="image"
|
||||||
|
:src="image"
|
||||||
|
class="ma-auto"
|
||||||
|
></v-carousel-item>
|
||||||
|
</v-carousel>
|
||||||
|
</v-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'ImageCarousel',
|
||||||
|
data: () => ({
|
||||||
|
show: false,
|
||||||
|
images: [],
|
||||||
|
index: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<title>Apple</title>
|
||||||
|
<path d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"/>
|
||||||
|
</svg>
|
||||||
|
</template>
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<title>Heroku</title>
|
||||||
|
<path d="M20.61 0H3.39C2.189 0 1.23.96 1.23 2.16v19.681c0 1.198.959 2.159 2.16 2.159h17.22c1.2 0 2.159-.961 2.159-2.159V2.16C22.77.96 21.811 0 20.61 0zm.96 21.841c0 .539-.421.96-.96.96H3.39c-.54 0-.96-.421-.96-.96V2.16c0-.54.42-.961.96-.961h17.22c.539 0 .96.421.96.961v19.681zM6.63 20.399L9.33 18l-2.7-2.4v4.799zm9.72-9.719c-.479-.48-1.379-1.08-2.879-1.08-1.621 0-3.301.421-4.5.84V3.6h-2.4v10.38l1.68-.78s2.76-1.26 5.16-1.26c1.2 0 1.5.66 1.5 1.26v7.2h2.4v-7.2c.059-.179.059-1.501-.961-2.52zM13.17 7.5h2.4c1.08-1.26 1.62-2.521 1.8-3.9h-2.399c-.241 1.379-.841 2.64-1.801 3.9z"/>
|
||||||
|
</svg>
|
||||||
|
</template>
|
||||||
Executable
+28
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
# abort on errors
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# build
|
||||||
|
npx nuxi generate
|
||||||
|
|
||||||
|
# navigate into the build output directory
|
||||||
|
cd .output/public
|
||||||
|
touch .nojekyll
|
||||||
|
|
||||||
|
# if you are deploying to a custom domain
|
||||||
|
echo 'mave.dev' > CNAME
|
||||||
|
|
||||||
|
git init
|
||||||
|
git add -A
|
||||||
|
git config --local user.email "rakantor.dev@gmail.com"
|
||||||
|
git config --local user.name "Rakantor"
|
||||||
|
git commit -m 'deploy'
|
||||||
|
|
||||||
|
# if you are deploying to https://<USERNAME>.github.io
|
||||||
|
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git main
|
||||||
|
|
||||||
|
# if you are deploying to https://<USERNAME>.github.io/<REPO>
|
||||||
|
git push -f https://github.com/Rakantor/personal-portfolio.git master:gh-pages
|
||||||
|
|
||||||
|
cd -
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
export default defineI18nConfig(nuxt => ({
|
||||||
|
legacy: false,
|
||||||
|
locale: 'en',
|
||||||
|
messages: {
|
||||||
|
en: {
|
||||||
|
greeting: 'Hey. I\'m Manuel.',
|
||||||
|
iuGamerApp: `An Android app designed to help a group of board game enthusiasts\
|
||||||
|
better organize their regular evening game sessions.\
|
||||||
|
Users will be reliably informed about the time and location of the next appointment.\
|
||||||
|
They can suggest games, vote on suggested games, rate past appointments,\
|
||||||
|
and communicate with each other via an integrated chat feature.`,
|
||||||
|
iuQuizApp: 'An online quiz system that supports distance learning students at IU in solidifying their learning content in preparation for the exam. It enables students to cooperatively and collaboratively find answers to subject-related questions. The focus is particularly on working together and playing/learning together. Similar to the popular app Quizduel, students can, but do not have to, play against each other.',
|
||||||
|
personalWebsite: 'My first portfolio website.',
|
||||||
|
pmb: 'A 2D game inspired by the 2000s Pokémon games. Built from scratch! Features include animated battles (online multiplayer), overworld sprites, custom maps built with Tiled, game sound, 3 difficulty levels and so much more.',
|
||||||
|
toriiJava: 'A Japanese vocabulary learning tool that harnesses the power of spaced repetition to make memorizing new words a breeze.',
|
||||||
|
toriiWeb: `Version 2 of my Japanese vocabulary learning tool brings significant enhancements\
|
||||||
|
over its predecessor. New features include offline functionality (thanks to utilizing IndexedDB),\
|
||||||
|
an integrated dictionary for single-click word addition,\
|
||||||
|
additional review methods for learned words,\
|
||||||
|
a review forecast chart for planning study sessions,\
|
||||||
|
and improved word search and statistics for better user insights.`
|
||||||
|
},
|
||||||
|
de: {
|
||||||
|
greeting: 'Hey. Ich bin Manuel.',
|
||||||
|
iuGamerApp: `Eine Android App, die einer Gruppe von Brettspielfans dabei helfen soll,\
|
||||||
|
ihre regelmäßigen abendlichen Spieltermine besser zu organisieren.\
|
||||||
|
Benutzer werden zuverlässig über Zeit & Ort des nächsten Termins informiert.\
|
||||||
|
Sie können Spiele vorschlagen und über Vorschläge abstimmen, vergangene Termine bewerten\
|
||||||
|
und sich über einen integrierten Chat gegenseitig Nachrichten zukommen lassen.`,
|
||||||
|
iuQuizApp: 'Ein Online-Quizsystem, das Studierende des Fernstudiums der IU bei der Festigung der Lerninhalte zur Vorbereitung auf die Klausur unterstützt. Es ermöglicht Studierenden, kooperativ und kollaborativ Antworten zu fachlichen Fragen zu finden. Das miteinander bzw. das gemeinsame Spielen/Erarbeiten steht dabei besonders im Fokus. Ähnlich wie bei der populären App Quizduell kann, jedoch muss nicht gegeneinander gespielt werden.',
|
||||||
|
personalWebsite: 'Meine erste Portfolio-Website.',
|
||||||
|
pmb: 'A 2D game inspired by the 2000s Pokémon games. Built from scratch! Features animated battles (online multiplayer), overworld sprites, custom maps, sound, 3 difficulty levels and so much more.',
|
||||||
|
toriiJava: 'DEU',
|
||||||
|
toriiWeb: `Version 2 meiner Vokabeltrainer-App bringt bedeutende Verbesserungen\
|
||||||
|
gegenüber seinem Vorgänger. Neue Funktionen umfassen Offline-Funktionalität (dank der Nutzung von IndexedDB),\
|
||||||
|
ein integriertes Wörterbuch für das Hinzufügen neuer Wörter mit nur einem Klick,\
|
||||||
|
zusätzliche Überprüfungsmethoden für gelernte Vokabeln,\
|
||||||
|
ein Vorschau-Diagramm zur Planung von Lernsitzungen sowie\
|
||||||
|
verbesserte Wortsuche und Statistiken.`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}))
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { h } from 'vue'
|
||||||
|
import type { IconSet, IconProps } from 'vuetify'
|
||||||
|
import apple from '~/components/svg/apple.vue'
|
||||||
|
import heroku from '~/components/svg/heroku.vue'
|
||||||
|
|
||||||
|
const customSvgNameToComponent: any = {
|
||||||
|
apple,
|
||||||
|
heroku,
|
||||||
|
}
|
||||||
|
|
||||||
|
const brands: IconSet = {
|
||||||
|
component: (props: IconProps) => h(customSvgNameToComponent[props.icon], { class: 'v-icon__svg' }),
|
||||||
|
}
|
||||||
|
|
||||||
|
export { brands }
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375602,false]</script></body></html>
|
|
||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375603,false]</script></body></html>
|
|
||||||
@@ -0,0 +1,131 @@
|
|||||||
|
<template>
|
||||||
|
<v-app class="v-app-bg">
|
||||||
|
<v-navigation-drawer
|
||||||
|
:model-value="drawer"
|
||||||
|
location="right"
|
||||||
|
app
|
||||||
|
disable-resize-watcher
|
||||||
|
>
|
||||||
|
<v-list nav :lines="false">
|
||||||
|
<v-list-item
|
||||||
|
v-for="(page, i) in pages"
|
||||||
|
:key="i"
|
||||||
|
:to="page.url"
|
||||||
|
active-color="primary"
|
||||||
|
router
|
||||||
|
exact
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<v-icon :icon="page.icon"></v-icon>
|
||||||
|
</template>
|
||||||
|
<v-list-item-title v-text="page.title" />
|
||||||
|
</v-list-item>
|
||||||
|
</v-list>
|
||||||
|
<template #append>
|
||||||
|
<div class="pa-2">
|
||||||
|
<v-btn
|
||||||
|
block
|
||||||
|
outlined
|
||||||
|
color="primary"
|
||||||
|
prepend-icon="mdi-email-outline"
|
||||||
|
:href="`mailto:<${$myEmail}>`"
|
||||||
|
>
|
||||||
|
Contact
|
||||||
|
</v-btn>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</v-navigation-drawer>
|
||||||
|
<v-app-bar app color="background" class="px-md-10 py-md-4">
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<v-avatar
|
||||||
|
size="48"
|
||||||
|
color="surface"
|
||||||
|
style="cursor: pointer"
|
||||||
|
@click.native="$router.push('/')"
|
||||||
|
>
|
||||||
|
<img src="~/assets/avatar_transparent.png" width="55" />
|
||||||
|
</v-avatar>
|
||||||
|
</template>
|
||||||
|
<!-- v-app-bar-title class="text-subtitle-1" v-text="$myName" /-->
|
||||||
|
<v-spacer />
|
||||||
|
<v-app-bar-nav-icon
|
||||||
|
v-if="smAndDown"
|
||||||
|
@click.stop="drawer = !drawer"
|
||||||
|
/>
|
||||||
|
<v-btn-toggle v-else :model-value="0" mandatory variant="plain" selected-class="link-active">
|
||||||
|
<v-btn :ripple="false" to="/">Home</v-btn>
|
||||||
|
<v-btn :ripple="false" to="/bio">About</v-btn>
|
||||||
|
<v-btn :ripple="false" to="/portfolio">Work</v-btn>
|
||||||
|
<v-btn :ripple="false" :href="`mailto:<${$myEmail}>`">Contact</v-btn>
|
||||||
|
</v-btn-toggle>
|
||||||
|
</v-app-bar>
|
||||||
|
<v-main>
|
||||||
|
<v-container class="pa-md-16 my-16">
|
||||||
|
<slot />
|
||||||
|
</v-container>
|
||||||
|
</v-main>
|
||||||
|
<v-footer app absolute color="transparent">
|
||||||
|
<v-row justify="center" no-gutters>
|
||||||
|
<v-col cols="12" class="text-center">
|
||||||
|
<span class="text-caption">
|
||||||
|
© {{ new Date().getFullYear() }} {{ $myName }}
|
||||||
|
</span>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-footer>
|
||||||
|
</v-app>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { useDisplay } from 'vuetify'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'DefaultLayout',
|
||||||
|
setup () {
|
||||||
|
const { smAndDown } = useDisplay()
|
||||||
|
return { smAndDown }
|
||||||
|
},
|
||||||
|
data: () => ({
|
||||||
|
drawer: false,
|
||||||
|
pages: [
|
||||||
|
{
|
||||||
|
icon: 'mdi-home',
|
||||||
|
title: 'Home',
|
||||||
|
url: '/',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'mdi-text-account',
|
||||||
|
title: 'About',
|
||||||
|
url: '/bio',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'mdi-briefcase',
|
||||||
|
title: 'Work',
|
||||||
|
url: '/portfolio',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.v-app-bg {
|
||||||
|
background: rgb(var(--v-theme-background))
|
||||||
|
}
|
||||||
|
.link-active {
|
||||||
|
color: rgb(var(--v-theme-primary)) !important;
|
||||||
|
}
|
||||||
|
.v-btn--variant-plain {
|
||||||
|
color: rgb(var(--v-theme-on-background));
|
||||||
|
transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
opacity: 1;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: rgb(var(--v-theme-primary));
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
color: rgb(var(--v-theme-primary));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
<template>
|
||||||
|
<v-app dark>
|
||||||
|
<h1 v-if="error.statusCode === 404">
|
||||||
|
{{ pageNotFound }}
|
||||||
|
</h1>
|
||||||
|
<h1 v-else>
|
||||||
|
{{ otherError }}
|
||||||
|
</h1>
|
||||||
|
<NuxtLink to="/"> Home page </NuxtLink>
|
||||||
|
</v-app>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'EmptyLayout',
|
||||||
|
layout: 'empty',
|
||||||
|
props: {
|
||||||
|
error: {
|
||||||
|
type: Object,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageNotFound: '404 Not Found',
|
||||||
|
otherError: 'An error occurred',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
head() {
|
||||||
|
const title =
|
||||||
|
this.error.statusCode === 404 ? this.pageNotFound : this.otherError
|
||||||
|
return {
|
||||||
|
title,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
h1 {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
+105
@@ -0,0 +1,105 @@
|
|||||||
|
import vuetify from 'vite-plugin-vuetify'
|
||||||
|
|
||||||
|
// https://v3.nuxtjs.org/api/configuration/nuxt.config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
ssr: false,
|
||||||
|
|
||||||
|
css: [
|
||||||
|
'vuetify/styles',
|
||||||
|
'~/assets/variables.scss'
|
||||||
|
],
|
||||||
|
|
||||||
|
vite: {
|
||||||
|
ssr: {
|
||||||
|
noExternal: ['vuetify'] // add the vuetify vite plugin
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
build: {
|
||||||
|
transpile: ['vuetify']
|
||||||
|
},
|
||||||
|
|
||||||
|
app: {
|
||||||
|
head: {
|
||||||
|
// titleTemplate: '%s | Home',
|
||||||
|
title: 'Manuel Veigel',
|
||||||
|
htmlAttrs: {
|
||||||
|
lang: 'en',
|
||||||
|
},
|
||||||
|
meta: [
|
||||||
|
{ charset: 'utf-8' },
|
||||||
|
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
||||||
|
{ hid: 'description', name: 'description', content: '' },
|
||||||
|
{ name: 'format-detection', content: 'telephone=no' },
|
||||||
|
],
|
||||||
|
link: [
|
||||||
|
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
|
||||||
|
{ rel: 'preconnect', href: 'https://fonts.googleapis.com' },
|
||||||
|
{ rel: 'preconnect', href: 'https://fonts.gstatic.com' },
|
||||||
|
{ rel: 'stylesheet', href: 'https://fonts.googleapis.com/css2?family=Inter&display=swap' }
|
||||||
|
],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
|
||||||
|
plugins: [],
|
||||||
|
|
||||||
|
// Modules: https://go.nuxtjs.dev/config-modules
|
||||||
|
modules: [
|
||||||
|
[
|
||||||
|
'@nuxtjs/i18n',
|
||||||
|
// { vueI18n: './i18n.config.ts' }
|
||||||
|
// TODO: Revert to config file once the bug in 8.0.0-beta.11 has been fixed
|
||||||
|
// https://github.com/nuxt-modules/i18n/issues/1990
|
||||||
|
{ vueI18n: {
|
||||||
|
legacy: false,
|
||||||
|
locale: 'en',
|
||||||
|
messages: {
|
||||||
|
en: {
|
||||||
|
greeting: 'Hey. I\'m Manuel.',
|
||||||
|
iuGamerApp: `An Android app designed to help a group of board game enthusiasts\
|
||||||
|
better organize their regular evening game sessions.\
|
||||||
|
Users will be reliably informed about the time and location of the next appointment.\
|
||||||
|
They can suggest games, vote on suggested games, rate past appointments,\
|
||||||
|
and communicate with each other via an integrated chat feature.`,
|
||||||
|
iuQuizApp: 'An online quiz system that supports distance learning students at IU in solidifying their learning content in preparation for the exam. It enables students to cooperatively and collaboratively find answers to subject-related questions. The focus is particularly on working together and playing/learning together. Similar to the popular app Quizduel, students can, but do not have to, play against each other.',
|
||||||
|
personalWebsite: 'My first portfolio website.',
|
||||||
|
pmb: 'A 2D game inspired by the 2000s Pokémon games. Built from scratch! Features include animated battles (online multiplayer), overworld sprites, custom maps built with Tiled, game sound, 3 difficulty levels and so much more.',
|
||||||
|
toriiJava: 'A Japanese vocabulary learning tool that harnesses the power of spaced repetition to make memorizing new words a breeze.',
|
||||||
|
toriiWeb: `Version 2 of my Japanese vocabulary learning tool brings significant enhancements\
|
||||||
|
over its predecessor. New features include offline functionality (thanks to utilizing IndexedDB),\
|
||||||
|
an integrated dictionary for single-click word addition,\
|
||||||
|
additional review methods for learned words,\
|
||||||
|
a review forecast chart for planning study sessions,\
|
||||||
|
and improved word search and statistics for better user insights.`
|
||||||
|
},
|
||||||
|
de: {
|
||||||
|
greeting: 'Hey. Ich bin Manuel.',
|
||||||
|
iuGamerApp: `Eine Android App, die einer Gruppe von Brettspielfans dabei helfen soll,\
|
||||||
|
ihre regelmäßigen abendlichen Spieltermine besser zu organisieren.\
|
||||||
|
Benutzer werden zuverlässig über Zeit & Ort des nächsten Termins informiert.\
|
||||||
|
Sie können Spiele vorschlagen und über Vorschläge abstimmen, vergangene Termine bewerten\
|
||||||
|
und sich über einen integrierten Chat gegenseitig Nachrichten zukommen lassen.`,
|
||||||
|
iuQuizApp: 'Ein Online-Quizsystem, das Studierende des Fernstudiums der IU bei der Festigung der Lerninhalte zur Vorbereitung auf die Klausur unterstützt. Es ermöglicht Studierenden, kooperativ und kollaborativ Antworten zu fachlichen Fragen zu finden. Das miteinander bzw. das gemeinsame Spielen/Erarbeiten steht dabei besonders im Fokus. Ähnlich wie bei der populären App Quizduell kann, jedoch muss nicht gegeneinander gespielt werden.',
|
||||||
|
personalWebsite: 'Meine erste Portfolio-Website.',
|
||||||
|
pmb: 'A 2D game inspired by the 2000s Pokémon games. Built from scratch! Features animated battles (online multiplayer), overworld sprites, custom maps, sound, 3 difficulty levels and so much more.',
|
||||||
|
toriiJava: 'DEU',
|
||||||
|
toriiWeb: `Version 2 meiner Vokabeltrainer-App bringt bedeutende Verbesserungen\
|
||||||
|
gegenüber seinem Vorgänger. Neue Funktionen umfassen Offline-Funktionalität (dank der Nutzung von IndexedDB),\
|
||||||
|
ein integriertes Wörterbuch für das Hinzufügen neuer Wörter mit nur einem Klick,\
|
||||||
|
zusätzliche Überprüfungsmethoden für gelernte Vokabeln,\
|
||||||
|
ein Vorschau-Diagramm zur Planung von Lernsitzungen sowie\
|
||||||
|
verbesserte Wortsuche und Statistiken.`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} }
|
||||||
|
],
|
||||||
|
// https://go.nuxtjs.dev/axios
|
||||||
|
// ['@nuxtjs/axios', { proxyHeaders: false }],
|
||||||
|
// this adds the vuetify vite plugin
|
||||||
|
// also produces type errors in the current beta release
|
||||||
|
async (options, nuxt) => {
|
||||||
|
nuxt.hooks.hook('vite:extendConfig', config => config.plugins.push(vuetify()))
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
Generated
+9065
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "personal-portfolio",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"build": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@mdi/font": "^7.0.96",
|
||||||
|
"@nuxtjs/i18n": "8.0.0-beta.10",
|
||||||
|
"nuxt": "^3.4.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@nuxtjs/axios": "^5.13.6",
|
||||||
|
"badgen": "^3.2.2",
|
||||||
|
"lodash-es": "^4.17.21",
|
||||||
|
"sass": "^1.56.0",
|
||||||
|
"simple-icons": "^8.11.0",
|
||||||
|
"vite-plugin-vuetify": "^1.0.0",
|
||||||
|
"vuetify": "^3.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
+142
@@ -0,0 +1,142 @@
|
|||||||
|
<template>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12">
|
||||||
|
<span class="text-h4 text-high-emphasis">My Journey as a Developer</span>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12">
|
||||||
|
<v-sheet color="transparent" class="text-medium-emphasis">
|
||||||
|
<p>
|
||||||
|
My interest in programming was sparked in 2007 when I began tinkering with SQL
|
||||||
|
in an attempt to setup a private server for my favorite
|
||||||
|
<a :href="mmorpgWikiUrl" target="_blank">MMORPG</a>
|
||||||
|
(it was a success!)
|
||||||
|
Eager to dive deeper into the world of coding, I attended a
|
||||||
|
<a :href="htlWikiUrl" target="_blank">HTL</a>
|
||||||
|
specializing in IT in 2009, where I learned C, Java, HTML and CSS.
|
||||||
|
Some years later, I pursued a degree in
|
||||||
|
<a :href="biWikiUrl" target="_blank">BI</a>
|
||||||
|
with a specialization in Web and App development.
|
||||||
|
</p>
|
||||||
|
<br/>
|
||||||
|
<p>
|
||||||
|
Here's some of the tech that I've used and worked with before:
|
||||||
|
</p>
|
||||||
|
</v-sheet>
|
||||||
|
</v-col>
|
||||||
|
<v-col v-for="set, ind in sets" :key="ind" cols="12">
|
||||||
|
<v-card>
|
||||||
|
<v-card-item>
|
||||||
|
<v-card-title>{{ set.title }}</v-card-title>
|
||||||
|
</v-card-item>
|
||||||
|
<v-card-text class="text-center">
|
||||||
|
<v-row>
|
||||||
|
<v-col v-for="(v, i) in set.data" :key="i" cols="12">
|
||||||
|
<v-tooltip v-for="(value, index) in v" :key="index" location="bottom" :text="value.title">
|
||||||
|
<template #activator="{ props }">
|
||||||
|
<v-btn
|
||||||
|
variant="text"
|
||||||
|
:icon="value.icon"
|
||||||
|
:size="getButtonSize(value.level)"
|
||||||
|
color="primary"
|
||||||
|
class="mx-1"
|
||||||
|
:href="`https://${value.url}`"
|
||||||
|
target="_blank"
|
||||||
|
v-bind="props"
|
||||||
|
>
|
||||||
|
<v-icon :icon="value.icon" :size="getButtonSize(value.level) - 10"></v-icon>
|
||||||
|
</v-btn>
|
||||||
|
</template>
|
||||||
|
</v-tooltip>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
</v-card>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import _groupBy from 'lodash-es/groupBy'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'BioPage',
|
||||||
|
data: () => ({
|
||||||
|
mmorpgWikiUrl: 'https://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game',
|
||||||
|
htlWikiUrl: 'https://en.wikipedia.org/wiki/H%C3%B6here_Technische_Lehranstalt',
|
||||||
|
biWikiUrl: 'https://en.wikipedia.org/wiki/Business_informatics',
|
||||||
|
languages: [
|
||||||
|
{ title: 'Java', icon: 'mdi-language-java', url: 'java.com', level: 3 },
|
||||||
|
{ title: 'C/C++', icon: 'mdi-language-cpp', url: 'isocpp.org', level: 1 },
|
||||||
|
{ title: 'Python', icon: 'mdi-language-python', url: 'python.org', level: 1 },
|
||||||
|
{ title: 'JavaScript (ES6+)', icon: 'mdi-language-javascript', url: 'javascript.com', level: 3 },
|
||||||
|
{ title: 'TypeScript', icon: 'mdi-language-typescript', url: 'typescriptlang.org/', level: 1 },
|
||||||
|
{ title: 'HTML', icon: 'mdi-language-html5', url: 'html.spec.whatwg.org/multipage', level: 2 },
|
||||||
|
{ title: 'CSS', icon: 'mdi-language-css3', url: 'w3.org/Style/CSS', level: 2 },
|
||||||
|
{ title: 'PHP', icon: 'mdi-language-php', url: 'php.net', level: 2 },
|
||||||
|
{ title: 'SQL', icon: 'mdi-database', url: 'iso.org/standard/63555.html', level: 2 },
|
||||||
|
{ title: 'Lua', icon: 'mdi-language-lua', url: 'lua.org', level: 2 }
|
||||||
|
],
|
||||||
|
frameworks: [
|
||||||
|
{ title: 'Android', icon: 'mdi-android', url: 'android.com', level: 2 },
|
||||||
|
{ title: 'Vue.js', icon: 'mdi-vuejs', url: 'vuejs.org', level: 3 },
|
||||||
|
{ title: 'Nuxt.js', icon: 'mdi-nuxt', url: 'nuxt.com', level: 3 },
|
||||||
|
{ title: 'Vuetify.js', icon: 'mdi-vuetify', url: 'vuetifyjs.com', level: 3 },
|
||||||
|
{ title: 'BootstrapVue', icon: 'mdi-bootstrap', url: 'bootstrap-vue.org', level: 1 },
|
||||||
|
{ title: 'libGDX', icon: 'mdi-alpha-l-box-outline', url: 'libgdx.com', level: 1 }
|
||||||
|
],
|
||||||
|
tech: [
|
||||||
|
{ title: 'Amazon Web Services', icon: 'mdi-aws', url: 'aws.amazon.com', level: 3 },
|
||||||
|
{ title: 'Google Firebase', icon: 'mdi-firebase', url: 'firebase.google.com', level: 3 },
|
||||||
|
{ title: 'Microsoft Azure', icon: 'mdi-microsoft-azure', url: 'azure.microsoft.com', level: 1 },
|
||||||
|
{ title: 'Heroku', icon: 'brands:heroku', url: 'heroku.com', level: 1 },
|
||||||
|
{ title: 'WordPress', icon: 'mdi-wordpress', url: 'wordpress.com', level: 1 },
|
||||||
|
{ title: 'Unity', icon: 'mdi-unity', url: 'unity.com', level: 1 },
|
||||||
|
{ title: 'Unreal Engine', icon: 'mdi-unreal', url: 'unrealengine.com', level: 1 }
|
||||||
|
],
|
||||||
|
os: [
|
||||||
|
{ title: 'Microsoft Windows', icon: 'mdi-microsoft-windows', url: 'microsoft.com/windows', level: 3 },
|
||||||
|
{ title: 'Apple macOS', icon: 'brands:apple', url: 'apple.com/macos', level: 3 },
|
||||||
|
{ title: 'Linux Mint', icon: 'mdi-linux-mint', url: 'linuxmint.com', level: 3 },
|
||||||
|
{ title: 'Fedora Workstation', icon: 'mdi-fedora', url: 'getfedora.org', level: 3 },
|
||||||
|
{ title: 'Arch Linux', icon: 'mdi-arch', url: 'archlinux.org', level: 1 },
|
||||||
|
{ title: 'Ubuntu', icon: 'mdi-ubuntu', url: 'ubuntu.com', level: 1 },
|
||||||
|
{ title: 'Apple iOS', icon: 'mdi-apple-ios', url: 'apple.com/ios', level: 1 },
|
||||||
|
{ title: 'Android', icon: 'mdi-android', url: 'android.com', level: 1 },
|
||||||
|
]
|
||||||
|
}),
|
||||||
|
computed: {
|
||||||
|
sets () {
|
||||||
|
const languages = _groupBy([...this.languages, ...this.frameworks], e => e.level)
|
||||||
|
// const frameworks = _groupBy(this.frameworks, e => e.level)
|
||||||
|
const tech = _groupBy(this.tech, e => e.level)
|
||||||
|
const os = _groupBy(this.os, e => e.level)
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
title: "Languages & Frameworks",
|
||||||
|
data: Object.keys(languages).sort().reverse().map(e => languages[e])
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Tools & Platforms",
|
||||||
|
data: Object.keys(tech).sort().reverse().map(e => tech[e])
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Operating Systems",
|
||||||
|
data: Object.keys(os).sort().reverse().map(e => os[e])
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
skills () {
|
||||||
|
return [...this.languages, ...this.frameworks, ...this.tech, ...this.os]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
getButtonSize (level) {
|
||||||
|
switch (level) {
|
||||||
|
case 1: return 48
|
||||||
|
case 2: return 64
|
||||||
|
default: return 96
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<template>
|
||||||
|
<v-row justify="center">
|
||||||
|
<v-col cols="12">
|
||||||
|
<span class="text-h4 text-md-h3 text-lg-h2 text-high-emphasis">
|
||||||
|
{{ $t('greeting') }}
|
||||||
|
</span>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12" class="my-6">
|
||||||
|
<p class="text-body-1 text-md-h6 text-medium-emphasis" style="max-width: 550px;">
|
||||||
|
I'm a Software Developer based in Vienna, Austria.<br/>
|
||||||
|
I develop various types of applications.
|
||||||
|
Explore my <NuxtLink to="/portfolio">portfolio</NuxtLink> to view a showcase of my projects.
|
||||||
|
</p>
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="12">
|
||||||
|
<v-btn
|
||||||
|
variant="outlined"
|
||||||
|
color="primary"
|
||||||
|
prepend-icon="mdi-email-outline"
|
||||||
|
:href="`mailto:<${$myEmail}>`"
|
||||||
|
>
|
||||||
|
Get in touch
|
||||||
|
</v-btn>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'IndexPage'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,271 @@
|
|||||||
|
<template>
|
||||||
|
<ImageCarousel ref="imageCarousel" />
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12">
|
||||||
|
<span class="text-h5 font-weight-medium">Some of my projects</span>
|
||||||
|
</v-col>
|
||||||
|
<v-col v-for="(project, index) of projects" :key="index" cols="12" lg="4" md="6">
|
||||||
|
<v-card height="100%" class="d-flex flex-column">
|
||||||
|
<v-carousel
|
||||||
|
v-model="carouselIndex[index]"
|
||||||
|
:show-arrows="project.images.length > 1 ? 'hover' : false"
|
||||||
|
:hide-delimiters="project.images.length <= 1"
|
||||||
|
hide-delimiter-background
|
||||||
|
height="auto"
|
||||||
|
>
|
||||||
|
<v-carousel-item v-for="image of project.images" :key="image"
|
||||||
|
:src="`${cdn}${image}`"
|
||||||
|
@click="showImageCarousel(project.images, carouselIndex[index])"
|
||||||
|
></v-carousel-item>
|
||||||
|
</v-carousel>
|
||||||
|
<v-card-item>
|
||||||
|
<v-card-title class="d-flex">
|
||||||
|
<span>{{ project.title }}</span>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn
|
||||||
|
v-if="project.repoUrl"
|
||||||
|
variant="text"
|
||||||
|
icon="mdi-github"
|
||||||
|
density="comfortable"
|
||||||
|
color="on-surface"
|
||||||
|
:href="`https://${project.repoUrl}`"
|
||||||
|
target="_blank"
|
||||||
|
class="link"
|
||||||
|
/>
|
||||||
|
<v-btn
|
||||||
|
v-if="project.projectUrl"
|
||||||
|
variant="text"
|
||||||
|
icon="mdi-open-in-new"
|
||||||
|
density="comfortable"
|
||||||
|
color="on-surface"
|
||||||
|
:href="`https://${project.projectUrl}`"
|
||||||
|
target="_blank"
|
||||||
|
class="link"
|
||||||
|
/>
|
||||||
|
</v-card-title>
|
||||||
|
<v-card-subtitle>{{ project.subtitle }}</v-card-subtitle>
|
||||||
|
</v-card-item>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-card-text>{{ $t(project.description) }}</v-card-text>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-card-actions class="d-flex flex-row flex-wrap justify-center align-center">
|
||||||
|
<img v-for="t of project.tech" :key="tech[t].title"
|
||||||
|
:src="generateBadgen(tech[t].title, tech[t].iconUrl)"
|
||||||
|
:height="20"
|
||||||
|
class="ma-1"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- colored badges
|
||||||
|
<img v-for="t of project.tech" :key="tech[t].title"
|
||||||
|
:src="`https://badgen.net/badge/icon/${tech[t].title}?icon=${tech[t].iconUrl}${tech[t].color}&label`"
|
||||||
|
:height="20"
|
||||||
|
class="ma-1"
|
||||||
|
/>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- colored badges w/ links to brand websites
|
||||||
|
<a v-for="t of project.tech" :key="tech[t].title"
|
||||||
|
:href="`https://${tech[t].projectUrl}`"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<img v-for="t of project.tech" :key="tech[t].title"
|
||||||
|
:src="`https://badgen.net/badge/icon/${tech[t].title}?icon=${tech[t].iconUrl}${tech[t].color}&label`"
|
||||||
|
:height="20"
|
||||||
|
class="ma-1"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
-->
|
||||||
|
|
||||||
|
</v-card-actions>
|
||||||
|
</v-card>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { badgen } from 'badgen'
|
||||||
|
import { siAndroid, siAmazonaws, siMicrosoftazure, siFirebase, siGithub,
|
||||||
|
siHeroku, siCoffeescript, siYoutubegaming, siMysql, siNuxtdotjs, siPhp,
|
||||||
|
siVuedotjs, siVuetify, siIbmwatson, siWordpress } from 'simple-icons'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'PortfolioComponent',
|
||||||
|
data: () => ({
|
||||||
|
cdn: 'https://d29l6egdxvgg9c.cloudfront.net/',
|
||||||
|
projects: [
|
||||||
|
{
|
||||||
|
title: 'Torii SRS (v2-beta)',
|
||||||
|
subtitle: 'Progressive Web App',
|
||||||
|
description: 'toriiWeb',
|
||||||
|
tech: ['vue2', 'vuetify2', 'mysql', 'php', 'aws', 'azure', 'watson', 'heroku'],
|
||||||
|
projectUrl: 'beta.torii-srs.com',
|
||||||
|
images: [
|
||||||
|
'torii-v2-01.jpg', 'torii-v2-03.jpg', 'torii-v2-04.jpg',
|
||||||
|
'torii-v2-05.jpg', 'torii-v2-06.jpg', 'torii-v2-07.jpg',
|
||||||
|
'torii-v2-08.jpg', 'torii-v2-09.jpg', 'torii-v2-10.jpg'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Torii SRS (v1)',
|
||||||
|
subtitle: 'Cross-platform app',
|
||||||
|
description: 'toriiJava',
|
||||||
|
tech: ['java', 'libgdx', 'mysql', 'php', 'aws', 'wordpress'],
|
||||||
|
projectUrl: 'torii-srs.com',
|
||||||
|
images: [
|
||||||
|
'torii-v1-1.jpg', 'torii-v1-2.png', 'torii-v1-3.png',
|
||||||
|
'torii-v1-4.png', 'torii-v1-5.png', 'torii-v1-6.png'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'IU Quiz App',
|
||||||
|
subtitle: 'Web App',
|
||||||
|
description: 'iuQuizApp',
|
||||||
|
tech: ['nuxt2', 'vuetify2', 'firebase'],
|
||||||
|
repoUrl: 'github.com/Rakantor/iu-quiz-app',
|
||||||
|
projectUrl: 'iu-quiz-app.web.app',
|
||||||
|
images: ['iu-quiz-app-2.jpg']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Menacing Blue',
|
||||||
|
subtitle: 'Cross-platform app',
|
||||||
|
description: 'pmb',
|
||||||
|
tech: ['java', 'libgdx'],
|
||||||
|
images: ['pmb-6.png', 'pmb-1.png', 'pmb-2.png', 'pmb-3.png', 'pmb-4.png', 'pmb-5.png', 'pmb-7.jpg']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Personal Website',
|
||||||
|
subtitle: 'Web App',
|
||||||
|
description: 'personalWebsite',
|
||||||
|
tech: ['nuxt3', 'vuetify3', 'ghpages'],
|
||||||
|
repoUrl: 'github.com/Rakantor/personal-portfolio',
|
||||||
|
projectUrl: 'mave.dev',
|
||||||
|
images: ['personal-website-1.jpg']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'IU Gamer App',
|
||||||
|
subtitle: 'Android app',
|
||||||
|
description: 'iuGamerApp',
|
||||||
|
tech: ['android', 'firebase'],
|
||||||
|
repoUrl: 'github.com/Rakantor/iubh-gamer-app',
|
||||||
|
images: []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
tech: {
|
||||||
|
android: {
|
||||||
|
title: 'Android',
|
||||||
|
color: '3DDC84',
|
||||||
|
iconUrl: siAndroid,
|
||||||
|
},
|
||||||
|
aws: {
|
||||||
|
title: 'AWS',
|
||||||
|
color: '232F3E',
|
||||||
|
iconUrl: siAmazonaws,
|
||||||
|
},
|
||||||
|
azure: {
|
||||||
|
title: 'Azure',
|
||||||
|
color: '0078D4',
|
||||||
|
iconUrl: siMicrosoftazure,
|
||||||
|
},
|
||||||
|
firebase: {
|
||||||
|
title: 'Firebase',
|
||||||
|
color: 'FFCA28',
|
||||||
|
iconUrl: siFirebase,
|
||||||
|
},
|
||||||
|
ghpages: {
|
||||||
|
title: 'GH Pages',
|
||||||
|
color: '222222',
|
||||||
|
iconUrl: siGithub,
|
||||||
|
},
|
||||||
|
heroku: {
|
||||||
|
title: 'Heroku',
|
||||||
|
color: '430098',
|
||||||
|
iconUrl: siHeroku,
|
||||||
|
},
|
||||||
|
java: {
|
||||||
|
title: 'Java',
|
||||||
|
color: 'FF7800',
|
||||||
|
iconUrl: siCoffeescript,
|
||||||
|
},
|
||||||
|
libgdx: {
|
||||||
|
title: 'libGDX',
|
||||||
|
color: '990000',
|
||||||
|
iconUrl: siYoutubegaming,
|
||||||
|
},
|
||||||
|
mysql: {
|
||||||
|
title: 'MySQL',
|
||||||
|
color: '4479A1',
|
||||||
|
iconUrl: siMysql,
|
||||||
|
},
|
||||||
|
nuxt2: {
|
||||||
|
title: 'Nuxt 2',
|
||||||
|
color: '00DC82',
|
||||||
|
iconUrl: siNuxtdotjs,
|
||||||
|
},
|
||||||
|
nuxt3: {
|
||||||
|
title: 'Nuxt 3',
|
||||||
|
color: '00DC82',
|
||||||
|
iconUrl: siNuxtdotjs,
|
||||||
|
},
|
||||||
|
php: {
|
||||||
|
title: 'PHP',
|
||||||
|
color: '777BB4',
|
||||||
|
iconUrl: siPhp,
|
||||||
|
},
|
||||||
|
vue2: {
|
||||||
|
title: 'Vue 2',
|
||||||
|
color: '4FC08D',
|
||||||
|
iconUrl: siVuedotjs,
|
||||||
|
},
|
||||||
|
vuetify2: {
|
||||||
|
title: 'Vuetify 2',
|
||||||
|
color: '1867C0',
|
||||||
|
iconUrl: siVuetify,
|
||||||
|
},
|
||||||
|
vuetify3: {
|
||||||
|
title: 'Vuetify 3',
|
||||||
|
color: '1867C0',
|
||||||
|
iconUrl: siVuetify,
|
||||||
|
},
|
||||||
|
watson: {
|
||||||
|
title: 'Watson',
|
||||||
|
color: 'BE95FF',
|
||||||
|
iconUrl: siIbmwatson,
|
||||||
|
},
|
||||||
|
wordpress: {
|
||||||
|
title: 'WordPress',
|
||||||
|
color: '21759B',
|
||||||
|
iconUrl: siWordpress,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
carouselIndex: []
|
||||||
|
}),
|
||||||
|
methods: {
|
||||||
|
generateBadgen (label, iconUrl) {
|
||||||
|
// const iconColor = iconUrl.hex
|
||||||
|
const iconColor = 'FFFFFF'
|
||||||
|
const iconSvg = iconUrl.svg.replace('<path ', `<path fill="#${iconColor}" `)
|
||||||
|
const svg = badgen({
|
||||||
|
label: '',
|
||||||
|
status: label,
|
||||||
|
// color: iconColor,
|
||||||
|
color: this.$vuetify.theme.current.colors.backgroundTertiary.slice(1),
|
||||||
|
style: 'classic',
|
||||||
|
icon: `data:image/svg+xml;utf8,${encodeURIComponent(iconSvg)}`
|
||||||
|
})
|
||||||
|
|
||||||
|
return `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`
|
||||||
|
},
|
||||||
|
showImageCarousel (images, carouselIndex) {
|
||||||
|
this.$refs.imageCarousel.images = images.map(i => this.cdn+i)
|
||||||
|
this.$refs.imageCarousel.index = carouselIndex
|
||||||
|
this.$refs.imageCarousel.show = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
path {
|
||||||
|
fill: #fff !IMPORTANT;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
import { createVuetify, ThemeDefinition } from 'vuetify'
|
||||||
|
import * as components from 'vuetify/components'
|
||||||
|
import * as directives from 'vuetify/directives'
|
||||||
|
import { md3 } from 'vuetify/blueprints'
|
||||||
|
import '@mdi/font/css/materialdesignicons.css'
|
||||||
|
import { mdi } from 'vuetify/iconsets/mdi'
|
||||||
|
import { brands } from '~/iconsets/brands'
|
||||||
|
// @ts-expect-error Missing type definitions
|
||||||
|
import colors from 'vuetify/lib/util/colors'
|
||||||
|
|
||||||
|
const myCustomDarkTheme: ThemeDefinition = {
|
||||||
|
dark: true,
|
||||||
|
colors: {
|
||||||
|
background: '#0A192F',
|
||||||
|
surface: '#112240',
|
||||||
|
backgroundTertiary: '#134074',
|
||||||
|
primary: '#00DC82',
|
||||||
|
// primary: '#64FFDA',
|
||||||
|
secondary: '#8892B0',
|
||||||
|
"on-background": '#CCD6F6',
|
||||||
|
"on-surface": '#CCD6F6',
|
||||||
|
},
|
||||||
|
variables: {
|
||||||
|
'border-color': '#FFFFFF',
|
||||||
|
'border-opacity': 0.12,
|
||||||
|
'high-emphasis-opacity': 1, // default: 0.87
|
||||||
|
'medium-emphasis-opacity': 0.7, // default: 0.60
|
||||||
|
'disabled-opacity': 0.38,
|
||||||
|
'idle-opacity': 0.10,
|
||||||
|
'hover-opacity': 0.04,
|
||||||
|
'focus-opacity': 0.12,
|
||||||
|
'selected-opacity': 0.08,
|
||||||
|
'activated-opacity': 0.12,
|
||||||
|
'pressed-opacity': 0.16,
|
||||||
|
'dragged-opacity': 0.08,
|
||||||
|
'theme-kbd': '#212529',
|
||||||
|
'theme-on-kbd': '#FFFFFF',
|
||||||
|
'theme-code': '#343434',
|
||||||
|
'theme-on-code': '#CCCCCC',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default defineNuxtPlugin(nuxtApp => {
|
||||||
|
const vuetify = createVuetify({
|
||||||
|
components,
|
||||||
|
directives,
|
||||||
|
blueprint: md3,
|
||||||
|
defaults: {
|
||||||
|
VCard: {
|
||||||
|
elevation: 0
|
||||||
|
},
|
||||||
|
},
|
||||||
|
theme: {
|
||||||
|
// customVariables: ['~/assets/variables.scss'],
|
||||||
|
defaultTheme: 'myCustomDarkTheme',
|
||||||
|
themes: {
|
||||||
|
myCustomDarkTheme,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
icons: {
|
||||||
|
defaultSet: 'mdi',
|
||||||
|
sets: {
|
||||||
|
mdi,
|
||||||
|
brands
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
nuxtApp.vueApp.use(vuetify)
|
||||||
|
|
||||||
|
// Define global variables
|
||||||
|
nuxtApp.provide('myName', 'Manuel Veigel')
|
||||||
|
nuxtApp.provide('myEmail', 'maveigel@gmail.com')
|
||||||
|
})
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Manuel Veigel</title>
|
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
|
|
||||||
<link rel="stylesheet" href="/_nuxt/entry.BG44tMHF.css" crossorigin>
|
|
||||||
<link rel="modulepreload" as="script" crossorigin href="/_nuxt/Dhg5knF6.js">
|
|
||||||
<script type="module" src="/_nuxt/Dhg5knF6.js" crossorigin></script>
|
|
||||||
<meta name="format-detection" content="telephone=no">
|
|
||||||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
|
||||||
<script id="unhead:payload" type="application/json">{"title":"Manuel Veigel"}</script></head><body><div id="__nuxt"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{cdn:"d29l6egdxvgg9c.cloudfront.net/",myName:"Manuel Veigel",myEmail:"maveigel@gmail.com",i18n:{baseUrl:"",defaultLocale:"",defaultDirection:"ltr",strategy:"prefix_except_default",lazy:false,rootRedirect:"",routesNameSeparator:"___",defaultLocaleRouteNameSuffix:"default",skipSettingLocaleOnNavigate:false,differentDomains:false,trailingSlash:false,locales:[],detectBrowserLanguage:{alwaysRedirect:false,cookieCrossOrigin:false,cookieDomain:"",cookieKey:"i18n_redirected",cookieSecure:false,fallbackLocale:"",redirectOn:"root",useCookie:true},experimental:{localeDetector:"",switchLocalePathLinkSSR:false,autoImportTranslationFunctions:false,typedPages:true,typedOptionsAndMessages:false,generatedLocaleFilePathFormat:"absolute",alternateLinkCanonicalQueries:false,hmr:true},multiDomainLocales:false,domainLocales:{}}},app:{baseURL:"/",buildId:"59de4f49-4f4c-4256-a61d-535d6efee325",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script>
|
|
||||||
<script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1775577375602,false]</script></body></html>
|
|
||||||
File renamed without changes.
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
// https://v3.nuxtjs.org/concepts/typescript
|
||||||
|
"extends": "./.nuxt/tsconfig.json"
|
||||||
|
}
|
||||||
Reference in new issue
Block a user