Adds on mouse over effect for stats (#1914)
This commit is contained in:
		
							
								
								
									
										2
									
								
								assets/auto-imports.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/auto-imports.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -250,6 +250,7 @@ declare global {
 | 
			
		||||
  const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
 | 
			
		||||
  const useShare: typeof import('@vueuse/core')['useShare']
 | 
			
		||||
  const useSlots: typeof import('vue')['useSlots']
 | 
			
		||||
  const useSorted: typeof import('@vueuse/core')['useSorted']
 | 
			
		||||
  const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
 | 
			
		||||
  const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
 | 
			
		||||
  const useStepper: typeof import('@vueuse/core')['useStepper']
 | 
			
		||||
@@ -558,6 +559,7 @@ declare module '@vue/runtime-core' {
 | 
			
		||||
    readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
 | 
			
		||||
    readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
 | 
			
		||||
    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
 | 
			
		||||
    readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
 | 
			
		||||
    readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
 | 
			
		||||
    readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
 | 
			
		||||
    readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								assets/components.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/components.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -13,6 +13,7 @@ declare module '@vue/runtime-core' {
 | 
			
		||||
    ComplexLogItem: typeof import('./components/LogViewer/ComplexLogItem.vue')['default']
 | 
			
		||||
    ContainerStat: typeof import('./components/LogViewer/ContainerStat.vue')['default']
 | 
			
		||||
    ContainerTitle: typeof import('./components/LogViewer/ContainerTitle.vue')['default']
 | 
			
		||||
    copy: typeof import('./components/LogViewer/ContainerStat copy.vue')['default']
 | 
			
		||||
    CpuSparkline: typeof import('./components/StatSparkline.vue')['default']
 | 
			
		||||
    DockerEventLogItem: typeof import('./components/LogViewer/DockerEventLogItem.vue')['default']
 | 
			
		||||
    DropdownMenu: typeof import('./components/DropdownMenu.vue')['default']
 | 
			
		||||
@@ -45,6 +46,7 @@ declare module '@vue/runtime-core' {
 | 
			
		||||
    SideMenu: typeof import('./components/SideMenu.vue')['default']
 | 
			
		||||
    SimpleLogItem: typeof import('./components/LogViewer/SimpleLogItem.vue')['default']
 | 
			
		||||
    SkippedEntriesLogItem: typeof import('./components/LogViewer/SkippedEntriesLogItem.vue')['default']
 | 
			
		||||
    StatMonitor: typeof import('./components/LogViewer/StatMonitor.vue')['default']
 | 
			
		||||
    StatSparkline: typeof import('./components/LogViewer/StatSparkline.vue')['default']
 | 
			
		||||
    ZigZag: typeof import('./components/LogViewer/ZigZag.vue')['default']
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,30 +1,17 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="is-size-7 is-uppercase columns is-marginless is-mobile is-vcentered" v-if="container.stat">
 | 
			
		||||
    <div class="column is-narrow has-text-weight-bold">
 | 
			
		||||
      {{ container.state }}
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="column is-narrow has-text-centered is-relative">
 | 
			
		||||
      <div class="has-border">
 | 
			
		||||
        <stat-sparkline :data="memoryData"></stat-sparkline>
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="has-background-body-color is-top-left">
 | 
			
		||||
        <span class="has-text-weight-light has-spacer">mem</span>
 | 
			
		||||
        <span class="has-text-weight-bold">
 | 
			
		||||
          {{ formatBytes(container.stat.memoryUsage) }}
 | 
			
		||||
        </span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="column is-narrow has-text-centered is-relative">
 | 
			
		||||
      <div class="has-border">
 | 
			
		||||
        <stat-sparkline :data="cpuData"></stat-sparkline>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div class="has-background-body-color is-top-left">
 | 
			
		||||
        <span class="has-text-weight-light has-spacer">load</span>
 | 
			
		||||
        <span class="has-text-weight-bold"> {{ container.stat.cpu }}% </span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <stat-monitor
 | 
			
		||||
      class="column is-narrow"
 | 
			
		||||
      :data="memoryData"
 | 
			
		||||
      label="mem"
 | 
			
		||||
      :stat-value="formatBytes(container.stat.memoryUsage)"
 | 
			
		||||
    ></stat-monitor>
 | 
			
		||||
    <stat-monitor
 | 
			
		||||
      class="column is-narrow"
 | 
			
		||||
      :data="cpuData"
 | 
			
		||||
      label="load"
 | 
			
		||||
      :stat-value="container.stat.cpu + '%'"
 | 
			
		||||
    ></stat-monitor>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -38,7 +25,12 @@ const cpuData = computedWithControl(
 | 
			
		||||
  () => container.value.getLastStat(),
 | 
			
		||||
  () => {
 | 
			
		||||
    const history = container.value.getStatHistory();
 | 
			
		||||
    return history.map((stat, i) => ({ x: history.length - i, y: stat.snapshot.cpu }));
 | 
			
		||||
    const points: Point<unknown>[] = history.map((stat, i) => ({
 | 
			
		||||
      x: i,
 | 
			
		||||
      y: stat.snapshot.cpu,
 | 
			
		||||
      value: stat.snapshot.cpu + "%",
 | 
			
		||||
    }));
 | 
			
		||||
    return points;
 | 
			
		||||
  }
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +38,12 @@ const memoryData = computedWithControl(
 | 
			
		||||
  () => container.value.getLastStat(),
 | 
			
		||||
  () => {
 | 
			
		||||
    const history = container.value.getStatHistory();
 | 
			
		||||
    return history.map((stat, i) => ({ x: history.length - i, y: stat.snapshot.memory }));
 | 
			
		||||
    const points: Point<string>[] = history.map((stat, i) => ({
 | 
			
		||||
      x: i,
 | 
			
		||||
      y: stat.snapshot.memory,
 | 
			
		||||
      value: formatBytes(stat.snapshot.memoryUsage),
 | 
			
		||||
    }));
 | 
			
		||||
    return points;
 | 
			
		||||
  }
 | 
			
		||||
);
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										56
									
								
								assets/components/LogViewer/StatMonitor.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								assets/components/LogViewer/StatMonitor.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="has-text-centered is-relative host" @mouseenter="mouseOver = true" @mouseleave="mouseOver = false">
 | 
			
		||||
    <div class="has-border">
 | 
			
		||||
      <stat-sparkline :data="data" @selected-point="onSelectedPoint"></stat-sparkline>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="has-background-body-color is-top-left">
 | 
			
		||||
      <span class="has-text-weight-light has-spacer">{{ label }}</span>
 | 
			
		||||
      <span class="has-text-weight-bold">
 | 
			
		||||
        {{ mouseOver ? selectedPoint?.value ?? selectedPoint?.y ?? statValue : statValue }}
 | 
			
		||||
      </span>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts" setup>
 | 
			
		||||
const { data, label, statValue } = defineProps<{ data: Point<unknown>[]; label: string; statValue: string | number }>();
 | 
			
		||||
 | 
			
		||||
let selectedPoint: Point<unknown> = $ref();
 | 
			
		||||
 | 
			
		||||
function onSelectedPoint(point: Point<unknown>) {
 | 
			
		||||
  selectedPoint = point;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
let mouseOver = $ref(false);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.has-spacer {
 | 
			
		||||
  &::after {
 | 
			
		||||
    content: " ";
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.has-border {
 | 
			
		||||
  border: 1px solid var(--primary-color);
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  padding: 1px 1px 0 1px;
 | 
			
		||||
  display: flex;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  padding-top: 0.25em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.has-background-body-color {
 | 
			
		||||
  background-color: var(--body-background-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.host:hover span {
 | 
			
		||||
  color: var(--secondary-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.is-top-left {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  left: 0.75em;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <svg :width="width" :height="height">
 | 
			
		||||
  <svg :width="width" :height="height" @mousemove="onMove">
 | 
			
		||||
    <path :d="path" class="area" />
 | 
			
		||||
    <line :x1="lineX" y1="0" :x2="lineX" :y2="height" class="line" />
 | 
			
		||||
  </svg>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -10,12 +11,16 @@ import { scaleLinear } from "d3-scale";
 | 
			
		||||
import { area, curveStep } from "d3-shape";
 | 
			
		||||
 | 
			
		||||
const d3 = { extent, scaleLinear, area, curveStep };
 | 
			
		||||
const { data, width = 150, height = 30 } = defineProps<{ data: Point[]; width?: number; height?: number }>();
 | 
			
		||||
const x = d3.scaleLinear().range([0, width]);
 | 
			
		||||
const { data, width = 150, height = 30 } = defineProps<{ data: Point<unknown>[]; width?: number; height?: number }>();
 | 
			
		||||
const x = d3.scaleLinear().range([width, 0]);
 | 
			
		||||
const y = d3.scaleLinear().range([height, 0]);
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits<{
 | 
			
		||||
  (event: "selected-point", value: Point<unknown>): void;
 | 
			
		||||
}>();
 | 
			
		||||
 | 
			
		||||
const shape = d3
 | 
			
		||||
  .area<Point>()
 | 
			
		||||
  .area<Point<unknown>>()
 | 
			
		||||
  .curve(d3.curveStep)
 | 
			
		||||
  .x((d) => x(d.x))
 | 
			
		||||
  .y0(height)
 | 
			
		||||
@@ -24,12 +29,34 @@ const shape = d3
 | 
			
		||||
const path = computed(() => {
 | 
			
		||||
  x.domain(d3.extent(data, (d) => d.x) as [number, number]);
 | 
			
		||||
  y.domain(d3.extent(data, (d) => d.y) as [number, number]);
 | 
			
		||||
 | 
			
		||||
  return shape(data) ?? "";
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
let lineX = $ref(0);
 | 
			
		||||
 | 
			
		||||
function onMove(e: MouseEvent) {
 | 
			
		||||
  const { offsetX } = e;
 | 
			
		||||
  const xValue = x.invert(offsetX);
 | 
			
		||||
  const index = Math.round(xValue);
 | 
			
		||||
  lineX = x(index);
 | 
			
		||||
  const point = data[index];
 | 
			
		||||
  emit("selected-point", point);
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
:deep(.area) {
 | 
			
		||||
  fill: var(--primary-color);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
:deep(.line) {
 | 
			
		||||
  stroke: var(--secondary-color);
 | 
			
		||||
  stroke-width: 2;
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
svg:hover :deep(.line) {
 | 
			
		||||
  display: unset;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,7 @@ export function useLogStream(container: ComputedRef<Container>) {
 | 
			
		||||
      } else {
 | 
			
		||||
        messages.push(...buffer);
 | 
			
		||||
        buffer = [];
 | 
			
		||||
        messages.splice(0, messages.length - config.maxLogs);
 | 
			
		||||
        messages = messages.slice(-config.maxLogs);
 | 
			
		||||
      }
 | 
			
		||||
    } else {
 | 
			
		||||
      messages.push(...buffer);
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								assets/types/Point.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								assets/types/Point.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -1 +1 @@
 | 
			
		||||
type Point = { x: number; y: number };
 | 
			
		||||
type Point<T> = { x: number; y: number; value?: T };
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								package.json
									
									
									
									
									
								
							@@ -22,16 +22,16 @@
 | 
			
		||||
    "postinstall": "husky install"
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@iconify-json/carbon": "^1.1.8",
 | 
			
		||||
    "@iconify-json/carbon": "^1.1.9",
 | 
			
		||||
    "@iconify-json/cil": "^1.1.2",
 | 
			
		||||
    "@iconify-json/mdi": "^1.1.34",
 | 
			
		||||
    "@iconify-json/mdi-light": "^1.1.2",
 | 
			
		||||
    "@iconify-json/octicon": "^1.1.20",
 | 
			
		||||
    "@oruga-ui/oruga-next": "^0.5.6",
 | 
			
		||||
    "@oruga-ui/theme-bulma": "^0.2.7",
 | 
			
		||||
    "@vueuse/core": "^9.3.0",
 | 
			
		||||
    "@vueuse/integrations": "^9.3.0",
 | 
			
		||||
    "@vueuse/router": "^9.3.0",
 | 
			
		||||
    "@vueuse/core": "^9.3.1",
 | 
			
		||||
    "@vueuse/integrations": "^9.3.1",
 | 
			
		||||
    "@vueuse/router": "^9.3.1",
 | 
			
		||||
    "ansi-to-html": "^0.7.2",
 | 
			
		||||
    "bulma": "^0.9.4",
 | 
			
		||||
    "d3-array": "^3.2.0",
 | 
			
		||||
@@ -78,13 +78,13 @@
 | 
			
		||||
    "ts-node": "^10.9.1",
 | 
			
		||||
    "typescript": "^4.8.4",
 | 
			
		||||
    "unplugin-auto-import": "^0.11.2",
 | 
			
		||||
    "unplugin-icons": "^0.14.11",
 | 
			
		||||
    "unplugin-icons": "^0.14.12",
 | 
			
		||||
    "unplugin-vue-components": "^0.22.8",
 | 
			
		||||
    "vite": "3.1.8",
 | 
			
		||||
    "vite-plugin-pages": "^0.26.0",
 | 
			
		||||
    "vite-plugin-pages": "^0.27.0",
 | 
			
		||||
    "vite-plugin-vue-layouts": "^0.7.0",
 | 
			
		||||
    "vitest": "^0.24.3",
 | 
			
		||||
    "vue-tsc": "^1.0.7"
 | 
			
		||||
    "vue-tsc": "^1.0.8"
 | 
			
		||||
  },
 | 
			
		||||
  "lint-staged": {
 | 
			
		||||
    "*.{js,vue,css}": [
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										223
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										223
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
lockfileVersion: 5.4
 | 
			
		||||
 | 
			
		||||
specifiers:
 | 
			
		||||
  '@iconify-json/carbon': ^1.1.8
 | 
			
		||||
  '@iconify-json/carbon': ^1.1.9
 | 
			
		||||
  '@iconify-json/cil': ^1.1.2
 | 
			
		||||
  '@iconify-json/mdi': ^1.1.34
 | 
			
		||||
  '@iconify-json/mdi-light': ^1.1.2
 | 
			
		||||
@@ -22,9 +22,9 @@ specifiers:
 | 
			
		||||
  '@vitejs/plugin-vue': 3.1.2
 | 
			
		||||
  '@vue/compiler-sfc': ^3.2.41
 | 
			
		||||
  '@vue/test-utils': ^2.1.0
 | 
			
		||||
  '@vueuse/core': ^9.3.0
 | 
			
		||||
  '@vueuse/integrations': ^9.3.0
 | 
			
		||||
  '@vueuse/router': ^9.3.0
 | 
			
		||||
  '@vueuse/core': ^9.3.1
 | 
			
		||||
  '@vueuse/integrations': ^9.3.1
 | 
			
		||||
  '@vueuse/router': ^9.3.1
 | 
			
		||||
  ansi-to-html: ^0.7.2
 | 
			
		||||
  bulma: ^0.9.4
 | 
			
		||||
  c8: ^7.12.0
 | 
			
		||||
@@ -52,28 +52,28 @@ specifiers:
 | 
			
		||||
  ts-node: ^10.9.1
 | 
			
		||||
  typescript: ^4.8.4
 | 
			
		||||
  unplugin-auto-import: ^0.11.2
 | 
			
		||||
  unplugin-icons: ^0.14.11
 | 
			
		||||
  unplugin-icons: ^0.14.12
 | 
			
		||||
  unplugin-vue-components: ^0.22.8
 | 
			
		||||
  vite: 3.1.8
 | 
			
		||||
  vite-plugin-pages: ^0.26.0
 | 
			
		||||
  vite-plugin-pages: ^0.27.0
 | 
			
		||||
  vite-plugin-vue-layouts: ^0.7.0
 | 
			
		||||
  vitest: ^0.24.3
 | 
			
		||||
  vue: ^3.2.41
 | 
			
		||||
  vue-i18n: ^9.2.2
 | 
			
		||||
  vue-router: ^4.1.5
 | 
			
		||||
  vue-tsc: ^1.0.7
 | 
			
		||||
  vue-tsc: ^1.0.8
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  '@iconify-json/carbon': 1.1.8
 | 
			
		||||
  '@iconify-json/carbon': 1.1.9
 | 
			
		||||
  '@iconify-json/cil': 1.1.2
 | 
			
		||||
  '@iconify-json/mdi': 1.1.34
 | 
			
		||||
  '@iconify-json/mdi-light': 1.1.2
 | 
			
		||||
  '@iconify-json/octicon': 1.1.20
 | 
			
		||||
  '@oruga-ui/oruga-next': 0.5.6_vue@3.2.41
 | 
			
		||||
  '@oruga-ui/theme-bulma': 0.2.7
 | 
			
		||||
  '@vueuse/core': 9.3.0_vue@3.2.41
 | 
			
		||||
  '@vueuse/integrations': 9.3.0_fuse.js@6.6.2+vue@3.2.41
 | 
			
		||||
  '@vueuse/router': 9.3.0_4g567gsol3fv3jos66rjdswwp4
 | 
			
		||||
  '@vueuse/core': 9.3.1_vue@3.2.41
 | 
			
		||||
  '@vueuse/integrations': 9.3.1_fuse.js@6.6.2+vue@3.2.41
 | 
			
		||||
  '@vueuse/router': 9.3.1_4g567gsol3fv3jos66rjdswwp4
 | 
			
		||||
  ansi-to-html: 0.7.2
 | 
			
		||||
  bulma: 0.9.4
 | 
			
		||||
  d3-array: 3.2.0
 | 
			
		||||
@@ -119,14 +119,14 @@ devDependencies:
 | 
			
		||||
  sass: 1.55.0
 | 
			
		||||
  ts-node: 10.9.1_o6ib7qqltxpe7qrskddglns2ga
 | 
			
		||||
  typescript: 4.8.4
 | 
			
		||||
  unplugin-auto-import: 0.11.2_xprgaq42dappzfhggpxgvdf43y
 | 
			
		||||
  unplugin-icons: 0.14.11_@vue+compiler-sfc@3.2.41
 | 
			
		||||
  unplugin-auto-import: 0.11.2_zqi2xhr3ahaiw6pxzygjgkwf7q
 | 
			
		||||
  unplugin-icons: 0.14.12_@vue+compiler-sfc@3.2.41
 | 
			
		||||
  unplugin-vue-components: 0.22.8_vue@3.2.41
 | 
			
		||||
  vite: 3.1.8_sass@1.55.0
 | 
			
		||||
  vite-plugin-pages: 0.26.0_y7chuddh2i4swuczuywc2tye34
 | 
			
		||||
  vite-plugin-pages: 0.27.0_y7chuddh2i4swuczuywc2tye34
 | 
			
		||||
  vite-plugin-vue-layouts: 0.7.0_nknaiyoma7qglenj4mb2pj2auq
 | 
			
		||||
  vitest: 0.24.3_jsdom@20.0.1+sass@1.55.0
 | 
			
		||||
  vue-tsc: 1.0.7_typescript@4.8.4
 | 
			
		||||
  vue-tsc: 1.0.8_typescript@4.8.4
 | 
			
		||||
 | 
			
		||||
packages:
 | 
			
		||||
 | 
			
		||||
@@ -213,8 +213,8 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@iconify-json/carbon/1.1.8:
 | 
			
		||||
    resolution: {integrity: sha512-aSoMgvZyvIXadLbMXcfS+qy8CVxSExvvp8Vd/nCrupLFc0KLKSukRInnVNc63zaHqoe1NBf5xUrgfyRYYfaKWQ==}
 | 
			
		||||
  /@iconify-json/carbon/1.1.9:
 | 
			
		||||
    resolution: {integrity: sha512-O3geRhhnE9dDDC4oT6qwBs7sdc37R9UqftiG7BP8YVDw8OcXv8i95J0ZEkIfdOXFj1Wb6kC/Uu/6VTlAqotVXg==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@iconify/types': 2.0.0
 | 
			
		||||
    dev: false
 | 
			
		||||
@@ -696,8 +696,8 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@types/web-bluetooth/0.0.15:
 | 
			
		||||
    resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==}
 | 
			
		||||
  /@types/web-bluetooth/0.0.16:
 | 
			
		||||
    resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
 | 
			
		||||
 | 
			
		||||
  /@vitejs/plugin-vue/3.1.2_vite@3.1.8+vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-3zxKNlvA3oNaKDYX0NBclgxTQ1xaFdL7PzwF6zj9tGFziKwmBa3Q/6XcJQxudlT81WxDjEhHmevvIC4Orc1LhQ==}
 | 
			
		||||
@@ -710,44 +710,44 @@ packages:
 | 
			
		||||
      vue: 3.2.41
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/language-core/1.0.7:
 | 
			
		||||
    resolution: {integrity: sha512-T3iJ7Ej5Ywrsn1nEfvOQ98LdFZu3TtoXD8UELHto/u5QyQk4U2GfPl+0ZjuS39ZPocU9l/5CMhrxHsgv/hFWVA==}
 | 
			
		||||
  /@volar/language-core/1.0.8:
 | 
			
		||||
    resolution: {integrity: sha512-uxYSOqBk8ZFSzGjUIPOBEFPOg8F3CE6cLO5meK95DODGIlUlPytGiy9sy8QZ9w7RpUH4XMOX3MH/G48SLgP07A==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/source-map': 1.0.7
 | 
			
		||||
      '@vue/reactivity': 3.2.40
 | 
			
		||||
      '@volar/source-map': 1.0.8
 | 
			
		||||
      '@vue/reactivity': 3.2.41
 | 
			
		||||
      muggle-string: 0.1.0
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/source-map/1.0.7:
 | 
			
		||||
    resolution: {integrity: sha512-58xtTXbriaBoGHl5epE5kYI0Pk81yGmM3Mb/5TEUEzA16dGovXiwtEGce2xCgo0ps42OInFvFuaRv3SvM0k6mg==}
 | 
			
		||||
  /@volar/source-map/1.0.8:
 | 
			
		||||
    resolution: {integrity: sha512-uKMe+alyfl1Abs5SviKejFoe7x9g6jDPVpVt63Tet4qn1Ziy7tFsvtCpM2Y1Ko5qw2nLIeloLslPqm9/gmbBLQ==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      muggle-string: 0.1.0
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/typescript/1.0.7:
 | 
			
		||||
    resolution: {integrity: sha512-VH3dMxTqkdUqjmdVwIytBjppH5iy18qK9peb3E9CNbvzf/+b3TpdX0zoyglaKmC5IeHG68KHXK2yps734yZ4nQ==}
 | 
			
		||||
  /@volar/typescript/1.0.8:
 | 
			
		||||
    resolution: {integrity: sha512-2oY1Apvzcs/5tAn7p1tRlDxNgal5ezaK0h9cutcWALeimsaQBAEE2NAirCrLMHl8DneuDce0tzJqHaQeHw9RmQ==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/language-core': 1.0.7
 | 
			
		||||
      '@volar/language-core': 1.0.8
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/vue-language-core/1.0.7:
 | 
			
		||||
    resolution: {integrity: sha512-5InGpRLu5FGeUkVNr1LvQfvThdSsyzIwvsYqYSGLj6VNmS7rzLacoKjZlTwz68/976aU3zjdgx94PoNl5n/SqA==}
 | 
			
		||||
  /@volar/vue-language-core/1.0.8:
 | 
			
		||||
    resolution: {integrity: sha512-cXb7oTybxcm1vpz003agdYQHyxij7UAaSub60d7W1aMWpqb2iaCbVaq9izgQFlrpC4/JnVs+cJPb/Q6fAUVxBg==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/language-core': 1.0.7
 | 
			
		||||
      '@volar/source-map': 1.0.7
 | 
			
		||||
      '@volar/language-core': 1.0.8
 | 
			
		||||
      '@volar/source-map': 1.0.8
 | 
			
		||||
      '@vue/compiler-dom': 3.2.41
 | 
			
		||||
      '@vue/compiler-sfc': 3.2.41
 | 
			
		||||
      '@vue/reactivity': 3.2.40
 | 
			
		||||
      '@vue/reactivity': 3.2.41
 | 
			
		||||
      '@vue/shared': 3.2.41
 | 
			
		||||
      minimatch: 5.1.0
 | 
			
		||||
      vue-template-compiler: 2.7.12
 | 
			
		||||
      vue-template-compiler: 2.7.13
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/vue-typescript/1.0.7:
 | 
			
		||||
    resolution: {integrity: sha512-SZlUJfMh/9NOIfpYtSVcIAbJVEzEiH2qWBIYHPooMXC02qey56Tg6J2eMhIoKWIuZH0VRRbX8IgFHevSQzzGOw==}
 | 
			
		||||
  /@volar/vue-typescript/1.0.8:
 | 
			
		||||
    resolution: {integrity: sha512-6jBvA7iwBkRqS2VQx2gLJgfLcF3hcODyJ6Lmiw2tN8D/LVfFCovvzJgPvIQb9Y4i+rha1Y0cpsYOUt9XW2Z7ZA==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/typescript': 1.0.7
 | 
			
		||||
      '@volar/vue-language-core': 1.0.7
 | 
			
		||||
      '@volar/typescript': 1.0.8
 | 
			
		||||
      '@volar/vue-language-core': 1.0.8
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@vue/compiler-core/3.2.41:
 | 
			
		||||
@@ -799,12 +799,6 @@ packages:
 | 
			
		||||
      estree-walker: 2.0.2
 | 
			
		||||
      magic-string: 0.25.9
 | 
			
		||||
 | 
			
		||||
  /@vue/reactivity/3.2.40:
 | 
			
		||||
    resolution: {integrity: sha512-N9qgGLlZmtUBMHF9xDT4EkD9RdXde1Xbveb+niWMXuHVWQP5BzgRmE3SFyUBBcyayG4y1lhoz+lphGRRxxK4RA==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@vue/shared': 3.2.40
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@vue/reactivity/3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
@@ -832,10 +826,6 @@ packages:
 | 
			
		||||
      '@vue/shared': 3.2.41
 | 
			
		||||
      vue: 3.2.41
 | 
			
		||||
 | 
			
		||||
  /@vue/shared/3.2.40:
 | 
			
		||||
    resolution: {integrity: sha512-0PLQ6RUtZM0vO3teRfzGi4ltLUO5aO+kLgwh4Um3THSR03rpQWLTuRCkuO5A41ITzwdWeKdPHtSARuPkoo5pCQ==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@vue/shared/3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==}
 | 
			
		||||
 | 
			
		||||
@@ -847,19 +837,19 @@ packages:
 | 
			
		||||
      vue: 3.2.41
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@vueuse/core/9.3.0_vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-64Rna8IQDWpdrJxgitDg7yv1yTp41ZmvV8zlLEylK4QQLWAhz1OFGZDPZ8bU4lwcGgbEJ2sGi2jrdNh4LttUSQ==}
 | 
			
		||||
  /@vueuse/core/9.3.1_vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-xriyD+v3D2ObH/UtnkEl+1sbcLBVHNaZaLi/rqoNEe/B92hggDEFQIGXoQUjdRzYOjASHSezf9uCDtmd7LeWyA==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@types/web-bluetooth': 0.0.15
 | 
			
		||||
      '@vueuse/metadata': 9.3.0
 | 
			
		||||
      '@vueuse/shared': 9.3.0_vue@3.2.41
 | 
			
		||||
      '@types/web-bluetooth': 0.0.16
 | 
			
		||||
      '@vueuse/metadata': 9.3.1
 | 
			
		||||
      '@vueuse/shared': 9.3.1_vue@3.2.41
 | 
			
		||||
      vue-demi: 0.13.11_vue@3.2.41
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
      - '@vue/composition-api'
 | 
			
		||||
      - vue
 | 
			
		||||
 | 
			
		||||
  /@vueuse/integrations/9.3.0_fuse.js@6.6.2+vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-KkJpC97VioZUpSw7rvgnqoLgTztLlLLGdYp6WQKn69cJiItsJVSRZrmI+X9YVxPBzuLvRymYZfp0RMyISVFHTw==}
 | 
			
		||||
  /@vueuse/integrations/9.3.1_fuse.js@6.6.2+vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-ydVHxJpLZrO9WbRXs1mNBbgEby8ERkiQumR2LebYVtY/1AFEn+mQ8MkL9pvcXwd9mrQSms+wzssu760n7DaDAw==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      async-validator: '*'
 | 
			
		||||
      axios: '*'
 | 
			
		||||
@@ -893,8 +883,8 @@ packages:
 | 
			
		||||
      universal-cookie:
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@vueuse/core': 9.3.0_vue@3.2.41
 | 
			
		||||
      '@vueuse/shared': 9.3.0_vue@3.2.41
 | 
			
		||||
      '@vueuse/core': 9.3.1_vue@3.2.41
 | 
			
		||||
      '@vueuse/shared': 9.3.1_vue@3.2.41
 | 
			
		||||
      fuse.js: 6.6.2
 | 
			
		||||
      vue-demi: 0.13.11_vue@3.2.41
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
@@ -902,15 +892,15 @@ packages:
 | 
			
		||||
      - vue
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@vueuse/metadata/9.3.0:
 | 
			
		||||
    resolution: {integrity: sha512-GnnfjbzIPJIh9ngL9s9oGU1+Hx/h5/KFqTfJykzh/1xjaHkedV9g0MASpdmPZIP+ynNhKAcEfA6g5i8KXwtoMA==}
 | 
			
		||||
  /@vueuse/metadata/9.3.1:
 | 
			
		||||
    resolution: {integrity: sha512-G1BPhtx3OHaL/y4OZBofh6Xt02G1VA9PuOO8nac9sTKMkMqfyez5VfkF3D9GUjSRNO7cVWyH4rceeGXfr2wdMg==}
 | 
			
		||||
 | 
			
		||||
  /@vueuse/router/9.3.0_4g567gsol3fv3jos66rjdswwp4:
 | 
			
		||||
    resolution: {integrity: sha512-UFN2MFciprH21oYsAgNHeDJ4Bd86HpRm9gximSN8j6h4fc2aa62fvfhprfHqdTxYAcgcGkMwcc9TO75jOvr8gg==}
 | 
			
		||||
  /@vueuse/router/9.3.1_4g567gsol3fv3jos66rjdswwp4:
 | 
			
		||||
    resolution: {integrity: sha512-iyxyGNAeK8y4xaKjidnTI2H6eFiCiHypjoKPDEE8kdfESoxjegigp/DYfrbFt3IIeAHXPvBMq11m9IFuZ+LyLw==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      vue-router: '>=4.0.0-rc.1'
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@vueuse/shared': 9.3.0_vue@3.2.41
 | 
			
		||||
      '@vueuse/shared': 9.3.1_vue@3.2.41
 | 
			
		||||
      vue-demi: 0.13.11_vue@3.2.41
 | 
			
		||||
      vue-router: 4.1.5_vue@3.2.41
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
@@ -918,8 +908,8 @@ packages:
 | 
			
		||||
      - vue
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@vueuse/shared/9.3.0_vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-caGUWLY0DpPC6l31KxeUy6vPVNA0yKxx81jFYLoMpyP6cF84FG5Dkf69DfSUqL57wX8JcUkJDMnQaQIZPWFEQQ==}
 | 
			
		||||
  /@vueuse/shared/9.3.1_vue@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-YFu3qcnVeu0S2L4XdQJtBpDcjz6xwqHZtTv/XRhu66/yge1XVhxskUcc7VZbX52xF9A34V6KCfwncP9YDqYFiw==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      vue-demi: 0.13.11_vue@3.2.41
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
@@ -1221,7 +1211,7 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      function-bind: 1.1.1
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /callsites/3.1.0:
 | 
			
		||||
@@ -1651,7 +1641,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      es-get-iterator: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      is-arguments: 1.1.1
 | 
			
		||||
      is-date-object: 1.0.5
 | 
			
		||||
      is-regex: 1.1.4
 | 
			
		||||
@@ -1800,7 +1790,7 @@ packages:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      es-to-primitive: 1.2.1
 | 
			
		||||
      function-bind: 1.1.1
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      get-symbol-description: 1.0.0
 | 
			
		||||
      has: 1.0.3
 | 
			
		||||
      has-symbols: 1.0.3
 | 
			
		||||
@@ -1819,35 +1809,6 @@ packages:
 | 
			
		||||
      unbox-primitive: 1.0.2
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /es-abstract/1.20.2:
 | 
			
		||||
    resolution: {integrity: sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==}
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      es-to-primitive: 1.2.1
 | 
			
		||||
      function-bind: 1.1.1
 | 
			
		||||
      function.prototype.name: 1.1.5
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      get-symbol-description: 1.0.0
 | 
			
		||||
      has: 1.0.3
 | 
			
		||||
      has-property-descriptors: 1.0.0
 | 
			
		||||
      has-symbols: 1.0.3
 | 
			
		||||
      internal-slot: 1.0.3
 | 
			
		||||
      is-callable: 1.2.6
 | 
			
		||||
      is-negative-zero: 2.0.2
 | 
			
		||||
      is-regex: 1.1.4
 | 
			
		||||
      is-shared-array-buffer: 1.0.2
 | 
			
		||||
      is-string: 1.0.7
 | 
			
		||||
      is-weakref: 1.0.2
 | 
			
		||||
      object-inspect: 1.12.2
 | 
			
		||||
      object-keys: 1.1.1
 | 
			
		||||
      object.assign: 4.1.4
 | 
			
		||||
      regexp.prototype.flags: 1.4.3
 | 
			
		||||
      string.prototype.trimend: 1.0.5
 | 
			
		||||
      string.prototype.trimstart: 1.0.5
 | 
			
		||||
      unbox-primitive: 1.0.2
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /es-abstract/1.20.4:
 | 
			
		||||
    resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==}
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
@@ -1886,7 +1847,7 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      has-symbols: 1.0.3
 | 
			
		||||
      is-arguments: 1.1.1
 | 
			
		||||
      is-map: 2.0.2
 | 
			
		||||
@@ -2341,7 +2302,7 @@ packages:
 | 
			
		||||
  /for-each/0.3.3:
 | 
			
		||||
    resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      is-callable: 1.2.4
 | 
			
		||||
      is-callable: 1.2.7
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /foreground-child/2.0.0:
 | 
			
		||||
@@ -2412,7 +2373,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      define-properties: 1.1.4
 | 
			
		||||
      es-abstract: 1.20.2
 | 
			
		||||
      es-abstract: 1.20.4
 | 
			
		||||
      functions-have-names: 1.2.3
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
@@ -2434,14 +2395,6 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /get-intrinsic/1.1.2:
 | 
			
		||||
    resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      function-bind: 1.1.1
 | 
			
		||||
      has: 1.0.3
 | 
			
		||||
      has-symbols: 1.0.3
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /get-intrinsic/1.1.3:
 | 
			
		||||
    resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
@@ -2460,7 +2413,7 @@ packages:
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /get-uri/3.0.2:
 | 
			
		||||
@@ -2781,7 +2734,7 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      has: 1.0.3
 | 
			
		||||
      side-channel: 1.0.4
 | 
			
		||||
    dev: true
 | 
			
		||||
@@ -2846,11 +2799,6 @@ packages:
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /is-callable/1.2.6:
 | 
			
		||||
    resolution: {integrity: sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==}
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /is-callable/1.2.7:
 | 
			
		||||
    resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
 | 
			
		||||
    engines: {node: '>= 0.4'}
 | 
			
		||||
@@ -3021,7 +2969,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      available-typed-arrays: 1.0.5
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      es-abstract: 1.20.2
 | 
			
		||||
      es-abstract: 1.20.4
 | 
			
		||||
      for-each: 0.3.3
 | 
			
		||||
      has-tostringtag: 1.0.0
 | 
			
		||||
    dev: true
 | 
			
		||||
@@ -3049,7 +2997,7 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /is-whitespace/0.3.0:
 | 
			
		||||
@@ -3070,7 +3018,7 @@ packages:
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /isarray/0.0.1:
 | 
			
		||||
    resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=}
 | 
			
		||||
    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /isarray/2.0.5:
 | 
			
		||||
@@ -4365,7 +4313,7 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      get-intrinsic: 1.1.2
 | 
			
		||||
      get-intrinsic: 1.1.3
 | 
			
		||||
      object-inspect: 1.12.2
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
@@ -4511,7 +4459,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      define-properties: 1.1.4
 | 
			
		||||
      es-abstract: 1.20.2
 | 
			
		||||
      es-abstract: 1.20.4
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /string.prototype.trimstart/1.0.5:
 | 
			
		||||
@@ -4519,7 +4467,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      define-properties: 1.1.4
 | 
			
		||||
      es-abstract: 1.20.2
 | 
			
		||||
      es-abstract: 1.20.4
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /string_decoder/0.10.31:
 | 
			
		||||
@@ -4798,7 +4746,7 @@ packages:
 | 
			
		||||
    engines: {node: '>= 0.8'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /unplugin-auto-import/0.11.2_xprgaq42dappzfhggpxgvdf43y:
 | 
			
		||||
  /unplugin-auto-import/0.11.2_zqi2xhr3ahaiw6pxzygjgkwf7q:
 | 
			
		||||
    resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==}
 | 
			
		||||
    engines: {node: '>=14'}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
@@ -4809,7 +4757,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@antfu/utils': 0.5.2
 | 
			
		||||
      '@rollup/pluginutils': 4.2.1
 | 
			
		||||
      '@vueuse/core': 9.3.0_vue@3.2.41
 | 
			
		||||
      '@vueuse/core': 9.3.1_vue@3.2.41
 | 
			
		||||
      local-pkg: 0.4.2
 | 
			
		||||
      magic-string: 0.26.2
 | 
			
		||||
      unimport: 0.6.7_vite@3.1.8
 | 
			
		||||
@@ -4821,8 +4769,8 @@ packages:
 | 
			
		||||
      - webpack
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /unplugin-icons/0.14.11_@vue+compiler-sfc@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-szr6QA1ILT4RrJCmtvW41m2KPwUCCIx8QNgwEmTehvzEkSLDrdEaBhKGMWb/qTe5/zwnfwrDGcFT/6pGOSHJcA==}
 | 
			
		||||
  /unplugin-icons/0.14.12_@vue+compiler-sfc@3.2.41:
 | 
			
		||||
    resolution: {integrity: sha512-FdkjDnUnc8/75OT8Ywwm8iDyG6kO8w1uHfFbnO2Jh7JhpE0odKhCqaAOmEE/UlvYDYSm5D4X1DKdWMwpAxj07Q==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      '@svgr/core': '>=5.5.0'
 | 
			
		||||
      '@vue/compiler-sfc': ^3.0.2
 | 
			
		||||
@@ -4964,8 +4912,8 @@ packages:
 | 
			
		||||
      spdx-expression-parse: 3.0.1
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /vite-plugin-pages/0.26.0_y7chuddh2i4swuczuywc2tye34:
 | 
			
		||||
    resolution: {integrity: sha512-yJZvwHEt7puYIf19S89IvkDsWPjWleSied4H8hmdW6i8buCA93z1UAU1ipW1d8fNKrC4FzXsUHHbPm6+kl1p9w==}
 | 
			
		||||
  /vite-plugin-pages/0.27.0_y7chuddh2i4swuczuywc2tye34:
 | 
			
		||||
    resolution: {integrity: sha512-fLuBd8U9jcfB+MXj9yEsq6AHa0AHCP4Fhi7LCcCWJeL28Lx3o5B0uoBUhCZ+xwsnNs4GZwPOfgBG3yHKMsMNnA==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      '@vue/compiler-sfc': ^2.7.0 || ^3.0.0
 | 
			
		||||
      vite: ^2.0.0 || ^3.0.0-0
 | 
			
		||||
@@ -4978,12 +4926,12 @@ packages:
 | 
			
		||||
      debug: 4.3.4
 | 
			
		||||
      deep-equal: 2.0.5
 | 
			
		||||
      extract-comments: 1.1.0
 | 
			
		||||
      fast-glob: 3.2.11
 | 
			
		||||
      fast-glob: 3.2.12
 | 
			
		||||
      json5: 2.2.1
 | 
			
		||||
      local-pkg: 0.4.2
 | 
			
		||||
      picocolors: 1.0.0
 | 
			
		||||
      vite: 3.1.8_sass@1.55.0
 | 
			
		||||
      yaml: 2.1.1
 | 
			
		||||
      yaml: 2.1.3
 | 
			
		||||
    transitivePeerDependencies:
 | 
			
		||||
      - supports-color
 | 
			
		||||
    dev: true
 | 
			
		||||
@@ -5133,21 +5081,21 @@ packages:
 | 
			
		||||
      '@vue/devtools-api': 6.2.1
 | 
			
		||||
      vue: 3.2.41
 | 
			
		||||
 | 
			
		||||
  /vue-template-compiler/2.7.12:
 | 
			
		||||
    resolution: {integrity: sha512-6rhJAuo2vRzJMs8X/pd9yqtsJmnPEnv4E0cb9KCu0sfGhoDt8roCCa/6qbrvpc1b38zYgdmY/xrk4qfNWZIjwA==}
 | 
			
		||||
  /vue-template-compiler/2.7.13:
 | 
			
		||||
    resolution: {integrity: sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      de-indent: 1.0.2
 | 
			
		||||
      he: 1.2.0
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /vue-tsc/1.0.7_typescript@4.8.4:
 | 
			
		||||
    resolution: {integrity: sha512-PaeWgISdXsPnV3a1NKfiAZb0iyvgLroxKzjPj1itoR5ZH0UOeVZBbDxpH7VPxAt6tCxiAoAIIisDs1QQrsSu3w==}
 | 
			
		||||
  /vue-tsc/1.0.8_typescript@4.8.4:
 | 
			
		||||
    resolution: {integrity: sha512-+0sJ+QVH7SHLt8mV/uIw4xlHDk1mWigZkMFugfZTv8rlHpM3S2tCVZ0BWEGclT/0rKdO8j+St+mljpvhWPN/eQ==}
 | 
			
		||||
    hasBin: true
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      typescript: '*'
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/vue-language-core': 1.0.7
 | 
			
		||||
      '@volar/vue-typescript': 1.0.7
 | 
			
		||||
      '@volar/vue-language-core': 1.0.8
 | 
			
		||||
      '@volar/vue-typescript': 1.0.8
 | 
			
		||||
      typescript: 4.8.4
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
@@ -5252,7 +5200,7 @@ packages:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      available-typed-arrays: 1.0.5
 | 
			
		||||
      call-bind: 1.0.2
 | 
			
		||||
      es-abstract: 1.20.2
 | 
			
		||||
      es-abstract: 1.20.4
 | 
			
		||||
      for-each: 0.3.3
 | 
			
		||||
      has-tostringtag: 1.0.0
 | 
			
		||||
      is-typed-array: 1.1.9
 | 
			
		||||
@@ -5401,6 +5349,11 @@ packages:
 | 
			
		||||
    engines: {node: '>= 14'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /yaml/2.1.3:
 | 
			
		||||
    resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==}
 | 
			
		||||
    engines: {node: '>= 14'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /yargs-parser/20.2.9:
 | 
			
		||||
    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
 | 
			
		||||
    engines: {node: '>=10'}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user