Compare commits

..

No commits in common. 'main' and 'UserInfo' have entirely different histories.

@ -0,0 +1,28 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
<<<<<<< HEAD
*.sw?
=======
*.sw?
>>>>>>> 42d0eec2c04687bfcd07b428945c72601bc08cf5

@ -0,0 +1,3 @@
{
"recommendations": ["Vue.volar"]
}

@ -0,0 +1,5 @@
# Vue 3 + Vite
This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
Learn more about IDE Support for Vue in the [Vue Docs Scaling up Guide](https://vuejs.org/guide/scaling-up/tooling.html#ide-support).

@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Vite + Vue</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>

@ -0,0 +1,22 @@
{
"name": "lesson2_1",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"axios": "^1.7.7",
"element-plus": "^2.8.7",
"vue": "^3.4.37",
"vue-router": "^4.4.5",
"vuetify": "^3.7.4"
},
"devDependencies": {
"@vitejs/plugin-vue": "^5.1.2",
"vite": "^5.4.1"
}
}

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -0,0 +1,23 @@
<script setup>
</script>
<template>
<div>
<router-view></router-view>
</div>
</template>
<style scoped>
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover {
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,164 @@
<template>
<div class="container">
<!-- 渲染9个框 -->
<div class="box" v-for="(index, idx) in 9" :key="index">
<div class="box-header">
<!-- 使用动态标题 -->
<router-link :to="`/article/${index}`" class="title">
{{ titles[idx] }}
</router-link>
</div>
<div class="box-content">
<!-- 内容部分最多显示两行超过则省略 -->
<p class="clamped-text">{{ content[idx] }}</p>
</div>
<!-- 添加时间部分 -->
<div class="box-time">
{{ times[idx] }}
</div>
<div class="box-name">
{{ names[idx] }}
</div>
</div>
</div>
</template>
<script>
export default {
name: 'BoxList',
data() {
return {
titles: [
'深秋美丽的格桑花依然开放(续)',
'长白山小天池【东北行38天】',
'川渝行成都武侯祠中2',
'孟冬时花开(续)',
'七律·独吟',
'天下第一天然隘口丨广元剑门关',
'川西环线27色达到甘孜·乃龙山垭口',
'风雨欲来',
'南小汪小小说四篇'
],
content: [
'“立冬”过了,进入了初冬时节,公园里还有金秋的影子。公园里美丽的五颜六色的格桑花依然开放,给初冬风光添了浓重一笔。贴上部分照片,一起分享:',
'小天池在长白瀑布以北3公里处小天池共有两个。一个隐在幽静的岳桦林中海拔1780米湖面呈圆形面积5380平方米水深10余米湖水碧绿。距小天池约200米处还有一圆形池与它大小相差无几只是积水甚浅仅几米深有时干涸露出黄色泥土。登高俯视一个碧蓝一个赤黄好似一对金银杯所以人们又称小天池为对杯湖别具景色。',
'《蜀相》“丞相祠堂何处寻锦官城外柏森森。映阶碧草自春色隔叶黄鹂空好音。三顾频烦天下计两朝开济老臣心。出师未捷身先死长使英雄泪满襟。”公元759年12月杜甫来到成都在朋友的资助下修建茅屋定居在浣花溪畔。760年的春天他探访了诸葛武侯祠写下了这首感人肺腑的千古绝唱。来到成都我最想去的就是武侯祠和杜甫草堂。',
'孟冬时花开笑容满面醉蝶花娇艳海棠映彩霞。昂首芦荻有个性天寒从不在乎它。XLwushi 2024.11.08.',
'心萦朗日对清明,思入冰壶透彻情。烦事何堪昨夜梦,公私应晓故人胸。独吟秋月潇潇曲,自挽长空阵阵风。还忆搴旗频踏浪,犹知老马不孤行。',
'剑门关丁规桥,也称为子规桥,位于中国四川省广元市剑阁县境内的剑门关景区。这座桥梁因其附近常有杜鹃鸟(子规)的啼鸣而得名。剑门关是中国著名的天然关隘之一,以其险峻的地貌和丰富的历史文化遗存而著称,享有“剑门天下险”、“天下第一关”、“蜀之门户”之美誉。剑门关不仅是自然景观的代表,也是中国历史上的重要战略要地。',
'从色达县城到甘孜县城有150公里左右一路上不是高山就是峡谷当然刚开始还有草甸。',
'天气变幻莫测,阴晴不定这时候总会有风,也有雨。不论它从哪个方向来又向哪个方向去我们只管走好自己的路不要有丝毫犹豫即使冬天再冷内心的热血也一定能抗拒哪怕前路艰辛凭着信念也一样披荆斩棘风,刮得更猛些吧雨,来得更大些吧。',
'南小汪小小说四篇不能再低了喝酒的规矩千千万,有一条几乎是大家的共识,那就是:给比自己年长的或职级更高的人敬酒,杯沿应比对方低。这个规矩简单易执行,但也存在一些不好把握的地方:一是如果碰杯双方同年同月同日生,谁比谁杯沿低?二是如果双方职级和任职年限完全相同,谁又比谁杯沿低?'
],
//
times: [
'10月30日 11:00',
'10月30日 22:00',
'10月31日 11:09',
'10月31日 12:00',
'11月1日 8:00',
'11月1日 11:00',
'11月1日 11:50',
'11月2日 11:30',
'11月3日 12:00',
],
names: [
'lgg',
'齐天大圣',
'追逐者',
'规划师',
'美少女',
'Lxiang',
'wanmei',
'xiaoxiao',
'小米',
]
};
}
};
</script>
<style scoped>
/* 外部容器,使得框垂直排列 */
.container {
display: flex;
flex-direction: column;
gap: 10px; /* 框之间的间距 */
}
/* 每个框 */
.box {
height: 120px; /* 增加高度以腾出空间放时间 */
width: 800px;
padding: 10px;
padding-left: 20px; /* 整个框内容向右偏移20px */
position: relative;
}
/* 每个框的上边框,设置边距,且只对第一个框有上边距 */
.box::before {
content: '';
position: absolute;
top: 10px; /* 设置距离顶部内容的距离 */
left: 20px; /* 上边框从左边偏移20px */
width: calc(100% - 30px); /* 上边框宽度要考虑到左侧20px偏移 */
height: 1px; /* 边框的高度 */
background-color: gray; /* 边框颜色 */
}
/* 去掉第一个框的顶部边框 */
.container .box:first-child::before {
content: none; /* 移除第一个框的顶部边框 */
}
/* 最底部的框,添加底部边框 */
.container .box:last-child {
border-bottom: 2px solid gray; /* 底部边框样式 */
margin-left: 20px; /* 最后一个框保持与左边的20px距离 */
}
/* 标题部分 */
.box-header {
margin-top: 20px; /* 增加标题与上边框之间的距离 */
}
.box-header .title {
font-size: 18px;
margin: 10px;
cursor: pointer;
padding-left: 30px; /* 标题向右偏移 */
text-align: left; /* 确保标题左对齐 */
}
/* 内容部分:限制文本显示为两行,并且超出部分使用省略号显示 */
.clamped-text {
display: -webkit-box;
-webkit-line-clamp: 2; /* 限制为2行 */
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis; /* 超出文本部分显示省略号 */
font-size: 14px;
color: #666;
line-height: 1.5;
margin: 0;
}
/* 时间部分,放置在右下角 */
.box-time {
position: absolute;
bottom: 5px; /* 距离框的底部10px */
right: 20px; /* 距离框的右侧20px */
font-size: 12px;
color: #999;
}
.box-name{
position: absolute;
bottom: 5px; /* 距离框的底部10px */
left: 20px; /* 距离框的右侧20px */
font-size: 12px;
color: #999;
}
</style>

@ -0,0 +1,28 @@
<template>
<el-carousel :interval="5000">
<el-carousel-item v-for="(item, index) in carouselItems" :key="index">
<img :src="item.img" alt="banner" class="carousel-image" />
</el-carousel-item>
</el-carousel>
</template>
<script>
export default {
data() {
return {
carouselItems: [
{ img: '../assets/banner1.png/1200x400?text=Banner+1' },
{ img: 'https://via.placeholder.com/1200x400?text=Banner+2' },
{ img: 'https://via.placeholder.com/1200x400?text=Banner+3' }
]
}
}
}
</script>
<style scoped>
.carousel-image {
width: 100%;
height: auto;
}
</style>

@ -0,0 +1,125 @@
<template>
<footer class="footer">
<!-- 第一部分友情链接 -->
<div class="footer-top">
<div class="links">
<h4>友情链接</h4>
<ul>
<li><a href="https://chat2db.com" target="_blank">Chat2DB</a></li>
<li><a href="https://www.aliyun.com" target="_blank">阿里云</a></li>
<li><a href="https://cloud.tencent.com" target="_blank">腾讯云</a></li>
<li><a href="https://support.huawei.com" target="_blank">华为云</a></li>
<li><a href="https://www.ctwing.com" target="_blank">天翼云</a></li>
<li><a href="https://www.chinaz.com" target="_blank">站长之家</a></li>
<li><a href="https://wt.qq.com" target="_blank">腾讯WeTest</a></li>
<li><a href="https://www.iweibang.com" target="_blank">爱微帮</a></li>
</ul>
</div>
</div>
<!-- 分隔线 -->
<div class="footer-divider"></div>
<!-- 第二部分关于和联系方式 -->
<div class="footer-bottom">
<div class="about">
<p>Powered by .NET 8.0 on Kubernetes</p>
<p>关于博客 | 联系我们 | 商务合作 | 赞助</p>
<p>&copy; 2024-2054 博客 保留所有权利</p>
<p>举报电话0571-88079867举报邮箱<a href="mailto:contact@cnblogs.com">contact@cnblogs.com</a></p>
</div>
</div>
</footer>
</template>
<script>
export default {
name: 'Footer'
};
</script>
<style scoped>
/* 页脚的基础样式,调整为占满页面宽度 */
.footer {
background-color: #f1f1f1;
color: #333;
padding: 30px 0;
font-size: 14px;
width: 100%;
border-top: 1px solid #ddd;
/* 使用flexbox将内容居中 */
display: flex;
flex-direction: column;
align-items: center; /* 垂直居中对齐 */
justify-content: center; /* 水平居中对齐 */
}
/* 友情链接部分 */
.footer-top {
padding: 0 20px;
width: 100%;
display: flex;
justify-content: center; /* 使footer-top中的内容水平居中 */
}
.links {
text-align: center; /* 使链接列表居中 */
}
.links h4 {
font-size: 16px;
margin-bottom: 10px;
font-weight: bold;
}
.links ul {
list-style: none;
padding: 0;
margin: 0;
}
.links li {
display: inline-block;
margin-right: 15px;
}
.links a {
text-decoration: none;
color: #0073e6;
}
.links a:hover {
text-decoration: underline;
}
/* 分隔线样式 */
.footer-divider {
height: 1px;
background-color: gray;
margin: 30px 0;
width: 80%;
}
/* 关于和联系方式部分 */
.footer-bottom {
padding: 0 20px;
width: 100%;
text-align: center; /* 使内容在footer-bottom中居中 */
}
.about p {
margin: 5px 0;
}
.about a {
color: #0073e6;
text-decoration: none;
}
.about a:hover {
text-decoration: underline;
}
</style>

@ -0,0 +1,43 @@
<template>
<el-menu :default-active="activeMenu" mode="horizontal">
<div><img src="../assets/aaa.png" class="menu-icon" /></div>
<el-menu-item index="/">首页</el-menu-item>
<el-menu-item index="/about">关于</el-menu-item>
<el-menu-item index="/register">注册</el-menu-item>
<el-menu-item index="/login">登录</el-menu-item>
<el-menu-item index="/admin">管理</el-menu-item>
<el-menu-item index="/contact">搜索</el-menu-item>
<div class="menu-right">
<router-link to="UserInfo">
<el-menu-item class="menu-person"><img src="../assets/yonghu.png" alt="个人" class="menu-yh"></el-menu-item>
</router-link>
</div>
</el-menu>
</template>
<script>
</script>
<style scoped>
.el-menu {
background-color:white;
border: none;
text-align: left;
width: 1320px;
}
.menu-icon {
width: 80px; /* 设置图片的宽度 */
height: 58px; /* 设置图片的高度 */
margin-right: 90px; /* 图片与文字之间的间距 */
margin-top: 0px;
margin-left: 40px;
}
.menu-yh {
width: 25px; /* 设置个人图片的宽度 */
height: 25px; /* 设置个人图片的高度 */
}
</style>

@ -0,0 +1,129 @@
<template>
<div class="article-lists">
<!-- 最新文章列表 -->
<div class="article-list">
<h2>最新文章</h2>
<ul>
<li v-for="article in latestArticles" :key="article.id">
<a :href="article.url">{{ article.title }}</a>
</li>
</ul>
</div>
<!-- 热门文章列表 -->
<div class="article-list">
<h2>热门文章</h2>
<ul>
<li v-for="article in popularArticles" :key="article.id">
<a :href="article.url">{{ article.title }}</a>
</li>
</ul>
</div>
<!-- 推荐文章列表 -->
<div class="article-list">
<h2>推荐文章</h2>
<ul>
<li v-for="article in recommendedArticles" :key="article.id">
<a :href="article.url">{{ article.title }}</a>
</li>
</ul>
</div>
</div>
</template>
<script>
export default {
name: 'ArticleLists',
data() {
return {
latestArticles: [
{ id: 1, title: '三大队剧情讲了什么?结局是什么?', url: '#' },
{ id: 2, title: '九部的检察官剧情讲了什么?结局是什么?', url: '#' },
{ id: 3, title: '七律·褐冠鹃隼', url: '#' },
{ id: 4, title: '绝句·暮行', url: '#' },
{ id: 5, title: '欢喜', url: '#' },
],
popularArticles: [
{ id: 1, title: '西北行之二十四拉萨“罗布林卡”', url: '#' },
{ id: 2, title: '2024·云南之旅·景洪傣族园', url: '#' },
{ id: 3, title: '国庆湘鄂行(八):湖南岳阳·岳阳楼', url: '#' },
{ id: 4, title: '游大唐芙蓉园', url: '#' },
{ id: 5, title: '麻城五脑山', url: '#' },
],
recommendedArticles: [
{ id: 1, title: '忘了接二宝', url: '#' },
{ id: 2, title: '万圣节和野人先生【11月1日大雨之上午】', url: '#' },
{ id: 3, title: '阳澄湖大闸蟹的故事【1031日下午】', url: '#' },
{ id: 4, title: '闲说杂绪701', url: '#' },
{ id: 5, title: '两碗馄饨销馋瘾-茗卉甥女大婚', url: '#' },
],
};
},
};
</script>
<style scoped>
.article-lists {
display: flex;
flex-direction: column; /* 垂直排列子元素 */
position: absolute;
right: 0;
top: 68px;
width: 300px; /* 调整宽度以容纳三个列表 */
border-top: 2px solid gainsboro; /* 仅保留顶部边框 */
border-bottom: 2px solid gainsboro; /* 仅保留底部边框 */
border-radius: 8px;
background-color: white; /* 浅灰色背景 */
}
.article-list {
padding: 20px;
border-bottom: 2px solid gainsboro; /* 给每个列表添加底边框 */
}
.article-list:last-child {
border-bottom: none; /* 去掉最后一个列表的底边框 */
}
.article-list h2 {
font-size: 1.5em;
margin-bottom: 10px;
color: #409EFF;
}
.article-list ul {
list-style: none;
padding: 0;
}
.article-list li {
margin-bottom: 8px;
}
.article-list li::before {
content: '•'; /* 添加点 */
color: #409EFF; /* 设置点的颜色 */
margin-right: 8px; /* 点与文本之间的间距 */
font-size: 1.2em; /* 调整点的大小 */
display: inline-block; /* 点与标题并排显示 */
vertical-align: middle; /* 保证点与文字垂直居中对齐 */
}
/* 修改这里,确保每个标题占一行并溢出部分使用省略号 */
.article-list a {
display: block; /* 强制每个标题占一行 */
text-decoration: none;
color: #409EFF;
font-size: 1.1em;
white-space: nowrap; /* 防止文本换行 */
overflow: hidden; /* 隐藏超出部分 */
text-overflow: ellipsis; /* 超出部分显示省略号 */
}
.article-list a:hover {
text-decoration: underline;
}
</style>

@ -0,0 +1,64 @@
<template>
<el-aside width="200px" class="sidebar">
<el-menu default-active="1" class="el-menu-vertical-demo" @select="handleSelect">
<el-menu-item index="1">分类</el-menu-item>
<el-menu-item index="2">精华</el-menu-item>
<el-menu-item index="3">订阅</el-menu-item>
<el-menu-item index="4">关注</el-menu-item>
<el-menu-item index="5">我评</el-menu-item>
<el-menu-item index="6">我赞</el-menu-item>
<el-menu-item index="7">撰写</el-menu-item>
<el-menu-item index="8">作者</el-menu-item>
</el-menu>
</el-aside>
</template>
<script>
export default {
name: 'Sidebar',
methods: {
handleSelect(index) {
console.log('选择了:', index);
//
}
}
};
</script>
<style scoped>
.sidebar {
margin-left: 0; /* 移除左边距,紧贴页面左边 */
padding: 0; /* 移除内边距 */
text-align: center;
width: 180px;
height:1350px;
background-color:#f5f7fa;
}
/* 确保菜单容器占满整个侧边栏 */
.el-menu-vertical-demo {
width: 100%;
height: 100%;
background-color:#f5f7fa;
}
/* 使每个菜单项居中对齐 */
.el-menu-item {
display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
width: 100%;
height: 60px; /* 给菜单项设定高度,调整为你需要的值 */
text-align: center; /* 确保文字居中 */
}
/* 控制选中项的背景颜色 */
.el-menu-item.is-active {
background-color: white;
color: skyblue;
}
.el-menu-item:hover {
color:sky;
}
</style>

@ -0,0 +1,38 @@
<template>
<div class="tag-cloud">
<h3>标签云</h3>
<div class="tags">
<span v-for="tag in tags" :key="tag" class="tag">{{ tag }}</span>
</div>
</div>
</template>
<script>
export default {
props: ['tags'],
};
</script>
<style scoped>
.tag-cloud {
margin-top: 20px;
}
.tag-cloud .tags {
display: flex;
flex-wrap: wrap;
}
.tag {
margin: 5px;
padding: 5px 10px;
background-color: #e0e0e0;
border-radius: 5px;
cursor: pointer;
}
.tag:hover {
background-color: #c0c0c0;
}
</style>

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>进制转换</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 10px;
max-width: 400px;
}
label, input, button {
display: block;
margin-bottom: 10px;
}
#result {
font-weight: bold;
}
</style>
</head>
<body>
<h2>任意进制转换器</h2>
<label for="fromBase">输入进制 (2-16):</label>
<input type="number" id="fromBase" min="2" max="16" required>
<label for="number">输入数字:</label>
<input type="text" id="number" placeholder="例如1010" required>
<label for="toBase">转换为进制 (2-16):</label>
<input type="number" id="toBase" min="2" max="16" required>
<button id="convertButton">转换</button>
<h3>结果:</h3>
<div id="result"></div>
<script>
document.getElementById('convertButton').addEventListener('click', () => {
const fromBase = parseInt(document.getElementById('fromBase').value);
const number = document.getElementById('number').value.trim();
const toBase = parseInt(document.getElementById('toBase').value);
// 验证输入的数字是否合法
if (!/^[0-9A-Fa-f]+$/.test(number) || !isValidForBase(number, fromBase)) {
document.getElementById('result').textContent = '输入的数字不符合指定的进制规则!';
return;
}
// 转换为十进制
const decimalValue = parseInt(number, fromBase);
const convertedValue = decimalValue.toString(toBase).toUpperCase();
// 显示结果
document.getElementById('result').textContent = convertedValue;
});
function isValidForBase(numStr, base) {
const validChars = '0123456789ABCDEF'.slice(0, base);
return [...numStr].every(char => validChars.includes(char.toUpperCase()));
}
</script>
</body>
</html>

@ -0,0 +1,11 @@
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css' // 引入 Element Plus 的样式
const app = createApp(App)
app.use(router)
app.use(ElementPlus)
app.mount('#app')

@ -0,0 +1,33 @@
import { createRouter, createWebHistory } from 'vue-router'
import Home from './views/Home.vue'
import ArticleDetail from './components/ArticleDetail.vue'; // 假设你有一个显示文章详情的组件
import UserInfo from './views/UserAccount.vue';
import UserDetail from './views/UserDetail.vue';
const routes = [
{ path: '/', component: Home },
{
path: '/article/:id', // 动态路由id是文章的唯一标识
name: 'ArticleDetail',
component: ArticleDetail,
props: true // 启用将参数传递给组件的功能
},
{
path: '/userinfo',
name: 'UserInfo',
component: UserInfo,
},
{
path: '/user/:id',
name: 'UserDetail',
component: UserDetail
}
]
const router = createRouter({
history: createWebHistory(),
routes,
})
export default router

@ -0,0 +1,47 @@
/*import Vue from 'vue';
import Router from 'vue-router';
import Home from '@/views/Home.vue';
Vue.use(Router);
export default new Router({
routes: [
{ path: '/', component: Home },
{ path: '/about', component: () => import('@/views/About.vue') },
{ path: '/posts', component: () => import('@/views/Posts.vue') },
{ path: '/register', component: () => import('@/views/Register.vue') },
{ path: '/login', component: () => import('@/views/Login.vue') },
{ path: '/admin', component: () => import('@/views/Admin.vue') },
{ path: '/contact', component: () => import('@/views/Contact.vue') },
{ path: '/more', component: () => import('@/views/More.vue') },
{ path: '/user', name: 'person', component: () => import('/user/UserAccount.vue') },
],
});*/
import {
createRouter,
createWebHashHistory
} from "vue-router";
const router = createRouter({
history: createWebHashHistory(),
routes: [
{
path: "/",
redirect: "/Home"
},
{
path: '/Home',
name: 'Home',
component: () => import("./views/Home.vue")
},
{
path: "/user",
name: 'User',
component: () => import("./views/user/UserAccount.vue")
]
}
]
})

@ -0,0 +1,79 @@
:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;
color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;
font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a {
font-weight: 500;
color: #646cff;
text-decoration: inherit;
}
a:hover {
color: #535bf2;
}
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}
h1 {
font-size: 3.2em;
line-height: 1.1;
}
button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #646cff;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}
.card {
padding: 2em;
}
#app {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}

@ -0,0 +1,57 @@
<template>
<div class="home-page">
<Navbar />
<div class="main-content">
<div class="sidebar">
<Sidebar />
</div>
<div class="articleList">
<ArticleList />
</div>
<div class="posts">
<PostList />
</div>
</div>
<Footer />
</div>
</template>
<script>
import Navbar from '../components/Navbar.vue'
import Carousel from '../components/Carousel.vue'
import PostList from '../components/PostList.vue'
import Sidebar from '../components/Sidebar.vue'
import ArticleList from '../components/ArticleList.vue'
import Footer from '../components/Footer.vue'
export default {
components: {
Navbar,
Carousel,
PostList,
Sidebar,
ArticleList,
Footer
}
}
</script>
<style scoped>
.home-page {
display: flex;
flex-direction: column;
align-items: center;
}
.main-content {
display: flex;
justify-content: space-between;
width: 100%;
max-width: 2000px;
margin-l : 0%;
}
.posts {
flex: 5;
}
</style>

@ -0,0 +1,293 @@
<template>
<el-container>
<el-header>
<el-button type="primary" @click="goBack"></el-button>
<h1>知乎个人主页</h1>
</el-header>
<el-main>
<el-row :gutter="20">
<el-col :span="8">
<el-card shadow="hover" class="user-card">
<el-image :src="user.avatar" class="avatar"></el-image>
<div class="card-content">
<h2>{{ user.name }}</h2>
<p>{{ user.bio }}</p>
</div>
</el-card>
</el-col>
<el-col :span="16">
<el-tabs v-model="tab" stretch class="tabs">
<el-tab-pane label="发布的文章" name="posts">
<el-list class="list" :data="user.posts" type="list">
<el-list-item v-for="post in user.posts" :key="post.id">
<el-row :gutter="10" align="middle">
<el-col :span="6">
<el-image :src="post.cover" class="post-cover"></el-image>
</el-col>
<el-col :span="18">
<router-link :to="`/post/${post.id}`" class="post-title">{{ post.title }}</router-link>
<p class="post-summary">{{ post.summary }}</p>
<div class="post-stats">
<span><i class="el-icon-thumb"></i> {{ post.likes }} 点赞</span>
<span><i class="el-icon-chat-dot-round"></i> {{ post.comments }} 评论</span>
</div>
<div class="post-actions">
<el-button type="text" @click="toggleEdit(post.id)"></el-button>
<div v-if="post.editing" class="edit-options">
<el-button type="danger" size="small" @click="deletePost(post.id)"></el-button>
<el-button type="primary" size="small" @click="rewritePost(post.id)"></el-button>
</div>
</div>
</el-col>
</el-row>
</el-list-item>
</el-list>
</el-tab-pane>
<el-tab-pane label="收藏的文章" name="collections">
<el-list class="list" :data="user.collections" type="list">
<el-list-item v-for="collection in user.collections" :key="collection.id">
<el-row :gutter="10" align="middle">
<el-col :span="6">
<el-image :src="collection.cover" class="post-cover"></el-image>
</el-col>
<el-col :span="18">
<router-link :to="`/post/${collection.id}`" class="post-title">{{ collection.title }}</router-link>
<p class="post-summary">{{ collection.summary }}</p>
<div class="post-stats">
<span><i class="el-icon-thumb"></i> {{ collection.likes }} 点赞</span>
<span><i class="el-icon-chat-dot-round"></i> {{ collection.comments }} 评论</span>
</div>
<div class="post-actions">
<el-button type="danger" size="small" @click="deleteCollection(collection.id)"></el-button>
</div>
</el-col>
</el-row>
</el-list-item>
</el-list>
</el-tab-pane>
<el-tab-pane label="关注和粉丝" name="followers">
<el-list class="list" :data="user.followers" type="list">
<el-list-item v-for="follower in user.followers" :key="follower.id">
<el-row :gutter="10" align="middle">
<el-col :span="4">
<router-link :to="`/user/${follower.id}`">
<el-avatar :src="follower.avatar" class="follower-avatar"></el-avatar>
</router-link>
</el-col>
<el-col :span="16">
<router-link :to="`/user/${follower.id}`" class="follower-name">{{ follower.name }}</router-link>
<p class="follower-level">等级: {{ follower.level }}</p>
</el-col>
<el-col :span="4">
<el-button type="danger" size="small" @click="unfollow(follower.id)"></el-button>
</el-col>
</el-row>
</el-list-item>
</el-list>
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
</el-main>
</el-container>
</template>
<script setup>
import { ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
const router = useRouter()
const tab = ref('posts')
const user = ref({
avatar: 'https://via.placeholder.com/150',
name: '张三',
bio: '这是一个个人简介,介绍我的兴趣爱好、职业背景等。',
posts: [
{ id: 1, title: '第一篇文章标题', summary: '这是第一篇文章的摘要', likes: 100, comments: 50, cover: 'https://via.placeholder.com/200x150', editing: false },
{ id: 2, title: '第二篇文章标题', summary: '这是第二篇文章的摘要', likes: 200, comments: 75, cover: 'https://via.placeholder.com/200x150', editing: false },
{ id: 3, title: '第三篇文章标题', summary: '这是第三篇文章的摘要', likes: 150, comments: 60, cover: 'https://via.placeholder.com/200x150', editing: false }
],
collections: [
{ id: 1, title: '收藏的第一篇文章', summary: '这是收藏的第一篇文章的摘要', likes: 80, comments: 30, cover: 'https://via.placeholder.com/200x150' },
{ id: 2, title: '收藏的第二篇文章', summary: '这是收藏的第二篇文章的摘要', likes: 120, comments: 45, cover: 'https://via.placeholder.com/200x150' },
{ id: 3, title: '收藏的第三篇文章', summary: '这是收藏的第三篇文章的摘要', likes: 90, comments: 35, cover: 'https://via.placeholder.com/200x150' }
],
followers: [
{ id: 1, name: '李四', avatar: 'https://via.placeholder.com/50', level: 1 },
{ id: 2, name: '王五', avatar: 'https://via.placeholder.com/50', level: 2 },
{ id: 3, name: '赵六', avatar: 'https://via.placeholder.com/50', level: 3 }
]
})
//
onMounted(() => {
setTimeout(() => {
user.value = {
avatar: 'https://via.placeholder.com/150',
name: '张三',
bio: '这是一个个人简介,介绍我的兴趣爱好、职业背景等。',
posts: [
{ id: 1, title: '第一篇文章标题', summary: '这是第一篇文章的摘要', likes: 100, comments: 50, cover: 'https://via.placeholder.com/200x150', editing: false },
{ id: 2, title: '第二篇文章标题', summary: '这是第二篇文章的摘要', likes: 200, comments: 75, cover: 'https://via.placeholder.com/200x150', editing: false },
{ id: 3, title: '第三篇文章标题', summary: '这是第三篇文章的摘要', likes: 150, comments: 60, cover: 'https://via.placeholder.com/200x150', editing: false }
],
collections: [
{ id: 1, title: '收藏的第一篇文章', summary: '这是收藏的第一篇文章的摘要', likes: 80, comments: 30, cover: 'https://via.placeholder.com/200x150' },
{ id: 2, title: '收藏的第二篇文章', summary: '这是收藏的第二篇文章的摘要', likes: 120, comments: 45, cover: 'https://via.placeholder.com/200x150' },
{ id: 3, title: '收藏的第三篇文章', summary: '这是收藏的第三篇文章的摘要', likes: 90, comments: 35, cover: 'https://via.placeholder.com/200x150' }
],
followers: [
{ id: 1, name: '李四', avatar: 'https://via.placeholder.com/50', level: 1 },
{ id: 2, name: '王五', avatar: 'https://via.placeholder.com/50', level: 2 },
{ id: 3, name: '赵六', avatar: 'https://via.placeholder.com/50', level: 3 }
]
}
}, 1000)
})
//
const unfollow = (followerId) => {
user.value.followers = user.value.followers.filter(follower => follower.id !== followerId)
}
//
const goBack = () => {
router.back()
}
//
const toggleEdit = (postId) => {
const post = user.value.posts.find(p => p.id === postId);
if (post) {
post.editing = !post.editing;
}
}
//
const deletePost = (postId) => {
user.value.posts = user.value.posts.filter(post => post.id !== postId);
}
//
const rewritePost = (postId) => {
//
console.log(`正在改写文章 ${postId}`);
const post = user.value.posts.find(p => p.id === postId);
if (post) {
post.title = `改写后的文章标题 ${postId}`;
post.summary = `改写后的文章摘要 ${postId}`;
}
toggleEdit(postId); //
}
//
const deleteCollection = (collectionId) => {
user.value.collections = user.value.collections.filter(collection => collection.id !== collectionId);
}
</script>
<style scoped>
.user-card {
text-align: center;
margin-top: 20px;
}
.avatar {
width: 100%;
height: 200px;
border-radius: 8px;
object-fit: cover;
}
.card-content {
padding: 10px;
}
.tabs {
margin-top: 20px;
}
.list {
max-height: 400px;
overflow-y: auto;
list-style-type: none;
padding: 0;
margin: 0;
}
.el-list-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 10px;
border-bottom: 1px solid #ebebeb;
}
.el-list-item:last-child {
border-bottom: none;
}
.post-cover {
width: 100%;
height: 100px;
border-radius: 8px;
object-fit: cover;
}
.post-title {
font-size: 16px;
color: #409eff;
text-decoration: none;
flex-grow: 1;
}
.post-title:hover {
text-decoration: underline;
}
.post-summary {
font-size: 14px;
color: #666;
margin: 5px 0;
}
.post-stats {
font-size: 14px;
color: #999;
margin-top: 5px;
}
.post-stats span {
margin-right: 10px;
}
.post-actions {
margin-top: 5px;
}
.edit-options {
margin-top: 5px;
}
.follower-avatar {
width: 50px;
height: 50px;
border-radius: 50%;
}
.follower-name {
font-size: 16px;
color: #409eff;
text-decoration: none;
}
.follower-name:hover {
text-decoration: underline;
}
.follower-level {
font-size: 14px;
color: #999;
margin-top: 5px;
}
</style>

@ -0,0 +1,7 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
})

@ -0,0 +1,665 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@babel/helper-string-parser@^7.24.8":
version "7.24.8"
resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d"
integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
"@babel/helper-validator-identifier@^7.24.7":
version "7.24.7"
resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
"@babel/parser@^7.25.3":
version "7.25.6"
resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f"
integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==
dependencies:
"@babel/types" "^7.25.6"
"@babel/types@^7.25.6":
version "7.25.6"
resolved "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
dependencies:
"@babel/helper-string-parser" "^7.24.8"
"@babel/helper-validator-identifier" "^7.24.7"
to-fast-properties "^2.0.0"
"@ctrl/tinycolor@^3.4.1":
version "3.6.1"
resolved "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz#b6c75a56a1947cc916ea058772d666a2c8932f31"
integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==
"@element-plus/icons-vue@^2.3.1":
version "2.3.1"
resolved "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz#1f635ad5fdd5c85ed936481525570e82b5a8307a"
integrity sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==
"@esbuild/aix-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
"@esbuild/android-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
"@esbuild/android-arm@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
"@esbuild/android-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
"@esbuild/darwin-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
"@esbuild/darwin-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
"@esbuild/freebsd-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
"@esbuild/freebsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
"@esbuild/linux-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
"@esbuild/linux-arm@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
"@esbuild/linux-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
"@esbuild/linux-loong64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
"@esbuild/linux-mips64el@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
"@esbuild/linux-ppc64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
"@esbuild/linux-riscv64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
"@esbuild/linux-s390x@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
"@esbuild/linux-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
"@esbuild/netbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
"@esbuild/openbsd-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
"@esbuild/sunos-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
"@esbuild/win32-arm64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
"@esbuild/win32-ia32@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
"@esbuild/win32-x64@0.21.5":
version "0.21.5"
resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
"@floating-ui/core@^1.6.0":
version "1.6.8"
resolved "https://registry.npmmirror.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12"
integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==
dependencies:
"@floating-ui/utils" "^0.2.8"
"@floating-ui/dom@^1.0.1":
version "1.6.12"
resolved "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556"
integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==
dependencies:
"@floating-ui/core" "^1.6.0"
"@floating-ui/utils" "^0.2.8"
"@floating-ui/utils@^0.2.8":
version "0.2.8"
resolved "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62"
integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==
"@jridgewell/sourcemap-codec@^1.5.0":
version "1.5.0"
resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
"@popperjs/core@npm:@sxzz/popperjs-es@^2.11.7":
version "2.11.7"
resolved "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz#a7f69e3665d3da9b115f9e71671dae1b97e13671"
integrity sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==
"@rollup/rollup-android-arm-eabi@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz#0412834dc423d1ff7be4cb1fc13a86a0cd262c11"
integrity sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==
"@rollup/rollup-android-arm64@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz#baf1a014b13654f3b9e835388df9caf8c35389cb"
integrity sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==
"@rollup/rollup-darwin-arm64@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz#0a2c364e775acdf1172fe3327662eec7c46e55b1"
integrity sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==
"@rollup/rollup-darwin-x64@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz#a972db75890dfab8df0da228c28993220a468c42"
integrity sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==
"@rollup/rollup-linux-arm-gnueabihf@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz#1609d0630ef61109dd19a278353e5176d92e30a1"
integrity sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==
"@rollup/rollup-linux-arm-musleabihf@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz#3c1dca5f160aa2e79e4b20ff6395eab21804f266"
integrity sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==
"@rollup/rollup-linux-arm64-gnu@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz#c2fe376e8b04eafb52a286668a8df7c761470ac7"
integrity sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==
"@rollup/rollup-linux-arm64-musl@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz#e62a4235f01e0f66dbba587c087ca6db8008ec80"
integrity sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==
"@rollup/rollup-linux-powerpc64le-gnu@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz#24b3457e75ee9ae5b1c198bd39eea53222a74e54"
integrity sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==
"@rollup/rollup-linux-riscv64-gnu@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz#38edfba9620fe2ca8116c97e02bd9f2d606bde09"
integrity sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==
"@rollup/rollup-linux-s390x-gnu@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz#a3bfb8bc5f1e802f8c76cff4a4be2e9f9ac36a18"
integrity sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==
"@rollup/rollup-linux-x64-gnu@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz#0dadf34be9199fcdda44b5985a086326344f30ad"
integrity sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==
"@rollup/rollup-linux-x64-musl@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz#7b7deddce240400eb87f2406a445061b4fed99a8"
integrity sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==
"@rollup/rollup-win32-arm64-msvc@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz#a0ca0c5149c2cfb26fab32e6ba3f16996fbdb504"
integrity sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==
"@rollup/rollup-win32-ia32-msvc@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz#aae2886beec3024203dbb5569db3a137bc385f8e"
integrity sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==
"@rollup/rollup-win32-x64-msvc@4.21.2":
version "4.21.2"
resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz#e4291e3c1bc637083f87936c333cdbcad22af63b"
integrity sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==
"@types/estree@1.0.5":
version "1.0.5"
resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/lodash-es@^4.17.6":
version "4.17.12"
resolved "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b"
integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==
dependencies:
"@types/lodash" "*"
"@types/lodash@*", "@types/lodash@^4.14.182":
version "4.17.13"
resolved "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.13.tgz#786e2d67cfd95e32862143abe7463a7f90c300eb"
integrity sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==
"@types/web-bluetooth@^0.0.16":
version "0.0.16"
resolved "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz#1d12873a8e49567371f2a75fe3e7f7edca6662d8"
integrity sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==
"@vitejs/plugin-vue@^5.1.2":
version "5.1.3"
resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.3.tgz#42b55c1a4d6f329aea25c5a24db51a31db31c693"
integrity sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==
"@vue/compiler-core@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.1.tgz#995fc62dc3887a6c5ee2313b4e5472f3c11c0468"
integrity sha512-WdjF+NSgFYdWttHevHw5uaJFtKPalhmxhlu2uREj8cLP0uyKKIR60/JvSZNTp0x+NSd63iTiORQTx3+tt55NWQ==
dependencies:
"@babel/parser" "^7.25.3"
"@vue/shared" "3.5.1"
entities "^4.5.0"
estree-walker "^2.0.2"
source-map-js "^1.2.0"
"@vue/compiler-dom@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.1.tgz#016d468ba4c7b736df9c38d8cb81731aeaae95dd"
integrity sha512-Ao23fB1lINo18HLCbJVApvzd9OQe8MgmQSgyY5+umbWj2w92w9KykVmJ4Iv2US5nak3ixc2B+7Km7JTNhQ8kSQ==
dependencies:
"@vue/compiler-core" "3.5.1"
"@vue/shared" "3.5.1"
"@vue/compiler-sfc@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.1.tgz#457a7309fa5006d490450c3d5410b9caf37949c2"
integrity sha512-DFizMNH8eDglLhlfwJ0+ciBsztaYe3fY/zcZjrqL1ljXvUw/UpC84M1d7HpBTCW68SNqZyIxrs1XWmf+73Y65w==
dependencies:
"@babel/parser" "^7.25.3"
"@vue/compiler-core" "3.5.1"
"@vue/compiler-dom" "3.5.1"
"@vue/compiler-ssr" "3.5.1"
"@vue/shared" "3.5.1"
estree-walker "^2.0.2"
magic-string "^0.30.11"
postcss "^8.4.44"
source-map-js "^1.2.0"
"@vue/compiler-ssr@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.1.tgz#a4dd4d1b47d60b80a529c46a847c7519401c1ba8"
integrity sha512-C1hpSHQgRM8bg+5XWWD7CkFaVpSn9wZHCLRd10AmxqrH17d4EMP6+XcZpwBOM7H1jeStU5naEapZZWX0kso1tQ==
dependencies:
"@vue/compiler-dom" "3.5.1"
"@vue/shared" "3.5.1"
"@vue/devtools-api@^6.6.4":
version "6.6.4"
resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343"
integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==
"@vue/reactivity@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.1.tgz#e4a57a038e3caaa9669de529533fcb16288a1736"
integrity sha512-aFE1nMDfbG7V+U5vdOk/NXxH/WX78XuAfX59vWmCM7Ao4lieoc83RkzOAWun61sQXlzNZ4IgROovFBHg+Iz1+Q==
dependencies:
"@vue/shared" "3.5.1"
"@vue/runtime-core@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.1.tgz#a1208d91e9c1b900aa6cfc9dbfec76a5277393c3"
integrity sha512-Ce92CCholNRHR3ZtzpRp/7CDGIPFxQ7ElXt9iH91ilK5eOrUv3Z582NWJesuM3aYX71BujVG5/4ypUxigGNxjA==
dependencies:
"@vue/reactivity" "3.5.1"
"@vue/shared" "3.5.1"
"@vue/runtime-dom@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.1.tgz#24f506b827ef7799fe68f0eb045918808080d961"
integrity sha512-B/fUJfBLp5PwE0EWNfBYnA4JUea8Yufb3wN8fN0/HzaqBdkiRHh4sFHOjWqIY8GS75gj//8VqeEqhcU6yUjIkA==
dependencies:
"@vue/reactivity" "3.5.1"
"@vue/runtime-core" "3.5.1"
"@vue/shared" "3.5.1"
csstype "^3.1.3"
"@vue/server-renderer@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.1.tgz#e741418a267a645a88e0cd80f1cf24dfa9c5cc73"
integrity sha512-C5V/fjQTitgVaRNH5wCoHynaWysjZ+VH68drNsAvQYg4ArHsZUQNz0nHoEWRj41nzqkVn2RUlnWaEOTl2o1Ppg==
dependencies:
"@vue/compiler-ssr" "3.5.1"
"@vue/shared" "3.5.1"
"@vue/shared@3.5.1":
version "3.5.1"
resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.1.tgz#f9418dae5ac194a4f19023d812978c21a15412a1"
integrity sha512-NdcTRoO4KuW2RSFgpE2c+E/R/ZHaRzWPxAGxhmxZaaqLh6nYCXx7lc9a88ioqOCxCaV2SFJmujkxbUScW7dNsQ==
"@vueuse/core@^9.1.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz#2f69e66d1905c1e4eebc249a01759cf88ea00cf4"
integrity sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==
dependencies:
"@types/web-bluetooth" "^0.0.16"
"@vueuse/metadata" "9.13.0"
"@vueuse/shared" "9.13.0"
vue-demi "*"
"@vueuse/metadata@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz#bc25a6cdad1b1a93c36ce30191124da6520539ff"
integrity sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==
"@vueuse/shared@9.13.0":
version "9.13.0"
resolved "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz#089ff4cc4e2e7a4015e57a8f32e4b39d096353b9"
integrity sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==
dependencies:
vue-demi "*"
async-validator@^4.2.5:
version "4.2.5"
resolved "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz#c96ea3332a521699d0afaaceed510a54656c6339"
integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.7.7:
version "1.7.7"
resolved "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
csstype@^3.1.3:
version "3.1.3"
resolved "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
dayjs@^1.11.3:
version "1.11.13"
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz#92430b0139055c3ebb60150aa13e860a4b5a366c"
integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
element-plus@^2.8.7:
version "2.8.7"
resolved "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.7.tgz#34770466c65ec2089cf1db805b432f479910fb51"
integrity sha512-oGQyFRufFOgjd872tZc+T4xQAYLlX4hj6d3ixeY13L4fFNUuc1N49JHAqJGPda0tdx3qCnjceZoh1kqqj2+tXQ==
dependencies:
"@ctrl/tinycolor" "^3.4.1"
"@element-plus/icons-vue" "^2.3.1"
"@floating-ui/dom" "^1.0.1"
"@popperjs/core" "npm:@sxzz/popperjs-es@^2.11.7"
"@types/lodash" "^4.14.182"
"@types/lodash-es" "^4.17.6"
"@vueuse/core" "^9.1.0"
async-validator "^4.2.5"
dayjs "^1.11.3"
escape-html "^1.0.3"
lodash "^4.17.21"
lodash-es "^4.17.21"
lodash-unified "^1.0.2"
memoize-one "^6.0.0"
normalize-wheel-es "^1.2.0"
entities@^4.5.0:
version "4.5.0"
resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
esbuild@^0.21.3:
version "0.21.5"
resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
optionalDependencies:
"@esbuild/aix-ppc64" "0.21.5"
"@esbuild/android-arm" "0.21.5"
"@esbuild/android-arm64" "0.21.5"
"@esbuild/android-x64" "0.21.5"
"@esbuild/darwin-arm64" "0.21.5"
"@esbuild/darwin-x64" "0.21.5"
"@esbuild/freebsd-arm64" "0.21.5"
"@esbuild/freebsd-x64" "0.21.5"
"@esbuild/linux-arm" "0.21.5"
"@esbuild/linux-arm64" "0.21.5"
"@esbuild/linux-ia32" "0.21.5"
"@esbuild/linux-loong64" "0.21.5"
"@esbuild/linux-mips64el" "0.21.5"
"@esbuild/linux-ppc64" "0.21.5"
"@esbuild/linux-riscv64" "0.21.5"
"@esbuild/linux-s390x" "0.21.5"
"@esbuild/linux-x64" "0.21.5"
"@esbuild/netbsd-x64" "0.21.5"
"@esbuild/openbsd-x64" "0.21.5"
"@esbuild/sunos-x64" "0.21.5"
"@esbuild/win32-arm64" "0.21.5"
"@esbuild/win32-ia32" "0.21.5"
"@esbuild/win32-x64" "0.21.5"
escape-html@^1.0.3:
version "1.0.3"
resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
follow-redirects@^1.15.6:
version "1.15.9"
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
form-data@^4.0.0:
version "4.0.1"
resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz#ba1076daaaa5bfd7e99c1a6cb02aa0a5cff90d48"
integrity sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
mime-types "^2.1.12"
fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
lodash-es@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash-unified@^1.0.2:
version "1.0.3"
resolved "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz#80b1eac10ed2eb02ed189f08614a29c27d07c894"
integrity sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==
lodash@^4.17.21:
version "4.17.21"
resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
magic-string@^0.30.11:
version "0.30.11"
resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954"
integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==
dependencies:
"@jridgewell/sourcemap-codec" "^1.5.0"
memoize-one@^6.0.0:
version "6.0.0"
resolved "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
mime-types@^2.1.12:
version "2.1.35"
resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
dependencies:
mime-db "1.52.0"
nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
normalize-wheel-es@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz#0fa2593d619f7245a541652619105ab076acf09e"
integrity sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==
picocolors@^1.0.1:
version "1.1.0"
resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
postcss@^8.4.43, postcss@^8.4.44:
version "8.4.45"
resolved "https://registry.npmmirror.com/postcss/-/postcss-8.4.45.tgz#538d13d89a16ef71edbf75d895284ae06b79e603"
integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==
dependencies:
nanoid "^3.3.7"
picocolors "^1.0.1"
source-map-js "^1.2.0"
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
rollup@^4.20.0:
version "4.21.2"
resolved "https://registry.npmmirror.com/rollup/-/rollup-4.21.2.tgz#f41f277a448d6264e923dd1ea179f0a926aaf9b7"
integrity sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==
dependencies:
"@types/estree" "1.0.5"
optionalDependencies:
"@rollup/rollup-android-arm-eabi" "4.21.2"
"@rollup/rollup-android-arm64" "4.21.2"
"@rollup/rollup-darwin-arm64" "4.21.2"
"@rollup/rollup-darwin-x64" "4.21.2"
"@rollup/rollup-linux-arm-gnueabihf" "4.21.2"
"@rollup/rollup-linux-arm-musleabihf" "4.21.2"
"@rollup/rollup-linux-arm64-gnu" "4.21.2"
"@rollup/rollup-linux-arm64-musl" "4.21.2"
"@rollup/rollup-linux-powerpc64le-gnu" "4.21.2"
"@rollup/rollup-linux-riscv64-gnu" "4.21.2"
"@rollup/rollup-linux-s390x-gnu" "4.21.2"
"@rollup/rollup-linux-x64-gnu" "4.21.2"
"@rollup/rollup-linux-x64-musl" "4.21.2"
"@rollup/rollup-win32-arm64-msvc" "4.21.2"
"@rollup/rollup-win32-ia32-msvc" "4.21.2"
"@rollup/rollup-win32-x64-msvc" "4.21.2"
fsevents "~2.3.2"
source-map-js@^1.2.0:
version "1.2.0"
resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
to-fast-properties@^2.0.0:
version "2.0.0"
resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
vite@^5.4.1:
version "5.4.3"
resolved "https://registry.npmmirror.com/vite/-/vite-5.4.3.tgz#771c470e808cb6732f204e1ee96c2ed65b97a0eb"
integrity sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==
dependencies:
esbuild "^0.21.3"
postcss "^8.4.43"
rollup "^4.20.0"
optionalDependencies:
fsevents "~2.3.3"
vue-demi@*:
version "0.14.10"
resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04"
integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==
vue-router@^4.4.5:
version "4.4.5"
resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz#bdf535e4cf32414ebdea6b4b403593efdb541388"
integrity sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==
dependencies:
"@vue/devtools-api" "^6.6.4"
vue@^3.4.37:
version "3.5.1"
resolved "https://registry.npmmirror.com/vue/-/vue-3.5.1.tgz#507eb4ab010a2ad894f8d7765f32e68be1604815"
integrity sha512-k4UNnbPOEskodSxMtv+B9GljdB0C9ubZDOmW6vnXVGIfMqmEsY2+ohasjGguhGkMkrcP/oOrbH0dSD41x5JQFw==
dependencies:
"@vue/compiler-dom" "3.5.1"
"@vue/compiler-sfc" "3.5.1"
"@vue/runtime-dom" "3.5.1"
"@vue/server-renderer" "3.5.1"
"@vue/shared" "3.5.1"
vuetify@^3.7.4:
version "3.7.4"
resolved "https://registry.npmjs.org/vuetify/-/vuetify-3.7.4.tgz#52de97ecb4e456c92dc81c723d1e21b1ddccdbc6"
integrity sha512-Y8UU5wUDQXC3oz2uumPb8IOdvB4XMCxtxnmqdOc+LihNuPlkSgxIwf92ndRzbOtJFKHsggFUxpyLqpQp+A+5kg==

@ -1,2 +0,0 @@
# bloggingplatform
Loading…
Cancel
Save