refactor: use defineModel

This commit is contained in:
三咲智子 2023-01-06 23:46:36 +08:00
parent 85ac005570
commit cffcddefb9
No known key found for this signature in database
GPG key ID: 69992F2250DFD93E
9 changed files with 177 additions and 138 deletions

View file

@ -1,14 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
const props = withDefaults(defineProps<{
modelValue?: boolean
}>(), {
modelValue: true,
})
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'update:modelValue', v: boolean): void
(event: 'close'): void (event: 'close'): void
}>() }>()
const visible = useVModel(props, 'modelValue', emit, { passive: true }) const { modelValue: visible } = defineModel<{
modelValue?: boolean
}>()
function close() { function close() {
emit('close') emit('close')

View file

@ -4,8 +4,6 @@ import { Cropper } from 'vue-advanced-cropper'
import 'vue-advanced-cropper/dist/style.css' import 'vue-advanced-cropper/dist/style.css'
export interface Props { export interface Props {
/** Images to be cropped */
modelValue?: File | null
/** Crop frame aspect ratio (width/height), default 1/1 */ /** Crop frame aspect ratio (width/height), default 1/1 */
stencilAspectRatio?: number stencilAspectRatio?: number
/** The ratio of the longest edge of the cut box to the length of the cut screen, default 0.9, not more than 1 */ /** The ratio of the longest edge of the cut box to the length of the cut screen, default 0.9, not more than 1 */
@ -16,12 +14,11 @@ const props = withDefaults(defineProps<Props>(), {
stencilSizePercentage: 0.9, stencilSizePercentage: 0.9,
}) })
const emit = defineEmits<{ const { modelValue: file } = defineModel<{
(event: 'update:modelValue', value: File): void /** Images to be cropped */
modelValue: File | null
}>() }>()
const vmFile = useVModel(props, 'modelValue', emit, { passive: true })
const cropperDialog = ref(false) const cropperDialog = ref(false)
const cropper = ref<InstanceType<typeof Cropper>>() const cropper = ref<InstanceType<typeof Cropper>>()
@ -40,7 +37,7 @@ const stencilSize = ({ boundaries }: { boundaries: Boundaries }) => {
} }
} }
watch(vmFile, (file, _, onCleanup) => { watch(file, (file, _, onCleanup) => {
let expired = false let expired = false
onCleanup(() => expired = true) onCleanup(() => expired = true)
@ -59,12 +56,12 @@ watch(vmFile, (file, _, onCleanup) => {
}) })
const cropImage = () => { const cropImage = () => {
if (cropper.value && vmFile.value) { if (cropper.value && file.value) {
cropperFlag.value = true cropperFlag.value = true
cropperDialog.value = false cropperDialog.value = false
const { canvas } = cropper.value.getResult() const { canvas } = cropper.value.getResult()
canvas?.toBlob((blob) => { canvas?.toBlob((blob) => {
vmFile.value = new File([blob as any], `cropped${vmFile.value?.name}` as string, { type: blob?.type }) file.value = new File([blob as any], `cropped${file.value?.name}` as string, { type: blob?.type })
}, cropperImage.type) }, cropperImage.type)
} }
} }

View file

@ -3,7 +3,6 @@ import { fileOpen } from 'browser-fs-access'
import type { FileWithHandle } from 'browser-fs-access' import type { FileWithHandle } from 'browser-fs-access'
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
modelValue?: FileWithHandle | null
/** The image src before change */ /** The image src before change */
original?: string original?: string
/** Allowed file types */ /** Allowed file types */
@ -19,12 +18,13 @@ const props = withDefaults(defineProps<{
allowedFileSize: 1024 * 1024 * 5, // 5 MB allowedFileSize: 1024 * 1024 * 5, // 5 MB
}) })
const emit = defineEmits<{ const emit = defineEmits<{
(event: 'update:modelValue', value: FileWithHandle): void
(event: 'pick', value: FileWithHandle): void (event: 'pick', value: FileWithHandle): void
(event: 'error', code: number, message: string): void (event: 'error', code: number, message: string): void
}>() }>()
const file = useVModel(props, 'modelValue', emit, { passive: true }) const { modelValue: file } = defineModel<{
modelValue: FileWithHandle | null
}>()
const { t } = useI18n() const { t } = useI18n()

View file

@ -2,9 +2,6 @@
import { useFocusTrap } from '@vueuse/integrations/useFocusTrap' import { useFocusTrap } from '@vueuse/integrations/useFocusTrap'
export interface Props { export interface Props {
/** v-model dislog visibility */
modelValue: boolean
/** /**
* level of depth * level of depth
* *
@ -48,11 +45,13 @@ const props = withDefaults(defineProps<Props>(), {
const emit = defineEmits<{ const emit = defineEmits<{
/** v-model dialog visibility */ /** v-model dialog visibility */
(event: 'update:modelValue', value: boolean): void
(event: 'close',): void (event: 'close',): void
}>() }>()
const visible = useVModel(props, 'modelValue', emit, { passive: true }) const { modelValue: visible } = defineModel<{
/** v-model dislog visibility */
modelValue: boolean
}>()
const deactivated = useDeactivated() const deactivated = useDeactivated()
const route = useRoute() const route = useRoute()

View file

@ -3,19 +3,20 @@ import { SwipeDirection } from '@vueuse/core'
import { useReducedMotion } from '@vueuse/motion' import { useReducedMotion } from '@vueuse/motion'
import type { Attachment } from 'masto' import type { Attachment } from 'masto'
const props = withDefaults(defineProps<{ media: Attachment[]; threshold?: number; modelValue: number }>(), { const { media = [], threshold = 20 } = defineProps<{
media: [] as any, media?: Attachment[]
threshold: 20, threshold?: number
modelValue: 0, }>()
})
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'update:modelValue', v: boolean): void
(event: 'close'): void (event: 'close'): void
}>() }>()
const { modelValue } = defineModel<{
modelValue: number
}>()
const target = ref() const target = ref()
const index = useVModel(props, 'modelValue', emit)
const animateTimeout = useTimeout(10) const animateTimeout = useTimeout(10)
const reduceMotion = useReducedMotion() const reduceMotion = useReducedMotion()
@ -28,15 +29,15 @@ const { isSwiping, lengthX, lengthY, direction } = useSwipe(target, {
passive: false, passive: false,
onSwipeEnd(e, direction) { onSwipeEnd(e, direction) {
// eslint-disable-next-line @typescript-eslint/no-use-before-define // eslint-disable-next-line @typescript-eslint/no-use-before-define
if (direction === SwipeDirection.RIGHT && Math.abs(distanceX.value) > props.threshold) if (direction === SwipeDirection.RIGHT && Math.abs(distanceX.value) > threshold)
index.value = Math.max(0, index.value - 1) modelValue.value = Math.max(0, modelValue.value - 1)
// eslint-disable-next-line @typescript-eslint/no-use-before-define // eslint-disable-next-line @typescript-eslint/no-use-before-define
if (direction === SwipeDirection.LEFT && Math.abs(distanceX.value) > props.threshold) if (direction === SwipeDirection.LEFT && Math.abs(distanceX.value) > threshold)
index.value = Math.min(props.media.length - 1, index.value + 1) modelValue.value = Math.min(media.length - 1, modelValue.value + 1)
// eslint-disable-next-line @typescript-eslint/no-use-before-define // eslint-disable-next-line @typescript-eslint/no-use-before-define
if (direction === SwipeDirection.UP && Math.abs(distanceY.value) > props.threshold) if (direction === SwipeDirection.UP && Math.abs(distanceY.value) > threshold)
emit('close') emit('close')
}, },
}) })
@ -46,9 +47,9 @@ const distanceX = computed(() => {
return 0 return 0
if (!isSwiping.value || (direction.value !== SwipeDirection.LEFT && direction.value !== SwipeDirection.RIGHT)) if (!isSwiping.value || (direction.value !== SwipeDirection.LEFT && direction.value !== SwipeDirection.RIGHT))
return index.value * 100 * -1 return modelValue.value * 100 * -1
return (lengthX.value / width.value) * 100 * -1 + (index.value * 100) * -1 return (lengthX.value / width.value) * 100 * -1 + (modelValue.value * 100) * -1
}) })
const distanceY = computed(() => { const distanceY = computed(() => {

View file

@ -38,12 +38,12 @@ const moreMenuVisible = ref(false)
<div i-ri:earth-line /> <div i-ri:earth-line />
</NuxtLink> </NuxtLink>
</template> </template>
<NavBottomMoreMenu v-slot="{ changeShow, show }" v-model="moreMenuVisible" flex flex-row items-center place-content-center h-full flex-1 cursor-pointer> <NavBottomMoreMenu v-slot="{ toggleVisible, show }" v-model="moreMenuVisible" flex flex-row items-center place-content-center h-full flex-1 cursor-pointer>
<label <label
flex items-center place-content-center h-full flex-1 class="select-none" flex items-center place-content-center h-full flex-1 class="select-none"
:class="show ? '!text-primary' : ''" :class="show ? '!text-primary' : ''"
> >
<input type="checkbox" z="-1" absolute inset-0 opacity-0 @click="changeShow"> <input type="checkbox" z="-1" absolute inset-0 opacity-0 @click="toggleVisible">
<span v-show="show" i-ri:close-fill /> <span v-show="show" i-ri:close-fill />
<span v-show="!show" i-ri:more-fill /> <span v-show="!show" i-ri:more-fill />
</label> </label>

View file

@ -1,24 +1,20 @@
<script lang="ts" setup> <script lang="ts" setup>
const props = defineProps<{ let { modelValue } = $defineModel<{
modelValue?: boolean modelValue: boolean
}>() }>()
const emit = defineEmits<{
(event: 'update:modelValue', value: boolean): void
}>()
const visible = useVModel(props, 'modelValue', emit, { passive: true })
const colorMode = useColorMode() const colorMode = useColorMode()
function changeShow() { function toggleVisible() {
visible.value = !visible.value modelValue = !modelValue
} }
const buttonEl = ref<HTMLDivElement>() const buttonEl = ref<HTMLDivElement>()
/** Close the drop-down menu if the mouse click is not on the drop-down menu button when the drop-down menu is opened */ /** Close the drop-down menu if the mouse click is not on the drop-down menu button when the drop-down menu is opened */
function clickEvent(mouse: MouseEvent) { function clickEvent(mouse: MouseEvent) {
if (mouse.target && !buttonEl.value?.children[0].contains(mouse.target as any)) { if (mouse.target && !buttonEl.value?.children[0].contains(mouse.target as any)) {
if (visible.value) { if (modelValue) {
document.removeEventListener('click', clickEvent) document.removeEventListener('click', clickEvent)
visible.value = false modelValue = false
} }
} }
} }
@ -27,7 +23,7 @@ function toggleDark() {
colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark' colorMode.preference = colorMode.value === 'dark' ? 'light' : 'dark'
} }
watch(visible, (val) => { watch($$(modelValue), (val) => {
if (val && typeof document !== 'undefined') if (val && typeof document !== 'undefined')
document.addEventListener('click', clickEvent) document.addEventListener('click', clickEvent)
}) })
@ -39,7 +35,7 @@ onBeforeUnmount(() => {
<template> <template>
<div ref="buttonEl" flex items-center static> <div ref="buttonEl" flex items-center static>
<slot :change-show="changeShow" :show="visible" /> <slot :toggle-visible="toggleVisible" :show="modelValue" />
<!-- Drawer --> <!-- Drawer -->
<Transition <Transition
@ -51,7 +47,7 @@ onBeforeUnmount(() => {
leave-to-class="opacity-0 children:(transform translate-y-full)" leave-to-class="opacity-0 children:(transform translate-y-full)"
> >
<div <div
v-show="visible" v-show="modelValue"
absolute inset-x-0 top-auto bottom-full z-20 h-100vh absolute inset-x-0 top-auto bottom-full z-20 h-100vh
flex items-end of-y-scroll of-x-hidden scrollbar-hide overscroll-none flex items-end of-y-scroll of-x-hidden scrollbar-hide overscroll-none
bg="black/50" bg="black/50"

View file

@ -86,7 +86,7 @@
"@types/wicg-file-system-access": "^2020.9.5", "@types/wicg-file-system-access": "^2020.9.5",
"@unocss/nuxt": "^0.48.0", "@unocss/nuxt": "^0.48.0",
"@vitejs/plugin-vue": "^3.2.0", "@vitejs/plugin-vue": "^3.2.0",
"@vue-macros/nuxt": "^0.2.2", "@vue-macros/nuxt": "^0.2.8",
"@vueuse/nuxt": "^9.9.0", "@vueuse/nuxt": "^9.9.0",
"bumpp": "^8.2.1", "bumpp": "^8.2.1",
"emoji-mart": "^5.4.0", "emoji-mart": "^5.4.0",

View file

@ -33,7 +33,7 @@ specifiers:
'@types/wicg-file-system-access': ^2020.9.5 '@types/wicg-file-system-access': ^2020.9.5
'@unocss/nuxt': ^0.48.0 '@unocss/nuxt': ^0.48.0
'@vitejs/plugin-vue': ^3.2.0 '@vitejs/plugin-vue': ^3.2.0
'@vue-macros/nuxt': ^0.2.2 '@vue-macros/nuxt': ^0.2.8
'@vueuse/core': ^9.9.0 '@vueuse/core': ^9.9.0
'@vueuse/gesture': 2.0.0-beta.1 '@vueuse/gesture': 2.0.0-beta.1
'@vueuse/integrations': ^9.9.0 '@vueuse/integrations': ^9.9.0
@ -146,7 +146,7 @@ devDependencies:
'@types/wicg-file-system-access': 2020.9.5 '@types/wicg-file-system-access': 2020.9.5
'@unocss/nuxt': 0.48.0 '@unocss/nuxt': 0.48.0
'@vitejs/plugin-vue': 3.2.0 '@vitejs/plugin-vue': 3.2.0
'@vue-macros/nuxt': 0.2.2_3nbxte3dhogb6b7pemmre2vo4m '@vue-macros/nuxt': 0.2.8_3nbxte3dhogb6b7pemmre2vo4m
'@vueuse/nuxt': 9.9.0_nuxt@3.0.0 '@vueuse/nuxt': 9.9.0_nuxt@3.0.0
bumpp: 8.2.1 bumpp: 8.2.1
emoji-mart: 5.4.0 emoji-mart: 5.4.0
@ -167,7 +167,7 @@ devDependencies:
typescript: 4.9.4 typescript: 4.9.4
unplugin-auto-import: 0.12.1_@vueuse+core@9.9.0 unplugin-auto-import: 0.12.1_@vueuse+core@9.9.0
vite-plugin-inspect: 0.7.11 vite-plugin-inspect: 0.7.11
vite-plugin-pwa: 0.13.3 vite-plugin-pwa: 0.13.3_workbox-window@6.5.4
vitest: 0.26.2_jsdom@20.0.3 vitest: 0.26.2_jsdom@20.0.3
vue-tsc: 1.0.16_typescript@4.9.4 vue-tsc: 1.0.16_typescript@4.9.4
workbox-window: 6.5.4 workbox-window: 6.5.4
@ -572,6 +572,14 @@ packages:
dependencies: dependencies:
'@babel/types': 7.20.5 '@babel/types': 7.20.5
/@babel/parser/7.20.7:
resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.20.7
dev: true
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.5: /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.20.5:
resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@ -1454,6 +1462,15 @@ packages:
'@babel/helper-validator-identifier': 7.19.1 '@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0 to-fast-properties: 2.0.0
/@babel/types/7.20.7:
resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.19.4
'@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0
dev: true
/@cloudflare/kv-asset-handler/0.2.0: /@cloudflare/kv-asset-handler/0.2.0:
resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==} resolution: {integrity: sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==}
dependencies: dependencies:
@ -3150,12 +3167,25 @@ packages:
muggle-string: 0.1.0 muggle-string: 0.1.0
dev: true dev: true
/@volar/language-core/1.0.22:
resolution: {integrity: sha512-hiJeCOqxNdtG/04FRGLGI9H9DVz2l6cTqPDBzwqplHXAWfMxjzUaGUrn9sfTG7YMFNZUgK4EYxJnRfhqdtbSFQ==}
dependencies:
'@volar/source-map': 1.0.22
muggle-string: 0.1.0
dev: true
/@volar/source-map/1.0.16: /@volar/source-map/1.0.16:
resolution: {integrity: sha512-PKjzmQcg8QOGC/1V9tmGh2jcy6bKLhkW5bGidElSr83iDbCzLvldt2/La/QlDxaRCHYLT0MeyuGJBZIChB1dYQ==} resolution: {integrity: sha512-PKjzmQcg8QOGC/1V9tmGh2jcy6bKLhkW5bGidElSr83iDbCzLvldt2/La/QlDxaRCHYLT0MeyuGJBZIChB1dYQ==}
dependencies: dependencies:
muggle-string: 0.1.0 muggle-string: 0.1.0
dev: true dev: true
/@volar/source-map/1.0.22:
resolution: {integrity: sha512-cv4gypHSP4MWVR82ed/+1IpI6794qAl0Q0+KJ+VGMVF8rVugsiF9QbyMCgjel9wNRsssQsazzsf6txOR9vHQiw==}
dependencies:
muggle-string: 0.1.0
dev: true
/@volar/typescript/1.0.16: /@volar/typescript/1.0.16:
resolution: {integrity: sha512-Yov+n4oO3iYnuMt9QJAFpJabfTRCzc7KvjlAwBaSuZy+Gc/f9611MgtqAh5/SIGmltFN8dXn1Ijno8ro8I4lyw==} resolution: {integrity: sha512-Yov+n4oO3iYnuMt9QJAFpJabfTRCzc7KvjlAwBaSuZy+Gc/f9611MgtqAh5/SIGmltFN8dXn1Ijno8ro8I4lyw==}
dependencies: dependencies:
@ -3182,31 +3212,31 @@ packages:
'@volar/vue-language-core': 1.0.16 '@volar/vue-language-core': 1.0.16
dev: true dev: true
/@vue-macros/api/0.2.1: /@vue-macros/api/0.2.3:
resolution: {integrity: sha512-5tbvjahcvu+LYnm0c6sB1Ax4KyUzl0kIv8nWBdE/PdQOru98ll5rjIxL/OWbpseSzfsqrHpRvZZK8dKDuZ34pQ==} resolution: {integrity: sha512-T84WwcFvg0Q9E+QHLeLMubYGBoIly5gZaKtBhxbZ7lzYjD5LRi55gKHA5ao8k8DTOulHTpHBLEt25PTldpheJg==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@babel/types': 7.20.5 '@babel/types': 7.20.7
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
dev: true dev: true
/@vue-macros/better-define/1.1.1: /@vue-macros/better-define/1.1.3:
resolution: {integrity: sha512-f9HqwOHt1mmyoBzVUOKAQ+Z2zLxklPdm9FXjG6M8MAKhlwLgG9horTQKUs/oYce65OVf2c8BpDu+0Y91EIG1rw==} resolution: {integrity: sha512-zudEjFa4bYNyjgVWs6kVTn3CeJRtuNVuo/Ny6nHO+OLi6B2G2aRWAQrbp1YI7uvEJYS3dUdnKrX+58icGf1WmQ==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/api': 0.2.1 '@vue-macros/api': 0.2.3
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- vue - vue
dev: true dev: true
/@vue-macros/common/0.13.5: /@vue-macros/common/0.13.6:
resolution: {integrity: sha512-i8BqdPsc+CR9p9KqwGi7QLmLkT+E1rN6qdw5wYI6BIdrayjyxCCoKyRsCoxA2gooZ1UCW75yknmc89zg8yco+w==} resolution: {integrity: sha512-KXweBlWTpsWCPy3TLCRCG4mm4zsRoesZLEjxVo7KJdFYqSQBNmCBKprFkBBl36jzq96FqtZIAgQhv8se1R0vqA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
vue: ^2.7.0 || ^3.2.25 vue: ^2.7.0 || ^3.2.25
@ -3214,14 +3244,14 @@ packages:
vue: vue:
optional: true optional: true
dependencies: dependencies:
'@babel/types': 7.20.5 '@babel/types': 7.20.7
'@vue/compiler-sfc': 3.2.45 '@vue/compiler-sfc': 3.2.45
local-pkg: 0.4.2 local-pkg: 0.4.2
magic-string: 0.27.0 magic-string: 0.27.0
dev: true dev: true
/@vue-macros/define-model/1.1.1_@vueuse+core@9.9.0: /@vue-macros/define-model/1.2.0_@vueuse+core@9.9.0:
resolution: {integrity: sha512-P9kY0s68sH4LxD9ziyqSzO2d2soQcM2467rFMQNJtmvwkhEGWZ8Z2P8RsV96km9R4laQMHiQGq5S6j58/b0drg==} resolution: {integrity: sha512-VJBDuYqgdqoUB2uFqe/qxFI13D73hqdReFqkxJQu7GulU629CUqYujO51BPnbCrd6pbEvGVaExNfQFBoaHq3xw==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
'@vueuse/core': ^9.0.0 '@vueuse/core': ^9.0.0
@ -3230,7 +3260,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vueuse/core': 9.9.0 '@vueuse/core': 9.9.0
ast-walker-scope: 0.3.1 ast-walker-scope: 0.3.1
unplugin: 1.0.1 unplugin: 1.0.1
@ -3239,63 +3269,63 @@ packages:
- vue - vue
dev: true dev: true
/@vue-macros/define-props/0.1.1: /@vue-macros/define-props/0.1.2:
resolution: {integrity: sha512-IZY7+Q90Ja4CQQYaBTXNgIvqfKGFmcjg4Q3EFf9gN6Z9wGGfpzSe1IVOMlWr07rPFynRRGwJAHFoId8xD3hyFQ==} resolution: {integrity: sha512-E7kjLvXxe+QYfRa331vPh0fACsoyOA73lkGlpnFZvGSV08Jx7gXuUfYYQItXD6eMeOc/dhUFkWRVmP5a6r8lwg==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
dev: true dev: true
/@vue-macros/define-render/1.1.1: /@vue-macros/define-render/1.1.2:
resolution: {integrity: sha512-BvUVzA3xaqaNX9/++EV+ksBD6c1RjybuRPi2AKmOZ5SrQjDDVuiUSQjRwpzeLj9XQM5fGBun0AOp3bs7z+rEXA==} resolution: {integrity: sha512-f3kxPUz1JRHaHN7feRpH3KGCo4Za0rVvY5GWWBRrj7XNvk27E+AESHXqdM8xkccQXxatx3z/GhRhrxcvsIcuuA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
vue: ^2.7.0 || ^3.0.0 vue: ^2.7.0 || ^3.0.0
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
dev: true dev: true
/@vue-macros/define-slots/0.1.1: /@vue-macros/define-slots/0.1.2:
resolution: {integrity: sha512-5eTNhcuhiuQhc6fZPDe4RfvhMQQw4AgARn7GNhx6QyLnROwzWVyVKo4YdgKnimv5CO4jcmfEdv6kDEwLDt7zOw==} resolution: {integrity: sha512-cXN5OXX2brSBW0l6dKYu4cH7pE7VonDnvQdpfwPyxWwvObaGF4S2HzqRr4ilLgr+qBpneZiSuMCf09VXdOk6hw==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
vue: ^2.7.0 || ^3.0.0 vue: ^2.7.0 || ^3.0.0
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
dev: true dev: true
/@vue-macros/hoist-static/1.1.1: /@vue-macros/hoist-static/1.1.2:
resolution: {integrity: sha512-K+MZG/UFPYHdipEr+hDcrOFMQhMy7STu2d/C2ytsLImsfovo3YPGejrG97EfB7ed8WWfXRY1X1ORyyRHa6XKsQ==} resolution: {integrity: sha512-luuczHBh8P/DzLNmF9js7i56731/Hq/HED4oamE6lZQzqKe3oCrxjoaoyleVrG0dhv0GfEoMja2Q8e6AmbnKnw==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- vue - vue
dev: true dev: true
/@vue-macros/named-template/0.1.1: /@vue-macros/named-template/0.1.2:
resolution: {integrity: sha512-nc7lk2sxaShbT1xLspiN0w/S5P6jOS/VFuVQ4tEjl2A/qOYmY/VRbMQXmImEwTEJXB6fI7D80CEF3xhBiG0nug==} resolution: {integrity: sha512-+xG+5Nwq1BXzdeNCDiE1GMloZqFIl/AR81GCwHFvL8BHKkX/FdWcb62LYnWkPwlGVqvHopnugfq/UhwGRn1Hgw==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vue/compiler-dom': 3.2.45 '@vue/compiler-dom': 3.2.45
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -3303,17 +3333,17 @@ packages:
- vue - vue
dev: true dev: true
/@vue-macros/nuxt/0.2.2_3nbxte3dhogb6b7pemmre2vo4m: /@vue-macros/nuxt/0.2.8_3nbxte3dhogb6b7pemmre2vo4m:
resolution: {integrity: sha512-z2IwicRGttRjtHHGPSVyFJSRwQHWrF7gRYD2sSz2SctCABR7cLyRpeseDKpqmaSVfEE8oX6al+dUfkB7zfceDw==} resolution: {integrity: sha512-vOMPTGNzBx+pmeZa3nJWRgN9CHYW700EZWVcAMQHrLjgh7vV+JqsA667hoBNnJPjmEBwSe8EzYbc1LFqEZoTZQ==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
nuxt: ^3.0.0 nuxt: ^3.0.0
dependencies: dependencies:
'@nuxt/kit': 3.0.0 '@nuxt/kit': 3.0.0
'@vue-macros/short-vmodel': 1.0.1 '@vue-macros/short-vmodel': 1.0.2
'@vue-macros/volar': 0.5.6_vue-tsc@1.0.16 '@vue-macros/volar': 0.5.9_vue-tsc@1.0.16
nuxt: 3.0.0_lzzuuodtsqwxnvqeq4g4likcqa nuxt: 3.0.0_lzzuuodtsqwxnvqeq4g4likcqa
unplugin-vue-macros: 1.1.1_@vueuse+core@9.9.0 unplugin-vue-macros: 1.3.0_@vueuse+core@9.9.0
transitivePeerDependencies: transitivePeerDependencies:
- '@vueuse/core' - '@vueuse/core'
- esbuild - esbuild
@ -3325,12 +3355,26 @@ packages:
- webpack - webpack
dev: true dev: true
/@vue-macros/setup-block/0.0.2: /@vue-macros/reactivity-transform-vue2/0.0.3:
resolution: {integrity: sha512-kQFbSaw4W2DgPIXcsLMBEpqlknRrh6PT3+Ce2lstrVb3r7uMK4fDjiziLkP9ns7gVjKj+1FBluwuePBJOSSI+A==} resolution: {integrity: sha512-0Bquapvk9SMUpoWzd3vcZa2CwIDhjyHEYi80zwnGNKo9m6ut0oUEs+ed4iUXBvqE4ZhfKJhgBVA8NyqnlDgCPQ==}
engines: {node: '>=14.19.0'}
peerDependencies:
vue: ^2.7.0
dependencies:
'@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.6
'@vue/reactivity-transform': 3.2.45
unplugin: 1.0.1
transitivePeerDependencies:
- rollup
dev: true
/@vue-macros/setup-block/0.0.3:
resolution: {integrity: sha512-1PKUefTDpquISwk9MKB715gdCT2Ogw6lKKwpOtXV37xGlVV12SHB9Uvffj+ovruldG7KKYHvhm+JC3JsTkCKVQ==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vue/compiler-dom': 3.2.45 '@vue/compiler-dom': 3.2.45
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -3338,65 +3382,65 @@ packages:
- vue - vue
dev: true dev: true
/@vue-macros/setup-component/0.13.1: /@vue-macros/setup-component/0.13.2:
resolution: {integrity: sha512-zuMZQ1r8tVeL0FG3cLIazBAaO6UWYBCR7kvLVcspOx6tZyE+Lz0P4Tmb5kvqBIIIqUqn0uLtEzXRj1SzHKWbEg==} resolution: {integrity: sha512-JXUSTv/11bYmdos78R7IwaDs2tRlIwtnOXMI4JNlJ+Hnhj+e+g8R6mz6ccUpMCsySK078L2lMLcOIEc52fbL5w==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- vue - vue
dev: true dev: true
/@vue-macros/setup-sfc/0.13.1: /@vue-macros/setup-sfc/0.13.2:
resolution: {integrity: sha512-EnDnG1ob6tFfK6cih+qUFzMNnEerwM9PgxHMbgbVNQsoYCh0wAxPu8djdMvVOm+fz7Gg27Lv6MXQCs14tXwAJQ==} resolution: {integrity: sha512-WB2hxcjt1ghrp6Dszg6duVT9ML7h7fXvYQlCPfmTvb1cg8gDF4YUABfFvHx2u0ynUT+MVYBoywZAt/FhTVBOWQ==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- vue - vue
dev: true dev: true
/@vue-macros/short-emits/1.1.1: /@vue-macros/short-emits/1.1.2:
resolution: {integrity: sha512-wbEtAl/dQnqyWVRrl0b+GcofNrZqbxYNHKJxdoMZw2YPcumZswVUjARwhdp6sswTbxJPkMKz3ekjxKSuBWnL6g==} resolution: {integrity: sha512-kFSKKtVs+vm0cAyHZQzK9m1FDyjkjzx3Zc8r4qC8Ol3JI9k3C6nUbcG4i2xe/lxuYkCBhzxQerjcVichhUv4pA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
- vue - vue
dev: true dev: true
/@vue-macros/short-vmodel/1.0.1: /@vue-macros/short-vmodel/1.0.2:
resolution: {integrity: sha512-JNPXMDUxu6YzM89dU1BHog4ocM16oOuMjdyZ3Iypnk6GgG6y2eucNjHLPopT0HKKL26fUmmo1OkgE87ApNF4lQ==} resolution: {integrity: sha512-1HVllcrlOWujul6VxfkJRvd/o3vDybrj7PtU0LzSjFLku93yY/MRoH+2uIVbKsNplA+J5M+6HOXJlEgg2HBLZA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vue/compiler-core': 3.2.45 '@vue/compiler-core': 3.2.45
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
dev: true dev: true
/@vue-macros/volar/0.5.6_vue-tsc@1.0.16: /@vue-macros/volar/0.5.9_vue-tsc@1.0.16:
resolution: {integrity: sha512-TMfqk1PkgqjH+Ox//WCz52GMZr1fVkw9VeXnSIsmwoUcvlTR1ShSGatDuBjN8sMVNnol5tW9LwoElRU6D0npKA==} resolution: {integrity: sha512-SBjgofdn55fDXkPEGwAmjEeUwrupYqC9ZXH+iHMeawQfUwS2BrcvsUHkMnZiAMW0eQPcmwQr2dUJYMswkbp7cw==}
peerDependencies: peerDependencies:
vue-tsc: ^1.0.9 vue-tsc: ^1.0.9
peerDependenciesMeta: peerDependenciesMeta:
vue-tsc: vue-tsc:
optional: true optional: true
dependencies: dependencies:
'@volar/language-core': 1.0.16 '@volar/language-core': 1.0.22
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vue-macros/define-props': 0.1.1 '@vue-macros/define-props': 0.1.2
'@vue-macros/short-vmodel': 1.0.1 '@vue-macros/short-vmodel': 1.0.2
muggle-string: 0.1.0 muggle-string: 0.2.1
vue-tsc: 1.0.16_typescript@4.9.4 vue-tsc: 1.0.16_typescript@4.9.4
transitivePeerDependencies: transitivePeerDependencies:
- rollup - rollup
@ -3895,8 +3939,8 @@ packages:
resolution: {integrity: sha512-c+tWaEoA+b4yJp0NUI8/hYKUv1ELqpCMU/fogGazXxu7EXlry37q1wdfhaQqVmQn4l4agMeo4ek76LyKFIxkKA==} resolution: {integrity: sha512-c+tWaEoA+b4yJp0NUI8/hYKUv1ELqpCMU/fogGazXxu7EXlry37q1wdfhaQqVmQn4l4agMeo4ek76LyKFIxkKA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@babel/parser': 7.20.5 '@babel/parser': 7.20.7
'@babel/types': 7.20.5 '@babel/types': 7.20.7
dev: true dev: true
/astral-regex/2.0.0: /astral-regex/2.0.0:
@ -7269,6 +7313,10 @@ packages:
resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==} resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==}
dev: true dev: true
/muggle-string/0.2.1:
resolution: {integrity: sha512-XVKGP/QTuZQ7y1++6sNLeAALtUSc1nwbupotemZizerLeTCyxrvPRXGfWIIITZaVqrwfIskwawWE0CSHC10X7w==}
dev: true
/mute-stream/0.0.8: /mute-stream/0.0.8:
resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
dev: true dev: true
@ -9661,13 +9709,13 @@ packages:
- rollup - rollup
dev: true dev: true
/unplugin-combine/0.5.2: /unplugin-combine/0.5.3:
resolution: {integrity: sha512-FS1wNFpYh5XqFvyq9Nq9gVHjRu+hT5AwU8NzgRe97baROiPjVIoGCMyWGybm+pUq08WcZupQq/M6sSp4S939Iw==} resolution: {integrity: sha512-N3SCmDLOF/ea4dcqLlewNfKBQgBw5asucpsk04eiTdsUrzEvn1vb4Y8bScJ+qD22/rQoZvg64yHjMoai83zCEA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
esbuild: '>=0.13' esbuild: '>=0.13'
rollup: ^3.2.0 rollup: ^3.2.0
vite: ^2.3.0 || ^3.0.0 vite: ^2.3.0 || ^3.0.0 || ^4.0.0
webpack: 4 || 5 webpack: 4 || 5
peerDependenciesMeta: peerDependenciesMeta:
esbuild: esbuild:
@ -9683,12 +9731,12 @@ packages:
unplugin: 1.0.1 unplugin: 1.0.1
dev: true dev: true
/unplugin-vue-define-options/1.1.1: /unplugin-vue-define-options/1.1.2:
resolution: {integrity: sha512-E9xCSAQgiGMRaQXBWw7KwXiisPwqO/NfV06TpzEb884U77nlOaSQg1TGxw5YoXMcn1Wu/+bmGyR6V9nIIlLEgQ==} resolution: {integrity: sha512-PMYp2m2V/AZPoXchSmo4iNuQm1RevRXbnTqpDPznbQ4Byohm/t2zIi2jlqaNI9PI4ORqP5wNPR8vLGOtEM1s5g==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
ast-walker-scope: 0.3.1 ast-walker-scope: 0.3.1
unplugin: 1.0.1 unplugin: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -9696,27 +9744,28 @@ packages:
- vue - vue
dev: true dev: true
/unplugin-vue-macros/1.1.1_@vueuse+core@9.9.0: /unplugin-vue-macros/1.3.0_@vueuse+core@9.9.0:
resolution: {integrity: sha512-3+fgei7ALVUaGseXh5z2HwaVbVRhXjlSD679fLlfFPI9b5y7mHaS/v+GCkoiOEE+PJNIucV/JBXzMxS/iEuGzQ==} resolution: {integrity: sha512-pyyVzBckVQ91KLqxlL9MCf15/K4uJxeS/UHqWiDmnz3x7gANf5LkgDiO/JsqIMIWkZWtCga5Ax+lHBWj3OJtmA==}
engines: {node: '>=14.19.0'} engines: {node: '>=14.19.0'}
peerDependencies: peerDependencies:
vue: ^2.7.0 || ^3.2.25 vue: ^2.7.0 || ^3.2.25
dependencies: dependencies:
'@rollup/pluginutils': 5.0.2 '@rollup/pluginutils': 5.0.2
'@vue-macros/better-define': 1.1.1 '@vue-macros/better-define': 1.1.3
'@vue-macros/common': 0.13.5 '@vue-macros/common': 0.13.6
'@vue-macros/define-model': 1.1.1_@vueuse+core@9.9.0 '@vue-macros/define-model': 1.2.0_@vueuse+core@9.9.0
'@vue-macros/define-props': 0.1.1 '@vue-macros/define-props': 0.1.2
'@vue-macros/define-render': 1.1.1 '@vue-macros/define-render': 1.1.2
'@vue-macros/define-slots': 0.1.1 '@vue-macros/define-slots': 0.1.2
'@vue-macros/hoist-static': 1.1.1 '@vue-macros/hoist-static': 1.1.2
'@vue-macros/named-template': 0.1.1 '@vue-macros/named-template': 0.1.2
'@vue-macros/setup-block': 0.0.2 '@vue-macros/reactivity-transform-vue2': 0.0.3
'@vue-macros/setup-component': 0.13.1 '@vue-macros/setup-block': 0.0.3
'@vue-macros/setup-sfc': 0.13.1 '@vue-macros/setup-component': 0.13.2
'@vue-macros/short-emits': 1.1.1 '@vue-macros/setup-sfc': 0.13.2
unplugin-combine: 0.5.2 '@vue-macros/short-emits': 1.1.2
unplugin-vue-define-options: 1.1.1 unplugin-combine: 0.5.3
unplugin-vue-define-options: 1.1.2
transitivePeerDependencies: transitivePeerDependencies:
- '@vueuse/core' - '@vueuse/core'
- esbuild - esbuild
@ -9925,10 +9974,11 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-pwa/0.13.3: /vite-plugin-pwa/0.13.3_workbox-window@6.5.4:
resolution: {integrity: sha512-cjWXpZ7slAY14OKz7M8XdgTIi9wjf6OD6NkhiMAc+ogxnbUrecUwLdRtfGPCPsN2ftut5gaN1jTghb11p6IQAA==} resolution: {integrity: sha512-cjWXpZ7slAY14OKz7M8XdgTIi9wjf6OD6NkhiMAc+ogxnbUrecUwLdRtfGPCPsN2ftut5gaN1jTghb11p6IQAA==}
peerDependencies: peerDependencies:
vite: ^3.1.0 vite: ^3.1.0
workbox-window: ^6.5.4
dependencies: dependencies:
'@rollup/plugin-replace': 4.0.0_rollup@2.79.1 '@rollup/plugin-replace': 4.0.0_rollup@2.79.1
debug: 4.3.4 debug: 4.3.4