1
0
mirror of https://github.com/kihashi/stardew_community_checklist.git synced 2025-10-19 08:03:17 +00:00

Update to Vue3 and add prettier

This commit is contained in:
lachie-underhill 2023-06-02 08:42:20 +10:00
parent edeb486a8d
commit b791c536b8
No known key found for this signature in database
GPG Key ID: 48057E0D2C37AC20
35 changed files with 719 additions and 566 deletions

8
.prettierrc.json Normal file
View File

@ -0,0 +1,8 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"tabWidth": 2,
"singleQuote": true,
"printWidth": 100,
"trailingComma": "none"
}

View File

@ -1,13 +1,13 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0"> <meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="shortcut icon" type="image/png" href="/static/favicon.png" /> <link rel="shortcut icon" type="image/png" href="/static/favicon.png" />
<title>Stardew Community Checklist</title> <title>Stardew Community Checklist</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
<!-- built files will be auto injected --> <script type="module" src="/src/main.js"></script>
</body> </body>
</html> </html>

View File

@ -10,18 +10,18 @@
"lint": "eslint . --ext .js,.vue" "lint": "eslint . --ext .js,.vue"
}, },
"dependencies": { "dependencies": {
"@fortawesome/fontawesome": "^1.1.4", "@fortawesome/fontawesome-free-brands": "^5.0.13",
"@fortawesome/fontawesome-free-brands": "^5.0.7", "@fortawesome/fontawesome-free-regular": "^5.0.13",
"@fortawesome/fontawesome-free-regular": "^5.0.7", "@fortawesome/fontawesome-free-solid": "^5.0.13",
"@fortawesome/fontawesome-free-solid": "^5.0.7", "@fortawesome/fontawesome-svg-core": "^6.4.0",
"@fortawesome/vue-fontawesome": "^0.0.22", "@fortawesome/vue-fontawesome": "^3.0.3",
"bulma": "^0.6.2", "bulma": "^0.9.4",
"lodash": "^4.17.19", "lodash": "^4.17.19",
"mdi-vue": "^0.2.11", "mdi-vue": "^0.2.11",
"sass": "^1.62.1", "sass": "^1.62.1",
"vue": "^2.5.2", "vue": "^3.3.4",
"vue-clipboard2": "^0.3.0", "vue-clipboard2": "^0.3.0",
"vue-router": "^3.0.1", "vue-router": "^4.2.2",
"vuex": "^3.0.1", "vuex": "^3.0.1",
"vuex-persistedstate": "^2.5.4" "vuex-persistedstate": "^2.5.4"
}, },
@ -29,7 +29,6 @@
"@vitejs/plugin-vue": "^4.2.3", "@vitejs/plugin-vue": "^4.2.3",
"@vitejs/plugin-vue-jsx": "^3.0.1", "@vitejs/plugin-vue-jsx": "^3.0.1",
"autoprefixer": "^7.1.2", "autoprefixer": "^7.1.2",
"chalk": "^2.0.1",
"eslint": "^4.18.2", "eslint": "^4.18.2",
"eslint-config-standard": "^10.2.1", "eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0", "eslint-friendly-formatter": "^3.0.0",
@ -44,8 +43,7 @@
"rimraf": "^2.6.0", "rimraf": "^2.6.0",
"semver": "^5.3.0", "semver": "^5.3.0",
"shelljs": "^0.7.6", "shelljs": "^0.7.6",
"vite": "^4.3.5", "vite": "^4.3.5"
"vue-template-compiler": "^2.5.2"
}, },
"engines": { "engines": {
"node": ">= 6.0.0", "node": ">= 6.0.0",

View File

@ -1,17 +1,7 @@
<template>
<div id="app">
<header-bar/>
<transition name="fade"
mode="out-in">
<router-view/>
</transition>
<app-footer/>
</div>
</template>
<script> <script>
import HeaderBar from '@/components/HeaderBar' import HeaderBar from './components/HeaderBar.vue'
import AppFooter from '@/components/AppFooter' import AppFooter from './components/AppFooter.vue'
export default { export default {
name: 'App', name: 'App',
components: { components: {
@ -30,14 +20,24 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <template>
<div id="app">
<header-bar />
<transition name="fade" mode="out-in">
<router-view />
</transition>
<app-footer />
</div>
</template>
.fade-enter-active, .fade-leave-active { <style lang="scss" scoped>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.5s ease; transition: opacity 0.5s ease;
} }
.fade-enter, .fade-leave-active { .fade-enter,
.fade-leave-active {
opacity: 0; opacity: 0;
} }
</style> </style>

1
src/assets/main.css Normal file
View File

@ -0,0 +1 @@
@import "~bulma/bulma";

View File

@ -1 +0,0 @@
@import '~bulma/bulma';

View File

@ -3,19 +3,23 @@
<div class="container"> <div class="container">
<div class="content has-text-centered"> <div class="content has-text-centered">
<p> <p>
<strong>Stardew Community Checklist</strong> by <a href="http://johncleaver.com">John Cleaver</a>. The source code is licensed <strong>Stardew Community Checklist</strong> by
<a href="http://johncleaver.com">John Cleaver</a>. The source code is licensed
<a href="http://opensource.org/licenses/mit-license.php">MIT</a>. <a href="http://opensource.org/licenses/mit-license.php">MIT</a>.
</p> </p>
<p> <p>
<router-link to="/changelog">Changelog</router-link> <router-link to="/changelog">Changelog</router-link>
</p> </p>
<p> <p>
Bundle and Item information is from the <a href="http://stardewvalleywiki.com/Stardew_Valley_Wiki">Stardew Valley Wiki</a> Bundle and Item information is from the
and is used under the <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0 License</a>. <a href="http://stardewvalleywiki.com/Stardew_Valley_Wiki">Stardew Valley Wiki</a> and is
used under the
<a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">CC BY-NC-SA 3.0 License</a>.
</p> </p>
<p> <p>
<a href="http://stardewvalley.net/">Stardew Valley</a> &copy; <a href="https://chucklefish.org/">Chucklefish LTD</a>. <a href="http://stardewvalley.net/">Stardew Valley</a> &copy;
Developed by <a href="https://twitter.com/ConcernedApe">ConcernedApe</a>. <a href="https://chucklefish.org/">Chucklefish LTD</a>. Developed by
<a href="https://twitter.com/ConcernedApe">ConcernedApe</a>.
</p> </p>
<p> <p>
<a :href="gh_address"><font-awesome-icon :icon="gh_icon" /></a> <a :href="gh_address"><font-awesome-icon :icon="gh_icon" /></a>
@ -27,7 +31,7 @@
</template> </template>
<script> <script>
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import faGithub from '@fortawesome/fontawesome-free-brands/faGithub' import faGithub from '@fortawesome/fontawesome-free-brands/faGithub'
import faReddit from '@fortawesome/fontawesome-free-brands/faReddit' import faReddit from '@fortawesome/fontawesome-free-brands/faReddit'
export default { export default {
@ -52,5 +56,4 @@ export default {
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -1,5 +1,6 @@
<template> <template>
<button class="button is-rounded" <button
class="button is-rounded"
:class="shouldBeChecked ? checked_class : unchecked_class" :class="shouldBeChecked ? checked_class : unchecked_class"
v-on:click="updateInput" v-on:click="updateInput"
> >
@ -61,6 +62,4 @@ export default {
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -4,10 +4,13 @@
<div class="container"> <div class="container">
<div class="navbar-brand"> <div class="navbar-brand">
<a class="navbar-item" href="/"> <a class="navbar-item" href="/">
<h1 class="is-size-3 has-text-weight-semibold is-hidden-mobile">Stardew Community Checklist</h1> <h1 class="is-size-3 has-text-weight-semibold is-hidden-mobile">
Stardew Community Checklist
</h1>
<h1 class="is-size-3 has-text-weight-semibold is-hidden-tablet">SCC</h1> <h1 class="is-size-3 has-text-weight-semibold is-hidden-tablet">SCC</h1>
</a> </a>
<div class="navbar-burger" <div
class="navbar-burger"
v-bind:class="{ 'is-active': menu_active }" v-bind:class="{ 'is-active': menu_active }"
@click="menu_active = !menu_active" @click="menu_active = !menu_active"
> >
@ -16,19 +19,19 @@
<span></span> <span></span>
</div> </div>
</div> </div>
<div class="navbar-menu" <div class="navbar-menu" v-bind:class="{ 'is-active': menu_active }">
v-bind:class="{ 'is-active': menu_active }">
<div class="navbar-end"> <div class="navbar-end">
<router-link v-for="route in named_routes" <router-link
v-for="route in named_routes"
:key="route.order" :key="route.order"
class="navbar-item" class="navbar-item"
@click.native="menu_active = false" @click.native="menu_active = false"
:to="route"> :to="route"
>
{{ route.name }} {{ route.name }}
</router-link> </router-link>
</div> </div>
</div> </div>
</div> </div>
</nav> </nav>
</section> </section>
@ -44,11 +47,10 @@ export default {
}, },
computed: { computed: {
named_routes: function () { named_routes: function () {
return this.$router.options.routes.filter(route => route.hasOwnProperty('name')) return this.$router.options.routes.filter((route) => route.hasOwnProperty('name'))
} }
} }
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -12,16 +12,24 @@
<p>Hey All!</p> <p>Hey All!</p>
<p> <p>
You'll probably notice a lot of changes around here. I've added a fresh coat of paint, You'll probably notice a lot of changes around here. I've added a fresh coat of paint, a
a complete redesign to work on mobile, as well as a complete re-write of the backend to complete redesign to work on mobile, as well as a complete re-write of the backend to
support some features I have on the <a href="https://www.reddit.com/r/stardewchecklist/comments/6s5x0a/current_development_roadmap_v20/">roadmap</a>. support some features I have on the
I've detailed some of the most exciting features below, but for the full list, check out the <a
<router-link to="/changelog">changelog</router-link>. href="https://www.reddit.com/r/stardewchecklist/comments/6s5x0a/current_development_roadmap_v20/"
>roadmap</a
>. I've detailed some of the most exciting features below, but for the full list, check
out the <router-link to="/changelog">changelog</router-link>.
</p> </p>
<p>I've tried to keep your saved data from V1 intact, but there may still be some conversion issues.</p> <p>
I've tried to keep your saved data from V1 intact, but there may still be some
conversion issues.
</p>
<p>If you notice any problems, please report them on the subreddit or open a Github issue.</p> <p>
If you notice any problems, please report them on the subreddit or open a Github issue.
</p>
<p> <p>
Hope you enjoy, <br /> Hope you enjoy, <br />

View File

@ -46,9 +46,9 @@ export default {
position: absolute; position: absolute;
bottom: -1.85rem; bottom: -1.85rem;
border-radius: 3px; border-radius: 3px;
font-size: .75rem; font-size: 0.75rem;
background-color: #00d1b2; background-color: #00d1b2;
padding: .1rem .3rem; padding: 0.1rem 0.3rem;
text-transform: capitalize; text-transform: capitalize;
color: #000; color: #000;
z-index: 100; z-index: 100;

View File

@ -2,31 +2,21 @@
<div> <div>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<h1 class="title"> <h1 class="title">Settings</h1>
Settings
</h1>
</div> </div>
</section> </section>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<h2 class="subtitle"> <h2 class="subtitle">Spoilers and Displayed Items</h2>
Spoilers and Displayed Items
</h2>
<div class="field"> <div class="field">
<button-checkbox v-model="HideCompleted"> <button-checkbox v-model="HideCompleted"> Hide Completed </button-checkbox>
Hide Completed
</button-checkbox>
<p class="help">Hides items that have been turned in to the community center.</p> <p class="help">Hides items that have been turned in to the community center.</p>
</div> </div>
<div class="field"> <div class="field">
<button-checkbox v-model="HideSpoilers"> <button-checkbox v-model="HideSpoilers"> Hide Spoilers </button-checkbox>
Hide Spoilers
</button-checkbox>
<p class="help">Hides things that are considered spoilers, as defined below.</p> <p class="help">Hides things that are considered spoilers, as defined below.</p>
</div> </div>
<label class="label"> <label class="label"> Spoilers </label>
Spoilers
</label>
<div class="field is-grouped is-grouped-multiline"> <div class="field is-grouped is-grouped-multiline">
<div class="control"> <div class="control">
<label class="checkbox"> <label class="checkbox">
@ -57,36 +47,29 @@
</section> </section>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<h2 class="subtitle"> <h2 class="subtitle">Compact View</h2>
Compact View
</h2>
<p class="content"> <p class="content">
Enable a more compact table view instead of the card view. Enable a more compact table view instead of the card view. Note that this may result in
Note that this may result in horizontal scrolling on smaller (phone-sized) devices. horizontal scrolling on smaller (phone-sized) devices. The card view is recommended for
The card view is recommended for those. those.
</p> </p>
<div class="field"> <div class="field">
<button-checkbox v-model="CompactView"> <button-checkbox v-model="CompactView"> Use Compact View </button-checkbox>
Use Compact View
</button-checkbox>
<p class="help">Enables a compact tabular view for item information.</p> <p class="help">Enables a compact tabular view for item information.</p>
</div> </div>
</div> </div>
</section> </section>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
<h2 class="subtitle"> <h2 class="subtitle">Import and Export Saved Data</h2>
Import and Export Saved Data
</h2>
<p class="content"> <p class="content">
Use these controls to port data to another device. Use these controls to port data to another device. Copy the data string from the Export
Copy the data string from the Export field on the source device and paste it into the Import field field on the source device and paste it into the Import field on the target device.
on the target device.
</p> </p>
<label class="label">Export</label> <label class="label">Export</label>
<div class="field has-addons"> <div class="field has-addons">
<div class="control"> <div class="control">
<input class="input" type="text" placeholder="Saved Data" :value=SavedData readonly /> <input class="input" type="text" placeholder="Saved Data" :value="SavedData" readonly />
</div> </div>
<div class="control"> <div class="control">
<button class="button is-info" v-clipboard:copy="SavedData"> <button class="button is-info" v-clipboard:copy="SavedData">
@ -99,7 +82,12 @@
<label class="label">Import</label> <label class="label">Import</label>
<div class="field has-addons"> <div class="field has-addons">
<div class="control"> <div class="control">
<input class="input" type="text" placeholder="Enter Saved Data here" v-model="DataToLoad" /> <input
class="input"
type="text"
placeholder="Enter Saved Data here"
v-model="DataToLoad"
/>
</div> </div>
<div class="control"> <div class="control">
<button class="button is-info" @click="LoadData"> <button class="button is-info" @click="LoadData">
@ -117,16 +105,16 @@
<p class="content">Use this button to reset your data and start a new game.</p> <p class="content">Use this button to reset your data and start a new game.</p>
<div class="field"> <div class="field">
<div class="control"> <div class="control">
<button class="button is-large is-rounded" :class="DeleteConfirm ? 'is-warning' : 'is-danger'" @click="ConfirmDelete"> <button
class="button is-large is-rounded"
:class="DeleteConfirm ? 'is-warning' : 'is-danger'"
@click="ConfirmDelete"
>
<span class="icon"> <span class="icon">
<font-awesome-icon icon="trash"></font-awesome-icon> <font-awesome-icon icon="trash"></font-awesome-icon>
</span> </span>
<span v-if="DeleteConfirm"> <span v-if="DeleteConfirm"> Are You Sure? </span>
Are You Sure? <span v-else> Reset Data </span>
</span>
<span v-else>
Reset Data
</span>
</button> </button>
</div> </div>
</div> </div>
@ -136,7 +124,7 @@
</template> </template>
<script> <script>
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import ButtonCheckbox from '@/components/ButtonCheckbox.vue' import ButtonCheckbox from '@/components/ButtonCheckbox.vue'
import { faCopy, faTrash, faCloudUploadAlt } from '@fortawesome/fontawesome-free-solid' import { faCopy, faTrash, faCloudUploadAlt } from '@fortawesome/fontawesome-free-solid'
import 'mdi-vue/ContentCopyIcon' import 'mdi-vue/ContentCopyIcon'
@ -238,6 +226,4 @@ export default {
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -49,11 +49,11 @@ export default {
position: absolute; position: absolute;
bottom: -1.85rem; bottom: -1.85rem;
border-radius: 3px; border-radius: 3px;
font-size: .75rem; font-size: 0.75rem;
background-color: #209cee; background-color: #209cee;
padding: .1rem .3rem; padding: 0.1rem 0.3rem;
text-transform: capitalize; text-transform: capitalize;
color: #FFF; color: #fff;
z-index: 100; z-index: 100;
font-weight: bold; font-weight: bold;
} }

View File

@ -2,12 +2,8 @@
<section class="container"> <section class="container">
<div class="hero is-medium is-bold"> <div class="hero is-medium is-bold">
<div class="hero-body"> <div class="hero-body">
<h1 class="title"> <h1 class="title">Stardew Community Checklist</h1>
Stardew Community Checklist <h2 class="subtitle">Track Your Progress on the Community Center!</h2>
</h1>
<h2 class="subtitle">
Track Your Progress on the Community Center!
</h2>
</div> </div>
</div> </div>
<New :class="ShowModal ? 'is-active' : ''" v-on:dismiss-modal="ShowModal = false"></New> <New :class="ShowModal ? 'is-active' : ''" v-on:dismiss-modal="ShowModal = false"></New>
@ -15,8 +11,8 @@
</template> </template>
<script> <script>
import ItemCard from '@/components/item_card/ItemCard' import ItemCard from '@/components/item_card/ItemCard.vue'
import New from '@/components/New' import New from '@/components/New.vue'
export default { export default {
components: { ItemCard, New }, components: { ItemCard, New },
name: 'welcome', name: 'welcome',
@ -34,5 +30,4 @@ export default {
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -5,27 +5,44 @@
<div class="column"> <div class="column">
<h3 class="title is-4"> <h3 class="title is-4">
{{ bundle.name }} {{ bundle.name }}
<span class="is-pulled-right">{{ GetBundleItemsRedeemed(bundle) }} / {{bundle.items_required}}</span> <span class="is-pulled-right"
>{{ GetBundleItemsRedeemed(bundle) }} / {{ bundle.items_required }}</span
>
</h3> </h3>
<h5 class="subtitle bundle-reward" v-if="!hideBundleItems"> <h5 class="subtitle bundle-reward" v-if="!hideBundleItems">
{{ bundle.reward }} {{ bundle.reward }}
</h5> </h5>
<progress class="progress is-info" :value="GetBundleItemsRedeemed(bundle)" :max="bundle.items_required" /> <progress
class="progress is-info"
:value="GetBundleItemsRedeemed(bundle)"
:max="bundle.items_required"
/>
</div> </div>
<div class="column"> <div class="column">
<h3 class="title is-4"> <h3 class="title is-4">
{{ bundle.room.name }} {{ bundle.room.name }}
<span class="is-pulled-right">{{ GetRoomItemsRedeemed(bundle.room)}} / {{bundle.room.items_required}}</span> <span class="is-pulled-right"
>{{ GetRoomItemsRedeemed(bundle.room) }} / {{ bundle.room.items_required }}</span
>
</h3> </h3>
<h5 class="subtitle" v-if="!hideBundleItems"> <h5 class="subtitle" v-if="!hideBundleItems">
{{ bundle.room.reward }} {{ bundle.room.reward }}
</h5> </h5>
<progress class="progress is-info" :value="GetRoomItemsRedeemed(bundle.room)" :max="bundle.room.items_required" /> <progress
class="progress is-info"
:value="GetRoomItemsRedeemed(bundle.room)"
:max="bundle.room.items_required"
/>
</div> </div>
</div> </div>
<div class="columns is-multiline"> <div class="columns is-multiline">
<item-table v-if="CompactView" :items="bundleItems.map(i => i.item)" /> <item-table v-if="CompactView" :items="bundleItems.map((i) => i.item)" />
<div v-else class="column is-3-widescreen is-4-desktop is-12-mobile is-6-tablet is-flex" v-for="bundleitem in bundleItems" :key="bundleitem.id"> <div
v-else
class="column is-3-widescreen is-4-desktop is-12-mobile is-6-tablet is-flex"
v-for="bundleitem in bundleItems"
:key="bundleitem.id"
>
<item-card :item="bundleitem.item"></item-card> <item-card :item="bundleitem.item"></item-card>
</div> </div>
</div> </div>
@ -34,7 +51,7 @@
</template> </template>
<script> <script>
import ItemCard from '@/components/item_card/ItemCard' import ItemCard from '@/components/item_card/ItemCard.vue'
import ItemTable from '@/components/item_table/ItemTable.vue' import ItemTable from '@/components/item_table/ItemTable.vue'
export default { export default {
name: 'bundle-items', name: 'bundle-items',
@ -46,7 +63,9 @@ export default {
return this.$store.state.HideSpoilers && this.$store.state.BundleRewardsSpoilers return this.$store.state.HideSpoilers && this.$store.state.BundleRewardsSpoilers
}, },
bundleItems: function () { bundleItems: function () {
return this.bundle.items.filter(item => !(this.$store.state.HideCompleted && this.isItemComplete(item))) return this.bundle.items.filter(
(item) => !(this.$store.state.HideCompleted && this.isItemComplete(item))
)
}, },
CompactView() { CompactView() {
return this.$store.state.CompactView return this.$store.state.CompactView
@ -56,8 +75,12 @@ export default {
isItemComplete: function (item) { isItemComplete: function (item) {
return item.item.bundles.every(this.$store.getters.IsBundleItemRedeemed) return item.item.bundles.every(this.$store.getters.IsBundleItemRedeemed)
}, },
GetBundleItemsRedeemed: function (bundle) { return this.$store.getters.GetBundleItemsRedeemed(bundle) }, GetBundleItemsRedeemed: function (bundle) {
GetRoomItemsRedeemed: function (room) { return this.$store.getters.GetRoomItemsRedeemed(room) } return this.$store.getters.GetBundleItemsRedeemed(bundle)
},
GetRoomItemsRedeemed: function (room) {
return this.$store.getters.GetRoomItemsRedeemed(room)
}
}, },
components: { components: {
ItemCard, ItemCard,

View File

@ -5,7 +5,8 @@
<div class="navbar-item"> <div class="navbar-item">
<h1 class="subtitle">Bundles</h1> <h1 class="subtitle">Bundles</h1>
</div> </div>
<div class="navbar-burger burger" <div
class="navbar-burger burger"
v-bind:class="{ 'is-active': menu_active }" v-bind:class="{ 'is-active': menu_active }"
@click="menu_active = !menu_active" @click="menu_active = !menu_active"
> >
@ -19,7 +20,9 @@
<div class="navbar-start"> <div class="navbar-start">
<div class="navbar-item has-dropdown is-hoverable" v-for="room in rooms" :key="room.id"> <div class="navbar-item has-dropdown is-hoverable" v-for="room in rooms" :key="room.id">
<a class="navbar-link"> <a class="navbar-link">
<span class="icon has-text-success" v-if="IsRoomComplete(room)"><font-awesome-icon icon="check-circle"/></span> <span class="icon has-text-success" v-if="IsRoomComplete(room)"
><font-awesome-icon icon="check-circle"
/></span>
<span>{{ room.name }}</span> <span>{{ room.name }}</span>
</a> </a>
<div class="navbar-dropdown"> <div class="navbar-dropdown">
@ -28,9 +31,11 @@
v-for="bundle in room.bundles" v-for="bundle in room.bundles"
:key="bundle.id" :key="bundle.id"
@click.native="menu_active = false" @click.native="menu_active = false"
:to="{ name: 'bundle-items', params: { id: bundle.id }}"> :to="{ name: 'bundle-items', params: { id: bundle.id } }"
>
<span class="icon has-text-success" v-if="IsBundleComplete(bundle)"><font-awesome-icon icon="check-circle"/></span> <span class="icon has-text-success" v-if="IsBundleComplete(bundle)"
><font-awesome-icon icon="check-circle"
/></span>
<span>{{ bundle.name }}</span> <span>{{ bundle.name }}</span>
</router-link> </router-link>
</div> </div>
@ -39,12 +44,11 @@
</div> </div>
</nav> </nav>
</section> </section>
</template> </template>
<script> <script>
import { mapState } from 'vuex' import { mapState } from 'vuex'
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { faCheckCircle } from '@fortawesome/fontawesome-free-solid' import { faCheckCircle } from '@fortawesome/fontawesome-free-solid'
export default { export default {
name: 'bundle_nav', name: 'bundle_nav',
@ -61,8 +65,12 @@ export default {
...mapState(['rooms']) ...mapState(['rooms'])
}, },
methods: { methods: {
IsBundleComplete: function (bundle) { return this.$store.getters.IsBundleComplete(bundle) }, IsBundleComplete: function (bundle) {
IsRoomComplete: function (room) { return this.$store.getters.IsRoomComplete(room) } return this.$store.getters.IsBundleComplete(bundle)
},
IsRoomComplete: function (room) {
return this.$store.getters.IsRoomComplete(room)
}
} }
} }
</script> </script>

View File

@ -2,10 +2,7 @@
<div> <div>
<BundleNav /> <BundleNav />
<section class="section"> <section class="section">
<transition <transition name="fade" mode="out-in">
name="fade"
mode="out-in"
>
<router-view :key="bundle"></router-view> <router-view :key="bundle"></router-view>
</transition> </transition>
</section> </section>
@ -26,13 +23,13 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.fade-enter-active,
.fade-enter-active, .fade-leave-active { .fade-leave-active {
transition: opacity 0.5s ease; transition: opacity 0.5s ease;
} }
.fade-enter, .fade-leave-active { .fade-enter,
.fade-leave-active {
opacity: 0; opacity: 0;
} }
</style> </style>

View File

@ -1,9 +1,7 @@
<template> <template>
<section class="section"> <section class="section">
<section class="container"> <section class="container">
<h1 class="title"> <h1 class="title">Changelog</h1>
Changelog
</h1>
<version v-for="version in changelog.versions" :key="version.date" :version="version" /> <version v-for="version in changelog.versions" :key="version.date" :version="version" />
</section> </section>
</section> </section>
@ -25,6 +23,4 @@ export default {
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -15,9 +15,7 @@
</div> </div>
</div> </div>
<div class="card-footer"> <div class="card-footer">
<p class="card-footer-item has-text-centered-mobile"> <p class="card-footer-item has-text-centered-mobile">Release Date: {{ version.date }}</p>
Release Date: {{version.date}}
</p>
<p class="card-footer-item"> <p class="card-footer-item">
<a :href="release_url" class="button"> <a :href="release_url" class="button">
<span class="icon"> <span class="icon">
@ -45,22 +43,19 @@ export default {
id: 'Version 1.0', id: 'Version 1.0',
date: '2016-04-13', date: '2016-04-13',
link: 'Version-1.0', link: 'Version-1.0',
changes: [ changes: ['Initial Version']
'Initial Version'
]
} }
} }
} }
}, },
computed: { computed: {
release_url() { release_url() {
return 'https://github.com/kihashi/stardew_community_checklist/releases/tag/' + this.version.link return (
'https://github.com/kihashi/stardew_community_checklist/releases/tag/' + this.version.link
)
} }
} }
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -1,16 +1,20 @@
<template> <template>
<div class="field has-addons"> <div class="field has-addons">
<div class="control is-expanded"> <div class="control is-expanded">
<a class="button is-rounded is-fullwidth" :class="ButtonClass" <a class="button is-rounded is-fullwidth" :class="ButtonClass" @click="ToggleItemInBundle">
@click="ToggleItemInBundle">
<span class="icon"> <span class="icon">
<font-awesome-icon :icon="ItemInBundle ? InBundleIcon : NotInBundleIcon"></font-awesome-icon> <font-awesome-icon
:icon="ItemInBundle ? InBundleIcon : NotInBundleIcon"
></font-awesome-icon>
</span> </span>
<span class="is-size-7">{{ bundleItem.bundle.name }}{{ numberInBundle }}</span> <span class="is-size-7">{{ bundleItem.bundle.name }}{{ numberInBundle }}</span>
</a> </a>
</div> </div>
<div class="control"> <div class="control">
<router-link class="button is-rounded is-light" :to="{ name: 'bundle-items', params: { id: bundleItem.bundle.id } }"> <router-link
class="button is-rounded is-light"
:to="{ name: 'bundle-items', params: { id: bundleItem.bundle.id } }"
>
<span class="icon is-small"> <span class="icon is-small">
<font-awesome-icon icon="link"></font-awesome-icon> <font-awesome-icon icon="link"></font-awesome-icon>
</span> </span>
@ -20,7 +24,7 @@
</template> </template>
<script> <script>
import FontAwesomeIcon from '@fortawesome/vue-fontawesome' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
import { faCheckSquare, faSquare } from '@fortawesome/fontawesome-free-regular' import { faCheckSquare, faSquare } from '@fortawesome/fontawesome-free-regular'
import { faLink } from '@fortawesome/fontawesome-free-solid' import { faLink } from '@fortawesome/fontawesome-free-solid'
export default { export default {
@ -73,6 +77,4 @@ export default {
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -10,7 +10,12 @@
{{ item.source }} {{ item.source }}
</div> </div>
<div class="content"> <div class="content">
<bundle-button v-for="bundleItem in item.bundles" :key="bundleItem.id" :bundle-item="bundleItem" :item="item"/> <bundle-button
v-for="bundleItem in item.bundles"
:key="bundleItem.id"
:bundle-item="bundleItem"
:item="item"
/>
</div> </div>
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
@ -25,9 +30,9 @@
</template> </template>
<script> <script>
import SeasonList from './SeasonList' import SeasonList from './SeasonList.vue'
import SkillList from './SkillList' import SkillList from './SkillList.vue'
import BundleButton from './BundleButton' import BundleButton from './BundleButton.vue'
export default { export default {
components: { components: {
@ -54,7 +59,8 @@ export default {
return { return {
id: 22, id: 22,
name: 'Purple Mushroom', name: 'Purple Mushroom',
source: 'Can be found in the mines or in the farm cave if you selected the mushroom perk.', source:
'Can be found in the mines or in the farm cave if you selected the mushroom perk.',
seasons: [ seasons: [
{ {
id: 'spring', id: 'spring',
@ -89,26 +95,26 @@ export default {
name: 'Foraging' name: 'Foraging'
} }
], ],
'bundles': [ bundles: [
{ {
'count': 1, count: 1,
'bundle': { bundle: {
id: 5, id: 5,
name: 'Exotic Foraging Bundle', name: 'Exotic Foraging Bundle',
room: 0, room: 0,
reward: 'Autumn\'s Bounty (5)' reward: "Autumn's Bounty (5)"
}, },
'id': 24 id: 24
}, },
{ {
'count': 1, count: 1,
'bundle': { bundle: {
id: 23, id: 23,
name: 'Field Research Bundle', name: 'Field Research Bundle',
room: 4, room: 4,
reward: 'Recycling Machine' reward: 'Recycling Machine'
}, },
'id': 25 id: 25
} }
] ]
} }

View File

@ -1,11 +1,11 @@
<template> <template>
<span class='tags has-addons'> <span class="tags has-addons">
<season-tag v-for='season in seasons' :key='season.order' :season='season'/> <season-tag v-for="season in seasons" :key="season.order" :season="season" />
</span> </span>
</template> </template>
<script> <script>
import SeasonTag from './SeasonTag' import SeasonTag from './SeasonTag.vue'
export default { export default {
components: { SeasonTag }, components: { SeasonTag },

View File

@ -5,7 +5,7 @@
</template> </template>
<script> <script>
import SeasonIcon from '@/components/SeasonIcon' import SeasonIcon from '@/components/SeasonIcon.vue'
export default { export default {
name: 'season-tag', name: 'season-tag',
props: { props: {
@ -26,6 +26,4 @@ export default {
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -5,7 +5,7 @@
</template> </template>
<script> <script>
import SkillTag from './SkillTag' import SkillTag from './SkillTag.vue'
export default { export default {
components: { SkillTag }, components: { SkillTag },
@ -24,5 +24,4 @@ export default {
justify-content: center; justify-content: center;
flex-wrap: nowrap; flex-wrap: nowrap;
} }
</style> </style>

View File

@ -5,7 +5,7 @@
</template> </template>
<script> <script>
import SkillIcon from '@/components/SkillIcon' import SkillIcon from '@/components/SkillIcon.vue'
export default { export default {
name: 'skill-tag', name: 'skill-tag',
props: { props: {
@ -26,6 +26,4 @@ export default {
} }
</script> </script>
<style scoped> <style scoped></style>
</style>

View File

@ -2,21 +2,11 @@
<table class="table is-bordered is-striped is-narrow is-fullwidth"> <table class="table is-bordered is-striped is-narrow is-fullwidth">
<thead> <thead>
<tr> <tr>
<th> <th>Item</th>
Item <th>Source</th>
</th> <th v-if="showSeasonList">Seasons</th>
<th> <th v-if="showSkillList">Skills</th>
Source <th>Bundles</th>
</th>
<th v-if="showSeasonList">
Seasons
</th>
<th v-if="showSkillList">
Skills
</th>
<th>
Bundles
</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -34,9 +24,7 @@ export default {
ItemTableRow ItemTableRow
}, },
data() { data() {
return { return {}
}
}, },
props: { props: {
items: { items: {
@ -56,6 +44,6 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
table { table {
table-layout: fixed table-layout: fixed;
} }
</style> </style>

View File

@ -13,15 +13,20 @@
<skill-list :skills="item.skills" /> <skill-list :skills="item.skills" />
</td> </td>
<td> <td>
<bundle-button v-for="bundleItem in item.bundles" :key="bundleItem.id" :bundle-item="bundleItem" :item="item"/> <bundle-button
v-for="bundleItem in item.bundles"
:key="bundleItem.id"
:bundle-item="bundleItem"
:item="item"
/>
</td> </td>
</tr> </tr>
</template> </template>
<script> <script>
import SeasonList from '../item_card/SeasonList' import SeasonList from '../item_card/SeasonList.vue'
import SkillList from '../item_card/SkillList' import SkillList from '../item_card/SkillList.vue'
import BundleButton from '../item_card/BundleButton' import BundleButton from '../item_card/BundleButton.vue'
export default { export default {
name: 'ItemTable', name: 'ItemTable',
components: { components: {
@ -30,9 +35,7 @@ export default {
SeasonList SeasonList
}, },
data() { data() {
return { return {}
}
}, },
computed: { computed: {
showItemDesc: function () { showItemDesc: function () {
@ -52,7 +55,8 @@ export default {
return { return {
id: 22, id: 22,
name: 'Purple Mushroom', name: 'Purple Mushroom',
source: 'Can be found in the mines or in the farm cave if you selected the mushroom perk.', source:
'Can be found in the mines or in the farm cave if you selected the mushroom perk.',
seasons: [ seasons: [
{ {
id: 'spring', id: 'spring',
@ -87,32 +91,31 @@ export default {
name: 'Foraging' name: 'Foraging'
} }
], ],
'bundles': [ bundles: [
{ {
'count': 1, count: 1,
'bundle': { bundle: {
id: 5, id: 5,
name: 'Exotic Foraging Bundle', name: 'Exotic Foraging Bundle',
room: 0, room: 0,
reward: 'Autumn\'s Bounty (5)' reward: "Autumn's Bounty (5)"
}, },
'id': 24 id: 24
}, },
{ {
'count': 1, count: 1,
'bundle': { bundle: {
id: 23, id: 23,
name: 'Field Research Bundle', name: 'Field Research Bundle',
room: 4, room: 4,
reward: 'Recycling Machine' reward: 'Recycling Machine'
}, },
'id': 25 id: 25
} }
] ]
} }
} }
} }
} }
} }
</script> </script>

View File

@ -6,7 +6,12 @@
<div class="field-body"> <div class="field-body">
<div class="field"> <div class="field">
<div class="control"> <div class="control">
<input class="input" placeholder="Item Name" v-bind:value="value" v-on:input="$emit('input', $event.target.value)"/> <input
class="input"
placeholder="Item Name"
v-bind:value="value"
v-on:input="$emit('input', $event.target.value)"
/>
</div> </div>
</div> </div>
</div> </div>
@ -23,10 +28,7 @@ export default {
} }
} }
} }
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -4,18 +4,22 @@
<section class="container"> <section class="container">
<div class="columns is-multiline"> <div class="columns is-multiline">
<item-table v-if="CompactView" :items="filtered_items" /> <item-table v-if="CompactView" :items="filtered_items" />
<div v-else class="column is-3-widescreen is-4-desktop is-12-mobile is-6-tablet is-flex" v-for="item in filtered_items" :key="item.id"> <div
v-else
class="column is-3-widescreen is-4-desktop is-12-mobile is-6-tablet is-flex"
v-for="item in filtered_items"
:key="item.id"
>
<item-card :item="item"></item-card> <item-card :item="item"></item-card>
</div> </div>
</div> </div>
</section> </section>
</section> </section>
</template> </template>
<script> <script>
import SearchForm from '@/components/search/SearchForm' import SearchForm from '@/components/search/SearchForm.vue'
import ItemCard from '@/components/item_card/ItemCard' import ItemCard from '@/components/item_card/ItemCard.vue'
import ItemTable from '@/components/item_table/ItemTable.vue' import ItemTable from '@/components/item_table/ItemTable.vue'
import _ from 'lodash' import _ from 'lodash'
export default { export default {
@ -45,11 +49,22 @@ export default {
var self = this var self = this
return _.orderBy( return _.orderBy(
self.$store.state.items self.$store.state.items
.filter(item => !(this.$store.state.HideCompleted && this.isItemComplete(item))) .filter((item) => !(this.$store.state.HideCompleted && this.isItemComplete(item)))
.filter(item => item.name.toLowerCase().indexOf(self.search.name_filter.toLowerCase()) !== -1) .filter(
.filter(item => this.FilterSeasons(item.seasons.map(ssn => ssn.id), this.search.season_filter)) (item) => item.name.toLowerCase().indexOf(self.search.name_filter.toLowerCase()) !== -1
.filter(item => this.FilterSkills(item.skills.map(skl => skl.id), this.search.skill_filter)) )
, .filter((item) =>
this.FilterSeasons(
item.seasons.map((ssn) => ssn.id),
this.search.season_filter
)
)
.filter((item) =>
this.FilterSkills(
item.skills.map((skl) => skl.id),
this.search.skill_filter
)
),
'name' 'name'
) )
}, },
@ -68,7 +83,9 @@ export default {
a.sort() a.sort()
b.sort() b.sort()
for (var i = 0; i < a.length; ++i) { for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) { return false } if (a[i] !== b[i]) {
return false
}
} }
return true return true
} }
@ -91,7 +108,9 @@ export default {
a.sort() a.sort()
b.sort() b.sort()
for (var i = 0; i < a.length; ++i) { for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) { return false } if (a[i] !== b[i]) {
return false
}
} }
return true return true
} }
@ -108,10 +127,7 @@ export default {
return item.bundles.every(this.$store.getters.IsBundleItemRedeemed) return item.bundles.every(this.$store.getters.IsBundleItemRedeemed)
} }
} }
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -1,7 +1,10 @@
<template> <template>
<div class="columns"> <div class="columns">
<div class="column"> <div class="column">
<item-search v-model.lazy="value.name_filter" v-on:input="$emit('input', $event.target.value)" /> <item-search
v-model.lazy="value.name_filter"
v-on:input="$emit('input', $event.target.value)"
/>
</div> </div>
<div class="column"> <div class="column">
<season-filter :value="value.season_filter" v-on:input="UpdateSeasons" /> <season-filter :value="value.season_filter" v-on:input="UpdateSeasons" />
@ -50,10 +53,7 @@ export default {
SeasonFilter, SeasonFilter,
SkillFilter SkillFilter
} }
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -6,7 +6,11 @@
<div class="field-body"> <div class="field-body">
<div class="field has-addons has-addons-centered"> <div class="field has-addons has-addons-centered">
<div class="control" v-for="season in seasons" :key="season.order"> <div class="control" v-for="season in seasons" :key="season.order">
<button-check :value="season.id" :checked="value.selected_seasons" v-on:change="UpdateSeasons"> <button-check
:value="season.id"
:checked="value.selected_seasons"
v-on:change="UpdateSeasons"
>
<span class="icon is-small"> <span class="icon is-small">
<season-icon :season="season"></season-icon> <season-icon :season="season"></season-icon>
</span> </span>
@ -15,7 +19,11 @@
</div> </div>
<div class="field"> <div class="field">
<div class="control is-expanded"> <div class="control is-expanded">
<button-check class="is-fullwidth" :checked="value.season_exclusive" v-on:change="UpdateExclusive"> <button-check
class="is-fullwidth"
:checked="value.season_exclusive"
v-on:change="UpdateExclusive"
>
Exclusive Exclusive
</button-check> </button-check>
</div> </div>
@ -25,8 +33,8 @@
</template> </template>
<script> <script>
import SeasonIcon from '@/components/SeasonIcon' import SeasonIcon from '@/components/SeasonIcon.vue'
import ButtonCheck from '@/components/ButtonCheckbox' import ButtonCheck from '@/components/ButtonCheckbox.vue'
export default { export default {
name: 'season-filter', name: 'season-filter',
components: { components: {
@ -58,10 +66,7 @@ export default {
this.$emit('input', this.value) this.$emit('input', this.value)
} }
} }
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -6,7 +6,11 @@
<div class="field-body"> <div class="field-body">
<div class="field has-addons has-addons-centered"> <div class="field has-addons has-addons-centered">
<div class="control" v-for="skill in skills" :key="skill.id"> <div class="control" v-for="skill in skills" :key="skill.id">
<button-check :value="skill.id" :checked="value.selected_skills" v-on:change="UpdateSkills"> <button-check
:value="skill.id"
:checked="value.selected_skills"
v-on:change="UpdateSkills"
>
<span class="icon is-small"> <span class="icon is-small">
<skill-icon :skill="skill" /> <skill-icon :skill="skill" />
</span> </span>
@ -15,19 +19,22 @@
</div> </div>
<div class="field"> <div class="field">
<div class="control is-expanded"> <div class="control is-expanded">
<button-check class="is-fullwidth" :checked="value.skill_exclusive" v-on:change="UpdateExclusive"> <button-check
class="is-fullwidth"
:checked="value.skill_exclusive"
v-on:change="UpdateExclusive"
>
Exclusive Exclusive
</button-check> </button-check>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import SkillIcon from '@/components/SkillIcon' import SkillIcon from '@/components/SkillIcon.vue'
import ButtonCheck from '@/components/ButtonCheckbox' import ButtonCheck from '@/components/ButtonCheckbox.vue'
export default { export default {
name: 'skill-filter', name: 'skill-filter',
components: { components: {
@ -62,6 +69,4 @@ export default {
} }
</script> </script>
<style> <style></style>
</style>

View File

@ -1,21 +1,16 @@
// The Vue build version to load with the `import` command import '../node_modules/bulma/bulma.sass'
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue' import { createApp } from 'vue'
import VueClipboard from 'vue-clipboard2'
import App from './App' import App from './App.vue'
import router from './router' import router from './router'
import store from './store' // import store from './store'
import VueClipboard from 'vue-clipboard2'
require('./assets/sass/main.scss') const app = createApp(App)
Vue.config.productionTip = false app.use(router)
Vue.use(VueClipboard) app.use(VueClipboard)
// app.use(store)
/* eslint-disable no-new */ app.mount('#app')
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})

View File

@ -1,15 +1,12 @@
import Vue from 'vue' import Welcome from '@/components/Welcome.vue'
import Router from 'vue-router' import Bundles from '@/components/bundles/Bundles.vue'
import Welcome from '@/components/Welcome' import BundleItems from '@/components/bundles/BundleItems.vue'
import Bundles from '@/components/bundles/Bundles' import Search from '@/components/search/Search.vue'
import BundleItems from '@/components/bundles/BundleItems' import Settings from '@/components/Settings.vue'
import Search from '@/components/search/Search' import Changelog from '@/components/changelog/Changelog.vue'
import Settings from '@/components/Settings' import { createRouter } from 'vue-router'
import Changelog from '@/components/changelog/Changelog'
Vue.use(Router) const router = createRouter({
export default new Router({
routes: [ routes: [
{ {
path: '/welcome', path: '/welcome',
@ -55,3 +52,5 @@ export default new Router({
], ],
linkActiveClass: 'is-active' linkActiveClass: 'is-active'
}) })
export default router

217
yarn.lock
View File

@ -212,7 +212,7 @@
chalk "^2.0.0" chalk "^2.0.0"
js-tokens "^4.0.0" js-tokens "^4.0.0"
"@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4": "@babel/parser@^7.20.15", "@babel/parser@^7.21.3", "@babel/parser@^7.21.9", "@babel/parser@^7.22.0", "@babel/parser@^7.22.4":
version "7.22.4" version "7.22.4"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.4.tgz#a770e98fd785c231af9d93f6459d36770993fb32"
integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA== integrity sha512-VLLsx06XkEYqBtE5YGPwfSGwfrjnyPP5oiGty3S8pQLFDFLaS8VwWSIxkTXpcvr5zeYLE6+MBNl2npl/YnfofA==
@ -385,37 +385,48 @@
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061"
integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==
"@fortawesome/fontawesome-common-types@^0.1.3": "@fortawesome/fontawesome-common-types@6.4.0":
version "0.1.3" version "6.4.0"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.1.3.tgz#8475e0f2d1ad1f858c4ec2e76ed9a2456a09ad83" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.0.tgz#88da2b70d6ca18aaa6ed3687832e11f39e80624b"
integrity sha512-HNii132xfomg5QVZw0HwXXpN22s7VBHQBv9CeOu9tfJnhsWQNd2lmTNi8CSrnw5B+5YOmzu1UoPAyxaXsJ6RgQ==
"@fortawesome/fontawesome-free-brands@^5.0.7": "@fortawesome/fontawesome-common-types@^0.1.7":
version "5.0.7" version "0.1.7"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-brands/-/fontawesome-free-brands-5.0.7.tgz#0fe131da1bfb7f5f49b7b800b9e198e530fab418" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.1.7.tgz#4336c4b06d0b5608ff1215464b66fcf9f4795284"
integrity sha512-ego8jRVSHfq/iq4KRZJKQeUAdi3ZjGNrqw4oPN3fNdvTBnLCSntwVCnc37bsAJP9UB8MhrTfPnZYxkv2vpS4pg==
"@fortawesome/fontawesome-free-brands@^5.0.13":
version "5.0.13"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-brands/-/fontawesome-free-brands-5.0.13.tgz#4d15ff4e1e862d5e4a4df3654f8e8acbd47e9c09"
integrity sha512-xC/sEPpfcJPvUbud2GyscLCLQlE2DVBYaTHVwuyVGliYBdYejSEYMINU8FN5A0xhO68yCbpCfMlBv6Gqby+jww==
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.3" "@fortawesome/fontawesome-common-types" "^0.1.7"
"@fortawesome/fontawesome-free-regular@^5.0.7": "@fortawesome/fontawesome-free-regular@^5.0.13":
version "5.0.7" version "5.0.13"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-regular/-/fontawesome-free-regular-5.0.7.tgz#3a347278e34c58db8c1c7891e9e567d57d1d7db9" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-regular/-/fontawesome-free-regular-5.0.13.tgz#eb78c30184e3f456a423a1dcfa0f682f7b50de4a"
integrity sha512-36lz9Idww1L4QaaTcv7GZiOeIP9emJFDUsedvRovI10kmwyd6rN0PKkIjnq0FB4foLhX4Rou8vnbCCmjtqiLug==
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.3" "@fortawesome/fontawesome-common-types" "^0.1.7"
"@fortawesome/fontawesome-free-solid@^5.0.7": "@fortawesome/fontawesome-free-solid@^5.0.13":
version "5.0.7" version "5.0.13"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-solid/-/fontawesome-free-solid-5.0.7.tgz#b7e68876a24b3a0a34c09ee68bd57fe63925a578" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free-solid/-/fontawesome-free-solid-5.0.13.tgz#24b61aaf471a9d34a5364b052d64a516285ba894"
integrity sha512-b+krVnqkdDt52Yfev0x0ZZgtxBQsLw00Zfa3uaVWIDzpNZVtrEXuxldUSUaN/ihgGhSNi8VpvDAdNPVgCKOSxw==
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.3" "@fortawesome/fontawesome-common-types" "^0.1.7"
"@fortawesome/fontawesome@^1.1.4": "@fortawesome/fontawesome-svg-core@^6.4.0":
version "1.1.4" version "6.4.0"
resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome/-/fontawesome-1.1.4.tgz#03065638046206c2226e103b550196934c75be9b" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.0.tgz#3727552eff9179506e9203d72feb5b1063c11a21"
integrity sha512-Bertv8xOiVELz5raB2FlXDPKt+m94MQ3JgDfsVbrqNpLU9+UE2E18GKjLKw+d3XbeYPqg1pzyQKGsrzbw+pPaw==
dependencies: dependencies:
"@fortawesome/fontawesome-common-types" "^0.1.3" "@fortawesome/fontawesome-common-types" "6.4.0"
"@fortawesome/vue-fontawesome@^0.0.22": "@fortawesome/vue-fontawesome@^3.0.3":
version "0.0.22" version "3.0.3"
resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-0.0.22.tgz#720457bda0e5866265e5e0f8fe4fbd857fa5653f" resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz#633e2998d11f7d4ed41f0d5ea461a22ec9b9d034"
integrity sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
version "0.3.3" version "0.3.3"
@ -441,7 +452,7 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
"@jridgewell/sourcemap-codec@^1.4.10": "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
version "1.4.15" version "1.4.15"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
@ -488,6 +499,101 @@
html-tags "^3.1.0" html-tags "^3.1.0"
svg-tags "^1.0.0" svg-tags "^1.0.0"
"@vue/compiler-core@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz#7fbf591c1c19e1acd28ffd284526e98b4f581128"
integrity sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==
dependencies:
"@babel/parser" "^7.21.3"
"@vue/shared" "3.3.4"
estree-walker "^2.0.2"
source-map-js "^1.0.2"
"@vue/compiler-dom@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz#f56e09b5f4d7dc350f981784de9713d823341151"
integrity sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==
dependencies:
"@vue/compiler-core" "3.3.4"
"@vue/shared" "3.3.4"
"@vue/compiler-sfc@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz#b19d942c71938893535b46226d602720593001df"
integrity sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==
dependencies:
"@babel/parser" "^7.20.15"
"@vue/compiler-core" "3.3.4"
"@vue/compiler-dom" "3.3.4"
"@vue/compiler-ssr" "3.3.4"
"@vue/reactivity-transform" "3.3.4"
"@vue/shared" "3.3.4"
estree-walker "^2.0.2"
magic-string "^0.30.0"
postcss "^8.1.10"
source-map-js "^1.0.2"
"@vue/compiler-ssr@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz#9d1379abffa4f2b0cd844174ceec4a9721138777"
integrity sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==
dependencies:
"@vue/compiler-dom" "3.3.4"
"@vue/shared" "3.3.4"
"@vue/devtools-api@^6.5.0":
version "6.5.0"
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.5.0.tgz#98b99425edee70b4c992692628fa1ea2c1e57d07"
integrity sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==
"@vue/reactivity-transform@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz#52908476e34d6a65c6c21cd2722d41ed8ae51929"
integrity sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==
dependencies:
"@babel/parser" "^7.20.15"
"@vue/compiler-core" "3.3.4"
"@vue/shared" "3.3.4"
estree-walker "^2.0.2"
magic-string "^0.30.0"
"@vue/reactivity@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.4.tgz#a27a29c6cd17faba5a0e99fbb86ee951653e2253"
integrity sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==
dependencies:
"@vue/shared" "3.3.4"
"@vue/runtime-core@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz#4bb33872bbb583721b340f3088888394195967d1"
integrity sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==
dependencies:
"@vue/reactivity" "3.3.4"
"@vue/shared" "3.3.4"
"@vue/runtime-dom@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz#992f2579d0ed6ce961f47bbe9bfe4b6791251566"
integrity sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==
dependencies:
"@vue/runtime-core" "3.3.4"
"@vue/shared" "3.3.4"
csstype "^3.1.1"
"@vue/server-renderer@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz#ea46594b795d1536f29bc592dd0f6655f7ea4c4c"
integrity sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==
dependencies:
"@vue/compiler-ssr" "3.3.4"
"@vue/shared" "3.3.4"
"@vue/shared@3.3.4":
version "3.3.4"
resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.4.tgz#06e83c5027f464eef861c329be81454bc8b70780"
integrity sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==
acorn-jsx@^3.0.0: acorn-jsx@^3.0.0:
version "3.0.1" version "3.0.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
@ -632,9 +738,10 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
bulma@^0.6.2: bulma@^0.9.4:
version "0.6.2" version "0.9.4"
resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.6.2.tgz#f4b1d11d5acc51a79644eb0a2b0b10649d3d71f5" resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.4.tgz#0ca8aeb1847a34264768dba26a064c8be72674a1"
integrity sha512-86FlT5+1GrsgKbPLRRY7cGDg8fsJiP/jzTqXXVqiUZZ2aZT8uemEOHlU1CDU+TxklPEZ11HZNNWclRBBecP4CQ==
caller-path@^0.1.0: caller-path@^0.1.0:
version "0.1.0" version "0.1.0"
@ -670,7 +777,7 @@ chalk@^1.0.0, chalk@^1.1.3:
strip-ansi "^3.0.0" strip-ansi "^3.0.0"
supports-color "^2.0.0" supports-color "^2.0.0"
chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1: chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.1:
version "2.4.2" version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
dependencies: dependencies:
@ -774,14 +881,15 @@ cross-spawn@^5.1.0:
shebang-command "^1.2.0" shebang-command "^1.2.0"
which "^1.2.9" which "^1.2.9"
csstype@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
cuint@^0.2.2: cuint@^0.2.2:
version "0.2.2" version "0.2.2"
resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b"
de-indent@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
debug@^2.6.8, debug@^2.6.9: debug@^2.6.8, debug@^2.6.9:
version "2.6.9" version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@ -1050,6 +1158,11 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1:
version "4.2.0" version "4.2.0"
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
esutils@^2.0.2: esutils@^2.0.2:
version "2.0.2" version "2.0.2"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@ -1214,10 +1327,6 @@ has@^1.0.1:
dependencies: dependencies:
function-bind "^1.0.2" function-bind "^1.0.2"
he@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
hosted-git-info@^2.1.4: hosted-git-info@^2.1.4:
version "2.5.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
@ -1442,6 +1551,13 @@ lru-cache@^5.1.1:
dependencies: dependencies:
yallist "^3.0.2" yallist "^3.0.2"
magic-string@^0.30.0:
version "0.30.0"
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.0.tgz#fd58a4748c5c4547338a424e90fa5dd17f4de529"
integrity sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13"
mdi-vue@^0.2.11: mdi-vue@^0.2.11:
version "0.2.11" version "0.2.11"
resolved "https://registry.yarnpkg.com/mdi-vue/-/mdi-vue-0.2.11.tgz#98452e9e554fed1c20d36d3033010d91e4535129" resolved "https://registry.yarnpkg.com/mdi-vue/-/mdi-vue-0.2.11.tgz#98452e9e554fed1c20d36d3033010d91e4535129"
@ -1677,7 +1793,7 @@ postcss@^6.0.1, postcss@^6.0.17:
source-map "^0.6.1" source-map "^0.6.1"
supports-color "^5.2.0" supports-color "^5.2.0"
postcss@^8.4.23: postcss@^8.1.10, postcss@^8.4.23:
version "8.4.24" version "8.4.24"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg== integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
@ -2055,20 +2171,23 @@ vue-eslint-parser@^2.0.3:
esquery "^1.0.0" esquery "^1.0.0"
lodash "^4.17.4" lodash "^4.17.4"
vue-router@^3.0.1: vue-router@^4.2.2:
version "3.0.1" version "4.2.2"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.2.2.tgz#b0097b66d89ca81c0986be03da244c7b32a4fd81"
integrity sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==
vue-template-compiler@^2.5.2:
version "2.5.13"
resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.5.13.tgz#12a2aa0ecd6158ac5e5f14d294b0993f399c3d38"
dependencies: dependencies:
de-indent "^1.0.2" "@vue/devtools-api" "^6.5.0"
he "^1.1.0"
vue@^2.5.2: vue@^3.3.4:
version "2.5.13" version "3.3.4"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.5.13.tgz#95bd31e20efcf7a7f39239c9aa6787ce8cf578e1" resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.4.tgz#8ed945d3873667df1d0fcf3b2463ada028f88bd6"
integrity sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==
dependencies:
"@vue/compiler-dom" "3.3.4"
"@vue/compiler-sfc" "3.3.4"
"@vue/runtime-dom" "3.3.4"
"@vue/server-renderer" "3.3.4"
"@vue/shared" "3.3.4"
vuex-persistedstate@^2.5.4: vuex-persistedstate@^2.5.4:
version "2.5.4" version "2.5.4"