feat: basic interactive & tags

This commit is contained in:
YunYouJun
2022-04-14 19:59:02 +08:00
parent 2120e79726
commit 1fb7d8db94
15 changed files with 579 additions and 182 deletions

View File

@@ -47,5 +47,8 @@ jobs:
- name: Install - name: Install
run: pnpm install run: pnpm install
- name: Convert CSV to JSON
run: npm run convert
- name: Typecheck - name: Typecheck
run: pnpm run typecheck run: pnpm run typecheck

View File

@@ -11,12 +11,12 @@
"typecheck": "vue-tsc --noEmit" "typecheck": "vue-tsc --noEmit"
}, },
"dependencies": { "dependencies": {
"@vueuse/core": "^8.2.5", "@vueuse/core": "^8.2.6",
"@vueuse/head": "^0.7.6", "@vueuse/head": "^0.7.6",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.0.13", "pinia": "^2.0.13",
"prism-theme-vars": "^0.2.2", "prism-theme-vars": "^0.2.2",
"vue": "^3.2.32", "vue": "^3.2.33",
"vue-demi": "^0.12.5", "vue-demi": "^0.12.5",
"vue-router": "^4.0.14" "vue-router": "^4.0.14"
}, },
@@ -35,13 +35,13 @@
"https-localhost": "^4.7.1", "https-localhost": "^4.7.1",
"markdown-it-link-attributes": "^4.0.0", "markdown-it-link-attributes": "^4.0.0",
"markdown-it-prism": "^2.2.3", "markdown-it-prism": "^2.2.3",
"pnpm": "^6.32.6", "pnpm": "^6.32.7",
"sass": "^1.50.0", "sass": "^1.50.0",
"typescript": "^4.6.3", "typescript": "^4.6.3",
"unocss": "^0.31.2", "unocss": "^0.31.3",
"unplugin-auto-import": "^0.7.1", "unplugin-auto-import": "^0.7.1",
"unplugin-vue-components": "^0.19.2", "unplugin-vue-components": "^0.19.3",
"vite": "^2.9.2", "vite": "^2.9.4",
"vite-plugin-inspect": "^0.4.3", "vite-plugin-inspect": "^0.4.3",
"vite-plugin-md": "^0.12.4", "vite-plugin-md": "^0.12.4",
"vite-plugin-pages": "^0.22.0", "vite-plugin-pages": "^0.22.0",

438
pnpm-lock.yaml generated
View File

@@ -7,7 +7,7 @@ specifiers:
'@types/markdown-it-link-attributes': ^3.0.1 '@types/markdown-it-link-attributes': ^3.0.1
'@types/nprogress': ^0.2.0 '@types/nprogress': ^0.2.0
'@vitejs/plugin-vue': ^2.3.1 '@vitejs/plugin-vue': ^2.3.1
'@vueuse/core': ^8.2.5 '@vueuse/core': ^8.2.6
'@vueuse/head': ^0.7.6 '@vueuse/head': ^0.7.6
consola: ^2.15.3 consola: ^2.15.3
critters: ^0.0.16 critters: ^0.0.16
@@ -19,14 +19,14 @@ specifiers:
markdown-it-prism: ^2.2.3 markdown-it-prism: ^2.2.3
nprogress: ^0.2.0 nprogress: ^0.2.0
pinia: ^2.0.13 pinia: ^2.0.13
pnpm: ^6.32.6 pnpm: ^6.32.7
prism-theme-vars: ^0.2.2 prism-theme-vars: ^0.2.2
sass: ^1.50.0 sass: ^1.50.0
typescript: ^4.6.3 typescript: ^4.6.3
unocss: ^0.31.2 unocss: ^0.31.3
unplugin-auto-import: ^0.7.1 unplugin-auto-import: ^0.7.1
unplugin-vue-components: ^0.19.2 unplugin-vue-components: ^0.19.3
vite: ^2.9.2 vite: ^2.9.4
vite-plugin-inspect: ^0.4.3 vite-plugin-inspect: ^0.4.3
vite-plugin-md: ^0.12.4 vite-plugin-md: ^0.12.4
vite-plugin-pages: ^0.22.0 vite-plugin-pages: ^0.22.0
@@ -34,20 +34,20 @@ specifiers:
vite-plugin-vue-layouts: ^0.6.0 vite-plugin-vue-layouts: ^0.6.0
vite-ssg: ^0.19.2 vite-ssg: ^0.19.2
vite-ssg-sitemap: ^0.2.2 vite-ssg-sitemap: ^0.2.2
vue: ^3.2.32 vue: ^3.2.33
vue-demi: ^0.12.5 vue-demi: ^0.12.5
vue-router: ^4.0.14 vue-router: ^4.0.14
vue-tsc: ^0.34.6 vue-tsc: ^0.34.6
dependencies: dependencies:
'@vueuse/core': 8.2.5_vue@3.2.32 '@vueuse/core': 8.2.6_vue@3.2.33
'@vueuse/head': 0.7.6_vue@3.2.32 '@vueuse/head': 0.7.6_vue@3.2.33
nprogress: 0.2.0 nprogress: 0.2.0
pinia: 2.0.13_typescript@4.6.3+vue@3.2.32 pinia: 2.0.13_typescript@4.6.3+vue@3.2.33
prism-theme-vars: 0.2.2 prism-theme-vars: 0.2.2
vue: 3.2.32 vue: 3.2.33
vue-demi: 0.12.5_vue@3.2.32 vue-demi: 0.12.5_vue@3.2.33
vue-router: 4.0.14_vue@3.2.32 vue-router: 4.0.14_vue@3.2.33
devDependencies: devDependencies:
'@antfu/eslint-config': 0.20.2_eslint@8.13.0+typescript@4.6.3 '@antfu/eslint-config': 0.20.2_eslint@8.13.0+typescript@4.6.3
@@ -55,7 +55,7 @@ devDependencies:
'@iconify-json/ri': 1.1.1 '@iconify-json/ri': 1.1.1
'@types/markdown-it-link-attributes': 3.0.1 '@types/markdown-it-link-attributes': 3.0.1
'@types/nprogress': 0.2.0 '@types/nprogress': 0.2.0
'@vitejs/plugin-vue': 2.3.1_vite@2.9.2+vue@3.2.32 '@vitejs/plugin-vue': 2.3.1_vite@2.9.4+vue@3.2.33
consola: 2.15.3 consola: 2.15.3
critters: 0.0.16 critters: 0.0.16
cross-env: 7.0.3 cross-env: 7.0.3
@@ -64,19 +64,19 @@ devDependencies:
https-localhost: 4.7.1 https-localhost: 4.7.1
markdown-it-link-attributes: 4.0.0 markdown-it-link-attributes: 4.0.0
markdown-it-prism: 2.2.3 markdown-it-prism: 2.2.3
pnpm: 6.32.6 pnpm: 6.32.7
sass: 1.50.0 sass: 1.50.0
typescript: 4.6.3 typescript: 4.6.3
unocss: 0.31.2_vite@2.9.2 unocss: 0.31.3_vite@2.9.4
unplugin-auto-import: 0.7.1_@vueuse+core@8.2.5+vite@2.9.2 unplugin-auto-import: 0.7.1_@vueuse+core@8.2.6+vite@2.9.4
unplugin-vue-components: 0.19.2_vite@2.9.2+vue@3.2.32 unplugin-vue-components: 0.19.3_vite@2.9.4+vue@3.2.33
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
vite-plugin-inspect: 0.4.3_vite@2.9.2 vite-plugin-inspect: 0.4.3_vite@2.9.4
vite-plugin-md: 0.12.4_vite@2.9.2 vite-plugin-md: 0.12.4_vite@2.9.4
vite-plugin-pages: 0.22.0_vite@2.9.2 vite-plugin-pages: 0.22.0_vite@2.9.4
vite-plugin-pwa: 0.11.13_vite@2.9.2 vite-plugin-pwa: 0.11.13_vite@2.9.4
vite-plugin-vue-layouts: 0.6.0_19e98d1a87783d01efb725acc506d368 vite-plugin-vue-layouts: 0.6.0_42985b3d17b5dbc57a90bf45aa3d705b
vite-ssg: 0.19.2_04592499939e923446fa8d60d79e6adf vite-ssg: 0.19.2_4fe8e943315feb068786d458bd42ec56
vite-ssg-sitemap: 0.2.2 vite-ssg-sitemap: 0.2.2
vue-tsc: 0.34.6_typescript@4.6.3 vue-tsc: 0.34.6_typescript@4.6.3
@@ -1500,6 +1500,14 @@ packages:
picomatch: 2.3.1 picomatch: 2.3.1
dev: true dev: true
/@rollup/pluginutils/4.2.1:
resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
engines: {node: '>= 8.0.0'}
dependencies:
estree-walker: 2.0.2
picomatch: 2.3.1
dev: true
/@surma/rollup-plugin-off-main-thread/2.2.3: /@surma/rollup-plugin-off-main-thread/2.2.3:
resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
dependencies: dependencies:
@@ -1705,14 +1713,14 @@ packages:
eslint-visitor-keys: 3.3.0 eslint-visitor-keys: 3.3.0
dev: true dev: true
/@unocss/cli/0.31.2: /@unocss/cli/0.31.3:
resolution: {integrity: sha512-v/n2+rZrJt0FJzoHVHFSYSf7pD76jsg61WsY4NvSwnLborHWcGpvSVhsuKzi3haoumsjAS5x3lilO4JHaz5gRw==} resolution: {integrity: sha512-cB8lNOmUlmgf+ws+hQ91nn0HLiezXFLCPWuYLNv3MlCXn8P3IlNgvcpTF5C+L+qj9YSPCRIoQP+blmlF7SbvDQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
dependencies: dependencies:
'@unocss/config': 0.31.2 '@unocss/config': 0.31.3
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
'@unocss/preset-uno': 0.31.2 '@unocss/preset-uno': 0.31.3
cac: 6.7.12 cac: 6.7.12
chokidar: 3.5.3 chokidar: 3.5.3
colorette: 2.0.16 colorette: 2.0.16
@@ -1721,121 +1729,121 @@ packages:
pathe: 0.2.0 pathe: 0.2.0
dev: true dev: true
/@unocss/config/0.31.2: /@unocss/config/0.31.3:
resolution: {integrity: sha512-vBMdv9hXDqpjntKzdM9Uj3NUhwQPU59mIueGkByy1urRlLGCPRGRV62+YtDp3hu1Us2dXJlGAMIgODxgqziGqw==} resolution: {integrity: sha512-sH1twx4sRMz/lrZD/UiweZlTY3NvgawYUbfS8xHnfk1H5mjP0KQVyRPv/pF8OHGxd3oLeMMJcpHlHWCEobIejA==}
engines: {node: '>=14'} engines: {node: '>=14'}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
unconfig: 0.3.3 unconfig: 0.3.3
dev: true dev: true
/@unocss/core/0.31.2: /@unocss/core/0.31.3:
resolution: {integrity: sha512-IVwRa8vXdIZmIFmSrMWtbkClZvwpfuvGb70QP2YDRY15NZE2ZlvIAVDC5XiPU+w02qrqoi/n3Zlt4YnNJDg+4g==} resolution: {integrity: sha512-0xnRatssQzXs44qC9vuvJXBL6vDAEhTOuvH2Yp0cQhowsdrf6W6iC1fw/v8DNr6NJraBOwJIMKcD1nxoiXpNJA==}
dev: true dev: true
/@unocss/inspector/0.31.2: /@unocss/inspector/0.31.3:
resolution: {integrity: sha512-66W6hJmaDSNBsYdqh7QlMVCKM6DhEBulzTvrkpWTsbhysZeNJryVXnWO4Wc3PgDoZSP08TstBMsiR9XMCXIxXg==} resolution: {integrity: sha512-cBlb0bPObYpWfxhCYtQgU3VVxeU4Jk3qd+m1p7ocXezfNP56dLRAiPoe71vAuGQa9CxHNLaObelGCZtc4zJD0g==}
dependencies: dependencies:
gzip-size: 6.0.0 gzip-size: 6.0.0
sirv: 2.0.2 sirv: 2.0.2
dev: true dev: true
/@unocss/preset-attributify/0.31.2: /@unocss/preset-attributify/0.31.3:
resolution: {integrity: sha512-vnWRFiZr8Lptt3hv3fxdI5dX4kyLFXdpgsE0If+i4L4j4sQegQYUKqy360T2X7bSZnm9pmgo3qbty9rC/5IIvw==} resolution: {integrity: sha512-UsbVR7dpXlKBrGC0xY9XrkVzeIltxsE/kenXnQdZ1hAwV8uvqEpbsF3PldBi3+DcXiwnOtPtfsz+RQuU4TUaxw==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
dev: true dev: true
/@unocss/preset-icons/0.31.2: /@unocss/preset-icons/0.31.3:
resolution: {integrity: sha512-YoLDCo4wtYbtnopNDKAzDgOR0Y6bDpZE6AoYjZQKKSZDNKEY2WKmc1BhO9lJ6EwEIoPae+q58FjsL3UAuxJQDg==} resolution: {integrity: sha512-AQYSw4644wsXZZlACzeJKZqOndv/MoQkuf+ijsslacqd0ThrLBLJhExzYxln10aS2eqA4JCIq8GUCEq/x8YYCw==}
dependencies: dependencies:
'@iconify/utils': 1.0.32 '@iconify/utils': 1.0.32
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/@unocss/preset-mini/0.31.2: /@unocss/preset-mini/0.31.3:
resolution: {integrity: sha512-Nfd1wNqVGXPCg/9RVm4T+RZota2c0B1Gs13LLHKxdbFty9muR+8jUEkQ2QP3VCnay85YkSEzRDM6SZQ4bjOEVg==} resolution: {integrity: sha512-c0TIoRYfU1OMGf9OVhaaYBfl+Wm8i9eW3QGlM6KKjFdKphkJ2TBL/5GXZsCUhomZLRBAm0Fs49Sc26bi218vmA==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
dev: true dev: true
/@unocss/preset-typography/0.31.2: /@unocss/preset-typography/0.31.3:
resolution: {integrity: sha512-OHc6XrLoieO4q8tROuUD8F1mpp5BWE64JGkD+RFa9OLggcWz99zctBuo/FHkqaP0Un1I3Z9SeezQhXG2/mCiqg==} resolution: {integrity: sha512-aLwaaDtPGHQW392kpPQ4zqmqTU9uO80FuhlVbRvtMgYcbRbvtrpdu+FidiNwTg3bAWYYHa9zDSQCoYJMqlrRGg==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
dev: true dev: true
/@unocss/preset-uno/0.31.2: /@unocss/preset-uno/0.31.3:
resolution: {integrity: sha512-QJuCtCE/xxZ2EIMqdZLKzrEhaeS7r0apYM9WujlIIwO28oonnJgK9lAYFBNStG7WmmAxheHsMGlHylRoVwIF8g==} resolution: {integrity: sha512-EBIcHPgDpallTh5TYLyCBtQdqla2oXBkpxLnLciuUbL+OBvAlgBRsCGSo1eEO4KTp/QiVt2Orib0k3RwB+jsiw==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
'@unocss/preset-mini': 0.31.2 '@unocss/preset-mini': 0.31.3
'@unocss/preset-wind': 0.31.2 '@unocss/preset-wind': 0.31.3
dev: true dev: true
/@unocss/preset-web-fonts/0.31.2: /@unocss/preset-web-fonts/0.31.3:
resolution: {integrity: sha512-tNFemeUIXeVlKef3Bkg1XMT+a/46lPQ4rOsYXeeTvd4bmCN0C9qg2CTFdzKP+U8DJfZh6slt0rXZvJvvLp7DyA==} resolution: {integrity: sha512-Oq8vGUBGriHJwYV7vSdGLVkfTfF5+v/PBUVvNVePSS+BBJrixgQmbf7k9V88TutgbJkOnJAiRqT4/g3SlJVK4w==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
axios: 0.26.1 axios: 0.26.1
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
dev: true dev: true
/@unocss/preset-wind/0.31.2: /@unocss/preset-wind/0.31.3:
resolution: {integrity: sha512-A4+18tPsTc5ou4nSBwVdwm+K1o4bYh94XcA6cXqdV/C2ehpN64yulrRsXmV9SRzDtBGkZGMuoRSv8LIi9L6CCA==} resolution: {integrity: sha512-UnfZXW8Gj5u2vZ77kx+OndAPMG9dFSX74vtbfspE5HQM74xURLLz+aF1zQKXnxNS+faLIOCoQoGaS98cZCaWuA==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
'@unocss/preset-mini': 0.31.2 '@unocss/preset-mini': 0.31.3
dev: true dev: true
/@unocss/reset/0.31.2: /@unocss/reset/0.31.3:
resolution: {integrity: sha512-qGkx4QUxM+bNX1vQZTT41+EDBuyg5mYkQqFMF++VqjtMiDHP6IPdMdBJY1bhlsE+cq6XrJXEMV24wZljObf9LQ==} resolution: {integrity: sha512-0GVHFMDTrXVzMr+sRLcHakDb7JzGAIwVPb/8W6AXcov+Do4+OjyfyFnGWpA6DFcCF7dcQh/g8EJqfDURWtviPg==}
dev: true dev: true
/@unocss/scope/0.31.2: /@unocss/scope/0.31.3:
resolution: {integrity: sha512-ailLjcTo6QU3Osgw5TSS5Kcq4BJN51FmK0nSahh2kjau71jg3TmisTgNRXmTgI469IwueIpV/pOpWdZ0NuCOdA==} resolution: {integrity: sha512-UVNjNPzAAin/Opkr3sLBkXIDXaNboEJB4b+J+ix48Z8/9OsInytrcFqvM531C4SnPHnrmab0s5ykMjGNOHV/5A==}
dev: true dev: true
/@unocss/transformer-directives/0.31.2: /@unocss/transformer-directives/0.31.3:
resolution: {integrity: sha512-BzrlYbbnUP6Q0hV26oAEmvJpBy3+rsB80SLlgTouCmO+7dt9zp7RUW46zBMljTnCc03L4HySXs2zuXDTLcmsPg==} resolution: {integrity: sha512-j9I7xK1KmoQt/H3VyuRTq3PSPRfKksBRQ1W8s8yHJDWfpO5NCPgDXXUZfs8pyqH78Xi/CfXAnNVd6YJ2nPkTJw==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
css-tree: 2.1.0 css-tree: 2.1.0
dev: true dev: true
/@unocss/transformer-variant-group/0.31.2: /@unocss/transformer-variant-group/0.31.3:
resolution: {integrity: sha512-HpNb8RGw0KPUygpOeg6/0j77dlqJrTn5yS9KjC6p3GaAVVhvKyZTNLZF3vVm4SCkYAbXyWVTmL/WoIbJghNt5g==} resolution: {integrity: sha512-H1MED1A58QnrXPMizlrTCzE1FYlKrO+IPoA+aSWeoCgTKFH4u4hYqTJuJns28wXugV7tSuxy9CWwTztZYQQU6Q==}
dependencies: dependencies:
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
dev: true dev: true
/@unocss/vite/0.31.2_vite@2.9.2: /@unocss/vite/0.31.3_vite@2.9.4:
resolution: {integrity: sha512-6aIGWNBYuhpokE3qWRCQqMjFwUoM91yLnInhpHQ4Q6W6Py8i8NZIUxnsp2qOmNHjrf5BwTnJlkFyisbQLCdvwg==} resolution: {integrity: sha512-bkfo0Yw0Taoh0SXRzm4qq6Kg7xjXlQ95l/09URJ14BjWY8FmRZFE2U73yNxyQHA9Cg7iFZh6vlxkkLyXz+xYdQ==}
peerDependencies: peerDependencies:
vite: ^2.9.0 vite: ^2.9.0
dependencies: dependencies:
'@rollup/pluginutils': 4.2.0 '@rollup/pluginutils': 4.2.1
'@unocss/config': 0.31.2 '@unocss/config': 0.31.3
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
'@unocss/inspector': 0.31.2 '@unocss/inspector': 0.31.3
'@unocss/scope': 0.31.2 '@unocss/scope': 0.31.3
'@unocss/transformer-directives': 0.31.2 '@unocss/transformer-directives': 0.31.3
magic-string: 0.26.1 magic-string: 0.26.1
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
dev: true dev: true
/@vitejs/plugin-vue/2.3.1_vite@2.9.2+vue@3.2.32: /@vitejs/plugin-vue/2.3.1_vite@2.9.4+vue@3.2.33:
resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==} resolution: {integrity: sha512-YNzBt8+jt6bSwpt7LP890U1UcTOIZZxfpE5WOJ638PNxSEKOqAi0+FSKS0nVeukfdZ0Ai/H7AFd6k3hayfGZqQ==}
engines: {node: '>=12.0.0'} engines: {node: '>=12.0.0'}
peerDependencies: peerDependencies:
vite: ^2.5.10 vite: ^2.5.10
vue: ^3.2.25 vue: ^3.2.25
dependencies: dependencies:
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
vue: 3.2.32 vue: 3.2.33
dev: true dev: true
/@volar/code-gen/0.34.6: /@volar/code-gen/0.34.6:
@@ -1884,6 +1892,16 @@ packages:
'@vue/shared': 3.2.32 '@vue/shared': 3.2.32
estree-walker: 2.0.2 estree-walker: 2.0.2
source-map: 0.6.1 source-map: 0.6.1
dev: true
/@vue/compiler-core/3.2.33:
resolution: {integrity: sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==}
dependencies:
'@babel/parser': 7.17.9
'@vue/shared': 3.2.33
estree-walker: 2.0.2
source-map: 0.6.1
dev: false
/@vue/compiler-dom/3.2.31: /@vue/compiler-dom/3.2.31:
resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==} resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==}
@@ -1897,6 +1915,14 @@ packages:
dependencies: dependencies:
'@vue/compiler-core': 3.2.32 '@vue/compiler-core': 3.2.32
'@vue/shared': 3.2.32 '@vue/shared': 3.2.32
dev: true
/@vue/compiler-dom/3.2.33:
resolution: {integrity: sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==}
dependencies:
'@vue/compiler-core': 3.2.33
'@vue/shared': 3.2.33
dev: false
/@vue/compiler-sfc/3.2.31: /@vue/compiler-sfc/3.2.31:
resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==} resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==}
@@ -1926,6 +1952,22 @@ packages:
magic-string: 0.25.9 magic-string: 0.25.9
postcss: 8.4.12 postcss: 8.4.12
source-map: 0.6.1 source-map: 0.6.1
dev: true
/@vue/compiler-sfc/3.2.33:
resolution: {integrity: sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==}
dependencies:
'@babel/parser': 7.17.9
'@vue/compiler-core': 3.2.33
'@vue/compiler-dom': 3.2.33
'@vue/compiler-ssr': 3.2.33
'@vue/reactivity-transform': 3.2.33
'@vue/shared': 3.2.33
estree-walker: 2.0.2
magic-string: 0.25.9
postcss: 8.4.12
source-map: 0.6.1
dev: false
/@vue/compiler-ssr/3.2.31: /@vue/compiler-ssr/3.2.31:
resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==} resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==}
@@ -1939,6 +1981,14 @@ packages:
dependencies: dependencies:
'@vue/compiler-dom': 3.2.32 '@vue/compiler-dom': 3.2.32
'@vue/shared': 3.2.32 '@vue/shared': 3.2.32
dev: true
/@vue/compiler-ssr/3.2.33:
resolution: {integrity: sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==}
dependencies:
'@vue/compiler-dom': 3.2.33
'@vue/shared': 3.2.33
dev: false
/@vue/devtools-api/6.1.3: /@vue/devtools-api/6.1.3:
resolution: {integrity: sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==} resolution: {integrity: sha512-79InfO2xHv+WHIrH1bHXQUiQD/wMls9qBk6WVwGCbdwP7/3zINtvqPNMtmSHXsIKjvUAHc8L0ouOj6ZQQRmcXg==}
@@ -1966,6 +2016,17 @@ packages:
'@vue/shared': 3.2.32 '@vue/shared': 3.2.32
estree-walker: 2.0.2 estree-walker: 2.0.2
magic-string: 0.25.9 magic-string: 0.25.9
dev: true
/@vue/reactivity-transform/3.2.33:
resolution: {integrity: sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==}
dependencies:
'@babel/parser': 7.17.9
'@vue/compiler-core': 3.2.33
'@vue/shared': 3.2.33
estree-walker: 2.0.2
magic-string: 0.25.9
dev: false
/@vue/reactivity/3.2.31: /@vue/reactivity/3.2.31:
resolution: {integrity: sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==} resolution: {integrity: sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==}
@@ -1977,6 +2038,13 @@ packages:
resolution: {integrity: sha512-4zaDumuyDqkuhbb63hRd+YHFGopW7srFIWesLUQ2su/rJfWrSq3YUvoKAJE8Eu1EhZ2Q4c1NuwnEreKj1FkDxA==} resolution: {integrity: sha512-4zaDumuyDqkuhbb63hRd+YHFGopW7srFIWesLUQ2su/rJfWrSq3YUvoKAJE8Eu1EhZ2Q4c1NuwnEreKj1FkDxA==}
dependencies: dependencies:
'@vue/shared': 3.2.32 '@vue/shared': 3.2.32
dev: true
/@vue/reactivity/3.2.33:
resolution: {integrity: sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==}
dependencies:
'@vue/shared': 3.2.33
dev: false
/@vue/runtime-core/3.2.31: /@vue/runtime-core/3.2.31:
resolution: {integrity: sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==} resolution: {integrity: sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==}
@@ -1985,29 +2053,29 @@ packages:
'@vue/shared': 3.2.31 '@vue/shared': 3.2.31
dev: true dev: true
/@vue/runtime-core/3.2.32: /@vue/runtime-core/3.2.33:
resolution: {integrity: sha512-uKKzK6LaCnbCJ7rcHvsK0azHLGpqs+Vi9B28CV1mfWVq1F3Bj8Okk3cX+5DtD06aUh4V2bYhS2UjjWiUUKUF0w==} resolution: {integrity: sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==}
dependencies: dependencies:
'@vue/reactivity': 3.2.32 '@vue/reactivity': 3.2.33
'@vue/shared': 3.2.32 '@vue/shared': 3.2.33
dev: false dev: false
/@vue/runtime-dom/3.2.32: /@vue/runtime-dom/3.2.33:
resolution: {integrity: sha512-AmlIg+GPqjkNoADLjHojEX5RGcAg+TsgXOOcUrtDHwKvA8mO26EnLQLB8nylDjU6AMJh2CIYn8NEgyOV5ZIScQ==} resolution: {integrity: sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==}
dependencies: dependencies:
'@vue/runtime-core': 3.2.32 '@vue/runtime-core': 3.2.33
'@vue/shared': 3.2.32 '@vue/shared': 3.2.33
csstype: 2.6.20 csstype: 2.6.20
dev: false dev: false
/@vue/server-renderer/3.2.32_vue@3.2.32: /@vue/server-renderer/3.2.33_vue@3.2.33:
resolution: {integrity: sha512-TYKpZZfRJpGTTiy/s6bVYwQJpAUx3G03z4G7/3O18M11oacrMTVHaHjiPuPqf3xQtY8R4LKmQ3EOT/DRCA/7Wg==} resolution: {integrity: sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==}
peerDependencies: peerDependencies:
vue: 3.2.32 vue: 3.2.33
dependencies: dependencies:
'@vue/compiler-ssr': 3.2.32 '@vue/compiler-ssr': 3.2.33
'@vue/shared': 3.2.32 '@vue/shared': 3.2.33
vue: 3.2.32 vue: 3.2.33
dev: false dev: false
/@vue/shared/3.2.31: /@vue/shared/3.2.31:
@@ -2016,9 +2084,14 @@ packages:
/@vue/shared/3.2.32: /@vue/shared/3.2.32:
resolution: {integrity: sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw==} resolution: {integrity: sha512-bjcixPErUsAnTQRQX4Z5IQnICYjIfNCyCl8p29v1M6kfVzvwOICPw+dz48nNuWlTOOx2RHhzHdazJibE8GSnsw==}
dev: true
/@vueuse/core/8.2.5_vue@3.2.32: /@vue/shared/3.2.33:
resolution: {integrity: sha512-5prZAA1Ji2ltwNUnzreu6WIXYqHYP/9U2BiY5mD/650VYLpVcwVlYznJDFcLCmEWI3o3Vd34oS1FUf+6Mh68GQ==} resolution: {integrity: sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==}
dev: false
/@vueuse/core/8.2.6_vue@3.2.33:
resolution: {integrity: sha512-fzlpM3B5oVe+UhCT1mXlhG1Zxdq2lq1Z2AvddSB8+RxrsSFzII7DKfsQEz8Vop7Lzc++4m8drTNbhPovYoFqHw==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.1.0 '@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0 vue: ^2.6.0 || ^3.2.0
@@ -2028,26 +2101,26 @@ packages:
vue: vue:
optional: true optional: true
dependencies: dependencies:
'@vueuse/metadata': 8.2.5 '@vueuse/metadata': 8.2.6
'@vueuse/shared': 8.2.5_vue@3.2.32 '@vueuse/shared': 8.2.6_vue@3.2.33
vue: 3.2.32 vue: 3.2.33
vue-demi: 0.12.5_vue@3.2.32 vue-demi: 0.12.5_vue@3.2.33
dev: false dev: false
/@vueuse/head/0.7.6_vue@3.2.32: /@vueuse/head/0.7.6_vue@3.2.33:
resolution: {integrity: sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA==} resolution: {integrity: sha512-cOWqCkT3WiF5oEpw+VVEWUJd9RLD5rc7DmnFp3cePsejp+t7686uKD9Z9ZU7Twb7R/BI8iexKTmXo9D/F3v6UA==}
peerDependencies: peerDependencies:
vue: '>=3' vue: '>=3'
dependencies: dependencies:
vue: 3.2.32 vue: 3.2.33
dev: false dev: false
/@vueuse/metadata/8.2.5: /@vueuse/metadata/8.2.6:
resolution: {integrity: sha512-Lk9plJjh9cIdiRdcj16dau+2LANxIdFCiTgdfzwYXbflxq0QnMBeOD2qHgKDE7fuVrtPcVWj8VSuZEx1HRfNQA==} resolution: {integrity: sha512-OBKtafCt+4RcEJlYDCjp1vl65pBCL2g4TmipEtdZ8/qphKlW6nakJbkY7XRN5grPmjqU99/ahJGtyGk5NHS2hw==}
dev: false dev: false
/@vueuse/shared/8.2.5_vue@3.2.32: /@vueuse/shared/8.2.6_vue@3.2.33:
resolution: {integrity: sha512-lNWo+7sk6JCuOj4AiYM+6HZ6fq4xAuVq1sVckMQKgfCJZpZRe4i8es+ZULO5bYTKP+VrOCtqrLR2GzEfrbr3YQ==} resolution: {integrity: sha512-J/W4CMfdL8TahELuSOgtfVO4eQXTjhigp7dVWIBsLUVFCeY9d49gvHUcQN3y5xYLZ6iNP57TjTQjMMT/zhklkw==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.1.0 '@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0 vue: ^2.6.0 || ^3.2.0
@@ -2057,8 +2130,8 @@ packages:
vue: vue:
optional: true optional: true
dependencies: dependencies:
vue: 3.2.32 vue: 3.2.33
vue-demi: 0.12.5_vue@3.2.32 vue-demi: 0.12.5_vue@3.2.33
dev: false dev: false
/abab/2.0.5: /abab/2.0.5:
@@ -4446,7 +4519,7 @@ packages:
dependencies: dependencies:
universalify: 2.0.0 universalify: 2.0.0
optionalDependencies: optionalDependencies:
graceful-fs: 4.2.10 graceful-fs: 4.2.9
dev: true dev: true
/jsonpointer/5.0.0: /jsonpointer/5.0.0:
@@ -5061,7 +5134,7 @@ packages:
engines: {node: '>=8.6'} engines: {node: '>=8.6'}
dev: true dev: true
/pinia/2.0.13_typescript@4.6.3+vue@3.2.32: /pinia/2.0.13_typescript@4.6.3+vue@3.2.33:
resolution: {integrity: sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==} resolution: {integrity: sha512-B7rSqm1xNpwcPMnqns8/gVBfbbi7lWTByzS6aPZ4JOXSJD4Y531rZHDCoYWBwLyHY/8hWnXljgiXp6rRyrofcw==}
peerDependencies: peerDependencies:
'@vue/composition-api': ^1.4.0 '@vue/composition-api': ^1.4.0
@@ -5075,8 +5148,8 @@ packages:
dependencies: dependencies:
'@vue/devtools-api': 6.1.4 '@vue/devtools-api': 6.1.4
typescript: 4.6.3 typescript: 4.6.3
vue: 3.2.32 vue: 3.2.33
vue-demi: 0.12.5_vue@3.2.32 vue-demi: 0.12.5_vue@3.2.33
dev: false dev: false
/pluralize/8.0.0: /pluralize/8.0.0:
@@ -5084,8 +5157,8 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
dev: true dev: true
/pnpm/6.32.6: /pnpm/6.32.7:
resolution: {integrity: sha512-ucrdCw3F/qjjzoR9+UtLXH1jkDqsbinz+hzSz54WQOOPt/F+9uxm8irrO/mdGkmsy844kAX6vsfS85gZLTg+yA==} resolution: {integrity: sha512-2LtKMtQ7ffQEIW0lQn6z1WBnz2SPB416DDlyEf3WzOlXCO0BXjLr6kX2vDOTFzKyHWbhjcd45qw3ty3G92fb2Q==}
engines: {node: '>=12.17'} engines: {node: '>=12.17'}
hasBin: true hasBin: true
dev: true dev: true
@@ -5967,23 +6040,23 @@ packages:
engines: {node: '>= 10.0.0'} engines: {node: '>= 10.0.0'}
dev: true dev: true
/unocss/0.31.2_vite@2.9.2: /unocss/0.31.3_vite@2.9.4:
resolution: {integrity: sha512-ZPu14276pTa89o9b9mEcyh7/oK3lwiwESyyAIAvr5zrWgOiXv1GcoMbGUFnl9szj1GSZF2qo3z9nO8OTaAbWRQ==} resolution: {integrity: sha512-qPQHOBgZv6xcN1qIaYbxQuyIQ79wI77mvNeRBw2GUoJL9GF/VVSTxQTWc0bdi13Sj0lfAlTS+CgaUWbMyz8xrA==}
engines: {node: '>=14'} engines: {node: '>=14'}
dependencies: dependencies:
'@unocss/cli': 0.31.2 '@unocss/cli': 0.31.3
'@unocss/core': 0.31.2 '@unocss/core': 0.31.3
'@unocss/preset-attributify': 0.31.2 '@unocss/preset-attributify': 0.31.3
'@unocss/preset-icons': 0.31.2 '@unocss/preset-icons': 0.31.3
'@unocss/preset-mini': 0.31.2 '@unocss/preset-mini': 0.31.3
'@unocss/preset-typography': 0.31.2 '@unocss/preset-typography': 0.31.3
'@unocss/preset-uno': 0.31.2 '@unocss/preset-uno': 0.31.3
'@unocss/preset-web-fonts': 0.31.2 '@unocss/preset-web-fonts': 0.31.3
'@unocss/preset-wind': 0.31.2 '@unocss/preset-wind': 0.31.3
'@unocss/reset': 0.31.2 '@unocss/reset': 0.31.3
'@unocss/transformer-directives': 0.31.2 '@unocss/transformer-directives': 0.31.3
'@unocss/transformer-variant-group': 0.31.2 '@unocss/transformer-variant-group': 0.31.3
'@unocss/vite': 0.31.2_vite@2.9.2 '@unocss/vite': 0.31.3_vite@2.9.4
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
- supports-color - supports-color
@@ -5995,7 +6068,7 @@ packages:
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
dev: true dev: true
/unplugin-auto-import/0.7.1_@vueuse+core@8.2.5+vite@2.9.2: /unplugin-auto-import/0.7.1_@vueuse+core@8.2.6+vite@2.9.4:
resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==} resolution: {integrity: sha512-9865OV9eP99PNxHR2mtTDExeN01m4M9boT5U2BtIwsU1wDRsaFIYWLwcCBEjvXzXfTTC2NNMskhHGVAMfL2WgA==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@@ -6006,11 +6079,11 @@ packages:
dependencies: dependencies:
'@antfu/utils': 0.5.1 '@antfu/utils': 0.5.1
'@rollup/pluginutils': 4.2.0 '@rollup/pluginutils': 4.2.0
'@vueuse/core': 8.2.5_vue@3.2.32 '@vueuse/core': 8.2.6_vue@3.2.33
local-pkg: 0.4.1 local-pkg: 0.4.1
magic-string: 0.26.1 magic-string: 0.26.1
resolve: 1.22.0 resolve: 1.22.0
unplugin: 0.6.1_vite@2.9.2 unplugin: 0.6.1_vite@2.9.4
transitivePeerDependencies: transitivePeerDependencies:
- esbuild - esbuild
- rollup - rollup
@@ -6018,8 +6091,8 @@ packages:
- webpack - webpack
dev: true dev: true
/unplugin-vue-components/0.19.2_vite@2.9.2+vue@3.2.32: /unplugin-vue-components/0.19.3_vite@2.9.4+vue@3.2.33:
resolution: {integrity: sha512-7DhQfTyHLyVIWR6VBQONLU6dDBOXtEYvZQYUpN9C+t11WOb5baIFoxfzDxkeFHTHGMhznyEOw6afHyV9JKWnig==} resolution: {integrity: sha512-z/kpYJnqrJuWglDNs7fy0YRHr41oLc07y2TkP3by6DqPb1GG9xGC9SFigeFwd4J7GVTqyFVsnjoeup7uK7I2dA==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
'@babel/parser': ^7.15.8 '@babel/parser': ^7.15.8
@@ -6032,7 +6105,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@antfu/utils': 0.5.1 '@antfu/utils': 0.5.1
'@rollup/pluginutils': 4.2.0 '@rollup/pluginutils': 4.2.1
chokidar: 3.5.3 chokidar: 3.5.3
debug: 4.3.4 debug: 4.3.4
fast-glob: 3.2.11 fast-glob: 3.2.11
@@ -6040,8 +6113,8 @@ packages:
magic-string: 0.26.1 magic-string: 0.26.1
minimatch: 5.0.1 minimatch: 5.0.1
resolve: 1.22.0 resolve: 1.22.0
unplugin: 0.6.1_vite@2.9.2 unplugin: 0.6.2_vite@2.9.4
vue: 3.2.32 vue: 3.2.33
transitivePeerDependencies: transitivePeerDependencies:
- esbuild - esbuild
- rollup - rollup
@@ -6050,7 +6123,7 @@ packages:
- webpack - webpack
dev: true dev: true
/unplugin/0.6.1_vite@2.9.2: /unplugin/0.6.1_vite@2.9.4:
resolution: {integrity: sha512-cQqRCgQ2v/Q4fPIWNVZ6sNIDdl5v8JXOnlsUOsGzT4fblTONoPWaytiYSpu5qJ9lvSDZYAQN6BRVo3XQoZMfUQ==} resolution: {integrity: sha512-cQqRCgQ2v/Q4fPIWNVZ6sNIDdl5v8JXOnlsUOsGzT4fblTONoPWaytiYSpu5qJ9lvSDZYAQN6BRVo3XQoZMfUQ==}
peerDependencies: peerDependencies:
esbuild: '>=0.13' esbuild: '>=0.13'
@@ -6068,7 +6141,30 @@ packages:
optional: true optional: true
dependencies: dependencies:
chokidar: 3.5.3 chokidar: 3.5.3
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.3
dev: true
/unplugin/0.6.2_vite@2.9.4:
resolution: {integrity: sha512-+QONc2uBFQbeo4x5mlJHjTKjR6pmuchMpGVrWhwdGFFMb4ttFZ4E9KqhOOrNcm3Q8NNyB1vJ4s5e36IZC7UWYw==}
peerDependencies:
esbuild: '>=0.13'
rollup: ^2.50.0
vite: ^2.3.0
webpack: 4 || 5
peerDependenciesMeta:
esbuild:
optional: true
rollup:
optional: true
vite:
optional: true
webpack:
optional: true
dependencies:
chokidar: 3.5.3
vite: 2.9.4_sass@1.50.0
webpack-sources: 3.2.3 webpack-sources: 3.2.3
webpack-virtual-modules: 0.4.3 webpack-virtual-modules: 0.4.3
dev: true dev: true
@@ -6113,7 +6209,7 @@ packages:
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
dev: true dev: true
/vite-plugin-inspect/0.4.3_vite@2.9.2: /vite-plugin-inspect/0.4.3_vite@2.9.4:
resolution: {integrity: sha512-lj3oWnReRUwMHB7k8ZD8o6E27/OSn+8ua+tOftxuS39aM6Z9MG7m5r1CMlxMwEwdTM/wnQr0aH22Y2IX3e+++w==} resolution: {integrity: sha512-lj3oWnReRUwMHB7k8ZD8o6E27/OSn+8ua+tOftxuS39aM6Z9MG7m5r1CMlxMwEwdTM/wnQr0aH22Y2IX3e+++w==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@@ -6124,12 +6220,12 @@ packages:
kolorist: 1.5.1 kolorist: 1.5.1
sirv: 2.0.2 sirv: 2.0.2
ufo: 0.7.11 ufo: 0.7.11
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-md/0.12.4_vite@2.9.2: /vite-plugin-md/0.12.4_vite@2.9.4:
resolution: {integrity: sha512-qtkzpHAvdp/Zo/2ntmCpfph2JD4F0+tOl1vK3QVAZztpWyoO7Yi8Y2Dqu7Urrnh/fPH7PnIWlrrQy1XV/D92Pg==} resolution: {integrity: sha512-qtkzpHAvdp/Zo/2ntmCpfph2JD4F0+tOl1vK3QVAZztpWyoO7Yi8Y2Dqu7Urrnh/fPH7PnIWlrrQy1XV/D92Pg==}
peerDependencies: peerDependencies:
vite: ^2.0.0 vite: ^2.0.0
@@ -6140,10 +6236,10 @@ packages:
'@vue/runtime-core': 3.2.31 '@vue/runtime-core': 3.2.31
gray-matter: 4.0.3 gray-matter: 4.0.3
markdown-it: 12.3.2 markdown-it: 12.3.2
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
dev: true dev: true
/vite-plugin-pages/0.22.0_vite@2.9.2: /vite-plugin-pages/0.22.0_vite@2.9.4:
resolution: {integrity: sha512-OeCtSKoQNjrjtlNgkF4JTU0UdiZsa0cSQJKFyRoUz5KMbGoXR8O29BB2fZx9tMSBPyQJgGvIpzdoofLDaRNcQQ==} resolution: {integrity: sha512-OeCtSKoQNjrjtlNgkF4JTU0UdiZsa0cSQJKFyRoUz5KMbGoXR8O29BB2fZx9tMSBPyQJgGvIpzdoofLDaRNcQQ==}
peerDependencies: peerDependencies:
'@vue/compiler-sfc': '>=3' '@vue/compiler-sfc': '>=3'
@@ -6158,13 +6254,13 @@ packages:
json5: 2.2.0 json5: 2.2.0
local-pkg: 0.4.1 local-pkg: 0.4.1
picocolors: 1.0.0 picocolors: 1.0.0
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
yaml: 2.0.0-10 yaml: 2.0.0-10
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-pwa/0.11.13_vite@2.9.2: /vite-plugin-pwa/0.11.13_vite@2.9.4:
resolution: {integrity: sha512-Ssj14m3TRVLfkFEAWSMcFE2d1cSdEZyrVTzfY2lSL+umHYvcIFHVDAY143sygtBCb44OPczsAOmWwBTxwOvh7g==} resolution: {integrity: sha512-Ssj14m3TRVLfkFEAWSMcFE2d1cSdEZyrVTzfY2lSL+umHYvcIFHVDAY143sygtBCb44OPczsAOmWwBTxwOvh7g==}
peerDependencies: peerDependencies:
vite: ^2.0.0 vite: ^2.0.0
@@ -6173,7 +6269,7 @@ packages:
fast-glob: 3.2.11 fast-glob: 3.2.11
pretty-bytes: 5.6.0 pretty-bytes: 5.6.0
rollup: 2.70.1 rollup: 2.70.1
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
workbox-build: 6.5.1 workbox-build: 6.5.1
workbox-window: 6.5.1 workbox-window: 6.5.1
transitivePeerDependencies: transitivePeerDependencies:
@@ -6181,7 +6277,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vite-plugin-vue-layouts/0.6.0_19e98d1a87783d01efb725acc506d368: /vite-plugin-vue-layouts/0.6.0_42985b3d17b5dbc57a90bf45aa3d705b:
resolution: {integrity: sha512-7QX7o/NpCfs+hyXphwYfmPqAEQ6qd4uXsvI0VsovjGT2eCoEE5dMdP6L+uqqNWY4uqv7oCvtinecZmbzZv/9Rg==} resolution: {integrity: sha512-7QX7o/NpCfs+hyXphwYfmPqAEQ6qd4uXsvI0VsovjGT2eCoEE5dMdP6L+uqqNWY4uqv7oCvtinecZmbzZv/9Rg==}
peerDependencies: peerDependencies:
vite: ^2.5.0 vite: ^2.5.0
@@ -6191,9 +6287,9 @@ packages:
'@vue/compiler-sfc': 3.2.31 '@vue/compiler-sfc': 3.2.31
debug: 4.3.3 debug: 4.3.3
fast-glob: 3.2.11 fast-glob: 3.2.11
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
vue: 3.2.32 vue: 3.2.33
vue-router: 4.0.14_vue@3.2.32 vue-router: 4.0.14_vue@3.2.33
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@@ -6202,7 +6298,7 @@ packages:
resolution: {integrity: sha512-eXhdz4fs/RUvHk5n475NovTZkXLG/P7DKYdQ2i+nqF1tAeIGuK3gmN4Fycu1J2bA8eAoDO63Vlrc8MW9QpiJuw==} resolution: {integrity: sha512-eXhdz4fs/RUvHk5n475NovTZkXLG/P7DKYdQ2i+nqF1tAeIGuK3gmN4Fycu1J2bA8eAoDO63Vlrc8MW9QpiJuw==}
dev: true dev: true
/vite-ssg/0.19.2_04592499939e923446fa8d60d79e6adf: /vite-ssg/0.19.2_4fe8e943315feb068786d458bd42ec56:
resolution: {integrity: sha512-r9UJJ4OTMyu9f4nNe12PMVhVkeXYp1rUKbIl6zIOz5QDYEDgFcq8hZGUMMIAcyHhB4pH5ImmjZd1hJ2fO6hOmg==} resolution: {integrity: sha512-r9UJJ4OTMyu9f4nNe12PMVhVkeXYp1rUKbIl6zIOz5QDYEDgFcq8hZGUMMIAcyHhB4pH5ImmjZd1hJ2fO6hOmg==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
hasBin: true hasBin: true
@@ -6216,7 +6312,7 @@ packages:
critters: critters:
optional: true optional: true
dependencies: dependencies:
'@vueuse/head': 0.7.6_vue@3.2.32 '@vueuse/head': 0.7.6_vue@3.2.33
critters: 0.0.16 critters: 0.0.16
fs-extra: 10.0.1 fs-extra: 10.0.1
html-minifier: 4.0.0 html-minifier: 4.0.0
@@ -6224,9 +6320,9 @@ packages:
jsdom: 19.0.0 jsdom: 19.0.0
kolorist: 1.5.1 kolorist: 1.5.1
prettier: 2.6.0 prettier: 2.6.0
vite: 2.9.2_sass@1.50.0 vite: 2.9.4_sass@1.50.0
vue: 3.2.32 vue: 3.2.33
vue-router: 4.0.14_vue@3.2.32 vue-router: 4.0.14_vue@3.2.33
yargs: 17.3.1 yargs: 17.3.1
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@@ -6235,8 +6331,8 @@ packages:
- utf-8-validate - utf-8-validate
dev: true dev: true
/vite/2.9.2_sass@1.50.0: /vite/2.9.4_sass@1.50.0:
resolution: {integrity: sha512-ScbfYsiG1N/xE2TnZWYWJ8aOFBQovEl4VLU+0dktxqXvqdAvcTOEUM5YqwaBkmNHSHUGHLPd92tuXFQ35wDkVw==} resolution: {integrity: sha512-7pO6ruZMsyTpaPB7kGtW+yj15Ze5g+E4w4Ramk1sAJLIuI4uPd5sauqubmZNpq0Yc1vLVxoXRf2Uj+qWxk5aXw==}
engines: {node: '>=12.2.0'} engines: {node: '>=12.2.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -6260,7 +6356,7 @@ packages:
fsevents: 2.3.2 fsevents: 2.3.2
dev: true dev: true
/vue-demi/0.12.5_vue@3.2.32: /vue-demi/0.12.5_vue@3.2.33:
resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
@@ -6272,7 +6368,7 @@ packages:
'@vue/composition-api': '@vue/composition-api':
optional: true optional: true
dependencies: dependencies:
vue: 3.2.32 vue: 3.2.33
dev: false dev: false
/vue-eslint-parser/8.3.0_eslint@8.13.0: /vue-eslint-parser/8.3.0_eslint@8.13.0:
@@ -6293,13 +6389,13 @@ packages:
- supports-color - supports-color
dev: true dev: true
/vue-router/4.0.14_vue@3.2.32: /vue-router/4.0.14_vue@3.2.33:
resolution: {integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==} resolution: {integrity: sha512-wAO6zF9zxA3u+7AkMPqw9LjoUCjSxfFvINQj3E/DceTt6uEz1XZLraDhdg2EYmvVwTBSGlLYsUw8bDmx0754Mw==}
peerDependencies: peerDependencies:
vue: ^3.2.0 vue: ^3.2.0
dependencies: dependencies:
'@vue/devtools-api': 6.1.3 '@vue/devtools-api': 6.1.3
vue: 3.2.32 vue: 3.2.33
dev: false dev: false
/vue-tsc/0.34.6_typescript@4.6.3: /vue-tsc/0.34.6_typescript@4.6.3:
@@ -6312,14 +6408,14 @@ packages:
typescript: 4.6.3 typescript: 4.6.3
dev: true dev: true
/vue/3.2.32: /vue/3.2.33:
resolution: {integrity: sha512-6L3jKZApF042OgbCkh+HcFeAkiYi3Lovi8wNhWqIK98Pi5efAMLZzRHgi91v+60oIRxdJsGS9sTMsb+yDpY8Eg==} resolution: {integrity: sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==}
dependencies: dependencies:
'@vue/compiler-dom': 3.2.32 '@vue/compiler-dom': 3.2.33
'@vue/compiler-sfc': 3.2.32 '@vue/compiler-sfc': 3.2.33
'@vue/runtime-dom': 3.2.32 '@vue/runtime-dom': 3.2.33
'@vue/server-renderer': 3.2.32_vue@3.2.32 '@vue/server-renderer': 3.2.33_vue@3.2.33
'@vue/shared': 3.2.32 '@vue/shared': 3.2.33
dev: false dev: false
/w3c-hr-time/1.0.2: /w3c-hr-time/1.0.2:

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

7
src/components.d.ts vendored
View File

@@ -1,17 +1,22 @@
// generated by unplugin-vue-components // generated by unplugin-vue-components
// We suggest you to commit this file into source control // We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/vue-next/pull/3399 // Read more: https://github.com/vuejs/vue-next/pull/3399
import '@vue/runtime-core'
declare module '@vue/runtime-core' { declare module '@vue/runtime-core' {
export interface GlobalComponents { export interface GlobalComponents {
BaseFooter: typeof import('./components/BaseFooter.vue')['default'] BaseFooter: typeof import('./components/BaseFooter.vue')['default']
ChooseFood: typeof import('./components/ChooseFood.vue')['default'] ChooseFood: typeof import('./components/ChooseFood.vue')['default']
Counter: typeof import('./components/Counter.vue')['default'] Counter: typeof import('./components/Counter.vue')['default']
DishTag: typeof import('./components/DishTag.vue')['default']
MeatTag: typeof import('./components/MeatTag.vue')['default']
Menu: typeof import('./components/Menu.vue')['default'] Menu: typeof import('./components/Menu.vue')['default']
README: typeof import('./components/README.md')['default'] README: typeof import('./components/README.md')['default']
RouterLink: typeof import('vue-router')['RouterLink'] RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView'] RouterView: typeof import('vue-router')['RouterView']
StapleTag: typeof import('./components/StapleTag.vue')['default']
VegetableTag: typeof import('./components/VegetableTag.vue')['default']
} }
} }
export { } export {}

View File

@@ -1,11 +1,80 @@
<script lang="ts" setup> <script lang="ts" setup>
import MeatTag from './MeatTag.vue'
import StapleTag from './StapleTag.vue'
import DishTag from './DishTag.vue'
import { meat, staple, vegetable } from '~/data/foot'
import recipeData from '~/data/recipe.json' import recipeData from '~/data/recipe.json'
import type { Recipe } from '~/types' import type { Recipe } from '~/types'
import { useRecipeStore } from '~/stores/recipe'
const recipe = ref(recipeData as Recipe) const recipe = ref(recipeData as Recipe)
const rStore = useRecipeStore()
const displayedRecipe = computed(() => {
return recipe.value.filter((item) => {
return Array.from(rStore.curStuff).some(stuff => item.stuff.includes(stuff))
})
})
</script> </script>
<template> <template>
<div m="y-4">
<h2 text="xl" font="bold" p="1">
🥬 蔬菜区
</h2>
<VegetableTag
v-for="item, i in vegetable" :key="i"
:active="rStore.curStuff.has(item.name)"
@click="rStore.toggleStuff(item.name)"
>
<span v-if="item.emoji">{{ item.emoji }}</span>
<img v-else-if="item.image" class="inline-flex" w="3" :src="item.image">
<span m="l-1">
{{
item.name
}}
</span>
</VegetableTag>
</div>
<div m="y-4">
<h2 text="xl" font="bold" p="1">
🥩 荤菜区
</h2>
<MeatTag
v-for="item, i in meat" :key="i"
:active="rStore.curStuff.has(item.name)"
@click="rStore.toggleStuff(item.name)"
>
<span>{{ item.emoji }}</span>
<span m="l-1">
{{
item.name
}}
</span>
</MeatTag>
</div>
<div m="y-4">
<h2 text="xl" font="bold" p="1">
🍚 主食区
</h2>
<StapleTag
v-for="item, i in staple" :key="i"
:active="rStore.curStuff.has(item.name)"
@click="rStore.toggleStuff(item.name)"
>
<span>{{ item.emoji }}</span>
<span m="l-1">
{{
item.name
}}
</span>
</StapleTag>
</div>
<hr p="2" opacity="10">
<div> <div>
<span v-for="item, i in recipe" :key="i" class="tag">{{ item.name }}</span> <h2 text="xl" font="bold" p="1">
📄 菜谱
</h2>
<DishTag v-for="item, i in displayedRecipe" :key="i" :dish="item" />
</div> </div>
</template> </template>

View File

@@ -0,0 +1,16 @@
<script lang="ts" setup>
import type { RecipeItem } from '~/types'
defineProps<{
dish: RecipeItem
}>()
</script>
<template>
<a
:href="dish.link" target="_blank" class="tag rounded" p="x-2"
border="~ blue-200 dark:blue-800"
bg="blue-300 opacity-20"
>
<span text="sm blue-700 dark:blue-200">{{ dish.name }}</span>
</a>
</template>

View File

@@ -0,0 +1,16 @@
<script lang="ts" setup>
defineProps<{
active: boolean
}>()
</script>
<template>
<span
class="tag rounded" p="x-2"
border="~ red-200 dark:red-800"
:bg="active ? 'red-500 opacity-90' : 'red-300 opacity-20'"
:text="active ? 'red-100' : 'red-800 dark:red-200'"
>
<slot />
</span>
</template>

View File

@@ -3,7 +3,7 @@ import { toggleDark } from '~/composables'
</script> </script>
<template> <template>
<nav text-xl mt-6> <nav text-xl p="t-6">
<RouterLink class="icon-btn mx-2" to="/" title="首页"> <RouterLink class="icon-btn mx-2" to="/" title="首页">
<div i-ri-home-2-line /> <div i-ri-home-2-line />
</RouterLink> </RouterLink>

View File

@@ -0,0 +1,15 @@
<script lang="ts" setup>
defineProps<{
active: boolean
}>()
</script>
<template>
<span
class="tag rounded" p="x-2" border="~ yellow-200 dark:yellow-800"
:bg="active ? 'yellow-500 dark:yellow-600 opacity-100' : 'yellow-300 opacity-20'"
:text="active ? 'yellow-100' : 'yellow-800 dark:yellow-200'"
>
<slot />
</span>
</template>

View File

@@ -0,0 +1,16 @@
<script lang="ts" setup>
defineProps<{
active: boolean
}>()
</script>
<template>
<span
class="tag rounded" p="x-2"
border="~ green-200 dark:green-800"
:bg="active ? 'green-600 opacity-90' : 'green-300 opacity-20'"
:text="active ? 'green-100' : 'green-800 dark:green-200'"
>
<slot />
</span>
</template>

141
src/data/foot.ts Normal file
View File

@@ -0,0 +1,141 @@
export interface StuffItem {
/**
* 食材名称
*/
name: string
/**
* 例如:🥔
*/
emoji: string
/**
* 图片链接
*/
image?: string
}
/**
* 素菜
*/
export const vegetable: StuffItem[] = [
{
name: '土豆',
emoji: '🥔',
},
{
name: '胡萝卜',
emoji: '🥕',
},
{
name: '花菜',
emoji: '🥦',
},
{
name: '白萝卜',
emoji: '🥣',
},
{
name: '西葫芦',
emoji: '🥒',
},
{
name: '番茄',
emoji: '🍅',
},
{
name: '芹菜',
emoji: '🥬',
},
{
name: '黄瓜',
emoji: '🥒',
},
{
name: '洋葱',
emoji: '🧅',
},
{
name: '莴笋',
emoji: '🥗',
},
{
name: '菌菇',
emoji: '🍄',
},
{
name: '茄子',
emoji: '🍆',
},
{
name: '豆腐',
emoji: '🍲',
},
{
name: '包菜',
emoji: '',
image: '/images/cabbage-dog.jpg',
},
]
/**
* 荤菜
*/
export const meat: StuffItem[] = [
{
name: '午餐肉',
emoji: '🥓',
},
{
name: '香肠',
emoji: '🌭',
},
{
name: '鸡翅',
emoji: '🐤',
},
{
name: '猪肉',
emoji: '🐷',
},
{
name: '鸡蛋',
emoji: '🥚',
},
{
name: '虾',
emoji: '🦐',
},
{
name: '牛肉',
emoji: '🐮',
},
{
name: '鸡胸肉',
emoji: '💪',
},
{
name: '骨头',
emoji: '🦴',
},
]
/**
* 主食
*/
export const staple: StuffItem[] = [
{
name: '面条',
emoji: '🍝',
},
{
name: '面包',
emoji: '🍞',
},
{
name: '米饭',
emoji: '🍚',
},
{
name: '方便面',
emoji: '🍜',
},
]

20
src/stores/recipe.ts Normal file
View File

@@ -0,0 +1,20 @@
import { acceptHMRUpdate, defineStore } from 'pinia'
export const useRecipeStore = defineStore('recipe', () => {
const curStuff = ref(new Set<string>())
function toggleStuff(name: string) {
if (curStuff.value.has(name))
curStuff.value.delete(name)
else
curStuff.value.add(name)
}
return {
curStuff,
toggleStuff,
}
})
if (import.meta.hot)
import.meta.hot.accept(acceptHMRUpdate(useRecipeStore, import.meta.hot))

View File

@@ -10,5 +10,5 @@ a {
.tag { .tag {
margin: 4px; margin: 4px;
padding: 2px 4px; padding: 2px 4px;
border: 1px solid var(--c-text); // border: 1px solid var(--c-text);
} }

View File

@@ -11,7 +11,7 @@ import {
export default defineConfig({ export default defineConfig({
shortcuts: [ shortcuts: [
['tag', 'shadow hover:shadow-md'], ['tag', 'text-sm cursor-pointer inline-flex justify-center items-center transition shadow hover:shadow-md'],
['btn', 'px-4 py-1 rounded inline-block bg-green-600 text-white cursor-pointer hover:bg-green-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'], ['btn', 'px-4 py-1 rounded inline-block bg-green-600 text-white cursor-pointer hover:bg-green-700 disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50'],
['icon-btn', 'text-[0.9em] inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-green-600'], ['icon-btn', 'text-[0.9em] inline-block cursor-pointer select-none opacity-75 transition duration-200 ease-in-out hover:opacity-100 hover:text-green-600'],
], ],