velo-data-vue-render 0.0.1
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 +21 -0
- package/README.md +375 -0
- package/dist/components/RendererItem.vue.d.ts +12 -0
- package/dist/components/VeloRenderer.vue.d.ts +39 -0
- package/dist/components/charts/CalendarChart.vue.d.ts +9 -0
- package/dist/components/charts/CityMapChart.vue.d.ts +9 -0
- package/dist/components/charts/DoubleBarChart.vue.d.ts +9 -0
- package/dist/components/charts/DoubleLineChart.vue.d.ts +9 -0
- package/dist/components/charts/FunnelChart.vue.d.ts +9 -0
- package/dist/components/charts/GaugeChart.vue.d.ts +9 -0
- package/dist/components/charts/HalfPieChart.vue.d.ts +9 -0
- package/dist/components/charts/HorizontalBarChart.vue.d.ts +9 -0
- package/dist/components/charts/MapChart.vue.d.ts +9 -0
- package/dist/components/charts/PieChart.vue.d.ts +9 -0
- package/dist/components/charts/RadarChart.vue.d.ts +9 -0
- package/dist/components/charts/SankeyChart.vue.d.ts +9 -0
- package/dist/components/charts/ScatterChart.vue.d.ts +9 -0
- package/dist/components/charts/SingleBarChart.vue.d.ts +9 -0
- package/dist/components/charts/SingleLineChart.vue.d.ts +9 -0
- package/dist/components/charts/TreeChart.vue.d.ts +9 -0
- package/dist/components/charts/WordCloudChart.vue.d.ts +9 -0
- package/dist/components/decorations/BorderBox1.vue.d.ts +21 -0
- package/dist/components/decorations/BorderBox2.vue.d.ts +21 -0
- package/dist/components/decorations/BorderBox3.vue.d.ts +21 -0
- package/dist/components/decorations/BorderBox4.vue.d.ts +21 -0
- package/dist/components/decorations/BorderBox5.vue.d.ts +21 -0
- package/dist/components/decorations/CustomImageBorder.vue.d.ts +21 -0
- package/dist/components/decorations/Decoration1.vue.d.ts +21 -0
- package/dist/components/decorations/Decoration2.vue.d.ts +6 -0
- package/dist/components/decorations/FlipCountdown.vue.d.ts +6 -0
- package/dist/components/decorations/FullscreenButton.vue.d.ts +6 -0
- package/dist/components/decorations/FuturisticTitle.vue.d.ts +6 -0
- package/dist/components/decorations/GradientText.vue.d.ts +21 -0
- package/dist/components/layouts/LayoutCell.vue.d.ts +8 -0
- package/dist/components/layouts/LayoutHeader.vue.d.ts +8 -0
- package/dist/components/layouts/LayoutSidebar.vue.d.ts +8 -0
- package/dist/components/layouts/LayoutThreeColumn.vue.d.ts +8 -0
- package/dist/components/layouts/LayoutTwoColumn.vue.d.ts +8 -0
- package/dist/components/ui/Avatar.vue.d.ts +6 -0
- package/dist/components/ui/Badge.vue.d.ts +6 -0
- package/dist/components/ui/Button.vue.d.ts +10 -0
- package/dist/components/ui/Card.vue.d.ts +21 -0
- package/dist/components/ui/Carousel.vue.d.ts +6 -0
- package/dist/components/ui/CarouselList.vue.d.ts +6 -0
- package/dist/components/ui/Container.vue.d.ts +21 -0
- package/dist/components/ui/Icon.vue.d.ts +6 -0
- package/dist/components/ui/Image.vue.d.ts +6 -0
- package/dist/components/ui/Input.vue.d.ts +12 -0
- package/dist/components/ui/Progress.vue.d.ts +6 -0
- package/dist/components/ui/ScrollRankList.vue.d.ts +6 -0
- package/dist/components/ui/Select.vue.d.ts +10 -0
- package/dist/components/ui/Switch.vue.d.ts +10 -0
- package/dist/components/ui/Table.vue.d.ts +6 -0
- package/dist/components/ui/Tag.vue.d.ts +10 -0
- package/dist/components/ui/Text.vue.d.ts +6 -0
- package/dist/config/constants.d.ts +16 -0
- package/dist/index.d.ts +5 -0
- package/dist/types/index.d.ts +704 -0
- package/dist/utils/chartOptions.d.ts +21 -0
- package/dist/utils/chartOptionsHelper.d.ts +13 -0
- package/dist/utils/dataSource.d.ts +59 -0
- package/dist/utils/mapData.d.ts +54 -0
- package/dist/velo-data-vue-render.css +1 -0
- package/dist/velo-data-vue-render.es.js +105844 -0
- package/dist/velo-data-vue-render.es.js.map +1 -0
- package/dist/velo-data-vue-render.umd.js +407 -0
- package/dist/velo-data-vue-render.umd.js.map +1 -0
- package/package.json +74 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ComponentItem } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 获取图表配置
|
|
4
|
+
* @param type 图表类型
|
|
5
|
+
* @param props 组件属性
|
|
6
|
+
* @param themeColors 主题颜色数组(可选)
|
|
7
|
+
* @returns ECharts 配置对象
|
|
8
|
+
*/
|
|
9
|
+
export declare function getChartOption(type: string, props: ComponentItem['props'], themeColors?: string[]): Record<string, any>;
|
|
10
|
+
/**
|
|
11
|
+
* 获取日历热力图配置
|
|
12
|
+
*/
|
|
13
|
+
export declare function getCalendarOption(props: ComponentItem['props']): Record<string, any>;
|
|
14
|
+
/**
|
|
15
|
+
* 创建图表配置的缓存 key
|
|
16
|
+
*/
|
|
17
|
+
export declare function createChartOptionKey(type: string, props: ComponentItem['props']): string;
|
|
18
|
+
/**
|
|
19
|
+
* 获取缓存的图表配置
|
|
20
|
+
*/
|
|
21
|
+
export declare function getCachedChartOption(type: string, props: ComponentItem['props'], themeColors?: string[]): Record<string, any>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentItem, CanvasConfig } from '../types';
|
|
2
|
+
export declare function buildSingleLineChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
3
|
+
export declare function buildDoubleLineChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
4
|
+
export declare function buildSingleBarChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
5
|
+
export declare function buildDoubleBarChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
6
|
+
export declare function buildHorizontalBarChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
7
|
+
export declare function buildPieChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
8
|
+
export declare function buildHalfPieChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
9
|
+
export declare function buildGaugeChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
10
|
+
export declare function buildRadarChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
11
|
+
export declare function buildScatterChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
12
|
+
export declare function buildFunnelChartOption(props: ComponentItem['props'], chartTheme?: CanvasConfig['chartTheme']): Record<string, any>;
|
|
13
|
+
export { getChartOption, getCalendarOption, createChartOptionKey, getCachedChartOption } from './chartOptions';
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { DataSourceConfig } from '../types';
|
|
2
|
+
export interface ApiResponse<T = any> {
|
|
3
|
+
code: number;
|
|
4
|
+
data: T;
|
|
5
|
+
message?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function fetchChartData(dataSource: DataSourceConfig): Promise<any>;
|
|
8
|
+
declare class DataRefreshManager {
|
|
9
|
+
private timers;
|
|
10
|
+
setAutoRefresh(componentId: string, dataSource: DataSourceConfig, callback: (data: any) => void): void;
|
|
11
|
+
clearAutoRefresh(componentId: string): void;
|
|
12
|
+
clearAll(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const dataRefreshManager: DataRefreshManager;
|
|
15
|
+
export declare const API_RESPONSE_EXAMPLES: {
|
|
16
|
+
chartData: {
|
|
17
|
+
code: number;
|
|
18
|
+
data: {
|
|
19
|
+
xAxisData: string[];
|
|
20
|
+
seriesData: {
|
|
21
|
+
name: string;
|
|
22
|
+
data: number[];
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
25
|
+
message: string;
|
|
26
|
+
};
|
|
27
|
+
pieData: {
|
|
28
|
+
code: number;
|
|
29
|
+
data: {
|
|
30
|
+
name: string;
|
|
31
|
+
value: number;
|
|
32
|
+
}[];
|
|
33
|
+
message: string;
|
|
34
|
+
};
|
|
35
|
+
mapData: {
|
|
36
|
+
code: number;
|
|
37
|
+
data: {
|
|
38
|
+
name: string;
|
|
39
|
+
value: number;
|
|
40
|
+
}[];
|
|
41
|
+
message: string;
|
|
42
|
+
};
|
|
43
|
+
nestedData: {
|
|
44
|
+
code: number;
|
|
45
|
+
data: {
|
|
46
|
+
result: {
|
|
47
|
+
chartInfo: {
|
|
48
|
+
xAxisData: string[];
|
|
49
|
+
seriesData: {
|
|
50
|
+
name: string;
|
|
51
|
+
data: number[];
|
|
52
|
+
}[];
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
message: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface MapRegionConfig {
|
|
2
|
+
name: string;
|
|
3
|
+
label: string;
|
|
4
|
+
level: 'country' | 'province' | 'city' | 'district';
|
|
5
|
+
parent?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const mapRegions: MapRegionConfig[];
|
|
8
|
+
export declare const cityMapData: Record<string, Array<{
|
|
9
|
+
name: string;
|
|
10
|
+
value: number;
|
|
11
|
+
}>>;
|
|
12
|
+
export declare const districtMapData: Record<string, Array<{
|
|
13
|
+
name: string;
|
|
14
|
+
value: number;
|
|
15
|
+
}>>;
|
|
16
|
+
export declare function getMapJsonPath(name: string): string;
|
|
17
|
+
export declare function getMapRegionByName(name: string): MapRegionConfig | undefined;
|
|
18
|
+
export declare function getMapRegionOptions(): {
|
|
19
|
+
value: string;
|
|
20
|
+
label: string;
|
|
21
|
+
}[];
|
|
22
|
+
export declare function getMapRegionOptionsByLevel(level: 'country' | 'province' | 'city' | 'district'): {
|
|
23
|
+
value: string;
|
|
24
|
+
label: string;
|
|
25
|
+
}[];
|
|
26
|
+
export declare function getCityDataByProvince(provinceName: string): Array<{
|
|
27
|
+
name: string;
|
|
28
|
+
value: number;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function getDistrictDataByCity(cityName: string): Array<{
|
|
31
|
+
name: string;
|
|
32
|
+
value: number;
|
|
33
|
+
}>;
|
|
34
|
+
export declare function hasCityData(provinceName: string): boolean;
|
|
35
|
+
export declare function hasDistrictData(cityName: string): boolean;
|
|
36
|
+
export declare function getProvincesWithCityData(): MapRegionConfig[];
|
|
37
|
+
export declare function getCitiesWithDistrictData(): MapRegionConfig[];
|
|
38
|
+
export declare function getChildRegionOptions(parentName: string): Array<{
|
|
39
|
+
value: string;
|
|
40
|
+
label: string;
|
|
41
|
+
}>;
|
|
42
|
+
export declare function getCityOptionsByProvince(provinceName: string): Array<{
|
|
43
|
+
value: string;
|
|
44
|
+
label: string;
|
|
45
|
+
}>;
|
|
46
|
+
export declare function getCityMapCascaderOptions(): Array<{
|
|
47
|
+
value: string;
|
|
48
|
+
label: string;
|
|
49
|
+
children: Array<{
|
|
50
|
+
value: string;
|
|
51
|
+
label: string;
|
|
52
|
+
}>;
|
|
53
|
+
}>;
|
|
54
|
+
export declare function getCityMapCascaderPath(cityName: string): [string, string] | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.text-component[data-v-33c08b6c]{word-wrap:break-word;word-break:break-word}.velo-button[data-v-e1110aa0]{font-family:inherit;transition:all .3s ease}.velo-button[data-v-e1110aa0]:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 12px #409eff66}[data-v-e1110aa0] .ant-btn-primary{background:linear-gradient(135deg,#409eff,#66b1ff);border:none;box-shadow:0 2px 8px #409eff4d}[data-v-e1110aa0] .ant-btn-primary:hover{background:linear-gradient(135deg,#66b1ff,#409eff)}.velo-input[data-v-236156a1]{font-family:inherit}[data-v-236156a1] .ant-input{background:#0a0e2799;border:1px solid rgba(64,158,255,.3);color:#fff;transition:all .3s ease}[data-v-236156a1] .ant-input:hover{border-color:#409eff99}[data-v-236156a1] .ant-input:focus{border-color:#409eff;box-shadow:0 0 8px #409eff66;background:#0a0e27cc}[data-v-236156a1] .ant-input::placeholder{color:#fff6}[data-v-236156a1] .ant-input-clear-icon{color:#ffffff80}.velo-select[data-v-50459410]{font-family:inherit;width:100%}[data-v-50459410] .ant-select-selector{background:#0a0e2799!important;border:1px solid rgba(64,158,255,.3)!important;color:#fff;transition:all .3s ease}[data-v-50459410] .ant-select-selector:hover{border-color:#409eff99!important}[data-v-50459410] .ant-select-focused .ant-select-selector{border-color:#409eff!important;box-shadow:0 0 8px #409eff66!important}[data-v-50459410] .ant-select-selection-placeholder{color:#fff6}[data-v-50459410] .ant-select-selection-item{color:#fff}[data-v-50459410] .ant-select-arrow{color:#ffffff80}[data-v-50459410] .ant-select-clear{background:transparent;color:#ffffff80}.velo-switch[data-v-c5866fbb]{font-family:inherit}[data-v-c5866fbb] .ant-switch{background:#fff3}[data-v-c5866fbb] .ant-switch-checked{background:linear-gradient(135deg,#409eff,#66b1ff)}[data-v-c5866fbb] .ant-switch:hover:not(.ant-switch-disabled){box-shadow:0 0 8px #409eff66}[data-v-c5866fbb] .ant-switch-inner{color:#fff;font-size:12px}.velo-progress[data-v-83aac983]{font-family:inherit}[data-v-83aac983] .ant-progress-text{color:#fff;font-weight:500}[data-v-83aac983] .ant-progress-bg{background:linear-gradient(90deg,#409eff,#66b1ff);box-shadow:0 0 8px #409eff66}[data-v-83aac983] .ant-progress-inner{background:#0a0e2799;border:1px solid rgba(64,158,255,.2)}[data-v-83aac983] .ant-progress-circle-trail{stroke:#0a0e2799}[data-v-83aac983] .ant-progress-circle-path{filter:drop-shadow(0 0 6px rgba(64,158,255,.6))}.velo-tag[data-v-ab03f45b]{font-family:inherit}[data-v-ab03f45b] .ant-tag{border-color:#409eff80;background:#409eff1a;color:#409eff}.velo-badge[data-v-11faddb4]{font-family:inherit}.badge-content[data-v-11faddb4]{padding:4px 12px;background:#0a0e2799;border:1px solid rgba(64,158,255,.3);border-radius:4px;color:#fff}[data-v-11faddb4] .ant-badge-count{background:linear-gradient(135deg,#f56c6c,#ff85c0);box-shadow:0 0 8px #f56c6c99}.velo-avatar[data-v-99df662e]{font-family:inherit}[data-v-99df662e] .ant-avatar{background:linear-gradient(135deg,#409eff,#66b1ff);border:2px solid rgba(64,158,255,.5);box-shadow:0 0 12px #409eff66;color:#fff}.velo-card[data-v-5971380e]{font-family:inherit}[data-v-5971380e] .ant-card{background:#0a0e2799;border:1px solid rgba(64,158,255,.3);box-shadow:0 2px 8px #0000004d}[data-v-5971380e] .ant-card-head{color:#fff;border-bottom:1px solid rgba(64,158,255,.3);background:#409eff1a}[data-v-5971380e] .ant-card-head-title{color:#fff}[data-v-5971380e] .ant-card-body{color:#ffffffd9}[data-v-5971380e] .ant-card-hoverable:hover{border-color:#409eff;box-shadow:0 4px 16px #409eff66;transform:translateY(-2px)}[data-v-21335306] .ant-table{background:transparent;color:#fff}[data-v-21335306] .ant-table-thead>tr>th{background:#409eff26;color:#409eff;border-bottom:2px solid rgba(64,158,255,.4)}[data-v-21335306] .ant-table-tbody>tr>td{border-bottom:1px solid rgba(64,158,255,.2);color:#ffffffd9}[data-v-21335306] .ant-table-tbody>tr:hover>td{background:#409eff14}.scroll-rank-list[data-v-88115503]{width:100%;padding:10px}.rank-item[data-v-88115503]{display:flex;align-items:center;margin-bottom:12px;transition:all .3s ease}.rank-index[data-v-88115503]{width:30px;height:30px;line-height:30px;text-align:center;border-radius:4px;background:#409eff33;color:#409eff;font-weight:700;margin-right:12px}.rank-1[data-v-88115503]{background:linear-gradient(135deg,gold,orange);color:#fff}.rank-2[data-v-88115503]{background:linear-gradient(135deg,silver,gray);color:#fff}.rank-3[data-v-88115503]{background:linear-gradient(135deg,#cd7f32,#8b4513);color:#fff}.rank-name[data-v-88115503]{flex:1;color:#fff;margin-right:12px}.rank-bar[data-v-88115503]{flex:2;height:20px;background:#0a0e2799;border-radius:10px;overflow:hidden;margin-right:12px}.bar-fill[data-v-88115503]{height:100%;background:linear-gradient(90deg,#409eff,#66b1ff);transition:width .5s ease;box-shadow:0 0 8px #409eff99}.rank-value[data-v-88115503]{width:80px;text-align:right;color:#409eff;font-weight:700}.velo-carousel[data-v-66f4d71b]{width:100%;height:100%}.carousel-item[data-v-66f4d71b]{padding:20px;background:#0a0e2799;border:1px solid rgba(64,158,255,.3);border-radius:8px;color:#fff;min-height:200px;display:flex;align-items:center;justify-content:center}[data-v-66f4d71b] .slick-dots li button{background:#409eff66}[data-v-66f4d71b] .slick-dots li.slick-active button{background:#409eff}.velo-image[data-v-f654d3f6],.velo-image-inner[data-v-f654d3f6]{width:100%;height:100%}[data-v-f654d3f6] .ant-image{width:100%;height:100%;display:block}[data-v-f654d3f6] .ant-image-img{display:block}.velo-carousel[data-v-f57b590a],[data-v-f57b590a] .ant-carousel{width:100%;height:100%}[data-v-f57b590a] .slick-slider,[data-v-f57b590a] .slick-list,[data-v-f57b590a] .slick-track{height:100%}.carousel-item[data-v-f57b590a]{width:100%;height:100%;display:flex!important;align-items:center;justify-content:center;overflow:hidden}.carousel-image[data-v-f57b590a]{width:100%;height:100%;object-fit:cover;display:block}.carousel-placeholder[data-v-f57b590a]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff0d;color:#ffffff80;font-size:16px}.carousel-arrow[data-v-f57b590a]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#0006;border-radius:50%;color:#fff;font-size:20px;cursor:pointer;transition:all .3s;z-index:10}.carousel-arrow[data-v-f57b590a]:hover{background:#000000b3}.carousel-arrow-prev[data-v-f57b590a]{left:20px}.carousel-arrow-next[data-v-f57b590a]{right:20px}[data-v-f57b590a] .slick-dots{bottom:20px}[data-v-f57b590a] .slick-dots li button{background:#ffffff80;border-radius:50%}[data-v-f57b590a] .slick-dots li.slick-active button{background:#fff}.velo-icon[data-v-54bc5d61]{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.velo-container[data-v-95290e5c]{width:100%;height:100%}.container-placeholder[data-v-95290e5c]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#ffffff80;font-size:14px;border:1px dashed rgba(255,255,255,.3)}.single-line-chart[data-v-1ad69169],.double-line-chart[data-v-59aedbd3],.single-bar-chart[data-v-daa98962],.double-bar-chart[data-v-772a07ae],.horizontal-bar-chart[data-v-24edb756],.pie-chart[data-v-275d0e28],.half-pie-chart[data-v-a144951d],.gauge-chart[data-v-fa5d42a6],.radar-chart[data-v-113b17f8],.scatter-chart[data-v-c26855bc],.funnel-chart[data-v-1a764e09],.word-cloud-chart[data-v-a67580be],.calendar-chart[data-v-52743e57],.map-chart[data-v-15d593cb]{width:100%;height:100%}.city-map-chart[data-v-1fa8658f]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border:1px dashed rgba(255,255,255,.2);color:#fff9}.city-map-chart[data-v-1fa8658f]:before{content:"CityMap (需要动态GeoJSON数据)"}.tree-chart[data-v-666305de],.sankey-chart[data-v-d9101094]{width:100%;height:100%}.border-box-1[data-v-01c68817]{position:relative;width:100%;height:100%}.border-box-svg[data-v-01c68817]{position:absolute;top:0;left:0;width:100%;height:100%}.corner[data-v-01c68817]{fill:none;stroke:#00d4ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:glow-01c68817 2s ease-in-out infinite}.deco-line[data-v-01c68817]{stroke:#00d4ff4d;stroke-width:1;stroke-dasharray:5,5;animation:dash-01c68817 20s linear infinite}.border-box-content[data-v-01c68817]{position:relative;width:100%;height:100%;padding:10px;box-sizing:border-box}@keyframes glow-01c68817{0%,to{opacity:1;filter:drop-shadow(0 0 5px #00d4ff)}50%{opacity:.7;filter:drop-shadow(0 0 10px #00d4ff)}}@keyframes dash-01c68817{to{stroke-dashoffset:-100}}.border-box-2[data-v-fedd6357]{position:relative;width:100%;height:100%}.content[data-v-fedd6357]{width:100%;height:100%;padding:20px}.corner[data-v-fedd6357]{position:absolute;width:20px;height:20px;border-color:inherit}.corner.top-left[data-v-fedd6357]{top:0;left:0;border-top:2px solid;border-left:2px solid}.corner.top-right[data-v-fedd6357]{top:0;right:0;border-top:2px solid;border-right:2px solid}.corner.bottom-left[data-v-fedd6357]{bottom:0;left:0;border-bottom:2px solid;border-left:2px solid}.corner.bottom-right[data-v-fedd6357]{bottom:0;right:0;border-bottom:2px solid;border-right:2px solid}.border-box-3[data-v-b8a811e2]{position:relative;width:100%;height:100%}.border-svg[data-v-b8a811e2]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.animated-border[data-v-b8a811e2]{fill:none;stroke:#409eff;stroke-width:2;stroke-dasharray:10,5;animation:dash-b8a811e2 20s linear infinite}@keyframes dash-b8a811e2{to{stroke-dashoffset:-1000}}.content[data-v-b8a811e2]{width:100%;height:100%;padding:20px}.border-box-4[data-v-62819480]{position:relative;width:100%;height:100%;border-radius:4px}.content[data-v-62819480]{width:100%;height:100%;padding:20px}.border-box-5[data-v-5d00a299]{position:relative;width:100%;height:100%;overflow:hidden}.border-line[data-v-5d00a299]{position:absolute;background:linear-gradient(90deg,transparent,#409eff,transparent)}.border-line.top[data-v-5d00a299],.border-line.bottom[data-v-5d00a299]{width:100%;height:2px;left:-100%;animation:scan-horizontal-5d00a299 3s linear infinite}.border-line.top[data-v-5d00a299]{top:0}.border-line.bottom[data-v-5d00a299]{bottom:0;animation-delay:1.5s}.border-line.left[data-v-5d00a299],.border-line.right[data-v-5d00a299]{width:2px;height:100%;top:-100%;background:linear-gradient(180deg,transparent,#409eff,transparent);animation:scan-vertical-5d00a299 3s linear infinite}.border-line.left[data-v-5d00a299]{left:0;animation-delay:.75s}.border-line.right[data-v-5d00a299]{right:0;animation-delay:2.25s}@keyframes scan-horizontal-5d00a299{0%{left:-100%}to{left:100%}}@keyframes scan-vertical-5d00a299{0%{top:-100%}to{top:100%}}.content[data-v-5d00a299]{width:100%;height:100%;padding:20px;border:1px solid rgba(64,158,255,.3)}.decoration-1[data-v-9d156eff]{display:flex;align-items:center;justify-content:center;width:100%;padding:10px 0}.line[data-v-9d156eff]{flex:1;height:2px;background:linear-gradient(90deg,transparent,#409eff,transparent);position:relative}.line.left[data-v-9d156eff]{background:linear-gradient(90deg,transparent,#409eff)}.line.right[data-v-9d156eff]{background:linear-gradient(90deg,#409eff,transparent)}.line[data-v-9d156eff]:before,.line[data-v-9d156eff]:after{content:"";position:absolute;width:8px;height:8px;background:#409eff;border-radius:50%;box-shadow:0 0 6px #409eff}.line.left[data-v-9d156eff]:after{right:0;top:-3px}.line.right[data-v-9d156eff]:before{left:0;top:-3px}.center-content[data-v-9d156eff]{padding:0 20px;color:#409eff;font-size:18px;font-weight:700;white-space:nowrap}.decoration-2[data-v-8061c4a2]{width:100%;height:2px;margin:10px 0}.fullscreen-button[data-v-bc81fc36]{position:fixed;z-index:9999;width:40px;height:40px;background:#409eff33;border:1px solid #409eff;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.fullscreen-button[data-v-bc81fc36]:hover{background:#409eff66;box-shadow:0 0 12px #409eff99;transform:scale(1.1)}.button-icon[data-v-bc81fc36]{color:#409eff;display:flex;align-items:center;justify-content:center}.top-left[data-v-bc81fc36]{top:20px;left:20px}.top-right[data-v-bc81fc36]{top:20px;right:20px}.bottom-left[data-v-bc81fc36]{bottom:20px;left:20px}.bottom-right[data-v-bc81fc36]{bottom:20px;right:20px}.center[data-v-bc81fc36]{top:50%;left:50%;transform:translate(-50%,-50%)}.center[data-v-bc81fc36]:hover{transform:translate(-50%,-50%) scale(1.1)}.gradient-text[data-v-2e3855cd]{background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 10px rgba(64,158,255,.6));display:inline-block}.futuristic-title[data-v-74e360a4]{display:flex;align-items:center;justify-content:center;gap:20px;padding:20px 0}.title-decoration[data-v-74e360a4]{display:flex;align-items:center;gap:10px}.deco-line[data-v-74e360a4]{width:60px;height:2px;background:linear-gradient(90deg,transparent,#409eff,transparent);position:relative}.deco-line[data-v-74e360a4]:before{content:"";position:absolute;width:100%;height:100%;background:linear-gradient(90deg,transparent,#409eff,transparent);animation:pulse-74e360a4 2s ease-in-out infinite}.deco-dots[data-v-74e360a4]{display:flex;gap:4px}.deco-dots span[data-v-74e360a4]{width:6px;height:6px;background:#409eff;border-radius:50%;display:block;box-shadow:0 0 6px #409eff;animation:blink-74e360a4 1.5s ease-in-out infinite}.deco-dots span[data-v-74e360a4]:nth-child(2){animation-delay:.3s}.deco-dots span[data-v-74e360a4]:nth-child(3){animation-delay:.6s}.title-content[data-v-74e360a4]{text-align:center}.title-text[data-v-74e360a4]{font-size:28px;font-weight:700;background:linear-gradient(135deg,#409eff,#66b1ff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 8px rgba(64,158,255,.5));letter-spacing:2px}.title-subtitle[data-v-74e360a4]{font-size:14px;color:#409effb3;margin-top:5px;letter-spacing:1px}@keyframes pulse-74e360a4{0%,to{opacity:.5}50%{opacity:1}}@keyframes blink-74e360a4{0%,to{opacity:.3}50%{opacity:1}}.flip-countdown[data-v-f255704c]{display:flex;gap:8px;align-items:center;justify-content:center}.countdown-item[data-v-f255704c]{display:flex;flex-direction:column;align-items:center;gap:5px}.digit-card[data-v-f255704c]{position:relative;width:50px;height:70px;background:#0a0e27cc;border:1px solid #409eff;border-radius:4px;box-shadow:0 0 10px #409eff4d;overflow:hidden}.digit-top[data-v-f255704c],.digit-bottom[data-v-f255704c]{position:absolute;width:100%;height:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;color:#409eff;background:linear-gradient(180deg,#409eff1a,#409eff0d)}.digit-top[data-v-f255704c]{top:0;border-bottom:1px solid rgba(64,158,255,.2)}.digit-bottom[data-v-f255704c]{bottom:0;align-items:flex-start;padding-top:5px}.digit-label[data-v-f255704c]{font-size:12px;color:#409eff}.custom-image-border[data-v-bdeff003]{position:relative;width:100%;height:100%}.content[data-v-bdeff003]{width:100%;height:100%;padding:10px}.layout-two-column[data-v-9251eebe]{box-sizing:border-box}.column[data-v-9251eebe]{overflow:auto;position:relative;min-width:0}.layout-three-column[data-v-a7c59f7d]{box-sizing:border-box}.column[data-v-a7c59f7d]{overflow:auto;position:relative}.column.left[data-v-a7c59f7d],.column.right[data-v-a7c59f7d]{flex:none}.column.center[data-v-a7c59f7d]{flex:1}.layout-header[data-v-022880c5]{box-sizing:border-box}.header[data-v-022880c5],.content[data-v-022880c5]{overflow:auto;position:relative}.content[data-v-022880c5]{flex:1}.layout-sidebar[data-v-5a0391ad]{box-sizing:border-box}.sidebar[data-v-5a0391ad],.main[data-v-5a0391ad]{overflow:auto;position:relative}.main[data-v-5a0391ad]{flex:1}.layout-cell[data-v-2b9f637f]{overflow:auto}.renderer-item[data-v-9cc72ed8]{box-sizing:border-box}.component-placeholder[data-v-9cc72ed8]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px dashed rgba(255,255,255,.3);color:#fff9;font-size:14px}.velo-renderer-container[data-v-a9ea3e65]{width:100vw;height:100vh;overflow:hidden}.velo-renderer-canvas[data-v-a9ea3e65]{position:relative}*{margin:0;padding:0;box-sizing:border-box}.velo-renderer-container{width:100vw;height:100vh;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.velo-renderer-canvas{position:relative;transition:transform .3s ease}.renderer-item{box-sizing:border-box}
|