clean up deps

This commit is contained in:
pa
2026-03-09 00:07:43 +09:00
parent 34d10fd59b
commit ec88fb9fbe
3 changed files with 107 additions and 1031 deletions

1003
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@
"devDependencies": {
"@dnd-kit/vue": "^0.3.2",
"@electron/rebuild": "^4.0.3",
"@eslint/js": "^9.39.3",
"@eslint/js": "^9.39.4",
"@fontsource-variable/inter": "^5.2.8",
"@fontsource-variable/noto-sans-jp": "^5.2.10",
"@fontsource-variable/noto-sans-kr": "^5.2.10",
@@ -47,7 +47,6 @@
"@sigma/edge-curve": "^3.1.0",
"@sigma/node-border": "^3.0.0",
"@tailwindcss/vite": "^4.2.1",
"@tanstack/react-query": "^5.90.21",
"@tanstack/vue-table": "^8.21.3",
"@tanstack/vue-virtual": "^3.13.21",
"@types/node": "^24.12.0",
@@ -58,7 +57,6 @@
"@vue/test-utils": "^2.4.6",
"@vueuse/core": "^14.2.1",
"animate.css": "^4.1.1",
"babel-runtime": "^6.26.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cross-env": "^10.1.0",
@@ -67,7 +65,7 @@
"electron": "^39.8.0",
"electron-builder": "^26.8.1",
"embla-carousel-vue": "^8.6.0",
"eslint": "^9.39.3",
"eslint": "^9.39.4",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-jsdoc": "^62.7.1",
"eslint-plugin-prettier": "^5.5.5",
@@ -85,7 +83,6 @@
"prettier": "^3.8.1",
"reka-ui": "^2.9.0",
"remixicon": "^4.9.1",
"sass-embedded": "^1.97.3",
"sigma": "^3.0.2",
"tailwind-merge": "^3.5.0",
"tailwindcss": "^4.2.1",
@@ -95,7 +92,7 @@
"vitest": "^4.0.18",
"vue": "^3.5.29",
"vue-advanced-cropper": "^2.8.9",
"vue-i18n": "^11.2.8",
"vue-i18n": "^11.3.0",
"vue-input-otp": "^0.3.2",
"vue-json-pretty": "^2.6.0",
"vue-marquee-text-component": "^2.0.1",

View File

@@ -2,24 +2,30 @@
<div id="chart" class="x-container">
<div ref="instanceActivityRef" class="pt-12">
<BackToTop :target="instanceActivityRef" :right="30" :bottom="30" :teleport="false" />
<div class="options-container instance-activity mt-0">
<div>
<span>{{ t('view.charts.instance_activity.header') }}</span>
<div class="options-container flex items-center justify-between mt-0">
<div class="flex items-center justify-between">
<span class="shrink-0">{{ t('view.charts.instance_activity.header') }}</span>
<HoverCard>
<HoverCardTrigger as-child>
<Info class="ml-1" style="font-size: 12px; opacity: 0.7" />
</HoverCardTrigger>
<HoverCardContent side="bottom" align="start" class="w-75">
<div class="tips-popover">
<div>{{ t('view.charts.instance_activity.tips.online_time') }}</div>
<div>{{ t('view.charts.instance_activity.tips.click_Y_axis') }}</div>
<div>{{ t('view.charts.instance_activity.tips.click_instance_name') }}</div>
<div>
<div class="mb-1.5 text-xs">
{{ t('view.charts.instance_activity.tips.online_time') }}
</div>
<div class="mb-1.5 text-xs">
{{ t('view.charts.instance_activity.tips.click_Y_axis') }}
</div>
<div class="mb-1.5 text-xs flex items-center mt-2">
{{ t('view.charts.instance_activity.tips.click_instance_name') }}
</div>
</div>
</HoverCardContent>
</HoverCard>
</div>
<div>
<div class="flex items-center">
<TooltipWrapper :content="t('view.charts.instance_activity.refresh')" side="top">
<Button class="rounded-full mr-1.5" size="icon" variant="ghost" @click="reloadData">
<RefreshCcw />
@@ -39,10 +45,12 @@
</div>
</PopoverTrigger>
<PopoverContent side="bottom" class="w-62.5">
<div class="settings">
<div>
<span>{{ t('view.charts.instance_activity.settings.bar_width') }}</span>
<div>
<div>
<div class="flex items-center justify-between px-0.5 h-[30px]">
<span class="shrink-0">{{
t('view.charts.instance_activity.settings.bar_width')
}}</span>
<div class="w-40 ml-5">
<Slider
v-model="barWidthDraftValue"
:max="50"
@@ -50,8 +58,10 @@
@valueCommit="handleBarWidthCommit"></Slider>
</div>
</div>
<div>
<span>{{ t('view.charts.instance_activity.settings.show_detail') }}</span>
<div class="flex items-center justify-between px-0.5 h-[30px]">
<span class="shrink-0">{{
t('view.charts.instance_activity.settings.show_detail')
}}</span>
<Switch
v-model="isDetailVisible"
@update:modelValue="
@@ -59,16 +69,18 @@
changeIsDetailInstanceVisible(value, () => handleSettingsChange())
" />
</div>
<div v-if="isDetailVisible">
<span>{{ t('view.charts.instance_activity.settings.show_solo_instance') }}</span>
<div v-if="isDetailVisible" class="flex items-center justify-between px-0.5 h-[30px]">
<span class="shrink-0">{{
t('view.charts.instance_activity.settings.show_solo_instance')
}}</span>
<Switch
v-model="isSoloInstanceVisible"
@update:modelValue="
(value) => changeIsSoloInstanceVisible(value, () => handleSettingsChange())
" />
</div>
<div v-if="isDetailVisible">
<span>{{
<div v-if="isDetailVisible" class="flex items-center justify-between px-0.5 h-[30px]">
<span class="shrink-0">{{
t('view.charts.instance_activity.settings.show_no_friend_instance')
}}</span>
<Switch
@@ -125,7 +137,7 @@
</Popover>
</div>
</div>
<div class="status-online">
<div class="flex justify-center text-center">
<div class="text-center">
<div class="text-sm text-muted-foreground">
{{ t('view.charts.instance_activity.online_time') }}
@@ -137,12 +149,14 @@
</div>
<div ref="activityChartRef" style="width: 100%"></div>
<div v-if="!isLoading && activityData.length === 0" class="nodata">
<div v-if="!isLoading && activityData.length === 0" class="flex items-center justify-center mt-[100px]">
<DataTableEmpty type="nodata" />
</div>
<transition name="el-fade-in-linear">
<div v-show="isDetailVisible && !isLoading && activityData.length !== 0" class="divider">
<div
v-show="isDetailVisible && !isLoading && activityData.length !== 0"
class="px-[400px] transition-[top] duration-300 ease-in-out">
<div class="flex items-center">
<Separator class="flex-1" />
<span class="px-2 text-muted-foreground">·</span>
@@ -721,73 +735,3 @@
});
}
</script>
<style lang="scss" scoped>
%flex {
display: flex;
align-items: center;
}
%flex-between {
justify-content: space-between;
}
.instance-activity {
@extend %flex;
@extend %flex-between;
& > div:first-child {
@extend %flex-between;
}
& > div {
@extend %flex;
> span {
flex-shrink: 0;
}
}
}
.tips-popover {
& > div {
margin-bottom: 6px;
font-size: 12px;
}
& > div:last-child {
@extend %flex;
margin-top: 8px;
i {
margin-right: 3px;
}
}
}
.settings {
& > div {
@extend %flex;
@extend %flex-between;
padding: 0 2px;
height: 30px;
> span {
flex-shrink: 0;
}
}
& > div:first-child {
> div {
width: 160px;
margin-left: 20px;
}
}
}
.nodata {
display: flex;
align-items: center;
justify-content: center;
margin-top: 100px;
}
.divider {
padding: 0 400px;
transition: top 0.3s ease;
}
.status-online {
display: flex;
justify-content: center;
text-align: center;
}
</style>