mirror of
https://github.com/kihashi/stardew_community_checklist.git
synced 2025-10-19 08:03:17 +00:00
Search Form name filter working
This commit is contained in:
parent
b7bf4c4eec
commit
135f014389
13
package.json
13
package.json
@ -18,7 +18,7 @@
|
||||
"@fortawesome/vue-fontawesome": "^3.0.3",
|
||||
"@mdi/js": "^7.2.96",
|
||||
"bulma": "^0.9.4",
|
||||
"lodash": "^4.17.19",
|
||||
"lodash": "^4.17.21",
|
||||
"mdi-vue": "^3.0.13",
|
||||
"pinia": "^2.1.3",
|
||||
"pinia-plugin-persistedstate": "^3.1.0",
|
||||
@ -29,17 +29,18 @@
|
||||
"devDependencies": {
|
||||
"@rushstack/eslint-patch": "^1.2.0",
|
||||
"@types/jsdom": "^21.1.1",
|
||||
"@types/node": "^18.16.8",
|
||||
"@types/lodash": "^4.14.195",
|
||||
"@types/node": "^20.2.5",
|
||||
"@vitejs/plugin-vue": "^4.2.3",
|
||||
"@vitejs/plugin-vue-jsx": "^3.0.1",
|
||||
"@vue/eslint-config-prettier": "^7.1.0",
|
||||
"@vue/eslint-config-typescript": "^11.0.3",
|
||||
"@vue/tsconfig": "^0.4.0",
|
||||
"autoprefixer": "^7.1.2",
|
||||
"eslint": "^8.39.0",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"eslint": "^8.42.0",
|
||||
"eslint-plugin-vue": "^9.11.0",
|
||||
"postcss-import": "^11.0.0",
|
||||
"postcss-url": "^7.2.1",
|
||||
"postcss-import": "^15.1.0",
|
||||
"postcss-url": "^10.1.3",
|
||||
"typescript": "^5.1.3",
|
||||
"vite": "^4.3.5"
|
||||
},
|
||||
|
||||
@ -1,16 +1,32 @@
|
||||
<script setup lang="ts">
|
||||
defineProps(['modelValue'])
|
||||
defineEmits(['update:modelValue'])
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps<{ modelValue: string[] | boolean; value?: string }>()
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
|
||||
const isChecked = computed(() =>
|
||||
Array.isArray(props.modelValue) ? props.modelValue.includes(props.value ?? '') : props.modelValue
|
||||
)
|
||||
|
||||
function onUpdate() {
|
||||
if (Array.isArray(props.modelValue) && props.value) {
|
||||
const newValue = [...props.modelValue]
|
||||
|
||||
if (isChecked.value) {
|
||||
newValue.splice(newValue.indexOf(props.value), 1)
|
||||
} else {
|
||||
newValue.push(props.value)
|
||||
}
|
||||
|
||||
emit('update:modelValue', newValue)
|
||||
} else {
|
||||
emit('update:modelValue', !isChecked.value)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<button
|
||||
class="button is-rounded"
|
||||
:class="modelValue ? 'is-info' : ''"
|
||||
@click="$emit('update:modelValue', !modelValue)"
|
||||
>
|
||||
<button class="button is-rounded" :class="isChecked ? 'is-info' : ''" @click="onUpdate">
|
||||
<slot></slot>
|
||||
</button>
|
||||
</template>
|
||||
|
||||
<style></style>
|
||||
|
||||
@ -1,33 +0,0 @@
|
||||
<template>
|
||||
<section class="container">
|
||||
<div class="hero is-medium is-bold">
|
||||
<div class="hero-body">
|
||||
<h1 class="title">Stardew Community Checklist</h1>
|
||||
<h2 class="subtitle">Track Your Progress on the Community Center!</h2>
|
||||
</div>
|
||||
</div>
|
||||
<New :class="ShowModal ? 'is-active' : ''" v-on:dismiss-modal="ShowModal = false"></New>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ItemCard from '@/components/item_card/ItemCard.vue'
|
||||
import New from '@/components/New.vue'
|
||||
export default {
|
||||
components: { ItemCard, New },
|
||||
name: 'welcome',
|
||||
data: function () {
|
||||
return {
|
||||
ShowModal: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
if (localStorage.getItem('new_visit') === null) {
|
||||
this.ShowModal = true
|
||||
localStorage.setItem('new_visit', 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
@ -1,3 +1,8 @@
|
||||
<script setup lang="ts">
|
||||
defineProps<{ modelValue: string }>()
|
||||
defineEmits<{ (e: 'update:modelValue', value: string): void }>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
@ -9,26 +14,11 @@
|
||||
<input
|
||||
class="input"
|
||||
placeholder="Item Name"
|
||||
v-bind:value="value"
|
||||
v-on:input="$emit('input', $event.target.value)"
|
||||
:value="modelValue"
|
||||
@input="$emit('update:modelValue', $event.target?.value)"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'item-search',
|
||||
props: {
|
||||
value: {
|
||||
default() {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
|
||||
@ -1,133 +0,0 @@
|
||||
<template>
|
||||
<section class="section">
|
||||
<search-form v-model="search"></search-form>
|
||||
<section class="container">
|
||||
<div class="columns is-multiline">
|
||||
<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"
|
||||
>
|
||||
<item-card :item="item"></item-card>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SearchForm from '@/components/search/SearchForm.vue'
|
||||
import ItemCard from '@/components/item_card/ItemCard.vue'
|
||||
import ItemTable from '@/components/item_table/ItemTable.vue'
|
||||
import _ from 'lodash'
|
||||
export default {
|
||||
name: 'search',
|
||||
components: {
|
||||
SearchForm,
|
||||
ItemCard,
|
||||
ItemTable
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
search: {
|
||||
name_filter: '',
|
||||
season_filter: {
|
||||
selected_seasons: ['spring', 'summer', 'fall', 'winter'],
|
||||
season_exclusive: false
|
||||
},
|
||||
skill_filter: {
|
||||
selected_skills: ['farming', 'foraging', 'mining', 'fishing', 'combat'],
|
||||
skill_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
filtered_items() {
|
||||
var self = this
|
||||
return _.orderBy(
|
||||
self.$store.state.items
|
||||
.filter((item) => !(this.$store.state.HideCompleted && this.isItemComplete(item)))
|
||||
.filter(
|
||||
(item) => item.name.toLowerCase().indexOf(self.search.name_filter.toLowerCase()) !== -1
|
||||
)
|
||||
.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'
|
||||
)
|
||||
},
|
||||
CompactView() {
|
||||
return this.$store.state.CompactView
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
FilterSeasons(itemSeasons, seasonFilter) {
|
||||
if (seasonFilter.season_exclusive) {
|
||||
if (itemSeasons.length !== seasonFilter.selected_seasons.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSeasons
|
||||
var b = seasonFilter.selected_seasons
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of seasonFilter.selected_seasons) {
|
||||
if (itemSeasons.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
FilterSkills(itemSkills, skillFilter) {
|
||||
if (skillFilter.skill_exclusive) {
|
||||
if (itemSkills.length !== skillFilter.selected_skills.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSkills
|
||||
var b = skillFilter.selected_skills
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of skillFilter.selected_skills) {
|
||||
if (itemSkills.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
},
|
||||
isItemComplete: function (item) {
|
||||
return item.bundles.every(this.$store.getters.IsBundleItemRedeemed)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
@ -1,59 +1,45 @@
|
||||
<template>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<item-search
|
||||
v-model.lazy="value.name_filter"
|
||||
v-on:input="$emit('input', $event.target.value)"
|
||||
/>
|
||||
</div>
|
||||
<div class="column">
|
||||
<season-filter :value="value.season_filter" v-on:input="UpdateSeasons" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<skill-filter :value="value.skill_filter" v-on:input="UpdateSkills" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
<script setup lang="ts">
|
||||
import ItemSearch from '@/components/search/ItemSearch.vue'
|
||||
import SeasonFilter from '@/components/search/SeasonFilter.vue'
|
||||
import SkillFilter from '@/components/search/SkillFilter.vue'
|
||||
export default {
|
||||
name: 'search-form',
|
||||
props: {
|
||||
value: {
|
||||
default() {
|
||||
return {
|
||||
name_filter: '',
|
||||
season_filter: {
|
||||
selected_seasons: [],
|
||||
season_exclusive: false
|
||||
},
|
||||
skill_filter: {
|
||||
selected_skills: [],
|
||||
skill_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
UpdateSeasons(val) {
|
||||
this.value.season_filter = val
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
UpdateSkills(val) {
|
||||
this.value.skill_filter = val
|
||||
this.$emit('input', this.value)
|
||||
}
|
||||
},
|
||||
components: {
|
||||
ItemSearch,
|
||||
SeasonFilter,
|
||||
SkillFilter
|
||||
}
|
||||
|
||||
interface Filters {
|
||||
nameFilter: string
|
||||
seasonFilter: { selectedSeasons: string[]; seasonExclusive: boolean }
|
||||
skillFilter: { selectedSkills: string[]; skillExclusive: boolean }
|
||||
}
|
||||
|
||||
const props = defineProps<{
|
||||
filters: Filters
|
||||
}>()
|
||||
const emit = defineEmits(['update:filters'])
|
||||
|
||||
function updateName(name: string) {
|
||||
const obj = { ...props.filters, nameFilter: name }
|
||||
console.log(obj, name)
|
||||
emit('update:filters', { filters: { ...props.filters, nameFilter: name } })
|
||||
}
|
||||
|
||||
function updateSeasons(seasonFilter: typeof props.filters.seasonFilter) {
|
||||
console.log(seasonFilter)
|
||||
emit('update:filters', { ...props.filters, seasonFilter })
|
||||
}
|
||||
|
||||
function updateSkills(skillFilter: typeof props.filters.skillFilter) {
|
||||
emit('update:filters', { ...props.filters, skillFilter })
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
<template>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<ItemSearch v-model="filters.nameFilter" />
|
||||
</div>
|
||||
<!-- <div class="column">
|
||||
<SeasonFilter :modelValue="filters.seasonFilter" @update:modelValue="updateSeasons" />
|
||||
</div> -->
|
||||
<!-- <div class="column">
|
||||
<SkillFilter v-model="filters.skillFilter" />
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -1,3 +1,27 @@
|
||||
<script setup lang="ts">
|
||||
import SeasonIcon from '@/components/SeasonIcon.vue'
|
||||
import ButtonCheck from '@/components/ButtonCheckbox.vue'
|
||||
import { useGeneralStore } from '@/store'
|
||||
|
||||
interface ModelValue {
|
||||
selectedSeasons: string[]
|
||||
seasonExclusive: boolean
|
||||
}
|
||||
|
||||
const props = defineProps<{ modelValue: ModelValue }>()
|
||||
const emit = defineEmits<{ (e: 'update:modelValue', value: ModelValue): void }>()
|
||||
|
||||
const store = useGeneralStore()
|
||||
|
||||
function updateSeasons(val: string[]) {
|
||||
emit('update:modelValue', { ...props.modelValue, selectedSeasons: val })
|
||||
}
|
||||
|
||||
function updateExclusive(val: boolean) {
|
||||
emit('update:modelValue', { ...props.modelValue, seasonExclusive: val })
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="field is-horizontal">
|
||||
<div class="field-label is-normal">
|
||||
@ -5,14 +29,14 @@
|
||||
</div>
|
||||
<div class="field-body">
|
||||
<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 store.seasons" :key="season.order">
|
||||
<button-check
|
||||
:value="season.id"
|
||||
:checked="value.selected_seasons"
|
||||
v-on:change="UpdateSeasons"
|
||||
:model-value="modelValue.selectedSeasons"
|
||||
@click="updateSeasons"
|
||||
>
|
||||
<span class="icon is-small">
|
||||
<season-icon :season="season"></season-icon>
|
||||
<season-icon :season="season.id"></season-icon>
|
||||
</span>
|
||||
</button-check>
|
||||
</div>
|
||||
@ -21,8 +45,8 @@
|
||||
<div class="control is-expanded">
|
||||
<button-check
|
||||
class="is-fullwidth"
|
||||
:checked="value.season_exclusive"
|
||||
v-on:change="UpdateExclusive"
|
||||
:model-value="modelValue.seasonExclusive"
|
||||
@click="updateExclusive"
|
||||
>
|
||||
Exclusive
|
||||
</button-check>
|
||||
@ -31,42 +55,3 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import SeasonIcon from '@/components/SeasonIcon.vue'
|
||||
import ButtonCheck from '@/components/ButtonCheckbox.vue'
|
||||
export default {
|
||||
name: 'season-filter',
|
||||
components: {
|
||||
SeasonIcon,
|
||||
ButtonCheck
|
||||
},
|
||||
props: {
|
||||
value: {
|
||||
default() {
|
||||
return {
|
||||
selected_seasons: [],
|
||||
season_exclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
seasons() {
|
||||
return this.$store.state.seasons
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
UpdateSeasons(val) {
|
||||
this.value.selected_seasons = val
|
||||
this.$emit('input', this.value)
|
||||
},
|
||||
UpdateExclusive(val) {
|
||||
this.value.season_exclusive = val
|
||||
this.$emit('input', this.value)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
|
||||
@ -45,8 +45,8 @@ export default {
|
||||
value: {
|
||||
default() {
|
||||
return {
|
||||
selected_skills: [],
|
||||
skill_exclusive: false
|
||||
selectedSkills: [],
|
||||
skillExclusive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { createRouter, createWebHistory } from 'vue-router'
|
||||
|
||||
import Welcome from '@/components/Welcome.vue'
|
||||
import Welcome from '@/views/WelcomeView.vue'
|
||||
import Bundles from '@/views/BundlesView.vue'
|
||||
import BundleItems from '@/components/bundles/BundleItems.vue'
|
||||
import Search from '@/components/search/Search.vue'
|
||||
import Search from '@/views/SearchView.vue'
|
||||
import Settings from '@/views/SettingsView.vue'
|
||||
import ChangeLog from '@/components/changelog/ChangeLog.vue'
|
||||
|
||||
|
||||
@ -85,6 +85,7 @@ export const useGeneralStore = defineStore('general', {
|
||||
isBundleItemStored(state) {
|
||||
return (bundleItemId: number): boolean => state.StoredBundleItemIds.includes(bundleItemId)
|
||||
},
|
||||
|
||||
getNumberOfBundleItemsStoredInBundle(state) {
|
||||
return (bundleId: number): number => {
|
||||
// FIXME: Need to find a better way of handling undefined here instead of just assigning an arbitrary value
|
||||
@ -110,6 +111,16 @@ export const useGeneralStore = defineStore('general', {
|
||||
}, 0)
|
||||
}
|
||||
},
|
||||
isItemComplete(state) {
|
||||
return (itemId: number): boolean => {
|
||||
const item = this.getItemById(itemId)
|
||||
|
||||
if (!item) return false
|
||||
|
||||
const bundleItems = this.getBundleItemsForItem(itemId)
|
||||
return bundleItems.every((bundleItem) => state.StoredBundleItemIds.includes(bundleItem.id))
|
||||
}
|
||||
},
|
||||
isBundleComplete() {
|
||||
return (bundleId: number): boolean => {
|
||||
return (
|
||||
|
||||
115
src/views/SearchView.vue
Normal file
115
src/views/SearchView.vue
Normal file
@ -0,0 +1,115 @@
|
||||
<script setup lang="ts">
|
||||
import ItemCard from '@/components/item_card/ItemCard.vue'
|
||||
import ItemTable from '@/components/item_table/ItemTable.vue'
|
||||
import SearchForm from '@/components/search/SearchForm.vue'
|
||||
import ItemSearch from '@/components/search/ItemSearch.vue'
|
||||
import { useGeneralStore } from '@/store'
|
||||
import _ from 'lodash'
|
||||
import { computed, reactive } from 'vue'
|
||||
|
||||
const store = useGeneralStore()
|
||||
|
||||
const filters = reactive({
|
||||
nameFilter: '',
|
||||
seasonFilter: {
|
||||
selectedSeasons: ['spring', 'summer', 'fall', 'winter'],
|
||||
seasonExclusive: false
|
||||
},
|
||||
skillFilter: {
|
||||
selectedSkills: ['farming', 'foraging', 'mining', 'fishing', 'combat'],
|
||||
skillExclusive: false
|
||||
}
|
||||
})
|
||||
|
||||
function filterSeasons(itemSeasons: string[]) {
|
||||
if (filters.seasonFilter.seasonExclusive) {
|
||||
if (itemSeasons.length !== filters.seasonFilter.selectedSeasons.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSeasons
|
||||
var b = filters.seasonFilter.selectedSeasons
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of filters.seasonFilter.selectedSeasons) {
|
||||
if (itemSeasons.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
function filterSkills(itemSkills: string[]) {
|
||||
if (filters.skillFilter.skillExclusive) {
|
||||
if (itemSkills.length !== filters.skillFilter.selectedSkills.length) {
|
||||
return false
|
||||
} else {
|
||||
var a = itemSkills
|
||||
var b = filters.skillFilter.selectedSkills
|
||||
a.sort()
|
||||
b.sort()
|
||||
for (var i = 0; i < a.length; ++i) {
|
||||
if (a[i] !== b[i]) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
for (var season of filters.skillFilter.selectedSkills) {
|
||||
if (itemSkills.indexOf(season) !== -1) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
const filteredItems = computed(() => {
|
||||
return _.orderBy(
|
||||
store.items
|
||||
.filter((item) => !(store.HideCompleted && store.isItemComplete(item.id)))
|
||||
.filter((item) => item.name.toLowerCase().indexOf(filters.nameFilter.toLowerCase()) !== -1)
|
||||
.filter((item) => filterSeasons(item.seasons))
|
||||
.filter((item) => filterSkills(item.skills)),
|
||||
'name'
|
||||
)
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="section">
|
||||
<SearchForm v-model:filters="filters"></SearchForm>
|
||||
<!-- <div class="columns">
|
||||
<div class="column">
|
||||
<ItemSearch v-model="filters.nameFilter" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<season-filter :value="seasonFilter" v-on:input="updateSeasons" />
|
||||
</div>
|
||||
<div class="column">
|
||||
<skill-filter :value="skillFilter" v-on:input="updateSkills" />
|
||||
</div>
|
||||
</div> -->
|
||||
<section class="container">
|
||||
<div class="columns is-multiline">
|
||||
<item-table v-if="store.CompactView" :items="filteredItems" />
|
||||
<div
|
||||
v-else
|
||||
class="column is-3-widescreen is-4-desktop is-12-mobile is-6-tablet is-flex"
|
||||
v-for="item in filteredItems"
|
||||
:key="item.id"
|
||||
>
|
||||
<item-card :item="item"></item-card>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</template>
|
||||
27
src/views/WelcomeView.vue
Normal file
27
src/views/WelcomeView.vue
Normal file
@ -0,0 +1,27 @@
|
||||
<script setup lang="ts">
|
||||
import New from '@/components/New.vue'
|
||||
import { onMounted, ref } from 'vue'
|
||||
|
||||
const showModal = ref(false)
|
||||
|
||||
onMounted(() => {
|
||||
if (localStorage.getItem('visited') === null) {
|
||||
showModal.value = true
|
||||
localStorage.setItem('visited', 'true')
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<section class="container">
|
||||
<div class="hero is-medium is-bold">
|
||||
<div class="hero-body">
|
||||
<h1 class="title">Stardew Community Checklist</h1>
|
||||
<h2 class="subtitle">Track Your Progress on the Community Center!</h2>
|
||||
</div>
|
||||
</div>
|
||||
<New :class="showModal ? 'is-active' : ''" v-on:dismiss-modal="showModal = false"></New>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<style scoped></style>
|
||||
164
yarn.lock
164
yarn.lock
@ -412,10 +412,10 @@
|
||||
minimatch "^3.1.2"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@eslint/js@8.41.0":
|
||||
version "8.41.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.41.0.tgz#080321c3b68253522f7646b55b577dd99d2950b3"
|
||||
integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==
|
||||
"@eslint/js@8.42.0":
|
||||
version "8.42.0"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6"
|
||||
integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==
|
||||
|
||||
"@fortawesome/fontawesome-common-types@6.4.0":
|
||||
version "6.4.0"
|
||||
@ -460,7 +460,7 @@
|
||||
resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz#633e2998d11f7d4ed41f0d5ea461a22ec9b9d034"
|
||||
integrity sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==
|
||||
|
||||
"@humanwhocodes/config-array@^0.11.8":
|
||||
"@humanwhocodes/config-array@^0.11.10":
|
||||
version "0.11.10"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2"
|
||||
integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==
|
||||
@ -561,16 +561,16 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
|
||||
integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
|
||||
|
||||
"@types/node@*":
|
||||
"@types/lodash@^4.14.195":
|
||||
version "4.14.195"
|
||||
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632"
|
||||
integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==
|
||||
|
||||
"@types/node@*", "@types/node@^20.2.5":
|
||||
version "20.2.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.5.tgz#26d295f3570323b2837d322180dfbf1ba156fefb"
|
||||
integrity sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==
|
||||
|
||||
"@types/node@^18.16.8":
|
||||
version "18.16.16"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.16.tgz#3b64862856c7874ccf7439e6bab872d245c86d8e"
|
||||
integrity sha512-NpaM49IGQQAUlBhHMF82QH80J08os4ZmyF9MkpCzWAGuOHqE4gTEbhzd7L3l5LmWuZ6E0OiC1FweQ4tsiW35+g==
|
||||
|
||||
"@types/semver@^7.3.12":
|
||||
version "7.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a"
|
||||
@ -872,16 +872,17 @@ array-union@^2.1.0:
|
||||
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
|
||||
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
|
||||
|
||||
autoprefixer@^7.1.2:
|
||||
version "7.2.6"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc"
|
||||
autoprefixer@^10.4.14:
|
||||
version "10.4.14"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
|
||||
integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
|
||||
dependencies:
|
||||
browserslist "^2.11.3"
|
||||
caniuse-lite "^1.0.30000805"
|
||||
browserslist "^4.21.5"
|
||||
caniuse-lite "^1.0.30001464"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
num2fraction "^1.2.2"
|
||||
postcss "^6.0.17"
|
||||
postcss-value-parser "^3.2.3"
|
||||
picocolors "^1.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -911,14 +912,7 @@ braces@^3.0.2, braces@~3.0.2:
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^2.11.3:
|
||||
version "2.11.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000792"
|
||||
electron-to-chromium "^1.3.30"
|
||||
|
||||
browserslist@^4.21.3:
|
||||
browserslist@^4.21.3, browserslist@^4.21.5:
|
||||
version "4.21.7"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551"
|
||||
integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA==
|
||||
@ -943,16 +937,12 @@ camelcase@^6.0.0:
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805:
|
||||
version "1.0.30000810"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz#47585fffce0e9f3593a6feea4673b945424351d9"
|
||||
|
||||
caniuse-lite@^1.0.30001489:
|
||||
caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001489:
|
||||
version "1.0.30001492"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz#4a06861788a52b4c81fd3344573b68cc87fe062b"
|
||||
integrity sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw==
|
||||
|
||||
chalk@^2.0.0, chalk@^2.3.1:
|
||||
chalk@^2.0.0:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
dependencies:
|
||||
@ -1063,10 +1053,6 @@ doctrine@^3.0.0:
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
|
||||
electron-to-chromium@^1.3.30:
|
||||
version "1.3.34"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz#d93498f40391bb0c16a603d8241b9951404157ed"
|
||||
|
||||
electron-to-chromium@^1.4.411:
|
||||
version "1.4.417"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.417.tgz#a0c7eb992e68287fa50c8da5a5238b01f20b9a82"
|
||||
@ -1165,16 +1151,16 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994"
|
||||
integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
|
||||
|
||||
eslint@^8.39.0:
|
||||
version "8.41.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.41.0.tgz#3062ca73363b4714b16dbc1e60f035e6134b6f1c"
|
||||
integrity sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==
|
||||
eslint@^8.42.0:
|
||||
version "8.42.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291"
|
||||
integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.2.0"
|
||||
"@eslint-community/regexpp" "^4.4.0"
|
||||
"@eslint/eslintrc" "^2.0.3"
|
||||
"@eslint/js" "8.41.0"
|
||||
"@humanwhocodes/config-array" "^0.11.8"
|
||||
"@eslint/js" "8.42.0"
|
||||
"@humanwhocodes/config-array" "^0.11.10"
|
||||
"@humanwhocodes/module-importer" "^1.0.1"
|
||||
"@nodelib/fs.walk" "^1.2.8"
|
||||
ajv "^6.10.0"
|
||||
@ -1323,6 +1309,11 @@ flatted@^3.1.0:
|
||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
|
||||
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
|
||||
|
||||
fraction.js@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
|
||||
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
@ -1527,10 +1518,6 @@ lodash.merge@^4.6.2:
|
||||
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||
|
||||
lodash@^4.17.19:
|
||||
version "4.17.20"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
|
||||
|
||||
lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
@ -1557,6 +1544,13 @@ magic-string@^0.30.0:
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.13"
|
||||
|
||||
make-dir@~3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
||||
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
|
||||
dependencies:
|
||||
semver "^6.0.0"
|
||||
|
||||
mdi-vue@^3.0.13:
|
||||
version "3.0.13"
|
||||
resolved "https://registry.yarnpkg.com/mdi-vue/-/mdi-vue-3.0.13.tgz#d3ab6b4b121ed34bedf2fdc92d3e3465dfd0fd36"
|
||||
@ -1577,9 +1571,10 @@ micromatch@^4.0.4:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime@^1.4.1:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
||||
mime@~2.5.2:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
|
||||
integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
|
||||
|
||||
minimatch@^3.0.4:
|
||||
version "3.0.4"
|
||||
@ -1594,15 +1589,12 @@ minimatch@^3.0.5, minimatch@^3.1.2:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@0.0.8:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
|
||||
|
||||
mkdirp@^0.5.0:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
minimatch@~3.0.4:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
|
||||
integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==
|
||||
dependencies:
|
||||
minimist "0.0.8"
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
ms@2.1.2:
|
||||
version "2.1.2"
|
||||
@ -1644,10 +1636,6 @@ nth-check@^2.0.1:
|
||||
dependencies:
|
||||
boolbase "^1.0.0"
|
||||
|
||||
num2fraction@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
|
||||
|
||||
once@^1.3.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
@ -1744,12 +1732,12 @@ pinia@^2.1.3:
|
||||
"@vue/devtools-api" "^6.5.0"
|
||||
vue-demi ">=0.14.5"
|
||||
|
||||
postcss-import@^11.0.0:
|
||||
version "11.1.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-11.1.0.tgz#55c9362c9192994ec68865d224419df1db2981f0"
|
||||
postcss-import@^15.1.0:
|
||||
version "15.1.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
|
||||
integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
|
||||
dependencies:
|
||||
postcss "^6.0.1"
|
||||
postcss-value-parser "^3.2.3"
|
||||
postcss-value-parser "^4.0.0"
|
||||
read-cache "^1.0.0"
|
||||
resolve "^1.1.7"
|
||||
|
||||
@ -1761,27 +1749,20 @@ postcss-selector-parser@^6.0.9:
|
||||
cssesc "^3.0.0"
|
||||
util-deprecate "^1.0.2"
|
||||
|
||||
postcss-url@^7.2.1:
|
||||
version "7.3.1"
|
||||
resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-7.3.1.tgz#b43ae0f0dae4cd06c831fa3aeac2d7a5b73754ed"
|
||||
postcss-url@^10.1.3:
|
||||
version "10.1.3"
|
||||
resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-10.1.3.tgz#54120cc910309e2475ec05c2cfa8f8a2deafdf1e"
|
||||
integrity sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==
|
||||
dependencies:
|
||||
mime "^1.4.1"
|
||||
minimatch "^3.0.4"
|
||||
mkdirp "^0.5.0"
|
||||
postcss "^6.0.1"
|
||||
xxhashjs "^0.2.1"
|
||||
make-dir "~3.1.0"
|
||||
mime "~2.5.2"
|
||||
minimatch "~3.0.4"
|
||||
xxhashjs "~0.2.2"
|
||||
|
||||
postcss-value-parser@^3.2.3:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15"
|
||||
|
||||
postcss@^6.0.1, postcss@^6.0.17:
|
||||
version "6.0.19"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.19.tgz#76a78386f670b9d9494a655bf23ac012effd1555"
|
||||
dependencies:
|
||||
chalk "^2.3.1"
|
||||
source-map "^0.6.1"
|
||||
supports-color "^5.2.0"
|
||||
postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@^8.1.10, postcss@^8.4.23:
|
||||
version "8.4.24"
|
||||
@ -1873,7 +1854,7 @@ sass@^1.62.1:
|
||||
immutable "^4.0.0"
|
||||
source-map-js ">=0.6.2 <2.0.0"
|
||||
|
||||
semver@^6.3.0:
|
||||
semver@^6.0.0, semver@^6.3.0:
|
||||
version "6.3.0"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
|
||||
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
|
||||
@ -1907,10 +1888,6 @@ slash@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
||||
source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
|
||||
strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
@ -1923,7 +1900,7 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
||||
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
|
||||
|
||||
supports-color@^5.2.0, supports-color@^5.3.0:
|
||||
supports-color@^5.3.0:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
|
||||
dependencies:
|
||||
@ -2074,9 +2051,10 @@ xml-name-validator@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
|
||||
integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
|
||||
|
||||
xxhashjs@^0.2.1:
|
||||
xxhashjs@~0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/xxhashjs/-/xxhashjs-0.2.2.tgz#8a6251567621a1c46a5ae204da0249c7f8caa9d8"
|
||||
integrity sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==
|
||||
dependencies:
|
||||
cuint "^0.2.2"
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user