feat: 渲染器支持 echart 渲染

This commit is contained in:
wangxuefeng 2025-03-19 14:45:09 +08:00
parent 9b39f265d3
commit a4c5f633cf
17 changed files with 786 additions and 176 deletions

View File

@ -15,17 +15,17 @@
"typecheck": "vue-tsc --noEmit --skipLibCheck" "typecheck": "vue-tsc --noEmit --skipLibCheck"
}, },
"dependencies": { "dependencies": {
"@vtj/core": "^0.11.1", "@vtj/core": "^0.11.2",
"@vtj/designer": "0.11.1", "@vtj/designer": "0.11.2",
"@vtj/icons": "0.11.1", "@vtj/icons": "0.11.2",
"@vtj/local": "^0.11.1", "@vtj/local": "^0.11.2",
"@vtj/materials": "^0.11.1", "@vtj/materials": "^0.11.2",
"@vtj/node": "0.11.1", "@vtj/node": "0.11.1",
"@vtj/pro": "^0.11.1", "@vtj/pro": "^0.11.2",
"@vtj/renderer": "^0.11.1", "@vtj/renderer": "^0.11.2",
"@vtj/ui": "^0.11.1", "@vtj/ui": "^0.11.2",
"@vtj/utils": "0.11.1", "@vtj/utils": "0.11.2",
"@vtj/web": "^0.11.1", "@vtj/web": "^0.11.2",
"axios": "^1.8.1", "axios": "^1.8.1",
"element-plus": "^2.9.4", "element-plus": "^2.9.4",
"licia-es": "^1.46.0", "licia-es": "^1.46.0",

File diff suppressed because one or more lines are too long

View File

@ -16,8 +16,6 @@ const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue');
async function generateAccess(options: GenerateMenuAndRoutesOptions) { async function generateAccess(options: GenerateMenuAndRoutesOptions) {
const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue'); const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue');
console.log('pageMap', pageMap);
const layoutMap: ComponentRecordType = { const layoutMap: ComponentRecordType = {
BasicLayout, BasicLayout,
IFrameView, IFrameView,

View File

@ -95,7 +95,6 @@ function setupAccessGuard(router: Router) {
// 当前登录用户拥有的角色标识列表 // 当前登录用户拥有的角色标识列表
// const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); // const userInfo = userStore.userInfo || (await authStore.fetchUserInfo());
const userInfo = userStore.userInfo; const userInfo = userStore.userInfo;
console.log('userInfo', userInfo);
const userRoles = userInfo?.roles ?? []; const userRoles = userInfo?.roles ?? [];
// 生成菜单和路由 // 生成菜单和路由
const { accessibleMenus, accessibleRoutes } = await generateAccess({ const { accessibleMenus, accessibleRoutes } = await generateAccess({

View File

@ -20,6 +20,7 @@ const routes: Array<RouteRecordRaw> = [
path: 'list', path: 'list',
name: `${moduleName}-list`, name: `${moduleName}-list`,
meta: { meta: {
hideInMenu: true,
title: '权限列表', title: '权限列表',
keepAlive: true, keepAlive: true,
icon: 'ant-design:list', icon: 'ant-design:list',
@ -30,6 +31,7 @@ const routes: Array<RouteRecordRaw> = [
accessToken: localStorage.getItem('y-code-access-token'), accessToken: localStorage.getItem('y-code-access-token'),
fileId: '1hsd0407hf', fileId: '1hsd0407hf',
projectId: '4', projectId: '4',
degrade: false,
}, },
}, },
{ {
@ -37,7 +39,7 @@ const routes: Array<RouteRecordRaw> = [
name: `${moduleName}-user`, name: `${moduleName}-user`,
meta: { meta: {
title: '用户列表', title: '用户列表',
keepAlive: false, keepAlive: true,
icon: 'ant-design:list', icon: 'ant-design:list',
}, },
component: WujieVueRendererAdapter, component: WujieVueRendererAdapter,
@ -46,6 +48,7 @@ const routes: Array<RouteRecordRaw> = [
accessToken: localStorage.getItem('y-code-access-token'), accessToken: localStorage.getItem('y-code-access-token'),
fileId: '7pfu5radx', fileId: '7pfu5radx',
projectId: '4', projectId: '4',
degrade: false,
}, },
}, },
], ],

View File

@ -34,8 +34,8 @@ const routes: Array<RouteRecordRaw> = [
projectId: '4', projectId: '4',
getRouter: () => router, getRouter: () => router,
route, route,
degrade: false,
height: '100%', height: '100%',
// degrade: true,
}; };
}, },
}, },

View File

@ -1,8 +1,9 @@
import type { RouteRecordRaw } from 'vue-router'; import type { RouteRecordRaw } from 'vue-router';
import RendererAdapter from '@sy/vue3-renderer-adapter'; import RendererAdapter from '@sy/vue3-renderer-adapter';
import WujieVueRendererAdapter from '@sy/wujie-vue3-renderer-adapter';
import { VITE_DESIGNER_URL, VITE_V1_URL } from '#/constants'; import { VITE_DESIGNER_URL, VITE_RENDERER_URL, VITE_V1_URL } from '#/constants';
const moduleName = 'micro'; const moduleName = 'micro';
@ -55,6 +56,23 @@ const routes: RouteRecordRaw[] = [
accessToken: localStorage.getItem('y-code-access-token'), accessToken: localStorage.getItem('y-code-access-token'),
}, },
}, },
{
path: 'test',
name: `Test`,
meta: {
keepAlive: false,
title: '测试',
icon: 'ant-design:delete-outlined',
},
component: WujieVueRendererAdapter,
props: {
url: `${VITE_RENDERER_URL}`,
fileId: '45ud9h6n3',
projectId: 4,
degrade: false,
name: '45ud9h6n3',
},
},
], ],
}, },
]; ];

View File

@ -43,14 +43,13 @@ const routes: Array<RouteRecordRaw> = [
path: 'DSLFileList', path: 'DSLFileList',
name: `${moduleName}-DSL-file-list`, name: `${moduleName}-DSL-file-list`,
meta: { meta: {
hideInMenu: true,
title: 'dsl 文件列表', title: 'dsl 文件列表',
keepAlive: false, keepAlive: false,
icon: 'ant-design:file', icon: 'ant-design:file',
}, },
component: WujieVueRendererAdapter, component: WujieVueRendererAdapter,
props: (route) => { props: (route) => {
console.log('route', route);
console.log('route.query', route.query);
return { return {
url: `${VITE_RENDERER_URL}`, url: `${VITE_RENDERER_URL}`,
accessToken: localStorage.getItem('y-code-access-token'), accessToken: localStorage.getItem('y-code-access-token'),

View File

@ -28,7 +28,7 @@ const routes: RouteRecordRaw[] = [
fileId: '7pfr394d6', fileId: '7pfr394d6',
projectId: 4, projectId: 4,
name: '7pfr394d6', name: '7pfr394d6',
degrade: true, degrade: false,
getRouter: () => router, getRouter: () => router,
}, },
}, },

View File

@ -17,14 +17,15 @@
"@sentry/vue": "^9.5.0", "@sentry/vue": "^9.5.0",
"@sy/web-vitals": "workspace:*", "@sy/web-vitals": "workspace:*",
"@tanstack/vue-query": "^5.66.9", "@tanstack/vue-query": "^5.66.9",
"@vtj/core": "^0.11.1", "@vtj/charts": "^0.11.2",
"@vtj/icons": "0.11.1", "@vtj/core": "^0.11.2",
"@vtj/materials": "^0.11.1", "@vtj/icons": "0.11.2",
"@vtj/pro": "^0.11.1", "@vtj/materials": "^0.11.2",
"@vtj/renderer": "^0.11.1", "@vtj/pro": "^0.11.2",
"@vtj/ui": "^0.11.1", "@vtj/renderer": "^0.11.2",
"@vtj/utils": "^0.11.1", "@vtj/ui": "^0.11.2",
"@vtj/web": "^0.11.1", "@vtj/utils": "^0.11.2",
"@vtj/web": "^0.11.2",
"axios": "catalog:", "axios": "catalog:",
"core-js": "^3.40.0", "core-js": "^3.40.0",
"element-plus": "catalog:", "element-plus": "catalog:",

View File

@ -2,6 +2,7 @@ import { createApp } from 'vue';
import * as Sentry from '@sentry/vue'; import * as Sentry from '@sentry/vue';
import { VueQueryPlugin } from '@tanstack/vue-query'; import { VueQueryPlugin } from '@tanstack/vue-query';
import * as VtjCharts from '@vtj/charts';
import { IconsPlugin } from '@vtj/icons'; import { IconsPlugin } from '@vtj/icons';
import * as VtjUI from '@vtj/ui'; import * as VtjUI from '@vtj/ui';
import ElementPlus from 'element-plus'; import ElementPlus from 'element-plus';
@ -22,6 +23,9 @@ Sentry.init({
Object.entries(VtjUI).forEach(([name, component]) => { Object.entries(VtjUI).forEach(([name, component]) => {
app.component(name, component); app.component(name, component);
}); });
Object.entries(VtjCharts).forEach(([name, component]) => {
app.component(name, component);
});
app app
.use(ElementPlus) .use(ElementPlus)
.use(IconsPlugin) .use(IconsPlugin)

View File

@ -16,7 +16,6 @@ export class LowCodeService extends BaseService {
public async init(project: ProjectSchema) { public async init(project: ProjectSchema) {
// @ts-ignore 忽略错误 // @ts-ignore 忽略错误
const remoteProject = await getProject(project.id); const remoteProject = await getProject(project.id);
console.log('remoteProject', remoteProject);
const model = new ProjectModel(remoteProject); const model = new ProjectModel(remoteProject);
const dsl = model.toDsl(); const dsl = model.toDsl();
return dsl; return dsl;

View File

@ -581,7 +581,7 @@ const idMainContent = ELEMENT_ID_MAIN_CONTENT;
:padding-right="contentPaddingRight" :padding-right="contentPaddingRight"
:padding-top="contentPaddingTop" :padding-top="contentPaddingTop"
:style="contentStyle" :style="contentStyle"
class="transition-[margin-top] duration-200" class="h-[calc(100vh-7rem)] overflow-auto transition-[margin-top] duration-200"
> >
<slot name="content"></slot> <slot name="content"></slot>

View File

@ -10,8 +10,6 @@ import { RouterView } from 'vue-router';
import { preferences, usePreferences } from '@vben/preferences'; import { preferences, usePreferences } from '@vben/preferences';
import { storeToRefs, useTabbarStore } from '@vben/stores'; import { storeToRefs, useTabbarStore } from '@vben/stores';
import { IFrameRouterView } from '../../iframe';
defineOptions({ name: 'LayoutContent' }); defineOptions({ name: 'LayoutContent' });
const tabbarStore = useTabbarStore(); const tabbarStore = useTabbarStore();
@ -97,6 +95,7 @@ function transformComponent(
:include="getCachedTabs" :include="getCachedTabs"
> >
<component <component
class="h-full w-full"
:is="transformComponent(Component, route)" :is="transformComponent(Component, route)"
v-if="renderRouteView" v-if="renderRouteView"
v-show="!route.meta.iframeSrc" v-show="!route.meta.iframeSrc"
@ -104,6 +103,7 @@ function transformComponent(
/> />
</KeepAlive> </KeepAlive>
<component <component
class="h-full w-full"
:is="Component" :is="Component"
v-else-if="renderRouteView" v-else-if="renderRouteView"
:key="route.fullPath" :key="route.fullPath"

View File

@ -26,6 +26,7 @@
} }
}, },
"dependencies": { "dependencies": {
"licia-es": "catalog:",
"postmate": "catalog:", "postmate": "catalog:",
"vue": "catalog:", "vue": "catalog:",
"wujie-vue3": "1.0.22" "wujie-vue3": "1.0.22"

View File

@ -1,32 +1,37 @@
<script setup lang="ts"> <script setup lang="ts">
import type { Router, RouteRecordRaw } from 'vue-router'; import type { Router, RouteRecordRaw } from 'vue-router';
import { onBeforeUnmount, onMounted } from 'vue'; import { computed, onBeforeUnmount, onMounted } from 'vue';
import WujieVue from 'wujie-vue3'; import WujieVue from 'wujie-vue3';
import { version } from '/package.json'; import { version } from '/package.json';
const props = defineProps<{ const props = withDefaults(
[key: string]: any; defineProps<{
accessToken?: string; [key: string]: any;
applicationId: number; accessToken?: string;
degrade?: boolean; applicationId: number;
fileId: number | string; degrade?: boolean;
getRouter: () => Router; fileId: number | string;
name: string; getRouter: () => Router;
// payload name: string;
payload?: Record<string, any>; // payload
projectId: number; payload?: Record<string, any>;
route: RouteRecordRaw; projectId: number;
sync: boolean; route: RouteRecordRaw;
url: string; sync: boolean;
}>(); url: string;
}>(),
console.log('props', props); {
// wujie
degrade: true,
},
);
const { bus } = WujieVue; const { bus } = WujieVue;
const isDegrade = computed(() => props.degrade ?? true);
// //
const beforeLoad = (appWindow: Window) => { const beforeLoad = (appWindow: Window) => {
console.log(`${props.name} 开始加载`, appWindow); console.log(`${props.name} 开始加载`, appWindow);
@ -38,7 +43,7 @@ const afterMount = (appWindow: Window) => {
// //
const handleMessage = (data: any) => { const handleMessage = (data: any) => {
console.log('收到子应用消息:', data); console.log(`${props.name} 收到子应用消息:`, data);
}; };
// //
@ -51,17 +56,17 @@ const subAppProps = {
// //
const handleReady = (data: any) => { const handleReady = (data: any) => {
console.log('子应用就绪:', data); console.log(`${props.name} 子应用就绪:`, data);
// //
}; };
const handleRenderSuccess = () => { const handleRenderSuccess = () => {
console.log('子应用渲染成功'); console.log(`${props.name} 子应用渲染成功`);
// //
}; };
const handleRenderFail = (error: any) => { const handleRenderFail = (error: any) => {
console.error('子应用渲染失败:', error); console.error(`${props.name} 子应用渲染失败:`, error);
// //
}; };
@ -90,7 +95,7 @@ onBeforeUnmount(() => {
:sync="sync" :sync="sync"
width="100%" width="100%"
height="100%" height="100%"
:degrade="degrade" :degrade="isDegrade"
:props="subAppProps" :props="subAppProps"
:before-load="beforeLoad" :before-load="beforeLoad"
:after-mount="afterMount" :after-mount="afterMount"

250
pnpm-lock.yaml generated
View File

@ -626,38 +626,38 @@ importers:
apps/designer: apps/designer:
dependencies: dependencies:
'@vtj/core': '@vtj/core':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/designer': '@vtj/designer':
specifier: 0.11.1 specifier: 0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/icons': '@vtj/icons':
specifier: 0.11.1 specifier: 0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/local': '@vtj/local':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/materials': '@vtj/materials':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/node': '@vtj/node':
specifier: 0.11.1 specifier: 0.11.1
version: 0.11.1 version: 0.11.1
'@vtj/pro': '@vtj/pro':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/renderer': '@vtj/renderer':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/ui': '@vtj/ui':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': '@vtj/utils':
specifier: 0.11.1 specifier: 0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/web': '@vtj/web':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
axios: axios:
specifier: ^1.8.1 specifier: ^1.8.1
version: 1.8.3(debug@4.4.0) version: 1.8.3(debug@4.4.0)
@ -859,30 +859,33 @@ importers:
'@tanstack/vue-query': '@tanstack/vue-query':
specifier: ^5.66.9 specifier: ^5.66.9
version: 5.69.0(vue@3.5.13(typescript@5.8.2)) version: 5.69.0(vue@3.5.13(typescript@5.8.2))
'@vtj/charts':
specifier: ^0.11.2
version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/core': '@vtj/core':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/icons': '@vtj/icons':
specifier: 0.11.1 specifier: 0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/materials': '@vtj/materials':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/pro': '@vtj/pro':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/renderer': '@vtj/renderer':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/ui': '@vtj/ui':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': '@vtj/utils':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1 version: 0.11.2
'@vtj/web': '@vtj/web':
specifier: ^0.11.1 specifier: ^0.11.2
version: 0.11.1(vue@3.5.13(typescript@5.8.2)) version: 0.11.2(vue@3.5.13(typescript@5.8.2))
axios: axios:
specifier: 'catalog:' specifier: 'catalog:'
version: 1.8.3(debug@4.4.0) version: 1.8.3(debug@4.4.0)
@ -1953,6 +1956,9 @@ importers:
packages/renderer-adapter/wujie-vue3: packages/renderer-adapter/wujie-vue3:
dependencies: dependencies:
licia-es:
specifier: 'catalog:'
version: 1.47.0
postmate: postmate:
specifier: 'catalog:' specifier: 'catalog:'
version: 1.5.2 version: 1.5.2
@ -5540,8 +5546,8 @@ packages:
'@vtj/base@0.11.1': '@vtj/base@0.11.1':
resolution: {integrity: sha512-OrRUicY5gcturuY/MXNEU6QWPkglrqj/2Eth93n+zJh1szdHlFkFYMFbP9d/PAj3G4pGWcnRX3Kc4kZmGn2W+Q==} resolution: {integrity: sha512-OrRUicY5gcturuY/MXNEU6QWPkglrqj/2Eth93n+zJh1szdHlFkFYMFbP9d/PAj3G4pGWcnRX3Kc4kZmGn2W+Q==}
'@vtj/charts@0.11.1': '@vtj/charts@0.11.2':
resolution: {integrity: sha512-RfByHVbangTKCVcIDgWvVPPy4SNEHCAJUmozkcE6ZSSv9wNZAHQhRm0UkTxVOOGARW+uxNwUV+CcJUqF9i/CsA==} resolution: {integrity: sha512-SrZ4sIrhq5oX7Zv5CCZDRp7tuQ3Ho6SEYD4QoLwQaZ0EZy/s5+M4N3VfzndgZHYApRAg0zw5+6v6D3DdM4216g==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@vtj/cli@0.11.1': '@vtj/cli@0.11.1':
@ -5549,48 +5555,48 @@ packages:
engines: {node: '>=20.0.0'} engines: {node: '>=20.0.0'}
hasBin: true hasBin: true
'@vtj/coder@0.11.1': '@vtj/coder@0.11.2':
resolution: {integrity: sha512-PYcBNAhU2vSlbUox/JghT9HMMwugvPxF1rzdB5yZc7WcpSO76KSg2nh2VyTyaGwsTiT/9PjSt9rhK4BXIvP9DA==} resolution: {integrity: sha512-VKUIBuZF2+UnJLbur55nQMRlagb/SCtN+HUaWOlf6gZFc8V4hijABwhlAgRK05CfyncfMHYT2ynJkVJf6f6xRw==}
'@vtj/core@0.11.1': '@vtj/core@0.11.2':
resolution: {integrity: sha512-Y572NlT/EpM+6SlEo1q5vSu8sNI3wR1zeAAtuLf+LWd9cHZXs7KAGp34XsnEVY1dHb5gReL5F2GxCzM25avZhw==} resolution: {integrity: sha512-B7DW37aCTKLxI41+OnBu8ukoHnbiKoiNwG+Nqsl7o4Wm0WLaC7e2sh4GEQN6/gG6jZpm2xt6CZpPreWwQLZODg==}
'@vtj/designer@0.11.1': '@vtj/designer@0.11.2':
resolution: {integrity: sha512-rjhma9WAZvbBhvHjlFV6nr6dAKf8W5nu+wh2dcUtYXRKIntELa6ez/Brw/PQzfSjb7t+yAunHJU8wpSr5jkJrA==} resolution: {integrity: sha512-N2E29bvHw1N9ldqv9I0RbmnlvZ6QERWhxKuc5rAwBNGV8D4u+6lEZRi+lR5eA+0SzYCMkIkXSiaSQtyKu+NMzQ==}
'@vtj/icons@0.11.1': '@vtj/icons@0.11.2':
resolution: {integrity: sha512-gX0UCEdDDICMGN+b1AEVoQcQcoU41R3Zr/2atNage1x//QmNVMLdEX8M1iSrvnOEIJuvJJw+H8bRG1jK1srcyg==} resolution: {integrity: sha512-pZcNLcc+1GfEtV9NbSJf8nJKy2kq8Ry5bZ0lTAGMKXukbvHPpuAUD2xYDqsDn2uspAMlhOpaiA/2yEeZq22tcQ==}
'@vtj/local@0.11.1': '@vtj/local@0.11.2':
resolution: {integrity: sha512-4kbQ119uXW6mp8Zt6qmgZ2SEHCkFyVFWecbZIWm9C71W8zChRvCnGK1O70cc1FKtr+Jc0lwtsIQQp+w09wVWCQ==} resolution: {integrity: sha512-r9+eOpWBPmb/hIcN5N6grdq46qzMbfcujApnYDEYVhKVWOr6Rx1aJFn7po99wzJ9QdqMhJo0hJj25qkt2yuXLw==}
'@vtj/materials@0.11.1': '@vtj/materials@0.11.2':
resolution: {integrity: sha512-9u1VM1H4NwAzvuD/mAx7jTQxT/tk7/Nh+BQQ98N8BJZIbfhH49RrTT2s8RxuM1AQm+ToNaxjoqSs9uOiyB7nUw==} resolution: {integrity: sha512-EZzLQY+8E8JBqiK1qHhT3sc4nye77KaojuvLZhlrLz7ViQB2xy75+w/b93mOAZgj0kDV7E/v2AcIsQhlmD2tuA==}
'@vtj/node@0.11.1': '@vtj/node@0.11.1':
resolution: {integrity: sha512-PfIs7Bja6o2o/2R+15RuGSnpNLLiKZC+fJH1sJuVOXVjjkpakpwsUc0tDjzT5VoLZk52hQ7QQyzJFToPWT6NLg==} resolution: {integrity: sha512-PfIs7Bja6o2o/2R+15RuGSnpNLLiKZC+fJH1sJuVOXVjjkpakpwsUc0tDjzT5VoLZk52hQ7QQyzJFToPWT6NLg==}
'@vtj/parser@0.11.1': '@vtj/parser@0.11.2':
resolution: {integrity: sha512-d/5izIH5/9V1dC0+WrpUg8Tyg1sla9Ej2veCCDyXpM2Gt6ONON+OBlIh8wRsTUkqRVSiic8WXOoyP3ldNcsZpw==} resolution: {integrity: sha512-/jdSA//o93Nx1Of+Wgz0F73gFYNmVzV4JF6rYFpVk4aHDLxRGNPJGd2WNCuDmkYAmUEJuwAEB7xq7zTkXRE9ow==}
'@vtj/pro@0.11.1': '@vtj/pro@0.11.2':
resolution: {integrity: sha512-DKkdBj/QzSoLldzwXvdIjZCk2ugMGv7VEtz4qfcrBBVgc2luqXi8tSNNxaFVbv5UZJVQjEC2kAICmBw6oE4AYQ==} resolution: {integrity: sha512-axQmWtRh57HJDcymFyd+JDOnjFxZzGba2sBhJ9t0YII660c8f0fFeyrD4OEj/FJcwKeVEjSHkLQ/775QEJ1rhA==}
'@vtj/renderer@0.11.1': '@vtj/renderer@0.11.2':
resolution: {integrity: sha512-weKzc4E7OqiU+MuTzJQJC/+7yNvbUwYJ5Ew/TshuP9OxzPo59gMQTdau3aez2qQNUj/6qDl+Ps4xIC7hKyCDkw==} resolution: {integrity: sha512-ReBRw1p8svILr1C/VupSP2TQBx8dJD4sObFzT4f0Y9IDsqfBVJ5TdOKckpIzEHCwapDEXIZQvlILO3/Si5zMMQ==}
'@vtj/ui@0.11.1': '@vtj/ui@0.11.2':
resolution: {integrity: sha512-HZ1GC5LzykWtLJ3vkz4dsO7bUWe3JnEoI5FhrLAlpKKWaM1IhIO6VI78R9a7WdVs42CMhbwV5DLpntP+1aG1vg==} resolution: {integrity: sha512-MPnKfsiKOxrhn89ECrxjIvRKfYIHTbLzyD2/XAG4F3VIwaXsy5slGDZjkn8rZcyiJZb7gAMQ1d3wsulrbTxp1g==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@vtj/uni@0.11.1': '@vtj/uni@0.11.2':
resolution: {integrity: sha512-BS+iuR3B1lg6RBpOGBJmN4Mlb4Afym0VILwxgxaBmfco4QM9tVI9s3CV/Z5EDH78iIoG6XU7pZ7/1FPnyxm2FQ==} resolution: {integrity: sha512-e5lDUoLsMF1NTZpcrTX4EUQmgyJrk/hpCRdSR2Lzls+V1T2VLrEuZl7YAWbuHE1pgOdxnd+KnpHUZynpVvPviQ==}
'@vtj/utils@0.11.1': '@vtj/utils@0.11.2':
resolution: {integrity: sha512-wAXBp/UF6atLk5wll0A4UVQpSM1qt8Raqk04wDP5DKRG+Lbok1wkmOGvdfHsHh7oIr1QqufQx/lrfRRN46e8qQ==} resolution: {integrity: sha512-4+0X4d/c9tv0H4EHVXWCw2pM26N9zufheHJz/Z+b4nT0B0fpqNtrnMK/RpjSakhu2OKXjh/++pJUgSwLGEdqdw==}
'@vtj/web@0.11.1': '@vtj/web@0.11.2':
resolution: {integrity: sha512-ioC69Oc+ChBinpDpaDB3no/qQXcbM9vCaJ5l2/lq/utVkyLjboEa6gw2U6L7L/dDNClt9mh9nVUw5I+GSF+C5g==} resolution: {integrity: sha512-twgZiYQ5iQ+c/qTQy0byinxW4ESYlxGHFABFLRUVkHdgvv4cn6A0QlskEajnO8+JGGlDE0u0ZxPTuYVTci8tGQ==}
'@vue/babel-helper-vue-transform-on@1.4.0': '@vue/babel-helper-vue-transform-on@1.4.0':
resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==}
@ -15521,7 +15527,7 @@ snapshots:
'@grpc/grpc-js@1.9.15': '@grpc/grpc-js@1.9.15':
dependencies: dependencies:
'@grpc/proto-loader': 0.7.13 '@grpc/proto-loader': 0.7.13
'@types/node': 20.17.24 '@types/node': 22.13.10
'@grpc/proto-loader@0.7.13': '@grpc/proto-loader@0.7.13':
dependencies: dependencies:
@ -16820,15 +16826,15 @@ snapshots:
'@types/body-parser@1.19.5': '@types/body-parser@1.19.5':
dependencies: dependencies:
'@types/connect': 3.4.38 '@types/connect': 3.4.38
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/connect@3.4.38': '@types/connect@3.4.38':
dependencies: dependencies:
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/conventional-commits-parser@5.0.1': '@types/conventional-commits-parser@5.0.1':
dependencies: dependencies:
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/css-font-loading-module@0.0.7': {} '@types/css-font-loading-module@0.0.7': {}
@ -16848,7 +16854,7 @@ snapshots:
'@types/fs-extra@11.0.4': '@types/fs-extra@11.0.4':
dependencies: dependencies:
'@types/jsonfile': 6.1.4 '@types/jsonfile': 6.1.4
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/hast@3.0.4': '@types/hast@3.0.4':
dependencies: dependencies:
@ -16860,13 +16866,13 @@ snapshots:
'@types/http-proxy@1.17.16': '@types/http-proxy@1.17.16':
dependencies: dependencies:
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/json-schema@7.0.15': {} '@types/json-schema@7.0.15': {}
'@types/jsonfile@6.1.4': '@types/jsonfile@6.1.4':
dependencies: dependencies:
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/linkify-it@5.0.0': {} '@types/linkify-it@5.0.0': {}
@ -16944,12 +16950,12 @@ snapshots:
'@types/send@0.17.4': '@types/send@0.17.4':
dependencies: dependencies:
'@types/mime': 1.3.5 '@types/mime': 1.3.5
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/serve-static@1.15.7': '@types/serve-static@1.15.7':
dependencies: dependencies:
'@types/http-errors': 2.0.4 '@types/http-errors': 2.0.4
'@types/node': 20.17.24 '@types/node': 22.13.10
'@types/send': 0.17.4 '@types/send': 0.17.4
'@types/sortablejs@1.15.8': {} '@types/sortablejs@1.15.8': {}
@ -17413,10 +17419,10 @@ snapshots:
'@types/numeral': 2.0.5 '@types/numeral': 2.0.5
reflect-metadata: 0.2.2 reflect-metadata: 0.2.2
'@vtj/charts@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/charts@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
'@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2)) '@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2))
echarts: 5.6.0 echarts: 5.6.0
transitivePeerDependencies: transitivePeerDependencies:
@ -17544,24 +17550,24 @@ snapshots:
- vue - vue
- yaml - yaml
'@vtj/coder@0.11.1': '@vtj/coder@0.11.2':
dependencies: dependencies:
'@vtj/base': 0.11.1 '@vtj/base': 0.11.1
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
prettier: 3.5.3 prettier: 3.5.3
'@vtj/core@0.11.1': '@vtj/core@0.11.2':
dependencies: dependencies:
'@vtj/base': 0.11.1 '@vtj/base': 0.11.1
'@vtj/designer@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/designer@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/renderer': 0.11.1 '@vtj/renderer': 0.11.2
'@vtj/ui': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/ui': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/uni': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/uni': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
html2canvas: 1.4.1 html2canvas: 1.4.1
mockjs: 1.1.0 mockjs: 1.1.0
monaco-editor: 0.52.2 monaco-editor: 0.52.2
@ -17569,24 +17575,24 @@ snapshots:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
'@vtj/icons@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/icons@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.8.2)) '@element-plus/icons-vue': 2.3.1(vue@3.5.13(typescript@5.8.2))
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
'@vtj/local@0.11.1': '@vtj/local@0.11.2':
dependencies: dependencies:
'@vtj/coder': 0.11.1 '@vtj/coder': 0.11.2
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/node': 0.11.1 '@vtj/node': 0.11.1
'@vtj/parser': 0.11.1 '@vtj/parser': 0.11.2
formidable: 3.5.2 formidable: 3.5.2
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
- supports-color - supports-color
'@vtj/materials@0.11.1': {} '@vtj/materials@0.11.2': {}
'@vtj/node@0.11.1': '@vtj/node@0.11.1':
dependencies: dependencies:
@ -17597,42 +17603,42 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
'@vtj/parser@0.11.1': '@vtj/parser@0.11.2':
dependencies: dependencies:
'@babel/generator': 7.26.10 '@babel/generator': 7.26.10
'@babel/parser': 7.26.10 '@babel/parser': 7.26.10
'@babel/traverse': 7.26.10 '@babel/traverse': 7.26.10
'@vtj/base': 0.11.1 '@vtj/base': 0.11.1
'@vtj/coder': 0.11.1 '@vtj/coder': 0.11.2
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vue/compiler-dom': 3.5.13 '@vue/compiler-dom': 3.5.13
'@vue/compiler-sfc': 3.5.13 '@vue/compiler-sfc': 3.5.13
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@vtj/pro@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/pro@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/designer': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/designer': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/local': 0.11.1 '@vtj/local': 0.11.2
'@vtj/materials': 0.11.1 '@vtj/materials': 0.11.2
'@vtj/renderer': 0.11.1 '@vtj/renderer': 0.11.2
'@vtj/uni': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/uni': 0.11.2(vue@3.5.13(typescript@5.8.2))
transitivePeerDependencies: transitivePeerDependencies:
- '@vue/composition-api' - '@vue/composition-api'
- debug - debug
- supports-color - supports-color
- vue - vue
'@vtj/renderer@0.11.1': '@vtj/renderer@0.11.2':
dependencies: dependencies:
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
'@vtj/ui@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/ui@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
'@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2)) '@vueuse/core': 13.0.0(vue@3.5.13(typescript@5.8.2))
element-plus: 2.9.6(vue@3.5.13(typescript@5.8.2)) element-plus: 2.9.6(vue@3.5.13(typescript@5.8.2))
sortablejs: 1.15.6 sortablejs: 1.15.6
@ -17642,27 +17648,27 @@ snapshots:
- '@vue/composition-api' - '@vue/composition-api'
- vue - vue
'@vtj/uni@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/uni@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/renderer': 0.11.1 '@vtj/renderer': 0.11.2
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
transitivePeerDependencies: transitivePeerDependencies:
- vue - vue
'@vtj/utils@0.11.1': '@vtj/utils@0.11.2':
dependencies: dependencies:
'@vtj/base': 0.11.1 '@vtj/base': 0.11.1
'@vtj/web@0.11.1(vue@3.5.13(typescript@5.8.2))': '@vtj/web@0.11.2(vue@3.5.13(typescript@5.8.2))':
dependencies: dependencies:
'@vtj/charts': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/charts': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/core': 0.11.1 '@vtj/core': 0.11.2
'@vtj/icons': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/icons': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/renderer': 0.11.1 '@vtj/renderer': 0.11.2
'@vtj/ui': 0.11.1(vue@3.5.13(typescript@5.8.2)) '@vtj/ui': 0.11.2(vue@3.5.13(typescript@5.8.2))
'@vtj/utils': 0.11.1 '@vtj/utils': 0.11.2
core-js: 3.41.0 core-js: 3.41.0
regenerator-runtime: 0.14.1 regenerator-runtime: 0.14.1
transitivePeerDependencies: transitivePeerDependencies:
@ -23415,7 +23421,7 @@ snapshots:
'@protobufjs/path': 1.1.2 '@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0 '@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0 '@protobufjs/utf8': 1.1.0
'@types/node': 20.17.24 '@types/node': 22.13.10
long: 5.3.1 long: 5.3.1
proxy-from-env@1.1.0: {} proxy-from-env@1.1.0: {}