nuxt-charts 2.2.1 → 3.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +80 -79
- package/dist/module.d.mts +4 -4
- package/dist/module.json +1 -1
- package/dist/module.mjs +64 -95
- package/dist/runtime/assets/components.css +1 -0
- package/dist/runtime/assets/theme.css +1 -0
- package/dist/runtime/components/AreaChart.d.vue.ts +19 -0
- package/dist/runtime/components/AreaChart.vue +149 -0
- package/dist/runtime/components/AreaChart.vue.d.ts +19 -0
- package/dist/runtime/components/BarChart.d.vue.ts +19 -0
- package/dist/runtime/components/BarChart.vue +175 -0
- package/dist/runtime/components/BarChart.vue.d.ts +19 -0
- package/dist/runtime/components/BubbleChart.d.vue.ts +19 -0
- package/dist/runtime/components/BubbleChart.vue +213 -0
- package/dist/runtime/components/BubbleChart.vue.d.ts +19 -0
- package/dist/runtime/components/CandlestickChart.d.vue.ts +19 -0
- package/dist/runtime/components/CandlestickChart.vue +329 -0
- package/dist/runtime/components/CandlestickChart.vue.d.ts +19 -0
- package/dist/runtime/components/DonutChart.d.vue.ts +21 -0
- package/dist/runtime/components/DonutChart.vue +116 -0
- package/dist/runtime/components/DonutChart.vue.d.ts +21 -0
- package/dist/runtime/components/FunnelChart.d.vue.ts +19 -0
- package/dist/runtime/components/FunnelChart.vue +152 -0
- package/dist/runtime/components/FunnelChart.vue.d.ts +19 -0
- package/dist/runtime/components/LineChart.d.vue.ts +19 -0
- package/dist/runtime/components/LineChart.vue +84 -0
- package/dist/runtime/components/LineChart.vue.d.ts +19 -0
- package/dist/runtime/components/RadarChart.d.vue.ts +19 -0
- package/dist/runtime/components/RadarChart.vue +90 -0
- package/dist/runtime/components/RadarChart.vue.d.ts +19 -0
- package/dist/runtime/components/RadialBarChart.d.vue.ts +19 -0
- package/dist/runtime/components/RadialBarChart.vue +81 -0
- package/dist/runtime/components/RadialBarChart.vue.d.ts +19 -0
- package/dist/runtime/components/StatusTrackerChart.d.vue.ts +19 -0
- package/dist/runtime/components/StatusTrackerChart.vue +147 -0
- package/dist/runtime/components/StatusTrackerChart.vue.d.ts +19 -0
- package/dist/runtime/components/internal/CandlestickTooltip.d.vue.ts +17 -0
- package/dist/runtime/components/internal/CandlestickTooltip.vue +38 -0
- package/dist/runtime/components/internal/CandlestickTooltip.vue.d.ts +17 -0
- package/dist/runtime/components/internal/CartesianFrame.d.vue.ts +40 -0
- package/dist/runtime/components/internal/CartesianFrame.vue +321 -0
- package/dist/runtime/components/internal/CartesianFrame.vue.d.ts +40 -0
- package/dist/runtime/components/internal/ChartLegend.d.vue.ts +11 -0
- package/dist/runtime/components/internal/ChartLegend.vue +22 -0
- package/dist/runtime/components/internal/ChartLegend.vue.d.ts +11 -0
- package/dist/runtime/components/internal/ChartTooltip.d.vue.ts +3 -0
- package/dist/runtime/components/internal/ChartTooltip.vue +39 -0
- package/dist/runtime/components/internal/ChartTooltip.vue.d.ts +3 -0
- package/dist/runtime/components/internal/CubeBarShape.d.vue.ts +28 -0
- package/dist/runtime/components/internal/CubeBarShape.vue +69 -0
- package/dist/runtime/components/internal/CubeBarShape.vue.d.ts +28 -0
- package/dist/runtime/components/internal/DitherDefs.d.ts +98 -0
- package/dist/runtime/components/internal/DitherDefs.js +158 -0
- package/dist/runtime/components/internal/FunnelLayeredShape.d.vue.ts +42 -0
- package/dist/runtime/components/internal/FunnelLayeredShape.vue +124 -0
- package/dist/runtime/components/internal/FunnelLayeredShape.vue.d.ts +42 -0
- package/dist/runtime/components/internal/GradientDefs.d.ts +46 -0
- package/dist/runtime/components/internal/GradientDefs.js +38 -0
- package/dist/runtime/enums.d.ts +65 -0
- package/dist/runtime/enums.js +40 -0
- package/dist/runtime/types/charts.d.ts +642 -0
- package/dist/runtime/types/charts.js +0 -0
- package/dist/runtime/types/shared.d.ts +202 -0
- package/dist/runtime/types/shared.js +0 -0
- package/dist/runtime/types.d.ts +8 -0
- package/dist/runtime/types.js +0 -0
- package/dist/runtime/utils/axis.d.ts +132 -0
- package/dist/runtime/utils/axis.js +93 -0
- package/dist/runtime/utils/categories.d.ts +36 -0
- package/dist/runtime/utils/categories.js +18 -0
- package/dist/runtime/utils/cubes.d.ts +100 -0
- package/dist/runtime/utils/cubes.js +73 -0
- package/dist/runtime/utils/curve.d.ts +12 -0
- package/dist/runtime/utils/curve.js +26 -0
- package/dist/runtime/utils/dither.d.ts +55 -0
- package/dist/runtime/utils/dither.js +45 -0
- package/dist/runtime/utils/gradient.d.ts +12 -0
- package/dist/runtime/utils/gradient.js +8 -0
- package/dist/runtime/utils/index.d.ts +6 -0
- package/dist/runtime/utils/index.js +6 -0
- package/dist/runtime/utils/legend.d.ts +27 -0
- package/dist/runtime/utils/legend.js +19 -0
- package/dist/runtime/utils/marker.d.ts +20 -0
- package/dist/runtime/utils/marker.js +21 -0
- package/dist/runtime/utils/style.d.ts +14 -0
- package/dist/runtime/utils/style.js +10 -0
- package/dist/runtime/utils/theme.d.ts +36 -0
- package/dist/runtime/utils/theme.js +45 -0
- package/package.json +56 -12
- package/dist/runtime/vue-chrts.d.ts +0 -1
- package/dist/runtime/vue-chrts.js +0 -13
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FunnelChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<FunnelChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LineChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<LineChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { Line, LineChart as VccsLineChart } from "vccs";
|
|
4
|
+
import CartesianFrame from "./internal/CartesianFrame.vue";
|
|
5
|
+
import { categoriesToSeries } from "../utils/categories";
|
|
6
|
+
import { curveTypeToVccs } from "../utils/curve";
|
|
7
|
+
import { markerToDot, normalizeMarkerConfig, toStrokeDasharray } from "../utils/marker";
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
xAxis: { type: null, required: false },
|
|
10
|
+
curveType: { type: String, required: false },
|
|
11
|
+
lineWidth: { type: Number, required: false },
|
|
12
|
+
stacked: { type: Boolean, required: false },
|
|
13
|
+
lineDashArray: { type: [Array, String], required: false },
|
|
14
|
+
markerConfig: { type: Object, required: false },
|
|
15
|
+
data: { type: Array, required: true },
|
|
16
|
+
height: { type: Number, required: true },
|
|
17
|
+
xLabel: { type: String, required: false },
|
|
18
|
+
yLabel: { type: String, required: false },
|
|
19
|
+
padding: { type: Object, required: false },
|
|
20
|
+
categories: { type: Object, required: true },
|
|
21
|
+
xFormatter: { type: Function, required: false },
|
|
22
|
+
yFormatter: { type: Function, required: false },
|
|
23
|
+
tooltipTitleFormatter: { type: Function, required: false },
|
|
24
|
+
xNumTicks: { type: Number, required: false },
|
|
25
|
+
yNumTicks: { type: Number, required: false },
|
|
26
|
+
hideLegend: { type: Boolean, required: false },
|
|
27
|
+
hideTooltip: { type: Boolean, required: false },
|
|
28
|
+
legendPosition: { type: String, required: false },
|
|
29
|
+
legendStyle: { type: [String, Object], required: false },
|
|
30
|
+
xDomainLine: { type: Boolean, required: false },
|
|
31
|
+
yDomainLine: { type: Boolean, required: false },
|
|
32
|
+
xTickLine: { type: Boolean, required: false },
|
|
33
|
+
yTickLine: { type: Boolean, required: false },
|
|
34
|
+
xGridLine: { type: Boolean, required: false },
|
|
35
|
+
yGridLine: { type: Boolean, required: false },
|
|
36
|
+
hideXAxis: { type: Boolean, required: false },
|
|
37
|
+
hideYAxis: { type: Boolean, required: false },
|
|
38
|
+
xDomain: { type: Array, required: false },
|
|
39
|
+
yDomain: { type: Array, required: false },
|
|
40
|
+
duration: { type: Number, required: false },
|
|
41
|
+
xAxisConfig: { type: Object, required: false },
|
|
42
|
+
yAxisConfig: { type: Object, required: false },
|
|
43
|
+
yAxes: { type: Object, required: false },
|
|
44
|
+
tooltip: { type: Object, required: false },
|
|
45
|
+
referenceLines: { type: Array, required: false },
|
|
46
|
+
syncId: { type: String, required: false },
|
|
47
|
+
minMaxTicksOnly: { type: Boolean, required: false },
|
|
48
|
+
xExplicitTicks: { type: Array, required: false },
|
|
49
|
+
yExplicitTicks: { type: Array, required: false },
|
|
50
|
+
crosshairConfig: { type: Object, required: false },
|
|
51
|
+
theme: { type: Object, required: false }
|
|
52
|
+
});
|
|
53
|
+
const markers = computed(() => normalizeMarkerConfig(props.markerConfig));
|
|
54
|
+
const series = computed(
|
|
55
|
+
() => categoriesToSeries(props.categories).map((s) => ({
|
|
56
|
+
...s,
|
|
57
|
+
dot: markerToDot(markers.value[s.dataKey], s.color)
|
|
58
|
+
}))
|
|
59
|
+
);
|
|
60
|
+
const curve = computed(() => curveTypeToVccs(props.curveType));
|
|
61
|
+
const stackId = computed(() => props.stacked ? "stack" : void 0);
|
|
62
|
+
const dashArray = computed(() => toStrokeDasharray(props.lineDashArray));
|
|
63
|
+
const xAxisKey = computed(() => props.xAxis !== void 0 ? String(props.xAxis) : void 0);
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<template>
|
|
67
|
+
<CartesianFrame :container="VccsLineChart" :x-axis-key="xAxisKey" v-bind="props">
|
|
68
|
+
<Line
|
|
69
|
+
v-for="s in series"
|
|
70
|
+
:key="s.dataKey"
|
|
71
|
+
:data-key="s.dataKey"
|
|
72
|
+
:name="s.name"
|
|
73
|
+
:y-axis-id="s.yAxisId"
|
|
74
|
+
:type="curve"
|
|
75
|
+
:stack-id="stackId"
|
|
76
|
+
:stroke="s.color"
|
|
77
|
+
:stroke-width="lineWidth ?? 2"
|
|
78
|
+
:stroke-dasharray="dashArray"
|
|
79
|
+
:dot="s.dot"
|
|
80
|
+
:hide="s.hidden"
|
|
81
|
+
:is-animation-active="duration !== void 0 && duration !== 0"
|
|
82
|
+
/>
|
|
83
|
+
</CartesianFrame>
|
|
84
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LineChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<LineChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RadarChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadarChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import {
|
|
4
|
+
Legend,
|
|
5
|
+
PolarAngleAxis,
|
|
6
|
+
PolarGrid,
|
|
7
|
+
PolarRadiusAxis,
|
|
8
|
+
Radar,
|
|
9
|
+
RadarChart as VccsRadarChart,
|
|
10
|
+
ResponsiveContainer,
|
|
11
|
+
Tooltip
|
|
12
|
+
} from "vccs";
|
|
13
|
+
import ChartTooltip from "./internal/ChartTooltip.vue";
|
|
14
|
+
import ChartLegend from "./internal/ChartLegend.vue";
|
|
15
|
+
import { categoriesToSeries } from "../utils/categories";
|
|
16
|
+
import { legendPositionToLegendProps, resolveLegendWrapperStyle } from "../utils/legend";
|
|
17
|
+
import { toCssProperties } from "../utils/style";
|
|
18
|
+
import { themeToVars } from "../utils/theme";
|
|
19
|
+
const props = defineProps({
|
|
20
|
+
data: { type: Array, required: true },
|
|
21
|
+
height: { type: Number, required: true },
|
|
22
|
+
dataKey: { type: null, required: true },
|
|
23
|
+
categories: { type: Object, required: true },
|
|
24
|
+
fillOpacity: { type: Number, required: false },
|
|
25
|
+
angleFormatter: { type: Function, required: false },
|
|
26
|
+
tooltipTitleFormatter: { type: Function, required: false },
|
|
27
|
+
hideLegend: { type: Boolean, required: false },
|
|
28
|
+
hideTooltip: { type: Boolean, required: false },
|
|
29
|
+
legendPosition: { type: String, required: false },
|
|
30
|
+
legendStyle: { type: [String, Object], required: false },
|
|
31
|
+
hideRadiusAxis: { type: Boolean, required: false },
|
|
32
|
+
radiusAxisAngle: { type: Number, required: false },
|
|
33
|
+
tooltip: { type: Object, required: false },
|
|
34
|
+
theme: { type: Object, required: false },
|
|
35
|
+
duration: { type: Number, required: false }
|
|
36
|
+
});
|
|
37
|
+
const series = computed(() => categoriesToSeries(props.categories).filter((s) => !s.hidden));
|
|
38
|
+
const angleKey = computed(() => String(props.dataKey));
|
|
39
|
+
const legend = computed(() => legendPositionToLegendProps(props.legendPosition));
|
|
40
|
+
const legendWrapperStyle = computed(
|
|
41
|
+
() => resolveLegendWrapperStyle(props.legendPosition, toCssProperties(props.legendStyle))
|
|
42
|
+
);
|
|
43
|
+
const themeVars = computed(() => themeToVars(props.theme));
|
|
44
|
+
</script>
|
|
45
|
+
|
|
46
|
+
<template>
|
|
47
|
+
<div class="vue-chrts" :style="themeVars">
|
|
48
|
+
<ResponsiveContainer width="100%" :height="height">
|
|
49
|
+
<VccsRadarChart :data="data">
|
|
50
|
+
<PolarGrid stroke="var(--vc-grid-color)" />
|
|
51
|
+
<PolarAngleAxis :data-key="angleKey" :tick-formatter="angleFormatter" />
|
|
52
|
+
<!--
|
|
53
|
+
vccs defaults the radius axis to `angle: 0`, which lays the 0→max scale
|
|
54
|
+
out horizontally to the right. Point it up instead so the scale reads
|
|
55
|
+
bottom-to-top from the centre; `orientation: middle` then centres the
|
|
56
|
+
tick labels on the axis line rather than hanging them off one side.
|
|
57
|
+
-->
|
|
58
|
+
<PolarRadiusAxis
|
|
59
|
+
v-if="!hideRadiusAxis"
|
|
60
|
+
:angle="radiusAxisAngle ?? 90"
|
|
61
|
+
orientation="middle"
|
|
62
|
+
/>
|
|
63
|
+
|
|
64
|
+
<Radar
|
|
65
|
+
v-for="s in series"
|
|
66
|
+
:key="s.dataKey"
|
|
67
|
+
:data-key="s.dataKey"
|
|
68
|
+
:name="s.name"
|
|
69
|
+
:stroke="s.color"
|
|
70
|
+
:fill="s.color"
|
|
71
|
+
:fill-opacity="fillOpacity ?? 0.6"
|
|
72
|
+
:is-animation-active="duration !== void 0 && duration !== 0"
|
|
73
|
+
/>
|
|
74
|
+
|
|
75
|
+
<Tooltip v-if="!hideTooltip" :content="ChartTooltip" :is-animation-active="false" />
|
|
76
|
+
<Legend
|
|
77
|
+
v-if="!hideLegend"
|
|
78
|
+
:align="legend.align"
|
|
79
|
+
:vertical-align="legend.verticalAlign"
|
|
80
|
+
:layout="legend.layout"
|
|
81
|
+
:wrapper-style="legendWrapperStyle"
|
|
82
|
+
>
|
|
83
|
+
<template #content="slotProps">
|
|
84
|
+
<ChartLegend v-bind="slotProps" />
|
|
85
|
+
</template>
|
|
86
|
+
</Legend>
|
|
87
|
+
</VccsRadarChart>
|
|
88
|
+
</ResponsiveContainer>
|
|
89
|
+
</div>
|
|
90
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RadarChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T extends Record<string, unknown>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadarChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RadialBarChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadialBarChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import {
|
|
4
|
+
Legend,
|
|
5
|
+
RadialBar,
|
|
6
|
+
RadialBarChart as VccsRadialBarChart,
|
|
7
|
+
ResponsiveContainer,
|
|
8
|
+
Tooltip
|
|
9
|
+
} from "vccs";
|
|
10
|
+
import ChartTooltip from "./internal/ChartTooltip.vue";
|
|
11
|
+
import ChartLegend from "./internal/ChartLegend.vue";
|
|
12
|
+
import { categoriesToSeries } from "../utils/categories";
|
|
13
|
+
import { legendPositionToLegendProps, resolveLegendWrapperStyle } from "../utils/legend";
|
|
14
|
+
import { toCssProperties } from "../utils/style";
|
|
15
|
+
import { themeToVars } from "../utils/theme";
|
|
16
|
+
const props = defineProps({
|
|
17
|
+
data: { type: Array, required: true },
|
|
18
|
+
categories: { type: Object, required: true },
|
|
19
|
+
height: { type: Number, required: true },
|
|
20
|
+
innerRadius: { type: [Number, String], required: false },
|
|
21
|
+
outerRadius: { type: [Number, String], required: false },
|
|
22
|
+
startAngle: { type: Number, required: false },
|
|
23
|
+
endAngle: { type: Number, required: false },
|
|
24
|
+
cornerRadius: { type: Number, required: false },
|
|
25
|
+
background: { type: Boolean, required: false },
|
|
26
|
+
hideLegend: { type: Boolean, required: false },
|
|
27
|
+
legendPosition: { type: String, required: false },
|
|
28
|
+
legendStyle: { type: [String, Object], required: false },
|
|
29
|
+
hideTooltip: { type: Boolean, required: false },
|
|
30
|
+
tooltipTitleFormatter: { type: Function, required: false },
|
|
31
|
+
tooltip: { type: Object, required: false },
|
|
32
|
+
theme: { type: Object, required: false },
|
|
33
|
+
duration: { type: Number, required: false }
|
|
34
|
+
});
|
|
35
|
+
const themeVars = computed(() => themeToVars(props.theme));
|
|
36
|
+
const bars = computed(() => {
|
|
37
|
+
const cats = categoriesToSeries(props.categories);
|
|
38
|
+
return props.data.map((value, i) => ({
|
|
39
|
+
name: cats[i]?.name ?? String(i),
|
|
40
|
+
value,
|
|
41
|
+
fill: cats[i]?.color ?? `var(--chart-color-${i})`
|
|
42
|
+
}));
|
|
43
|
+
});
|
|
44
|
+
const legend = computed(() => legendPositionToLegendProps(props.legendPosition));
|
|
45
|
+
const legendWrapperStyle = computed(
|
|
46
|
+
() => resolveLegendWrapperStyle(props.legendPosition, toCssProperties(props.legendStyle))
|
|
47
|
+
);
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<div class="vue-chrts" :style="themeVars">
|
|
52
|
+
<ResponsiveContainer width="100%" :height="height">
|
|
53
|
+
<VccsRadialBarChart
|
|
54
|
+
:data="bars"
|
|
55
|
+
:inner-radius="innerRadius ?? '30%'"
|
|
56
|
+
:outer-radius="outerRadius ?? '100%'"
|
|
57
|
+
:start-angle="startAngle ?? 90"
|
|
58
|
+
:end-angle="endAngle ?? -270"
|
|
59
|
+
>
|
|
60
|
+
<RadialBar
|
|
61
|
+
data-key="value"
|
|
62
|
+
:background="background ?? true"
|
|
63
|
+
:corner-radius="cornerRadius"
|
|
64
|
+
:is-animation-active="duration !== void 0 && duration !== 0"
|
|
65
|
+
/>
|
|
66
|
+
<Tooltip v-if="!hideTooltip" :content="ChartTooltip" :is-animation-active="false" />
|
|
67
|
+
<Legend
|
|
68
|
+
v-if="!hideLegend"
|
|
69
|
+
:align="legend.align"
|
|
70
|
+
:vertical-align="legend.verticalAlign"
|
|
71
|
+
:layout="legend.layout"
|
|
72
|
+
:wrapper-style="legendWrapperStyle"
|
|
73
|
+
>
|
|
74
|
+
<template #content="slotProps">
|
|
75
|
+
<ChartLegend v-bind="slotProps" />
|
|
76
|
+
</template>
|
|
77
|
+
</Legend>
|
|
78
|
+
</VccsRadialBarChart>
|
|
79
|
+
</ResponsiveContainer>
|
|
80
|
+
</div>
|
|
81
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RadialBarChartProps } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<RadialBarChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StatusTrackerChartProps, StatusTrackerDatum } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T extends StatusTrackerDatum>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<StatusTrackerChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed, onMounted, onUnmounted, ref } from "vue";
|
|
3
|
+
import { categoriesToSeries } from "../utils/categories";
|
|
4
|
+
const props = defineProps({
|
|
5
|
+
data: { type: Array, required: true },
|
|
6
|
+
categories: { type: Object, required: true },
|
|
7
|
+
title: { type: String, required: false },
|
|
8
|
+
summary: { type: [String, Number], required: false },
|
|
9
|
+
height: { type: Number, required: false, default: 28 },
|
|
10
|
+
barWidth: { type: Number, required: false, default: 8 },
|
|
11
|
+
barGap: { type: Number, required: false, default: 3 },
|
|
12
|
+
visibleBars: { type: Number, required: false },
|
|
13
|
+
startLabel: { type: String, required: false },
|
|
14
|
+
endLabel: { type: String, required: false },
|
|
15
|
+
emptyStatus: { type: String, required: false, default: "empty" },
|
|
16
|
+
emptyColor: { type: String, required: false, default: "var(--chart-empty-color, #e5e7eb)" },
|
|
17
|
+
statusAccessor: { type: Function, required: false },
|
|
18
|
+
labelAccessor: { type: Function, required: false },
|
|
19
|
+
valueAccessor: { type: Function, required: false },
|
|
20
|
+
valueFormatter: { type: Function, required: false },
|
|
21
|
+
hideHeader: { type: Boolean, required: false, default: false },
|
|
22
|
+
hideLegend: { type: Boolean, required: false, default: false },
|
|
23
|
+
hideTooltip: { type: Boolean, required: false, default: false },
|
|
24
|
+
rounded: { type: Boolean, required: false, default: true }
|
|
25
|
+
});
|
|
26
|
+
const containerRef = ref(null);
|
|
27
|
+
const containerWidth = ref(0);
|
|
28
|
+
let resizeObserver;
|
|
29
|
+
const categoryMap = computed(() => {
|
|
30
|
+
const entries = categoriesToSeries(props.categories);
|
|
31
|
+
return new Map(entries.map((item) => [item.dataKey, item]));
|
|
32
|
+
});
|
|
33
|
+
const legendItems = computed(
|
|
34
|
+
() => categoriesToSeries(props.categories).filter((item) => !item.hidden)
|
|
35
|
+
);
|
|
36
|
+
const resolvedVisibleBars = computed(() => {
|
|
37
|
+
if (props.visibleBars !== void 0) return Math.max(0, props.visibleBars);
|
|
38
|
+
if (!containerWidth.value) return props.data.length;
|
|
39
|
+
const barWidth = Math.max(1, props.barWidth);
|
|
40
|
+
const gap = Math.max(0, props.barGap);
|
|
41
|
+
return Math.max(1, Math.floor((containerWidth.value + gap) / (barWidth + gap)));
|
|
42
|
+
});
|
|
43
|
+
const visibleBars = computed(() => {
|
|
44
|
+
const count = resolvedVisibleBars.value;
|
|
45
|
+
if (count === 0) return [];
|
|
46
|
+
const start = Math.max(0, props.data.length - count);
|
|
47
|
+
const visibleData = props.data.slice(start);
|
|
48
|
+
const emptyCount = Math.max(0, count - visibleData.length);
|
|
49
|
+
return [
|
|
50
|
+
...Array.from({ length: emptyCount }, (_, index) => ({
|
|
51
|
+
key: `empty-${index}`,
|
|
52
|
+
status: props.emptyStatus,
|
|
53
|
+
color: props.emptyColor,
|
|
54
|
+
label: "No data",
|
|
55
|
+
title: "No data",
|
|
56
|
+
isEmpty: true
|
|
57
|
+
})),
|
|
58
|
+
...visibleData.map((datum, visibleIndex) => {
|
|
59
|
+
const dataIndex = start + visibleIndex;
|
|
60
|
+
const status = props.statusAccessor?.(datum, dataIndex) ?? datum.status;
|
|
61
|
+
const category = categoryMap.value.get(status);
|
|
62
|
+
const value = props.valueAccessor?.(datum, dataIndex) ?? datum.value;
|
|
63
|
+
const label = props.labelAccessor?.(datum, dataIndex) ?? datum.label ?? category?.name ?? status;
|
|
64
|
+
const formattedValue = typeof value === "number" ? props.valueFormatter?.(value, datum, dataIndex) ?? value.toLocaleString() : void 0;
|
|
65
|
+
return {
|
|
66
|
+
key: `${dataIndex}-${status}`,
|
|
67
|
+
status,
|
|
68
|
+
color: category?.color ?? props.emptyColor,
|
|
69
|
+
label,
|
|
70
|
+
title: formattedValue ? `${label}: ${formattedValue}` : label,
|
|
71
|
+
isEmpty: false
|
|
72
|
+
};
|
|
73
|
+
})
|
|
74
|
+
];
|
|
75
|
+
});
|
|
76
|
+
const trackerStyle = computed(() => ({
|
|
77
|
+
gap: `${Math.max(0, props.barGap)}px`,
|
|
78
|
+
height: `${Math.max(1, props.height)}px`
|
|
79
|
+
}));
|
|
80
|
+
const barStyle = computed(() => ({
|
|
81
|
+
width: `${Math.max(1, props.barWidth)}px`
|
|
82
|
+
}));
|
|
83
|
+
const ariaLabel = computed(() => {
|
|
84
|
+
const prefix = props.title ? `${props.title}: ` : "";
|
|
85
|
+
const samples = props.data.length === 1 ? "1 status sample" : `${props.data.length} status samples`;
|
|
86
|
+
return `${prefix}${samples}`;
|
|
87
|
+
});
|
|
88
|
+
function updateContainerWidth() {
|
|
89
|
+
containerWidth.value = containerRef.value?.offsetWidth ?? 0;
|
|
90
|
+
}
|
|
91
|
+
onMounted(() => {
|
|
92
|
+
updateContainerWidth();
|
|
93
|
+
if (typeof ResizeObserver === "undefined") return;
|
|
94
|
+
resizeObserver = new ResizeObserver(updateContainerWidth);
|
|
95
|
+
if (containerRef.value) resizeObserver.observe(containerRef.value);
|
|
96
|
+
});
|
|
97
|
+
onUnmounted(() => {
|
|
98
|
+
resizeObserver?.disconnect();
|
|
99
|
+
});
|
|
100
|
+
</script>
|
|
101
|
+
|
|
102
|
+
<template>
|
|
103
|
+
<section class="vc-status-tracker vue-chrts" :aria-label="ariaLabel">
|
|
104
|
+
<header v-if="!hideHeader && (title || summary !== void 0)" class="vc-status-tracker__header">
|
|
105
|
+
<h3 v-if="title" class="vc-status-tracker__title">
|
|
106
|
+
{{ title }}
|
|
107
|
+
</h3>
|
|
108
|
+
<p v-if="summary !== void 0" class="vc-status-tracker__summary">
|
|
109
|
+
{{ summary }}
|
|
110
|
+
</p>
|
|
111
|
+
</header>
|
|
112
|
+
|
|
113
|
+
<div
|
|
114
|
+
ref="containerRef"
|
|
115
|
+
class="vc-status-tracker__track"
|
|
116
|
+
role="img"
|
|
117
|
+
:aria-label="ariaLabel"
|
|
118
|
+
:style="trackerStyle"
|
|
119
|
+
>
|
|
120
|
+
<span
|
|
121
|
+
v-for="(bar, index) in visibleBars"
|
|
122
|
+
:key="bar.key"
|
|
123
|
+
class="vc-status-tracker__bar"
|
|
124
|
+
:class="{
|
|
125
|
+
'vc-status-tracker__bar--rounded-start': rounded && index === 0,
|
|
126
|
+
'vc-status-tracker__bar--rounded-end': rounded && index === visibleBars.length - 1,
|
|
127
|
+
'vc-status-tracker__bar--empty': bar.isEmpty
|
|
128
|
+
}"
|
|
129
|
+
:style="{ ...barStyle, backgroundColor: bar.color }"
|
|
130
|
+
:title="hideTooltip ? void 0 : bar.title"
|
|
131
|
+
:aria-label="bar.title"
|
|
132
|
+
/>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<div v-if="startLabel || endLabel" class="vc-status-tracker__labels">
|
|
136
|
+
<span>{{ startLabel }}</span>
|
|
137
|
+
<span>{{ endLabel }}</span>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<ul v-if="!hideLegend && legendItems.length" class="vc-status-tracker__legend">
|
|
141
|
+
<li v-for="item in legendItems" :key="item.dataKey" class="vc-status-tracker__legend-item">
|
|
142
|
+
<span class="vc-status-tracker__legend-dot" :style="{ backgroundColor: item.color }" />
|
|
143
|
+
<span>{{ item.name }}</span>
|
|
144
|
+
</li>
|
|
145
|
+
</ul>
|
|
146
|
+
</section>
|
|
147
|
+
</template>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StatusTrackerChartProps, StatusTrackerDatum } from "../types/charts.js";
|
|
2
|
+
declare const __VLS_export: <T extends StatusTrackerDatum>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
3
|
+
props: import("vue").PublicProps & __VLS_PrettifyLocal<StatusTrackerChartProps<T>> & (typeof globalThis extends {
|
|
4
|
+
__VLS_PROPS_FALLBACK: infer P;
|
|
5
|
+
} ? P : {});
|
|
6
|
+
expose: (exposed: {}) => void;
|
|
7
|
+
attrs: any;
|
|
8
|
+
slots: {};
|
|
9
|
+
emit: {};
|
|
10
|
+
}>) => import("vue").VNode & {
|
|
11
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
12
|
+
};
|
|
13
|
+
declare const _default: typeof __VLS_export;
|
|
14
|
+
export default _default;
|
|
15
|
+
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
16
|
+
[K in keyof T]: T[K];
|
|
17
|
+
} : {
|
|
18
|
+
[K in keyof T as K]: T[K];
|
|
19
|
+
}) & {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface Row {
|
|
2
|
+
label: string | number;
|
|
3
|
+
open: number;
|
|
4
|
+
high: number;
|
|
5
|
+
low: number;
|
|
6
|
+
close: number;
|
|
7
|
+
volume?: number;
|
|
8
|
+
}
|
|
9
|
+
type __VLS_Props = {
|
|
10
|
+
row: Row;
|
|
11
|
+
upColor: string;
|
|
12
|
+
downColor: string;
|
|
13
|
+
valueFormatter?: (value: number) => string;
|
|
14
|
+
};
|
|
15
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
row: { type: Object, required: true },
|
|
5
|
+
upColor: { type: String, required: true },
|
|
6
|
+
downColor: { type: String, required: true },
|
|
7
|
+
valueFormatter: { type: Function, required: false }
|
|
8
|
+
});
|
|
9
|
+
const directionColor = computed(
|
|
10
|
+
() => props.row.close >= props.row.open ? props.upColor : props.downColor
|
|
11
|
+
);
|
|
12
|
+
function fmt(value) {
|
|
13
|
+
return props.valueFormatter ? props.valueFormatter(value) : value.toLocaleString();
|
|
14
|
+
}
|
|
15
|
+
const rows = computed(() => {
|
|
16
|
+
const r = props.row;
|
|
17
|
+
return [
|
|
18
|
+
{ name: "Open", value: fmt(r.open), color: directionColor.value },
|
|
19
|
+
{ name: "High", value: fmt(r.high), color: props.upColor },
|
|
20
|
+
{ name: "Low", value: fmt(r.low), color: props.downColor },
|
|
21
|
+
{ name: "Close", value: fmt(r.close), color: directionColor.value },
|
|
22
|
+
...r.volume != null && !Number.isNaN(r.volume) ? [{ name: "Volume", value: r.volume.toLocaleString(), color: "var(--vc-tooltip-muted, oklch(0.556 0 0))" }] : []
|
|
23
|
+
];
|
|
24
|
+
});
|
|
25
|
+
</script>
|
|
26
|
+
|
|
27
|
+
<template>
|
|
28
|
+
<div class="vc-tooltip">
|
|
29
|
+
<p class="vc-tooltip__label">{{ row.label }}</p>
|
|
30
|
+
<ul class="vc-tooltip__list">
|
|
31
|
+
<li v-for="item in rows" :key="item.name" class="vc-tooltip__item">
|
|
32
|
+
<span class="vc-tooltip__dot" :style="{ background: item.color }" />
|
|
33
|
+
<span class="vc-tooltip__name">{{ item.name }}</span>
|
|
34
|
+
<span class="vc-tooltip__value">{{ item.value }}</span>
|
|
35
|
+
</li>
|
|
36
|
+
</ul>
|
|
37
|
+
</div>
|
|
38
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface Row {
|
|
2
|
+
label: string | number;
|
|
3
|
+
open: number;
|
|
4
|
+
high: number;
|
|
5
|
+
low: number;
|
|
6
|
+
close: number;
|
|
7
|
+
volume?: number;
|
|
8
|
+
}
|
|
9
|
+
type __VLS_Props = {
|
|
10
|
+
row: Row;
|
|
11
|
+
upColor: string;
|
|
12
|
+
downColor: string;
|
|
13
|
+
valueFormatter?: (value: number) => string;
|
|
14
|
+
};
|
|
15
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: typeof __VLS_export;
|
|
17
|
+
export default _default;
|