Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcb69b7743 | ||
|
|
010918198a | ||
|
|
8102aaeb12 | ||
|
|
a013f35cd9 | ||
|
|
6637fdc92b | ||
|
|
4d0b4c3178 | ||
|
|
3501a69b2f | ||
|
|
d06a874c3b | ||
|
|
8369b2c22c | ||
|
|
8e870c835e | ||
|
|
de4d77c1ec | ||
|
|
ae5c627902 | ||
|
|
aa566e9535 |
37
CHANGELOG.md
37
CHANGELOG.md
@@ -1,3 +1,40 @@
|
||||
## [1.2.5](https://github.com/Tencent/tmagic-editor/compare/v1.2.4...v1.2.5) (2023-02-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **editor:** 修复优化性能引起的问题,支持回退撤销对代码关系的更新 ([0109181](https://github.com/Tencent/tmagic-editor/commit/010918198a7daa97ed3bd3c797ac88c091ef90a1))
|
||||
|
||||
|
||||
|
||||
## [1.2.4](https://github.com/Tencent/tmagic-editor/compare/v1.2.3...v1.2.4) (2023-02-17)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 调整绑定关系结构,优化性能 ([a013f35](https://github.com/Tencent/tmagic-editor/commit/a013f35cd9bd5bb9b3f3c796d603c9efc31d5b5d))
|
||||
|
||||
|
||||
|
||||
## [1.2.3](https://github.com/Tencent/tmagic-editor/compare/v1.2.2...v1.2.3) (2023-02-15)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **cli:** 支持配置是否自动安装组件npm包,支持配置安装组件npm包后是否保持package.json不变 ([d06a874](https://github.com/Tencent/tmagic-editor/commit/d06a874c3b997a73f80bed4196974a331d6ef133))
|
||||
* **form:** select config.option.afterRequest添加postOptions ([4d0b4c3](https://github.com/Tencent/tmagic-editor/commit/4d0b4c31781e5a3381fc4d73bf62c6f66253a563))
|
||||
|
||||
|
||||
|
||||
## [1.2.2](https://github.com/Tencent/tmagic-editor/compare/v1.2.1...v1.2.2) (2023-02-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **editor:** set root 可能没有items ([aa566e9](https://github.com/Tencent/tmagic-editor/commit/aa566e9535c5afd76fa15b39f42de395758189eb))
|
||||
|
||||
|
||||
|
||||
## [1.2.1](https://github.com/Tencent/tmagic-editor/compare/v1.2.0...v1.2.1) (2023-02-09)
|
||||
|
||||
|
||||
|
||||
@@ -329,7 +329,7 @@ export default defineConfig({
|
||||
},
|
||||
{
|
||||
text: 'Cascader级联选择器',
|
||||
link: '/form-config/fields/select.md'
|
||||
link: '/form-config/fields/cascader.md'
|
||||
},
|
||||
{
|
||||
text: 'ColorPicker颜色选择器',
|
||||
|
||||
@@ -145,10 +145,15 @@ watchEffect(async () => {
|
||||
|
||||
```js
|
||||
cd magic
|
||||
npm run build
|
||||
npm run build:runtime:admin
|
||||
```
|
||||
|
||||
将 /playground/dist/runtime 文件夹复制到 /magic-admin/web/public 和 /magic-admin/server/assets 目录下。web 下的 runtime 提供给模拟画布使用,server 下的 runtime 提供给发布后的页面来使用。
|
||||
将 /runtime/vue3|vue2|react/dist 文件夹复制到 /magic-admin/serve/static 目录下。
|
||||
|
||||
```
|
||||
mkdir ./magic-admin/server/static/vue3
|
||||
cp -rf ./runtime/vue3/dist/* ./magic-admin/server/static/vue3
|
||||
```
|
||||
|
||||
上面的操作我们提供了/magic-admin/setup.sh 脚本文件来实现,开发者可以参考该脚本文件来搭建流水线。
|
||||
|
||||
|
||||
17013
magic-admin/server/package-lock.json
generated
17013
magic-admin/server/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -40,9 +40,9 @@
|
||||
"tslib": "^2.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.15.0",
|
||||
"@babel/preset-env": "^7.15.0",
|
||||
"@babel/preset-typescript": "^7.15.0",
|
||||
"@babel/core": "^7.20.12",
|
||||
"@babel/preset-env": "^7.20.2",
|
||||
"@babel/preset-typescript": "^7.18.6",
|
||||
"@types/axios": "^0.14.0",
|
||||
"@types/babel-core": "^6.25.7",
|
||||
"@types/fs-extra": "^9.0.13",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "tmagic",
|
||||
"private": true,
|
||||
"packageManager": "pnpm@7.1.9",
|
||||
|
||||
@@ -10,4 +10,9 @@ cli({
|
||||
temp: '.tmagic',
|
||||
useTs: true,
|
||||
dynamicImport: false,
|
||||
npmConfig: {
|
||||
client: 'npm',
|
||||
autoInstall: true,
|
||||
keepPackageJsonClean: true,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/cli",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
|
||||
@@ -22,12 +22,16 @@ export const scripts = (defaultAppConfig: UserConfig) => {
|
||||
path.resolve(defaultAppConfig.temp, 'config.cjs'),
|
||||
].find((item) => fs.pathExistsSync(item));
|
||||
|
||||
const userConfig = await loadUserConfig(userConfigPath);
|
||||
const { npmConfig = {}, ...userConfig } = await loadUserConfig(userConfigPath);
|
||||
|
||||
// resolve the final app config to use
|
||||
const appConfig = {
|
||||
...defaultAppConfig,
|
||||
...userConfig,
|
||||
npmConfig: {
|
||||
...(defaultAppConfig.npmConfig || {}),
|
||||
...npmConfig,
|
||||
},
|
||||
};
|
||||
|
||||
if (appConfig === null) {
|
||||
|
||||
@@ -38,6 +38,10 @@ export interface NpmConfig {
|
||||
registry?: string;
|
||||
/** pnpm | npm | yarn */
|
||||
client?: 'npm' | 'yarn' | 'pnpm';
|
||||
/** 是否自动安装组件依赖,默认为true */
|
||||
autoInstall?: boolean;
|
||||
/** 安装组件后,npm默认会将依赖写入package.json中,将该值设置为true,则不会写入,默认为true */
|
||||
keepPackageJsonClean?: boolean;
|
||||
}
|
||||
|
||||
export interface ModuleMainFilePath {
|
||||
|
||||
@@ -22,7 +22,13 @@ export const prepareEntryFile = async (app: App) => {
|
||||
}
|
||||
|
||||
Object.keys(contentMap).forEach((file: string) => {
|
||||
const fileName = `${file}.${useTs ? 'ts' : 'js'}`;
|
||||
let fileName = `${file}.ts`;
|
||||
if (useTs) {
|
||||
app.writeTemp(fileName, contentMap[file]);
|
||||
} else {
|
||||
fileName = `${file}.js`;
|
||||
app.writeTemp(`${file}.d.ts`, `const type: Record<string, any>;\n\nexport default type;`);
|
||||
}
|
||||
app.writeTemp(fileName, contentMap[file]);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -82,7 +82,9 @@ export const resolveAppPackages = (app: App): ModuleMainFilePath => {
|
||||
dependencies[moduleName] = version;
|
||||
};
|
||||
|
||||
app.options.packages.forEach((item) => {
|
||||
const { packages = [], npmConfig = {} } = app.options;
|
||||
|
||||
packages.forEach((item) => {
|
||||
if (typeof item === 'object') {
|
||||
Object.entries(item).forEach(([, packagePath]) => {
|
||||
getDependencies(packagePath);
|
||||
@@ -92,26 +94,26 @@ export const resolveAppPackages = (app: App): ModuleMainFilePath => {
|
||||
}
|
||||
});
|
||||
|
||||
if (Object.keys(dependencies).length) {
|
||||
const packageFile = path.join(app.options.source, 'package.json');
|
||||
const packageBakFile = path.join(app.options.source, 'package.json.bak');
|
||||
if (fs.existsSync(packageFile)) {
|
||||
fs.copyFileSync(packageFile, packageBakFile);
|
||||
}
|
||||
|
||||
try {
|
||||
if (npmConfig.autoInstall && Object.keys(dependencies).length) {
|
||||
if (!npmConfig.keepPackageJsonClean) {
|
||||
npmInstall(dependencies, app.options.source, app.options.npmConfig);
|
||||
} catch (e) {
|
||||
error(e as string);
|
||||
}
|
||||
} else {
|
||||
const packageFile = path.join(app.options.source, 'package.json');
|
||||
const packageBakFile = path.join(app.options.source, 'package.json.bak');
|
||||
if (fs.existsSync(packageFile)) {
|
||||
fs.copyFileSync(packageFile, packageBakFile);
|
||||
}
|
||||
|
||||
if (fs.existsSync(packageBakFile)) {
|
||||
fs.unlinkSync(packageFile);
|
||||
fs.renameSync(packageBakFile, packageFile);
|
||||
npmInstall(dependencies, app.options.source, app.options.npmConfig);
|
||||
|
||||
if (fs.existsSync(packageBakFile)) {
|
||||
fs.unlinkSync(packageFile);
|
||||
fs.renameSync(packageBakFile, packageFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
app.options.packages.forEach((item) => {
|
||||
packages.forEach((item) => {
|
||||
if (typeof item === 'object') {
|
||||
Object.entries(item).forEach(([key, packagePath]) => {
|
||||
setPackages(app.options.source, packagePath, key);
|
||||
@@ -131,26 +133,30 @@ export const resolveAppPackages = (app: App): ModuleMainFilePath => {
|
||||
};
|
||||
|
||||
const npmInstall = function (dependencies: Record<string, string>, cwd: string, npmConfig: NpmConfig = {}) {
|
||||
const { client = 'npm', registry = 'https://registry.npmjs.org/' } = npmConfig;
|
||||
const install = {
|
||||
npm: 'install',
|
||||
yarn: 'add',
|
||||
pnpm: 'add',
|
||||
}[client];
|
||||
try {
|
||||
const { client = 'npm', registry = 'https://registry.npmjs.org/' } = npmConfig;
|
||||
const install = {
|
||||
npm: 'install',
|
||||
yarn: 'add',
|
||||
pnpm: 'add',
|
||||
}[client];
|
||||
|
||||
const packages = Object.entries(dependencies)
|
||||
.map(([name, version]) => `${name}@${version}`)
|
||||
.join(' ');
|
||||
const packages = Object.entries(dependencies)
|
||||
.map(([name, version]) => `${name}@${version}`)
|
||||
.join(' ');
|
||||
|
||||
const command = `${client} ${install} ${packages} --registry ${registry}`;
|
||||
const command = `${client} ${install} ${packages} --registry ${registry}`;
|
||||
|
||||
execInfo(cwd);
|
||||
execInfo(command);
|
||||
execInfo(cwd);
|
||||
execInfo(command);
|
||||
|
||||
execSync(command, {
|
||||
stdio: 'inherit',
|
||||
cwd,
|
||||
});
|
||||
execSync(command, {
|
||||
stdio: 'inherit',
|
||||
cwd,
|
||||
});
|
||||
} catch (e) {
|
||||
error(e as string);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/core",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -36,7 +36,7 @@
|
||||
"vue"
|
||||
],
|
||||
"dependencies": {
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"events": "^3.3.0",
|
||||
"lodash-es": "^4.17.21"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/design",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/editor",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -46,12 +46,12 @@
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.18.0",
|
||||
"@element-plus/icons-vue": "^2.0.9",
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/design": "1.2.1",
|
||||
"@tmagic/form": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/stage": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/design": "1.2.5",
|
||||
"@tmagic/form": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/stage": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"buffer": "^6.0.3",
|
||||
"color": "^3.1.3",
|
||||
"events": "^3.3.0",
|
||||
@@ -63,8 +63,8 @@
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tmagic/design": "1.2.1",
|
||||
"@tmagic/form": "1.2.1",
|
||||
"@tmagic/design": "1.2.5",
|
||||
"@tmagic/form": "1.2.5",
|
||||
"monaco-editor": "^0.34.0",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
|
||||
@@ -362,6 +362,8 @@ export default defineComponent({
|
||||
disabledDragStart: props.disabledDragStart,
|
||||
}),
|
||||
);
|
||||
// 监听组件update
|
||||
codeBlockService.addCodeRelationListener();
|
||||
|
||||
return services;
|
||||
},
|
||||
|
||||
@@ -6,7 +6,12 @@
|
||||
type="card"
|
||||
tab-position="left"
|
||||
>
|
||||
<component :is="uiComponent.component" v-for="(config, index) in sideBarItems" :key="index" :name="config.text">
|
||||
<component
|
||||
:is="uiComponent.component"
|
||||
v-for="(config, index) in sideBarItems"
|
||||
:key="config.$key || index"
|
||||
:name="config.text"
|
||||
>
|
||||
<template #label>
|
||||
<div :key="config.text">
|
||||
<MIcon v-if="config.icon" :icon="config.icon"></MIcon>
|
||||
|
||||
@@ -96,7 +96,7 @@ import { ColumnConfig } from '@tmagic/form';
|
||||
import { CodeBlockContent, Id } from '@tmagic/schema';
|
||||
|
||||
import Icon from '../../../components/Icon.vue';
|
||||
import type { CodeRelation, Services } from '../../../type';
|
||||
import type { CodeRelation, CombineInfo, Services } from '../../../type';
|
||||
import { CodeDeleteErrorType, CodeDslItem, ListState } from '../../../type';
|
||||
|
||||
import codeBlockEditor from './CodeBlockEditor.vue';
|
||||
@@ -121,17 +121,22 @@ const isShowCodeBlockEditor = computed(() => services?.codeBlockService.getCodeE
|
||||
const codeCombineInfo = ref<CodeRelation | null>(null);
|
||||
|
||||
// 根据代码块ID获取其绑定的组件信息
|
||||
const getBindCompsByCodeId = (codeId: Id) => {
|
||||
if (!codeCombineInfo.value || !codeCombineInfo.value[codeId]) return [];
|
||||
const bindCompsId = Object.keys(codeCombineInfo.value[codeId]);
|
||||
return bindCompsId.map((compId) => ({
|
||||
compId,
|
||||
compName: getCompName(compId),
|
||||
}));
|
||||
const getBindCompsByCodeId = (codeId: Id): CombineInfo[] => {
|
||||
if (!codeCombineInfo.value) return [];
|
||||
const bindsComp = [] as CombineInfo[];
|
||||
forIn(codeCombineInfo.value, (codeIds, compId) => {
|
||||
if (codeIds.includes(codeId)) {
|
||||
bindsComp.push({
|
||||
compId,
|
||||
compName: getCompName(compId),
|
||||
});
|
||||
}
|
||||
});
|
||||
return bindsComp as CombineInfo[];
|
||||
};
|
||||
|
||||
// 初始化代码块列表
|
||||
const initList = async () => {
|
||||
// 更新代码块列表
|
||||
const refreshCodeList = async () => {
|
||||
const codeDsl = cloneDeep(await services?.codeBlockService.getCodeDsl()) || null;
|
||||
codeCombineInfo.value = cloneDeep(services?.codeBlockService.getCombineInfo()) || null;
|
||||
if (!codeDsl || !codeCombineInfo.value) return;
|
||||
@@ -148,12 +153,19 @@ const initList = async () => {
|
||||
};
|
||||
|
||||
watch(
|
||||
[() => services?.codeBlockService.getCodeDslSync(), () => services?.codeBlockService.refreshCombineInfo()],
|
||||
() => services?.editorService.get('root'),
|
||||
() => {
|
||||
initList();
|
||||
services?.codeBlockService.refreshAllRelations();
|
||||
refreshCodeList();
|
||||
},
|
||||
);
|
||||
|
||||
watch(
|
||||
[() => services?.codeBlockService.getCodeDslSync(), () => services?.codeBlockService.getCombineInfo()],
|
||||
() => {
|
||||
refreshCodeList();
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true,
|
||||
},
|
||||
);
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
*/
|
||||
|
||||
import { reactive } from 'vue';
|
||||
import { cloneDeep, forIn, isEmpty, keys, omit, pick } from 'lodash-es';
|
||||
import { cloneDeep, forIn, isEmpty, keys, omit, pick, union } from 'lodash-es';
|
||||
|
||||
import { CodeBlockContent, CodeBlockDSL, HookType, Id, MNode } from '@tmagic/schema';
|
||||
import { CodeBlockContent, CodeBlockDSL, HookType, Id, MNode, MPage } from '@tmagic/schema';
|
||||
|
||||
import editorService from '../services/editor';
|
||||
import type { CodeRelation, CodeState, HookData } from '../type';
|
||||
@@ -230,16 +230,45 @@ class CodeBlock extends BaseService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新绑定关系
|
||||
* @returns {CodeRelation | null}
|
||||
* 监听组件更新来更新代码块绑定关系
|
||||
* @returns {void}
|
||||
*/
|
||||
public refreshCombineInfo(): CodeRelation | null {
|
||||
public addCodeRelationListener(): void {
|
||||
// 监听组件更新
|
||||
editorService.on('update', (nodes: MNode[]) => {
|
||||
const relations: CodeRelation = cloneDeep(this.state.relations);
|
||||
nodes.forEach((node: MNode) => {
|
||||
if (node?.id) {
|
||||
relations[node.id] = [];
|
||||
this.getNodeRelation(node, relations);
|
||||
}
|
||||
});
|
||||
this.state.relations = { ...relations };
|
||||
});
|
||||
// 监听组件删除
|
||||
editorService.on('remove', (nodes: MNode[]) => {
|
||||
nodes.forEach((node: MNode) => {
|
||||
this.state.relations = this.deleteNodeRelation(node, this.state.relations);
|
||||
});
|
||||
});
|
||||
// 监听历史记录,历史快照为页面整体,需要深层遍历更新
|
||||
editorService.on('history-change', (page: MPage) => {
|
||||
const relations: CodeRelation = {};
|
||||
this.getNodeRelation(page, relations, true);
|
||||
this.state.relations = relations;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新全部绑定关系
|
||||
* @returns {void}
|
||||
*/
|
||||
public refreshAllRelations(): void {
|
||||
const root = editorService.get('root');
|
||||
if (!root) return null;
|
||||
const relations = {};
|
||||
this.recurseMNode(root, relations);
|
||||
if (!root) return;
|
||||
const relations: CodeRelation = {};
|
||||
this.getNodeRelation(root, relations, true);
|
||||
this.state.relations = relations;
|
||||
return this.state.relations;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -313,18 +342,6 @@ class CodeBlock extends BaseService {
|
||||
return await this.getUniqueId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过组件id解除绑定关系(删除组件)
|
||||
* @param {MNode} compId 组件节点
|
||||
* @returns void
|
||||
*/
|
||||
public async deleteCompsInRelation(node: MNode): Promise<void> {
|
||||
const codeDsl = cloneDeep(await this.getCodeDsl());
|
||||
if (!codeDsl) return;
|
||||
this.refreshRelationDeep(node, codeDsl);
|
||||
this.setCodeDsl(codeDsl);
|
||||
}
|
||||
|
||||
public resetState() {
|
||||
this.state.isShowCodeEditor = false;
|
||||
this.state.codeDsl = null;
|
||||
@@ -340,63 +357,63 @@ class CodeBlock extends BaseService {
|
||||
this.removeAllPlugins();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组件时 如果是容器 需要遍历删除其包含节点的绑定信息
|
||||
* @param {MNode} node 节点信息
|
||||
* @param {CodeBlockDSL} codeDsl 代码块
|
||||
* @returns void
|
||||
*/
|
||||
private refreshRelationDeep(node: MNode, codeDsl: CodeBlockDSL): void {
|
||||
if (!node.id) return;
|
||||
forIn(codeDsl, (codeBlockContent) => {
|
||||
const compsContent = codeBlockContent.comps || {};
|
||||
codeBlockContent.comps = omit(compsContent, node.id);
|
||||
});
|
||||
if (!isEmpty(node.items)) {
|
||||
node.items.forEach((item: MNode) => {
|
||||
this.refreshRelationDeep(item, codeDsl);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归遍历dsl中挂载了代码块的节点,并更新绑定关系数据
|
||||
* @param {MContainer} node 节点信息
|
||||
* @param {MNode} node 节点信息
|
||||
* @param {CodeRelation} relation 关系数据
|
||||
* @param {boolean} deep 是否深层遍历
|
||||
* @returns void
|
||||
*/
|
||||
private recurseMNode(node: MNode, relations: CodeRelation): void {
|
||||
private getNodeRelation(node: MNode, relation: CodeRelation, deep = false): void {
|
||||
forIn(node, (value, key) => {
|
||||
let unConfirmedValue: MNode = { id: node.id };
|
||||
if (value?.hookType === HookType.CODE && !isEmpty(value.hookData)) {
|
||||
value.hookData.forEach((relationItem: HookData) => {
|
||||
// continue
|
||||
if (!relationItem.codeId) return;
|
||||
if (!relations[relationItem.codeId]) {
|
||||
relations[relationItem.codeId] = {};
|
||||
if (relationItem.codeId) {
|
||||
relation[node.id] = union(relation[node.id], [relationItem.codeId]);
|
||||
}
|
||||
const codeItem = relations[relationItem.codeId];
|
||||
if (isEmpty(codeItem[node.id])) {
|
||||
codeItem[node.id] = [];
|
||||
}
|
||||
codeItem[node.id].push(key);
|
||||
});
|
||||
// continue
|
||||
return;
|
||||
}
|
||||
if (typeof value === 'object') {
|
||||
let isContinue = false;
|
||||
try {
|
||||
// 只遍历更新当前组件的关系,不再深层遍历容器包含的组件
|
||||
isContinue = key !== 'items' && typeof value === 'object' && JSON.stringify(value).includes('hookType');
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
if (isContinue) {
|
||||
// 检查value内部是否有嵌套
|
||||
unConfirmedValue = {
|
||||
...unConfirmedValue,
|
||||
const unConfirmedValue = {
|
||||
id: node.id,
|
||||
...value,
|
||||
};
|
||||
this.recurseMNode(unConfirmedValue, relations);
|
||||
this.getNodeRelation(unConfirmedValue, relation);
|
||||
}
|
||||
// 深层遍历用于代码列表初始化
|
||||
if (key === 'items' && !isEmpty(value) && deep) {
|
||||
value.forEach((item: MNode) => {
|
||||
this.getNodeRelation(item, relation, deep);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除组件关系
|
||||
* @param {MNode} node 节点信息
|
||||
* @param {CodeRelation} relations 关系数据
|
||||
* @returns CodeRelation
|
||||
*/
|
||||
private deleteNodeRelation(node: MNode, relations: CodeRelation): CodeRelation {
|
||||
if (!node.id) return {};
|
||||
let newRelations = omit(relations, [node.id]);
|
||||
if (!isEmpty(node.items)) {
|
||||
node.items.forEach((item: MNode) => {
|
||||
this.recurseMNode(item, relations);
|
||||
newRelations = this.deleteNodeRelation(item, newRelations);
|
||||
});
|
||||
}
|
||||
return newRelations;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ import { NodeType } from '@tmagic/schema';
|
||||
import StageCore from '@tmagic/stage';
|
||||
import { getNodePath, isNumber, isPage, isPop } from '@tmagic/utils';
|
||||
|
||||
import codeBlockService from '../services/codeBlock';
|
||||
import historyService from '../services/history';
|
||||
import storageService, { Protocol } from '../services/storage';
|
||||
import type { AddMNode, EditorNodeInfo, PastePosition, StepValue, StoreState, StoreStateKey } from '../type';
|
||||
@@ -108,8 +107,8 @@ class Editor extends BaseService {
|
||||
throw new Error('root 不能为数组');
|
||||
}
|
||||
|
||||
if (isObject(value) && !(value instanceof StageCore) && !(value instanceof Map)) {
|
||||
this.state.pageLength = value.items.length;
|
||||
if (value && isObject(value) && !(value instanceof StageCore) && !(value instanceof Map)) {
|
||||
this.state.pageLength = value.items?.length || 0;
|
||||
} else {
|
||||
this.state.pageLength = 0;
|
||||
}
|
||||
@@ -452,9 +451,6 @@ class Editor extends BaseService {
|
||||
}
|
||||
|
||||
this.addModifiedNodeId(parent.id);
|
||||
|
||||
// 通知codeBlockService解除绑定关系
|
||||
codeBlockService.deleteCompsInRelation(node);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -555,7 +551,6 @@ class Editor extends BaseService {
|
||||
this.pushHistoryState();
|
||||
|
||||
this.emit('update', newNodes);
|
||||
codeBlockService.refreshCombineInfo();
|
||||
return Array.isArray(config) ? newNodes : newNodes[0];
|
||||
}
|
||||
|
||||
@@ -891,6 +886,7 @@ class Editor extends BaseService {
|
||||
await this.select(value.nodeId);
|
||||
this.get('stage')?.select(value.nodeId);
|
||||
}, 0);
|
||||
this.emit('history-change', value.data);
|
||||
}
|
||||
|
||||
private async toggleFixedPosition(dist: MNode, src: MNode, root: MApp) {
|
||||
|
||||
@@ -351,10 +351,8 @@ export type HookData = {
|
||||
};
|
||||
|
||||
export type CodeRelation = {
|
||||
[codeId: Id]: {
|
||||
/** 组件id:['created'] */
|
||||
[compId: Id]: string[];
|
||||
};
|
||||
/** 组件id:[代码id1,代码id2] */
|
||||
[compId: Id]: Id[];
|
||||
};
|
||||
|
||||
export interface CodeDslItem {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/element-plus-adapter",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/form",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -36,8 +36,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.9",
|
||||
"@tmagic/design": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/design": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"lodash-es": "^4.17.21",
|
||||
"sortablejs": "^1.14.0",
|
||||
"vue": "^3.2.37"
|
||||
|
||||
@@ -152,6 +152,7 @@ const getOptions = async () => {
|
||||
formValue: mForm?.values,
|
||||
formValues: mForm?.values,
|
||||
config: props.config,
|
||||
postOptions,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -277,6 +278,7 @@ const getInitOption = async () => {
|
||||
formValue: mForm?.values,
|
||||
formValues: mForm?.values,
|
||||
config: props.config,
|
||||
postOptions,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -253,6 +253,7 @@ type RemoteSelectOptionRequestFunction = (
|
||||
formValue: any;
|
||||
formValues: any;
|
||||
config: any;
|
||||
postOptions: Record<string, any>;
|
||||
},
|
||||
) => any;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/schema",
|
||||
"type": "module",
|
||||
"sideEffects": false,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/stage",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -30,9 +30,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@scena/guides": "^0.17.0",
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"events": "^3.3.0",
|
||||
"keycon": "^1.1.2",
|
||||
"lodash-es": "^4.17.21",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/table",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -33,14 +33,14 @@
|
||||
"url": "https://github.com/Tencent/tmagic-editor.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/design": "1.2.1",
|
||||
"@tmagic/form": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/design": "1.2.5",
|
||||
"@tmagic/form": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"lodash-es": "^4.17.21",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@tmagic/form": "1.2.1",
|
||||
"@tmagic/form": "1.2.5",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/tdesign-vue-next-adapter",
|
||||
"type": "module",
|
||||
"sideEffects": [
|
||||
@@ -42,6 +42,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"element-plus": "^2.2.19",
|
||||
"tdesign-vue-next": "^0.26.0",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@tmagic/ui-react",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
"engines": {
|
||||
@@ -14,8 +14,13 @@
|
||||
"react:build": "tsc && vite build"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"qrcode": "^1.5.0",
|
||||
"react": "^17.0.0",
|
||||
"react-dom": "^17.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"qrcode": "^1.5.0",
|
||||
"react": "^17.0.0",
|
||||
"react-dom": "^17.0.0"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/ui-vue2",
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
@@ -11,13 +11,14 @@
|
||||
"url": "https://github.com/Tencent/tmagic-editor.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"qrcode": "^1.5.0",
|
||||
"vue": "^2.7.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"qrcode": "^1.5.0",
|
||||
"vue": "^2.7.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/ui",
|
||||
"type": "module",
|
||||
"main": "src/index.ts",
|
||||
@@ -12,15 +12,16 @@
|
||||
"url": "https://github.com/Tencent/tmagic-editor.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"delegate": "^3.2.0",
|
||||
"qrcode": "^1.5.0",
|
||||
"tiny-emitter": "^2.1.0",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"qrcode": "^1.5.0",
|
||||
"vue": "^3.2.37"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"name": "@tmagic/utils",
|
||||
"type": "module",
|
||||
"main": "dist/tmagic-utils.umd.cjs",
|
||||
@@ -25,7 +25,10 @@
|
||||
"url": "https://github.com/Tencent/tmagic-editor.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"dayjs": "^1.11.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"dayjs": "^1.11.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "tmagic-playground",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -13,13 +13,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.0.9",
|
||||
"@tmagic/design": "1.2.1",
|
||||
"@tmagic/editor": "1.2.1",
|
||||
"@tmagic/element-plus-adapter": "1.2.1",
|
||||
"@tmagic/form": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/stage": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/design": "1.2.5",
|
||||
"@tmagic/editor": "1.2.5",
|
||||
"@tmagic/element-plus-adapter": "1.2.5",
|
||||
"@tmagic/form": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/stage": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"element-plus": "^2.2.19",
|
||||
"monaco-editor": "^0.34.0",
|
||||
"serialize-javascript": "^6.0.0",
|
||||
|
||||
98
pnpm-lock.yaml
generated
98
pnpm-lock.yaml
generated
@@ -107,7 +107,7 @@ importers:
|
||||
|
||||
packages/core:
|
||||
specifiers:
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@types/events': ^3.0.0
|
||||
'@types/lodash-es': ^4.17.4
|
||||
'@types/node': ^15.12.4
|
||||
@@ -157,12 +157,12 @@ importers:
|
||||
specifiers:
|
||||
'@babel/core': ^7.18.0
|
||||
'@element-plus/icons-vue': ^2.0.9
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/design': 1.2.1
|
||||
'@tmagic/form': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/stage': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/design': 1.2.5
|
||||
'@tmagic/form': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/stage': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/events': ^3.0.0
|
||||
'@types/lodash-es': ^4.17.4
|
||||
'@types/node': ^15.12.4
|
||||
@@ -239,8 +239,8 @@ importers:
|
||||
specifiers:
|
||||
'@babel/core': ^7.18.0
|
||||
'@element-plus/icons-vue': ^2.0.9
|
||||
'@tmagic/design': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/design': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/lodash-es': ^4.17.4
|
||||
'@types/node': ^15.12.4
|
||||
'@types/sortablejs': ^1.10.7
|
||||
@@ -293,9 +293,9 @@ importers:
|
||||
packages/stage:
|
||||
specifiers:
|
||||
'@scena/guides': ^0.17.0
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/events': ^3.0.0
|
||||
'@types/lodash-es': ^4.17.4
|
||||
'@types/node': ^15.12.4
|
||||
@@ -329,9 +329,9 @@ importers:
|
||||
|
||||
packages/table:
|
||||
specifiers:
|
||||
'@tmagic/design': 1.2.1
|
||||
'@tmagic/form': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/design': 1.2.5
|
||||
'@tmagic/form': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/color': ^3.0.1
|
||||
'@types/lodash-es': ^4.17.4
|
||||
'@types/node': ^15.12.4
|
||||
@@ -392,9 +392,9 @@ importers:
|
||||
packages/ui:
|
||||
specifiers:
|
||||
'@testing-library/vue': ^6.4.2
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/qrcode': ^1.4.2
|
||||
'@vue/compiler-sfc': ^3.2.37
|
||||
'@vue/test-utils': ^2.0.0
|
||||
@@ -418,8 +418,8 @@ importers:
|
||||
|
||||
packages/ui-react:
|
||||
specifiers:
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@types/react': ^17.0.37
|
||||
'@types/react-dom': ^17.0.11
|
||||
qrcode: ^1.5.0
|
||||
@@ -439,9 +439,9 @@ importers:
|
||||
|
||||
packages/ui-vue2:
|
||||
specifiers:
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
qrcode: ^1.5.0
|
||||
vite: ^3.1.3
|
||||
vue: ^2.7.4
|
||||
@@ -458,7 +458,7 @@ importers:
|
||||
|
||||
packages/utils:
|
||||
specifiers:
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@types/node': ^15.12.4
|
||||
dayjs: ^1.11.4
|
||||
rimraf: ^3.0.2
|
||||
@@ -476,13 +476,13 @@ importers:
|
||||
playground:
|
||||
specifiers:
|
||||
'@element-plus/icons-vue': ^2.0.9
|
||||
'@tmagic/design': 1.2.1
|
||||
'@tmagic/editor': 1.2.1
|
||||
'@tmagic/element-plus-adapter': 1.2.1
|
||||
'@tmagic/form': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/stage': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/design': 1.2.5
|
||||
'@tmagic/editor': 1.2.5
|
||||
'@tmagic/element-plus-adapter': 1.2.5
|
||||
'@tmagic/form': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/stage': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/node': ^15.12.4
|
||||
'@types/serialize-javascript': ^5.0.1
|
||||
'@vitejs/plugin-legacy': ^2.2.0
|
||||
@@ -532,12 +532,12 @@ importers:
|
||||
|
||||
runtime/react:
|
||||
specifiers:
|
||||
'@tmagic/cli': 1.2.1
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/stage': 1.2.1
|
||||
'@tmagic/ui-react': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/cli': 1.2.5
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/stage': 1.2.5
|
||||
'@tmagic/ui-react': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/react': ^17.0.37
|
||||
'@types/react-dom': ^17.0.11
|
||||
'@vitejs/plugin-legacy': ^2.2.0
|
||||
@@ -571,12 +571,12 @@ importers:
|
||||
|
||||
runtime/vue2:
|
||||
specifiers:
|
||||
'@tmagic/cli': 1.2.1
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/stage': 1.2.1
|
||||
'@tmagic/ui-vue2': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/cli': 1.2.5
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/stage': 1.2.5
|
||||
'@tmagic/ui-vue2': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/events': ^3.0.0
|
||||
'@vitejs/plugin-legacy': ^2.2.0
|
||||
'@vitejs/plugin-vue2': ^1.1.2
|
||||
@@ -612,12 +612,12 @@ importers:
|
||||
|
||||
runtime/vue3:
|
||||
specifiers:
|
||||
'@tmagic/cli': 1.2.1
|
||||
'@tmagic/core': 1.2.1
|
||||
'@tmagic/schema': 1.2.1
|
||||
'@tmagic/stage': 1.2.1
|
||||
'@tmagic/ui': 1.2.1
|
||||
'@tmagic/utils': 1.2.1
|
||||
'@tmagic/cli': 1.2.5
|
||||
'@tmagic/core': 1.2.5
|
||||
'@tmagic/schema': 1.2.5
|
||||
'@tmagic/stage': 1.2.5
|
||||
'@tmagic/ui': 1.2.5
|
||||
'@tmagic/utils': 1.2.5
|
||||
'@types/node': ^15.12.4
|
||||
'@vitejs/plugin-legacy': ^2.2.0
|
||||
'@vitejs/plugin-vue': ^3.1.0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "runtime-react",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -21,12 +21,12 @@
|
||||
"build:event:admin": "vite build --config build.vite.config.ts --mode event:admin"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/cli": "1.2.1",
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/ui-react": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/stage": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/cli": "1.2.5",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/ui-react": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/stage": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"axios": "^0.25.0",
|
||||
"terser": "^5.14.2",
|
||||
"react": "^17.0.2",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "runtime-vue2",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -21,12 +21,12 @@
|
||||
"build:event:admin": "vite build --config build.vite.config.ts --mode event:admin"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/cli": "1.2.1",
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/ui-vue2": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/stage": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/cli": "1.2.5",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/ui-vue2": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/stage": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"axios": "^0.25.0",
|
||||
"terser": "^5.14.2",
|
||||
"vue": "^2.7.4"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "runtime-vue3",
|
||||
"version": "1.2.1",
|
||||
"version": "1.2.5",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -21,12 +21,12 @@
|
||||
"build:event:admin": "vite build --config build.vite.config.ts --mode event:admin"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tmagic/cli": "1.2.1",
|
||||
"@tmagic/core": "1.2.1",
|
||||
"@tmagic/ui": "1.2.1",
|
||||
"@tmagic/schema": "1.2.1",
|
||||
"@tmagic/stage": "1.2.1",
|
||||
"@tmagic/utils": "1.2.1",
|
||||
"@tmagic/cli": "1.2.5",
|
||||
"@tmagic/core": "1.2.5",
|
||||
"@tmagic/ui": "1.2.5",
|
||||
"@tmagic/schema": "1.2.5",
|
||||
"@tmagic/stage": "1.2.5",
|
||||
"@tmagic/utils": "1.2.5",
|
||||
"@vitejs/plugin-legacy": "^2.2.0",
|
||||
"@vitejs/plugin-vue-jsx": "^1.3.10",
|
||||
"axios": "^0.25.0",
|
||||
|
||||
Reference in New Issue
Block a user