Compare commits

...

10 Commits

Author SHA1 Message Date
roymondchen
cce8b63fc3 chore: update lockfile v1.7.13 2026-04-29 15:53:10 +08:00
roymondchen
bd0c5a7514 chore: release v1.7.13 2026-04-29 15:52:06 +08:00
roymondchen
96801e2ccb fix(core): getTransform 支持 string 类型并适配 hippy
Made-with: Cursor
2026-04-29 15:38:17 +08:00
roymondchen
26efa75ff2 feat(editor): update 支持 selectedAfterUpdate 参数控制是否更新 nodes
Made-with: Cursor
2026-04-28 15:50:03 +08:00
roymondchen
59716e909b chore(vue-runtime-help): release v2.0.3
useEditorDsl 返回 root 以便外部访问根节点

Made-with: Cursor
2026-04-24 16:23:11 +08:00
roymondchen
4a102c1277 chore: update lockfile v1.7.12 2026-04-24 15:50:13 +08:00
roymondchen
94e58342e5 chore: release v1.7.12 2026-04-24 15:48:55 +08:00
roymondchen
3c41091f96 refactor(form): 重构 table/group-list 目录结构与新增行逻辑
- 将 table 相关文件迁移至 containers/table 与 containers/table-group-list 目录
- 将新增行处理统一上移至 TableGroupList,通过 add 事件触发
- 抽取 TableGroupListCommonConfig 公共配置类型
- useFullscreen 内聚管理 zIndex
- TableColumnConfig 支持 text 作为 label 别名

Made-with: Cursor
2026-04-24 15:45:15 +08:00
roymondchen
b5af91f86c chore: update lock 2026-04-23 20:52:39 +08:00
roymondchen
540d9cd5bb chore(vue-runtime-help): release v2.0.2 2026-04-23 20:50:21 +08:00
42 changed files with 371 additions and 366 deletions

View File

@ -1,3 +1,21 @@
## [1.7.13](https://github.com/Tencent/tmagic-editor/compare/v1.7.12...v1.7.13) (2026-04-29)
### Bug Fixes
* **core:** getTransform 支持 string 类型并适配 hippy ([96801e2](https://github.com/Tencent/tmagic-editor/commit/96801e2ccba1fb400007e988aebbda7195e8ff15))
### Features
* **editor:** update 支持 selectedAfterUpdate 参数控制是否更新 nodes ([26efa75](https://github.com/Tencent/tmagic-editor/commit/26efa75ff2cf03d4e27e3e77592d0304d343e44a))
## [1.7.12](https://github.com/Tencent/tmagic-editor/compare/v1.7.11...v1.7.12) (2026-04-24)
## [1.7.11](https://github.com/Tencent/tmagic-editor/compare/v1.7.10...v1.7.11) (2026-04-23) ## [1.7.11](https://github.com/Tencent/tmagic-editor/compare/v1.7.10...v1.7.11) (2026-04-23)

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "tmagic", "name": "tmagic",
"private": true, "private": true,
"type": "module", "type": "module",

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/cli", "name": "@tmagic/cli",
"main": "lib/index.js", "main": "lib/index.js",
"types": "lib/index.d.ts", "types": "lib/index.d.ts",

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/core", "name": "@tmagic/core",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -56,8 +56,22 @@ export const fillBackgroundImage = (value: string) => {
return value; return value;
}; };
export const getTransform = (value: Record<string, string>, jsEngine: JsEngine) => { export const getTransform = (value: Record<string, string> | string, jsEngine: JsEngine) => {
if (!value) return []; const isHippy = jsEngine === 'hippy';
if (!value) return isHippy ? [] : '';
if (typeof value === 'string') {
if (!isHippy) return value;
// Hippy 不支持 css transform 字符串,需要将 "rotate(90deg) scale(1.5)" 解析成 [{ rotate: '90deg' }, { scale: '1.5' }]
const transformArr: Record<string, string>[] = [];
value.replace(/(\w+)\(([^)]+)\)/g, (_, key, val) => {
transformArr.push({ [key]: val.trim() });
return '';
});
return transformArr;
}
const transform = Object.entries(value).map(([transformKey, transformValue]) => { const transform = Object.entries(value).map(([transformKey, transformValue]) => {
if (!transformValue.trim()) return ''; if (!transformValue.trim()) return '';
@ -65,14 +79,14 @@ export const getTransform = (value: Record<string, string>, jsEngine: JsEngine)
transformValue = `${transformValue}deg`; transformValue = `${transformValue}deg`;
} }
return jsEngine !== 'hippy' ? `${transformKey}(${transformValue})` : { [transformKey]: transformValue }; return isHippy ? { [transformKey]: transformValue } : `${transformKey}(${transformValue})`;
}); });
if (jsEngine === 'hippy') { if (isHippy) {
return transform; return transform;
} }
const values = transform.join(' '); const values = transform.join(' ');
return !values.trim() ? 'none' : values; return values.trim();
}; };
/** /**
@ -102,8 +116,11 @@ export const transformStyle = (style: Record<string, any> | string, jsEngine: Js
results.transform = [{ scale: value }]; results.transform = [{ scale: value }];
} else if (key === 'backgroundImage' && !isHippy) { } else if (key === 'backgroundImage' && !isHippy) {
value && (results[key] = fillBackgroundImage(value)); value && (results[key] = fillBackgroundImage(value));
} else if (key === 'transform' && typeof value !== 'string') { } else if (key === 'transform') {
results[key] = getTransform(value, jsEngine); const transform = getTransform(value, jsEngine);
if (transform) {
results[key] = transform;
}
} else if (!whiteList.includes(key) && value && /^[-]?[0-9]*[.]?[0-9]*$/.test(value)) { } else if (!whiteList.includes(key) && value && /^[-]?[0-9]*[.]?[0-9]*$/.test(value)) {
results[key] = isHippy ? value : `${value / 100}rem`; results[key] = isHippy ? value : `${value / 100}rem`;
} else { } else {

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/data-source", "name": "@tmagic/data-source",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/dep", "name": "@tmagic/dep",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/design", "name": "@tmagic/design",
"type": "module", "type": "module",
"sideEffects": [ "sideEffects": [

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/editor", "name": "@tmagic/editor",
"type": "module", "type": "module",
"sideEffects": [ "sideEffects": [

View File

@ -509,7 +509,10 @@ class Editor extends BaseService {
public async doUpdate( public async doUpdate(
config: MNode, config: MNode,
{ changeRecords = [] }: { changeRecords?: ChangeRecord[] } = {}, {
changeRecords = [],
selectedAfterUpdate = true,
}: { changeRecords?: ChangeRecord[]; selectedAfterUpdate?: boolean } = {},
): Promise<{ newNode: MNode; oldNode: MNode; changeRecords?: ChangeRecord[] }> { ): Promise<{ newNode: MNode; oldNode: MNode; changeRecords?: ChangeRecord[] }> {
const root = this.get('root'); const root = this.get('root');
if (!root) throw new Error('root为空'); if (!root) throw new Error('root为空');
@ -554,10 +557,12 @@ class Editor extends BaseService {
parentNodeItems[index] = newConfig; parentNodeItems[index] = newConfig;
// 将update后的配置更新到nodes中 // 将update后的配置更新到nodes中
if (selectedAfterUpdate) {
const nodes = this.get('nodes'); const nodes = this.get('nodes');
const targetIndex = nodes.findIndex((nodeItem: MNode) => `${nodeItem.id}` === `${newConfig.id}`); const targetIndex = nodes.findIndex((nodeItem: MNode) => `${nodeItem.id}` === `${newConfig.id}`);
nodes.splice(targetIndex, 1, newConfig); nodes.splice(targetIndex, 1, newConfig);
this.set('nodes', [...nodes]); this.set('nodes', [...nodes]);
}
if (isPage(newConfig) || isPageFragment(newConfig)) { if (isPage(newConfig) || isPageFragment(newConfig)) {
this.set('page', newConfig as MPage | MPageFragment); this.set('page', newConfig as MPage | MPageFragment);
@ -580,7 +585,7 @@ class Editor extends BaseService {
*/ */
public async update( public async update(
config: MNode | MNode[], config: MNode | MNode[],
data: { changeRecords?: ChangeRecord[] } = {}, data: { changeRecords?: ChangeRecord[]; selectedAfterUpdate?: boolean } = {},
): Promise<MNode | MNode[]> { ): Promise<MNode | MNode[]> {
this.captureSelectionBeforeOp(); this.captureSelectionBeforeOp();

View File

@ -1,11 +1,11 @@
import type { DataSchema, DataSourceFieldType, DataSourceSchema } from '@tmagic/core'; import type { DataSchema, DataSourceFieldType, DataSourceSchema } from '@tmagic/core';
import { type CascaderOption, defineFormItem, type FormConfig } from '@tmagic/form'; import { type CascaderOption, type FormConfig, type TabConfig } from '@tmagic/form';
import { dataSourceTemplateRegExp, getKeysArray, isNumber } from '@tmagic/utils'; import { dataSourceTemplateRegExp, getKeysArray, isNumber } from '@tmagic/utils';
import BaseFormConfig from './formConfigs/base'; import BaseFormConfig from './formConfigs/base';
import HttpFormConfig from './formConfigs/http'; import HttpFormConfig from './formConfigs/http';
const dataSourceFormConfig = defineFormItem({ const dataSourceFormConfig: TabConfig = {
type: 'tab', type: 'tab',
items: [ items: [
{ {
@ -73,9 +73,13 @@ const dataSourceFormConfig = defineFormItem({
], ],
}, },
], ],
}); };
const fillConfig = (config: FormConfig): FormConfig => [...BaseFormConfig(), ...config, dataSourceFormConfig]; const fillConfig = <T = never>(config: FormConfig<T>): FormConfig<T> => [
...BaseFormConfig(),
...config,
dataSourceFormConfig,
];
export const getFormConfig = (type: string, configs: Record<string, FormConfig>): FormConfig => { export const getFormConfig = (type: string, configs: Record<string, FormConfig>): FormConfig => {
switch (type) { switch (type) {

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/element-plus-adapter", "name": "@tmagic/element-plus-adapter",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/form-schema", "name": "@tmagic/form-schema",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -701,28 +701,43 @@ export interface PanelConfig<T = never> extends FormItem, ContainerCommonConfig<
schematic?: string; schematic?: string;
} }
export interface TableColumnConfig extends FormItem { export interface TableGroupListCommonConfig extends FormItem {
type: 'table' | 'groupList' | 'group-list';
enableToggleMode?: boolean;
/** 最大行数 */
max?: number;
enum?: any[];
/** 是否显示添加按钮 */
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 新增的默认行,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
/** table 新增行时前置回调 */
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean | Promise<boolean>;
}
export interface TableColumnConfig<T = never> extends FormItem {
name?: string; name?: string;
label: string; label?: string;
text?: string;
width?: string | number; width?: string | number;
sortable?: boolean; sortable?: boolean;
items?: FormConfig; items?: FormConfig<T>;
itemsFunction?: (row: any) => FormConfig; itemsFunction?: (row: any) => FormConfig<T>;
titleTip?: FilterFunction<string>; titleTip?: FilterFunction<string>;
type?: string; type?: string;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
} }
/** /**
* *
*/ */
export interface TableConfig extends FormItem { export interface TableConfig<T = never> extends TableGroupListCommonConfig {
type: 'table' | 'groupList' | 'group-list'; items: TableColumnConfig<T>[];
items: TableColumnConfig[]; tableItems?: TableColumnConfig<T>[];
tableItems?: TableColumnConfig[]; groupItems?: TableColumnConfig<T>[];
groupItems?: TableColumnConfig[];
enableToggleMode?: boolean;
/** 最大行数 */
max?: number;
/** 最大高度 */ /** 最大高度 */
maxHeight?: number | string; maxHeight?: number | string;
border?: boolean; border?: boolean;
@ -731,9 +746,6 @@ export interface TableConfig extends FormItem {
/** 操作栏宽度 */ /** 操作栏宽度 */
operateColWidth?: number | string; operateColWidth?: number | string;
pagination?: boolean; pagination?: boolean;
enum?: any[];
/** 是否显示添加按钮 */
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 是否显示删除按钮 */ /** 是否显示删除按钮 */
delete?: (model: any, index: number, values: any) => boolean | boolean; delete?: (model: any, index: number, values: any) => boolean | boolean;
copyable?: (model: any, data: any) => boolean | boolean; copyable?: (model: any, data: any) => boolean | boolean;
@ -741,8 +753,6 @@ export interface TableConfig extends FormItem {
importable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean; importable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 是否显示checkbox */ /** 是否显示checkbox */
selection?: (mForm: FormState | undefined, data: any) => boolean | boolean | 'single'; selection?: (mForm: FormState | undefined, data: any) => boolean | boolean | 'single';
/** 新增的默认行,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
copyHandler?: (mForm: FormState | undefined, data: any) => any; copyHandler?: (mForm: FormState | undefined, data: any) => any;
onSelect?: (mForm: FormState | undefined, data: any) => any; onSelect?: (mForm: FormState | undefined, data: any) => any;
/** @deprecated 请使用 defaultSort */ /** @deprecated 请使用 defaultSort */
@ -760,20 +770,12 @@ export interface TableConfig extends FormItem {
itemExtra?: string | FilterFunction<string>; itemExtra?: string | FilterFunction<string>;
titleTip?: FilterFunction<string>; titleTip?: FilterFunction<string>;
rowKey?: string; rowKey?: string;
/** table 新增行时前置回调 */
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean | Promise<boolean>;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
sort?: boolean; sort?: boolean;
sortKey?: string; sortKey?: string;
} }
export interface GroupListConfig<T = never> extends FormItem { export interface GroupListConfig<T = never> extends TableGroupListCommonConfig {
type: 'table' | 'groupList' | 'group-list';
span?: number; span?: number;
enableToggleMode?: boolean;
items: FormConfig<T>; items: FormConfig<T>;
groupItems?: FormConfig<T>; groupItems?: FormConfig<T>;
tableItems?: FormConfig<T>; tableItems?: FormConfig<T>;
@ -788,9 +790,6 @@ export interface GroupListConfig<T = never> extends FormItem {
* *
*/ */
defaultExpandQuantity?: number; defaultExpandQuantity?: number;
addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean;
/** 新增的默认值,可以是函数动态生成或静态对象 */
defaultAdd?: ((mForm: FormState | undefined, data: any) => any) | Record<string, any>;
delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean; delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean;
copyable?: FilterFunction<boolean>; copyable?: FilterFunction<boolean>;
movable?: ( movable?: (
@ -800,13 +799,6 @@ export interface GroupListConfig<T = never> extends FormItem {
groupModel: any, groupModel: any,
) => boolean | boolean; ) => boolean | boolean;
moveSpecifyLocation?: boolean; moveSpecifyLocation?: boolean;
addButtonConfig?: {
props?: Record<string, any>;
text?: string;
};
/** 最大行数 */
max?: number;
beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean;
} }
interface StepItemConfig<T = never> extends FormItem, ContainerCommonConfig<T> { interface StepItemConfig<T = never> extends FormItem, ContainerCommonConfig<T> {

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/form", "name": "@tmagic/form",
"type": "module", "type": "module",
"sideEffects": [ "sideEffects": [

View File

@ -29,20 +29,16 @@
<div class="m-fields-group-list-footer"> <div class="m-fields-group-list-footer">
<slot name="toggle-button"></slot> <slot name="toggle-button"></slot>
<div style="display: flex; justify-content: flex-end; flex: 1"> <div style="display: flex; justify-content: flex-end; flex: 1">
<slot name="add-button" :trigger="addHandler"></slot> <slot name="add-button"></slot>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { inject } from 'vue';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import { tMagicMessage } from '@tmagic/design'; import type { ContainerChangeEventData, GroupListConfig } from '../schema';
import type { ContainerChangeEventData, FormState, GroupListConfig } from '../schema';
import { initValue } from '../utils/form';
import MFieldsGroupListItem from './GroupListItem.vue'; import MFieldsGroupListItem from './GroupListItem.vue';
@ -68,59 +64,10 @@ const emit = defineEmits<{
addDiffCount: []; addDiffCount: [];
}>(); }>();
const mForm = inject<FormState | undefined>('mForm');
const changeHandler = (v: any, eventData: ContainerChangeEventData) => { const changeHandler = (v: any, eventData: ContainerChangeEventData) => {
emit('change', props.model, eventData); emit('change', props.model, eventData);
}; };
const addHandler = async () => {
if (!props.name) return false;
if (props.config.max && props.model[props.name].length >= props.config.max) {
tMagicMessage.error(`最多新增配置不能超过${props.config.max}`);
return;
}
if (typeof props.config.beforeAddRow === 'function') {
const beforeCheckRes = await props.config.beforeAddRow(mForm, {
model: props.model[props.name],
formValue: mForm?.values,
prop: props.prop,
});
if (!beforeCheckRes) return;
}
let initValues = {};
if (typeof props.config.defaultAdd === 'function') {
initValues = await props.config.defaultAdd(mForm, {
model: props.model[props.name],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
} else if (props.config.defaultAdd) {
initValues = props.config.defaultAdd;
}
const groupValue = await initValue(mForm, {
config: props.config.items,
initValues,
});
props.model[props.name].push(groupValue);
emit('change', props.model[props.name], {
changeRecords: [
{
propPath: `${props.prop}.${props.model[props.name].length - 1}`,
value: groupValue,
},
],
});
};
const removeHandler = (index: number) => { const removeHandler = (index: number) => {
if (!props.name) return false; if (!props.name) return false;

View File

@ -1,6 +1,7 @@
<template> <template>
<component <component
:is="displayMode === 'table' ? MFormTable : MFormGroupList" :is="displayMode === 'table' ? MFormTable : MFormGroupList"
ref="tableGroupList"
v-bind="$attrs" v-bind="$attrs"
:model="model" :model="model"
:name="`${name}`" :name="`${name}`"
@ -17,6 +18,7 @@
@change="onChange" @change="onChange"
@select="onSelect" @select="onSelect"
@addDiffCount="onAddDiffCount" @addDiffCount="onAddDiffCount"
@add="onAdd"
> >
<template #toggle-button> <template #toggle-button>
<TMagicButton <TMagicButton
@ -29,16 +31,15 @@
</TMagicButton> </TMagicButton>
</template> </template>
<template #add-button="{ trigger }"> <template #add-button v-if="addable">
<TMagicButton <TMagicButton
v-if="addable"
:class="displayMode === 'table' ? 'm-form-table-add-button' : ''" :class="displayMode === 'table' ? 'm-form-table-add-button' : ''"
:size="addButtonSize" :size="addButtonSize"
:plain="displayMode === 'table'" :plain="displayMode === 'table'"
:icon="Plus" :icon="Plus"
:disabled="disabled" :disabled="disabled"
v-bind="currentConfig.addButtonConfig?.props || { type: 'primary' }" v-bind="currentConfig.addButtonConfig?.props || { type: 'primary' }"
@click="trigger" @click="newHandler"
> >
{{ currentConfig.addButtonConfig?.text || (displayMode === 'table' ? '新增一行' : '新增') }} {{ currentConfig.addButtonConfig?.text || (displayMode === 'table' ? '新增一行' : '新增') }}
</TMagicButton> </TMagicButton>
@ -47,16 +48,17 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, inject, ref } from 'vue'; import { computed, ref, useTemplateRef } from 'vue';
import { Grid, Plus } from '@element-plus/icons-vue'; import { Grid, Plus } from '@element-plus/icons-vue';
import { TMagicButton } from '@tmagic/design'; import { TMagicButton } from '@tmagic/design';
import type { FormState, GroupListConfig, TableConfig } from '@tmagic/form-schema'; import type { GroupListConfig, TableConfig } from '@tmagic/form-schema';
import type { ContainerChangeEventData } from '../schema'; import type { ContainerChangeEventData } from '../../schema';
import MFormGroupList from '../GroupList.vue';
import MFormTable from '../table/Table.vue'; import MFormTable from '../table/Table.vue';
import MFormGroupList from './GroupList.vue'; import { useAdd } from './useAdd';
defineOptions({ defineOptions({
name: 'MFormTableGroupList', name: 'MFormTableGroupList',
@ -81,28 +83,7 @@ const props = defineProps<{
const emit = defineEmits(['change', 'select', 'addDiffCount']); const emit = defineEmits(['change', 'select', 'addDiffCount']);
const mForm = inject<FormState | undefined>('mForm'); const { addable, newHandler } = useAdd(props, emit);
const addable = computed(() => {
const modelName = props.name || props.config.name || '';
if (!modelName) return false;
if (!props.model[modelName].length) {
return true;
}
if (typeof props.config.addable === 'function') {
return props.config.addable(mForm, {
model: props.model[modelName],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
}
return typeof props.config.addable === 'undefined' ? true : props.config.addable;
});
const isGroupListType = (type: string | undefined) => type === 'groupList' || type === 'group-list'; const isGroupListType = (type: string | undefined) => type === 'groupList' || type === 'group-list';
@ -178,4 +159,15 @@ const toggleDisplayMode = () => {
const onChange = (v: any, eventData?: ContainerChangeEventData) => emit('change', v, eventData); const onChange = (v: any, eventData?: ContainerChangeEventData) => emit('change', v, eventData);
const onSelect = (...args: any[]) => emit('select', ...args); const onSelect = (...args: any[]) => emit('select', ...args);
const onAddDiffCount = () => emit('addDiffCount'); const onAddDiffCount = () => emit('addDiffCount');
const onAdd = (rows: any[]) => {
rows.forEach((row: any) => {
newHandler(row);
});
};
const tableGroupListRef = useTemplateRef<InstanceType<typeof MFormTable>>('tableGroupList');
defineExpose({
toggleRowSelection: (row: any, selected: boolean) => tableGroupListRef.value?.toggleRowSelection?.(row, selected),
});
</script> </script>

View File

@ -1,18 +1,43 @@
import { inject } from 'vue'; import { computed, inject } from 'vue';
import { tMagicMessage } from '@tmagic/design'; import { tMagicMessage } from '@tmagic/design';
import type { FormConfig, FormState } from '@tmagic/form-schema'; import type { FormConfig, FormState, TableConfig, TableGroupListCommonConfig } from '@tmagic/form-schema';
import { initValue } from '../utils/form'; import { initValue } from '../../utils/form';
import type { TableProps } from '../table/type';
import type { TableProps } from './type';
export const useAdd = ( export const useAdd = (
props: TableProps, props: Pick<TableProps, 'name' | 'model' | 'prop' | 'sortKey'> & {
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void, config: Pick<TableGroupListCommonConfig, 'addable' | 'max' | 'beforeAddRow' | 'defaultAdd' | 'enum'> &
Pick<TableConfig, 'key' | 'name'> & {
items: { name?: string | number }[];
};
},
emit: (event: 'change', ...args: any[]) => void,
) => { ) => {
const mForm = inject<FormState | undefined>('mForm'); const mForm = inject<FormState | undefined>('mForm');
const addable = computed(() => {
const modelName = props.name || props.config.name || '';
if (!modelName) return false;
if (!props.model[modelName].length) {
return true;
}
if (typeof props.config.addable === 'function') {
return props.config.addable(mForm, {
model: props.model[modelName],
formValue: mForm?.values,
prop: props.prop,
config: props.config,
});
}
return typeof props.config.addable === 'undefined' ? true : props.config.addable;
});
const newHandler = async (row?: any) => { const newHandler = async (row?: any) => {
const modelName = props.name || props.config.name || ''; const modelName = props.name || props.config.name || '';
@ -91,6 +116,7 @@ export const useAdd = (
}; };
return { return {
addable,
newHandler, newHandler,
}; };
}; };

View File

@ -38,7 +38,7 @@ import { cloneDeep } from 'lodash-es';
import { TMagicButton, TMagicTooltip } from '@tmagic/design'; import { TMagicButton, TMagicTooltip } from '@tmagic/design';
import type { FormState, TableConfig } from '../schema'; import type { FormState, TableConfig } from '../../schema';
const emit = defineEmits(['change']); const emit = defineEmits(['change']);

View File

@ -58,7 +58,7 @@
>清空</TMagicButton >清空</TMagicButton
> >
</div> </div>
<slot name="add-button" :trigger="newHandler"></slot> <slot name="add-button"></slot>
</div> </div>
<div class="bottom" style="text-align: right" v-if="config.pagination"> <div class="bottom" style="text-align: right" v-if="config.pagination">
@ -80,16 +80,15 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { computed, ref, useTemplateRef, watch } from 'vue'; import { computed, ref, useTemplateRef } from 'vue';
import { FullScreen } from '@element-plus/icons-vue'; import { FullScreen } from '@element-plus/icons-vue';
import { TMagicButton, TMagicPagination, TMagicTable, TMagicTooltip, TMagicUpload, useZIndex } from '@tmagic/design'; import { TMagicButton, TMagicPagination, TMagicTable, TMagicTooltip, TMagicUpload } from '@tmagic/design';
import type { SortProp } from '../schema'; import type { SortProp } from '../../schema';
import { sortChange } from '../utils/form'; import { sortChange } from '../../utils/form';
import type { TableProps } from './type'; import type { TableProps } from './type';
import { useAdd } from './useAdd';
import { useFullscreen } from './useFullscreen'; import { useFullscreen } from './useFullscreen';
import { useImport } from './useImport'; import { useImport } from './useImport';
import { usePagination } from './usePagination'; import { usePagination } from './usePagination';
@ -109,7 +108,7 @@ const props = withDefaults(defineProps<TableProps>(), {
isCompare: false, isCompare: false,
}); });
const emit = defineEmits(['change', 'select', 'addDiffCount']); const emit = defineEmits(['change', 'select', 'addDiffCount', 'add']);
const modelName = computed(() => props.name || props.config.name || ''); const modelName = computed(() => props.name || props.config.name || '');
const tMagicTableRef = useTemplateRef<InstanceType<typeof TMagicTable>>('tMagicTable'); const tMagicTableRef = useTemplateRef<InstanceType<typeof TMagicTable>>('tMagicTable');
@ -119,22 +118,13 @@ const { pageSize, currentPage, paginationData, handleSizeChange, handleCurrentCh
modelName, modelName,
); );
const { nextZIndex } = useZIndex();
const updateKey = ref(1); const updateKey = ref(1);
const fullscreenZIndex = ref(nextZIndex());
const { newHandler } = useAdd(props, emit);
const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName); const { columns } = useTableColumns(props, emit, currentPage, pageSize, modelName);
useSortable(props, emit, tMagicTableRef, modelName, updateKey); useSortable(props, emit, tMagicTableRef, modelName, updateKey);
const { isFullscreen, toggleFullscreen } = useFullscreen(); const { isFullscreen, fullscreenZIndex, toggleFullscreen } = useFullscreen();
watch(isFullscreen, (value) => { const { importable, excelHandler, clearHandler } = useImport(props, emit);
if (value) {
fullscreenZIndex.value = nextZIndex();
}
});
const { importable, excelHandler, clearHandler } = useImport(props, emit, newHandler);
const { selectHandle, toggleRowSelection } = useSelection(props, emit, tMagicTableRef); const { selectHandle, toggleRowSelection } = useSelection(props, emit, tMagicTableRef);
const data = computed(() => (props.config.pagination ? paginationData.value : props.model[modelName.value])); const data = computed(() => (props.config.pagination ? paginationData.value : props.model[modelName.value]));

View File

@ -0,0 +1,31 @@
import { ref, watch } from 'vue';
import { useZIndex } from '@tmagic/design';
export const useFullscreen = () => {
const { nextZIndex } = useZIndex();
const fullscreenZIndex = ref(nextZIndex());
const isFullscreen = ref(false);
const toggleFullscreen = () => {
if (isFullscreen.value) {
isFullscreen.value = false;
} else {
isFullscreen.value = true;
}
};
watch(isFullscreen, (value) => {
if (value) {
fullscreenZIndex.value = nextZIndex();
}
});
return {
isFullscreen,
fullscreenZIndex,
toggleFullscreen,
};
};

View File

@ -8,8 +8,7 @@ import type { TableProps } from './type';
export const useImport = ( export const useImport = (
props: TableProps, props: TableProps,
emit: (event: 'select' | 'change' | 'addDiffCount', ...args: any[]) => void, emit: (event: 'select' | 'change' | 'addDiffCount' | 'add', ...args: any[]) => void,
newHandler: (row: any) => void,
) => { ) => {
const mForm = inject<FormState | undefined>('mForm'); const mForm = inject<FormState | undefined>('mForm');
const modelName = computed(() => props.name || props.config.name || ''); const modelName = computed(() => props.name || props.config.name || '');
@ -41,9 +40,7 @@ export const useImport = (
pdata.SheetNames.forEach((sheetName: string) => { pdata.SheetNames.forEach((sheetName: string) => {
const arr = (globalThis as any).XLSX.utils.sheet_to_json(pdata.Sheets[sheetName], { header: 1 }); const arr = (globalThis as any).XLSX.utils.sheet_to_json(pdata.Sheets[sheetName], { header: 1 });
if (arr?.[0]) { if (arr?.[0]) {
arr.forEach((row: any) => { emit('add', arr);
newHandler(row);
});
} }
setTimeout(() => { setTimeout(() => {
excelBtn.value?.clearFiles(); excelBtn.value?.clearFiles();

View File

@ -1,6 +1,6 @@
import { computed, type Ref, ref } from 'vue'; import { computed, type Ref, ref } from 'vue';
import { getDataByPage } from '../utils/form'; import { getDataByPage } from '../../utils/form';
import type { TableProps } from './type'; import type { TableProps } from './type';

View File

@ -4,7 +4,7 @@ import type { default as SortableType, SortableEvent } from 'sortablejs';
import { type TMagicTable } from '@tmagic/design'; import { type TMagicTable } from '@tmagic/design';
import type { FormState } from '@tmagic/form-schema'; import type { FormState } from '@tmagic/form-schema';
import { sortArray } from '../utils/form'; import { sortArray } from '../../utils/form';
import type { TableProps } from './type'; import type { TableProps } from './type';

View File

@ -5,9 +5,9 @@ import { cloneDeep } from 'lodash-es';
import { type TableColumnOptions, TMagicIcon, TMagicTooltip } from '@tmagic/design'; import { type TableColumnOptions, TMagicIcon, TMagicTooltip } from '@tmagic/design';
import type { FormItemConfig, FormState, TableColumnConfig } from '@tmagic/form-schema'; import type { FormItemConfig, FormState, TableColumnConfig } from '@tmagic/form-schema';
import Container from '../containers/Container.vue'; import type { ContainerChangeEventData } from '../../schema';
import type { ContainerChangeEventData } from '../schema'; import { display as displayFunc, getDataByPage, sortArray } from '../../utils/form';
import { display as displayFunc, getDataByPage, sortArray } from '../utils/form'; import Container from '../Container.vue';
import ActionsColumn from './ActionsColumn.vue'; import ActionsColumn from './ActionsColumn.vue';
import SortColumn from './SortColumn.vue'; import SortColumn from './SortColumn.vue';
@ -187,7 +187,7 @@ export const useTableColumns = (
columns.push({ columns.push({
props: { props: {
prop: column.name, prop: column.name,
label: column.label, label: column.label || column.text,
width: column.width, width: column.width,
sortable: column.sortable, sortable: column.sortable,
sortOrders: ['ascending', 'descending'], sortOrders: ['ascending', 'descending'],
@ -223,7 +223,10 @@ export const useTableColumns = (
gap: '5px', gap: '5px',
}, },
}, },
[h('span', column.label), h(TMagicIcon, {}, { default: () => h(WarningFilled) })], [
h('span', column.label || column.text),
h(TMagicIcon, {}, { default: () => h(WarningFilled) }),
],
), ),
content: () => content: () =>
h('div', { h('div', {

View File

@ -32,9 +32,9 @@ export { default as MFlexLayout } from './containers/FlexLayout.vue';
export { default as MPanel } from './containers/Panel.vue'; export { default as MPanel } from './containers/Panel.vue';
export { default as MRow } from './containers/Row.vue'; export { default as MRow } from './containers/Row.vue';
export { default as MTabs } from './containers/Tabs.vue'; export { default as MTabs } from './containers/Tabs.vue';
export { default as MTable } from './containers/TableGroupList.vue'; export { default as MTable } from './containers/table-group-list/TableGroupList.vue';
export { default as MGroupList } from './containers/TableGroupList.vue'; export { default as MGroupList } from './containers/table-group-list/TableGroupList.vue';
export { default as MTableGroupList } from './containers/TableGroupList.vue'; export { default as MTableGroupList } from './containers/table-group-list/TableGroupList.vue';
export { default as MText } from './fields/Text.vue'; export { default as MText } from './fields/Text.vue';
export { default as MNumber } from './fields/Number.vue'; export { default as MNumber } from './fields/Number.vue';
export { default as MNumberRange } from './fields/NumberRange.vue'; export { default as MNumberRange } from './fields/NumberRange.vue';

View File

@ -24,7 +24,7 @@ import FlexLayout from './containers/FlexLayout.vue';
import Panel from './containers/Panel.vue'; import Panel from './containers/Panel.vue';
import Row from './containers/Row.vue'; import Row from './containers/Row.vue';
import MStep from './containers/Step.vue'; import MStep from './containers/Step.vue';
import TableGroupList from './containers/TableGroupList.vue'; import TableGroupList from './containers/table-group-list/TableGroupList.vue';
import Tabs from './containers/Tabs.vue'; import Tabs from './containers/Tabs.vue';
import Cascader from './fields/Cascader.vue'; import Cascader from './fields/Cascader.vue';
import Checkbox from './fields/Checkbox.vue'; import Checkbox from './fields/Checkbox.vue';

View File

@ -1,18 +0,0 @@
import { ref } from 'vue';
export const useFullscreen = () => {
const isFullscreen = ref(false);
const toggleFullscreen = () => {
if (isFullscreen.value) {
isFullscreen.value = false;
} else {
isFullscreen.value = true;
}
};
return {
isFullscreen,
toggleFullscreen,
};
};

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/schema", "name": "@tmagic/schema",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/stage", "name": "@tmagic/stage",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/table", "name": "@tmagic/table",
"type": "module", "type": "module",
"sideEffects": [ "sideEffects": [

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/tdesign-vue-next-adapter", "name": "@tmagic/tdesign-vue-next-adapter",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,5 +1,5 @@
{ {
"version": "1.7.11", "version": "1.7.13",
"name": "@tmagic/utils", "name": "@tmagic/utils",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -1,6 +1,6 @@
{ {
"name": "tmagic-playground", "name": "tmagic-playground",
"version": "1.7.11", "version": "1.7.13",
"type": "module", "type": "module",
"private": true, "private": true,
"scripts": { "scripts": {
@ -12,11 +12,11 @@
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.3.2", "@element-plus/icons-vue": "^2.3.2",
"@tmagic/core": "1.7.11", "@tmagic/core": "1.7.13",
"@tmagic/design": "1.7.11", "@tmagic/design": "1.7.13",
"@tmagic/editor": "1.7.11", "@tmagic/editor": "1.7.13",
"@tmagic/element-plus-adapter": "1.7.11", "@tmagic/element-plus-adapter": "1.7.13",
"@tmagic/tdesign-vue-next-adapter": "1.7.11", "@tmagic/tdesign-vue-next-adapter": "1.7.13",
"@tmagic/tmagic-form-runtime": "1.1.3", "@tmagic/tmagic-form-runtime": "1.1.3",
"element-plus": "^2.11.8", "element-plus": "^2.11.8",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",

276
pnpm-lock.yaml generated
View File

@ -554,23 +554,23 @@ importers:
specifier: ^2.3.2 specifier: ^2.3.2
version: 2.3.2(vue@3.5.33(typescript@6.0.3)) version: 2.3.2(vue@3.5.33(typescript@6.0.3))
'@tmagic/core': '@tmagic/core':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3) version: 1.7.13(typescript@6.0.3)
'@tmagic/design': '@tmagic/design':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/editor': '@tmagic/editor':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/schema@1.7.13(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/element-plus-adapter': '@tmagic/element-plus-adapter':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/tdesign-vue-next-adapter': '@tmagic/tdesign-vue-next-adapter':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/tmagic-form-runtime': '@tmagic/tmagic-form-runtime':
specifier: 1.1.3 specifier: 1.1.3
version: 1.1.3(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 1.1.3(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/editor@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/schema@1.7.13(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus: element-plus:
specifier: ^2.11.8 specifier: ^2.11.8
version: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)) version: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
@ -910,14 +910,14 @@ importers:
runtime/react: runtime/react:
dependencies: dependencies:
'@tmagic/core': '@tmagic/core':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3) version: 1.7.13(typescript@6.0.3)
'@tmagic/react-runtime-help': '@tmagic/react-runtime-help':
specifier: 0.2.2 specifier: 0.2.2
version: 0.2.2(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3) version: 0.2.2(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/stage@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)
'@tmagic/stage': '@tmagic/stage':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) version: 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
axios: axios:
specifier: ^1.13.2 specifier: ^1.13.2
version: 1.13.2 version: 1.13.2
@ -932,8 +932,8 @@ importers:
version: 18.3.1(react@18.3.1) version: 18.3.1(react@18.3.1)
devDependencies: devDependencies:
'@tmagic/cli': '@tmagic/cli':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3) version: 1.7.13(typescript@6.0.3)
'@types/fs-extra': '@types/fs-extra':
specifier: ^11.0.4 specifier: ^11.0.4
version: 11.0.4 version: 11.0.4
@ -1008,14 +1008,14 @@ importers:
runtime/vue: runtime/vue:
dependencies: dependencies:
'@tmagic/core': '@tmagic/core':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3) version: 1.7.13(typescript@6.0.3)
'@tmagic/stage': '@tmagic/stage':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) version: 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/vue-runtime-help': '@tmagic/vue-runtime-help':
specifier: ^2.0.0 specifier: ^2.0.1
version: 2.0.0(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) version: 2.0.2(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/stage@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
axios: axios:
specifier: ^1.13.2 specifier: ^1.13.2
version: 1.13.2 version: 1.13.2
@ -1024,8 +1024,8 @@ importers:
version: 3.5.33(typescript@6.0.3) version: 3.5.33(typescript@6.0.3)
devDependencies: devDependencies:
'@tmagic/cli': '@tmagic/cli':
specifier: 1.7.10 specifier: 1.7.13
version: 1.7.10(typescript@6.0.3) version: 1.7.13(typescript@6.0.3)
'@types/fs-extra': '@types/fs-extra':
specifier: ^11.0.4 specifier: ^11.0.4
version: 11.0.4 version: 11.0.4
@ -2825,12 +2825,12 @@ packages:
'@sxzz/popperjs-es@2.11.7': '@sxzz/popperjs-es@2.11.7':
resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
'@tmagic/cli@1.7.10': '@tmagic/cli@1.7.13':
resolution: {integrity: sha512-GsFUgkfqd8NDSBvXAvTmD/mT+bNVChgv4FbhIJ5ZOkR8QgXuPxHu9Nb1PX9Nur0/4PHdZmkRAkD9SdirCP69dg==} resolution: {integrity: sha512-Dp4VhaYXV7Mm0gOuWFTNQ60HnZVimEtdyPsyO6bYv9n2981z4v+f5F8DmOnEBvFNC54dawBaYexHPFRKIn3dEA==}
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -2844,11 +2844,11 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/core@1.7.10': '@tmagic/core@1.7.13':
resolution: {integrity: sha512-7E8IFGJqdOArWuAnTb464GbAQWJtqCu3uPF0fXRGGLQ+NZbd4EG8HaLw/JsmKC+YxA4g1yr7sPYjPrP8YIPhwQ==} resolution: {integrity: sha512-jE8J9yhhJMuaXjZtG2904TdPEfyldlhu8/sW1y6Pw0sr6QLBcF1bGVrnTCtFFQJUBLY1zmc73kD/EF1QILARIQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -2872,12 +2872,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/data-source@1.7.10': '@tmagic/data-source@1.7.13':
resolution: {integrity: sha512-Lq+I+jPq/lAxQtBCp0gF/oKJU5canZhxPqzspiZPE/pZSuP9amgQD766yFdSR6b21UcYCma1FS2KWHZXUO3EsA==} resolution: {integrity: sha512-+wU7SdBEpE2vBCLI/XhFXAv/Aag1CiV767t9zi7Jd6/LAkdkjPUcW2cC4ZRUABJmqwB0+tQ1MM3dZlrNb/BDZw==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/core': 1.7.10 '@tmagic/core': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -2903,13 +2903,13 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/dep@1.7.10': '@tmagic/dep@1.7.13':
resolution: {integrity: sha512-PRiBHduxoofFVBLDKHuKnXrAbfO+JryVp9xujIfPT0E0ifXs24dkjF1DKJIUjoa24Ae79tLMFuwLXvQg4eXpsA==} resolution: {integrity: sha512-L3PGIqsiRRMmzJFvFiQKs0Q9LKb3BSPe7W4ZVaLcA11I9Ku4X3d4SkhGJB71LhE+P7ziVyBKhwU/o1eZl3KD0Q==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/schema': 1.7.10 '@tmagic/schema': 1.7.13
'@tmagic/utils': 1.7.10 '@tmagic/utils': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -2925,12 +2925,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/design@1.7.10': '@tmagic/design@1.7.13':
resolution: {integrity: sha512-DeGwca39biyyhdQ3uz1b8W5BXy2mJnfC2YhsuWLzOKlIjNYmMih1agNosJwtgMJMZeqZh1rBjPycQ4O87qi47A==} resolution: {integrity: sha512-tgOLBWqBPN/aWutUvXoo/4xmtnb4IH6ZHi4T41UXJzhqzqwhJAF7Owj+kQkR92gKM20/R8QggM3dh+Th/CPhPA==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -2945,15 +2945,15 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/editor@1.7.10': '@tmagic/editor@1.7.13':
resolution: {integrity: sha512-CuYBroXZuBx0L91ZsmpKuDrFaWpg+nRme1oxZwytCMjNqF8XBDa29tSolrTQVQbxAYfRrL9T2jT00WuskCELHA==} resolution: {integrity: sha512-I9Jqq3nz4t+EGssKfrTsPwfWTIOOJehZQa0AV8IAnGxOsEX9nreEF5f59elXPpxQtbqVD8xCfTu1BUt/AnRWtw==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/core': 1.7.10 '@tmagic/core': 1.7.13
monaco-editor: '^0.55.1 ' monaco-editor: '^0.55.1 '
type-fest: ^5.2.0 type-fest: ^5.2.0
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
type-fest: type-fest:
optional: true optional: true
@ -2972,23 +2972,23 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/element-plus-adapter@1.7.10': '@tmagic/element-plus-adapter@1.7.13':
resolution: {integrity: sha512-wG6nvZ2BVgzoaH3DLXEG+ANe+a8shbejWMmaR2+FrMB7a5Rx2+ReL2uslorDw+CXQessSHH0BhoIBNjodXGBBw==} resolution: {integrity: sha512-WYf+h2ons+Pb7JiuIAF93eBgfeckgaF7MAxavWEEyQkx6UtcLL3CwEgaqQARyGfrJLDM3aJ0nPU6CehgKdr8Wg==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/design': 1.7.10 '@tmagic/design': 1.7.13
element-plus: '>=2.9.0' element-plus: '>=2.9.0'
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
'@tmagic/form-schema@1.7.10': '@tmagic/form-schema@1.7.13':
resolution: {integrity: sha512-HvIE+B93twPEma056L1ngvRr0Gk6TjzW1enEYHksQm8tri3bKjv66xy8Jk6ubHK1xL/oAR35HVrJeEIDY5/adQ==} resolution: {integrity: sha512-HFUJ/XsK8oLQATels6tH1565sasxliQAQkADtnmDth8EWz0Aw/ry/cjoDgDeAJKEycpz4P9QxlL/mq0cnWhrLA==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3002,15 +3002,15 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/form@1.7.10': '@tmagic/form@1.7.13':
resolution: {integrity: sha512-A0fXkwhCOFCXW6wtzRIgOMAUww0+shPOwOfKDAKkv6OI2Vm45OzO/DyVf4sz9lwyZ7LOkpUNI85r+HYLgli+oQ==} resolution: {integrity: sha512-Epzdi0ae0rKNG5qlFeOC9kJ1kWF2HphIAI1vKox8x7rmvuTZNA4+c3DsbrUngy+OsnKYqOq0x3je6L/OYDR83A==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/design': 1.7.10 '@tmagic/design': 1.7.13
'@tmagic/form-schema': 1.7.10 '@tmagic/form-schema': 1.7.13
'@tmagic/utils': 1.7.10 '@tmagic/utils': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3054,11 +3054,11 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/schema@1.7.10': '@tmagic/schema@1.7.13':
resolution: {integrity: sha512-oBFcC/sCJOGTlBCH01bSW73WVIcXcv3nefJwE/JdEsg5fstAIwTre2WBRNuksGjOYS2GGTxMJA1/JeK0h2pIaA==} resolution: {integrity: sha512-QQ4zRc2A4sTcCbC2m0u5DeDp0SIRwDKlEVz1RIkNu4U1121yjC80IUGex9Lf4XmrZ6bbxnChV+89EAlMP1/vmg==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3082,12 +3082,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/stage@1.7.10': '@tmagic/stage@1.7.13':
resolution: {integrity: sha512-DyzVCg3DB48vs2WKbXOwWvL1XhxbUe010HkQJKZDzg89SCgitCx3TCbaiBC3v6ZN+0yp7hIKC8wpMxvCVqPkhQ==} resolution: {integrity: sha512-b9TvbyjhWm1L/6m0f+6QqK52iwIqSsPROyF1U9ug0jAFB6zR5TQV2BeJfu9xs3jchQGoPPILiReVVVZ84lIwwQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/core': 1.7.10 '@tmagic/core': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3102,15 +3102,15 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/table@1.7.10': '@tmagic/table@1.7.13':
resolution: {integrity: sha512-lEQltKMyREFYuW6NPzJP2ok2b3DTmbgBKz+qpRBZw74Bk4YNyk2Q0uxBxYlwJ/3HLgGXXcX1/MWV6G52LK4EYQ==} resolution: {integrity: sha512-hs8Y3YclWAg60bPWi/3P4M/SUki0xb26kFdxJqJuGVg4RvRWUjjkZK/5weLNIKN1mR60vnYldHmqIDTk27a11w==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/design': 1.7.10 '@tmagic/design': 1.7.13
'@tmagic/form': 1.7.10 '@tmagic/form': 1.7.13
'@tmagic/utils': 1.7.10 '@tmagic/utils': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3127,14 +3127,14 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/tdesign-vue-next-adapter@1.7.10': '@tmagic/tdesign-vue-next-adapter@1.7.13':
resolution: {integrity: sha512-LCrswteeEnJVB1VtQ/lTIK2TnioF0/33dexOLRayKB5MLeNfofkEVzfz5mvC7QlB0/b94eXYSLcTudsleBZV9A==} resolution: {integrity: sha512-zKn46KxWVql418jluUAwBi9gYkEayba0frMx7mi93MzdFVljwLiEnm3FeEyT3DI6Bj0dWuwyWd0e58W6p8BXyg==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/design': 1.7.10 '@tmagic/design': 1.7.13
tdesign-vue-next: ^1.17.1 tdesign-vue-next: ^1.17.1
typescript: ^6.0.2 typescript: ^6.0.3
vue: ^3.5.24 vue: ^3.5.33
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3164,12 +3164,12 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/utils@1.7.10': '@tmagic/utils@1.7.13':
resolution: {integrity: sha512-Smnls39Iyj9nNBNRerU7WnztNg6GRStbXzeU8/yUpyanHdCfsG3c+lpy6OyAdOWSVaYvvjin60e3ntc5jvflnQ==} resolution: {integrity: sha512-7tleKCObMcLA5fq3iCZTqQ+ViwvIieT6FFUe1LjGxU5VglrIybgJBJD/B4dNn4po1UPLkfBxb7z5frBXoPSPKw==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/schema': 1.7.10 '@tmagic/schema': 1.7.13
typescript: ^6.0.2 typescript: ^6.0.3
peerDependenciesMeta: peerDependenciesMeta:
typescript: typescript:
optional: true optional: true
@ -3184,13 +3184,13 @@ packages:
typescript: typescript:
optional: true optional: true
'@tmagic/vue-runtime-help@2.0.0': '@tmagic/vue-runtime-help@2.0.2':
resolution: {integrity: sha512-JKz7V1ikY43FIFHoiwisyAo+L/V4C/h30hI10aPSmCgUSXU/ViUhW5SdAv7wHZWBZaEgTy0CmseB7IzNLEkGUQ==} resolution: {integrity: sha512-CIS9d4w/YwBb7BDGubdMuN7scrODw52GuLcKtu+4oxcLzrF0usaS9s6F849qKlxAU65E+kjpHWMEa673KvcwOw==}
engines: {node: '>=18'} engines: {node: '>=18'}
peerDependencies: peerDependencies:
'@tmagic/core': '>=1.7.0' '@tmagic/core': '>=1.7.0'
'@tmagic/stage': '>=1.7.0' '@tmagic/stage': '>=1.7.0'
typescript: ^5.9.3 typescript: ^6.0.3
vue: '>=3.5.0' vue: '>=3.5.0'
peerDependenciesMeta: peerDependenciesMeta:
'@tmagic/core': '@tmagic/core':
@ -8638,7 +8638,7 @@ snapshots:
'@sxzz/popperjs-es@2.11.7': {} '@sxzz/popperjs-es@2.11.7': {}
'@tmagic/cli@1.7.10(typescript@6.0.3)': '@tmagic/cli@1.7.13(typescript@6.0.3)':
dependencies: dependencies:
cac: 6.7.14 cac: 6.7.14
chokidar: 3.6.0 chokidar: 3.6.0
@ -8662,12 +8662,12 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/core@1.7.10(typescript@6.0.3)': '@tmagic/core@1.7.13(typescript@6.0.3)':
dependencies: dependencies:
'@tmagic/data-source': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/data-source': 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/dep': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3) '@tmagic/dep': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/schema': 1.7.10(typescript@6.0.3) '@tmagic/schema': 1.7.13(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/utils': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)
events: 3.3.0 events: 3.3.0
lodash-es: 4.17.21 lodash-es: 4.17.21
optionalDependencies: optionalDependencies:
@ -8693,9 +8693,9 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/data-source@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)': '@tmagic/data-source@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)':
dependencies: dependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
deep-state-observer: 5.5.14 deep-state-observer: 5.5.14
events: 3.3.0 events: 3.3.0
lodash-es: 4.17.21 lodash-es: 4.17.21
@ -8718,10 +8718,10 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/dep@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)': '@tmagic/dep@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)':
dependencies: dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3) '@tmagic/schema': 1.7.13(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/utils': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
@ -8732,7 +8732,7 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@popperjs/core': 2.11.8 '@popperjs/core': 2.11.8
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
@ -8746,15 +8746,15 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/editor@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/schema@1.7.13(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3)) '@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3))
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/design': 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/form': 1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/stage': 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
'@tmagic/table': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/table': 1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/utils': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)
buffer: 6.0.3 buffer: 6.0.3
deep-object-diff: 1.1.9 deep-object-diff: 1.1.9
emmet-monaco-es: 5.7.0(monaco-editor@0.55.1) emmet-monaco-es: 5.7.0(monaco-editor@0.55.1)
@ -8801,17 +8801,17 @@ snapshots:
- '@tmagic/form-schema' - '@tmagic/form-schema'
- '@tmagic/schema' - '@tmagic/schema'
'@tmagic/element-plus-adapter@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/element-plus-adapter@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/design': 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)) element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/form-schema@1.7.10(typescript@6.0.3)': '@tmagic/form-schema@1.7.13(typescript@6.0.3)':
dependencies: dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3) '@tmagic/schema': 1.7.13(typescript@6.0.3)
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
@ -8821,13 +8821,13 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/form@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3)) '@element-plus/icons-vue': 2.3.2(vue@3.5.33(typescript@6.0.3))
'@popperjs/core': 2.11.8 '@popperjs/core': 2.11.8
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/design': 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form-schema': 1.7.10(typescript@6.0.3) '@tmagic/form-schema': 1.7.13(typescript@6.0.3)
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/utils': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)
dayjs: 1.11.19 dayjs: 1.11.19
lodash-es: 4.17.21 lodash-es: 4.17.21
sortablejs: 1.15.6 sortablejs: 1.15.6
@ -8849,20 +8849,20 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/react-runtime-help@0.2.2(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)': '@tmagic/react-runtime-help@0.2.2(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/stage@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3))(lodash-es@4.17.21)(react@18.3.1)(typescript@6.0.3)':
dependencies: dependencies:
lodash-es: 4.17.21 lodash-es: 4.17.21
react: 18.3.1 react: 18.3.1
optionalDependencies: optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/stage': 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/schema@1.7.0(typescript@6.0.3)': '@tmagic/schema@1.7.0(typescript@6.0.3)':
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/schema@1.7.10(typescript@6.0.3)': '@tmagic/schema@1.7.13(typescript@6.0.3)':
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
@ -8883,10 +8883,10 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3)': '@tmagic/stage@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)':
dependencies: dependencies:
'@scena/guides': 0.29.2 '@scena/guides': 0.29.2
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
'@zumer/snapdom': 2.8.0 '@zumer/snapdom': 2.8.0
events: 3.3.0 events: 3.3.0
keycon: 1.4.0 keycon: 1.4.0
@ -8910,11 +8910,11 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/table@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/table@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/design': 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/form': 1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/form': 1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
'@tmagic/utils': 1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/utils': 1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)
lodash-es: 4.17.21 lodash-es: 4.17.21
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
optionalDependencies: optionalDependencies:
@ -8929,21 +8929,21 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/tdesign-vue-next-adapter@1.7.10(@tmagic/design@1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/tdesign-vue-next-adapter@1.7.13(@tmagic/design@1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(tdesign-vue-next@1.17.3(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@tmagic/design': 1.7.10(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/design': 1.7.13(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
tdesign-vue-next: 1.17.3(vue@3.5.33(typescript@6.0.3)) tdesign-vue-next: 1.17.3(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/tmagic-form-runtime@1.1.3(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/editor@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/tmagic-form-runtime@1.1.3(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/editor@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/schema@1.7.13(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)))(element-plus@2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
'@tmagic/editor': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/form-schema@1.7.10(typescript@6.0.3))(@tmagic/schema@1.7.10(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3)) '@tmagic/editor': 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/form-schema@1.7.13(typescript@6.0.3))(@tmagic/schema@1.7.13(typescript@6.0.3))(monaco-editor@0.55.1)(type-fest@5.2.0)(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))
element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3)) element-plus: 2.11.8(@vue/composition-api@1.7.2(vue@3.5.33(typescript@6.0.3)))(vue@3.5.33(typescript@6.0.3))
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
optionalDependencies: optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/utils@1.7.0(@tmagic/schema@1.7.0(typescript@6.0.3))(typescript@6.0.3)': '@tmagic/utils@1.7.0(@tmagic/schema@1.7.0(typescript@6.0.3))(typescript@6.0.3)':
@ -8953,9 +8953,9 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/utils@1.7.10(@tmagic/schema@1.7.10(typescript@6.0.3))(typescript@6.0.3)': '@tmagic/utils@1.7.13(@tmagic/schema@1.7.13(typescript@6.0.3))(typescript@6.0.3)':
dependencies: dependencies:
'@tmagic/schema': 1.7.10(typescript@6.0.3) '@tmagic/schema': 1.7.13(typescript@6.0.3)
lodash-es: 4.17.21 lodash-es: 4.17.21
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
@ -8967,12 +8967,12 @@ snapshots:
optionalDependencies: optionalDependencies:
typescript: 6.0.3 typescript: 6.0.3
'@tmagic/vue-runtime-help@2.0.0(@tmagic/core@1.7.10(typescript@6.0.3))(@tmagic/stage@1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))': '@tmagic/vue-runtime-help@2.0.2(@tmagic/core@1.7.13(typescript@6.0.3))(@tmagic/stage@1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3))(typescript@6.0.3)(vue@3.5.33(typescript@6.0.3))':
dependencies: dependencies:
vue: 3.5.33(typescript@6.0.3) vue: 3.5.33(typescript@6.0.3)
optionalDependencies: optionalDependencies:
'@tmagic/core': 1.7.10(typescript@6.0.3) '@tmagic/core': 1.7.13(typescript@6.0.3)
'@tmagic/stage': 1.7.10(@tmagic/core@1.7.10(typescript@6.0.3))(typescript@6.0.3) '@tmagic/stage': 1.7.13(@tmagic/core@1.7.13(typescript@6.0.3))(typescript@6.0.3)
typescript: 6.0.3 typescript: 6.0.3
'@tybys/wasm-util@0.10.1': '@tybys/wasm-util@0.10.1':

View File

@ -1,6 +1,6 @@
{ {
"name": "runtime-react", "name": "runtime-react",
"version": "1.7.11", "version": "1.7.13",
"type": "module", "type": "module",
"private": true, "private": true,
"engines": { "engines": {
@ -16,16 +16,16 @@
"build:playground": "node scripts/build.mjs --type=playground" "build:playground": "node scripts/build.mjs --type=playground"
}, },
"dependencies": { "dependencies": {
"@tmagic/core": "1.7.11", "@tmagic/core": "1.7.13",
"@tmagic/react-runtime-help": "0.2.2", "@tmagic/react-runtime-help": "0.2.2",
"@tmagic/stage": "1.7.11", "@tmagic/stage": "1.7.13",
"axios": "^1.13.2", "axios": "^1.13.2",
"qrcode": "^1.5.0", "qrcode": "^1.5.0",
"react": "^18.3.1", "react": "^18.3.1",
"react-dom": "^18.3.1" "react-dom": "^18.3.1"
}, },
"devDependencies": { "devDependencies": {
"@tmagic/cli": "1.7.11", "@tmagic/cli": "1.7.13",
"@types/fs-extra": "^11.0.4", "@types/fs-extra": "^11.0.4",
"@types/react": "^18.3.3", "@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",

View File

@ -1,5 +1,5 @@
{ {
"version": "2.0.1", "version": "2.0.3",
"name": "@tmagic/vue-runtime-help", "name": "@tmagic/vue-runtime-help",
"type": "module", "type": "module",
"sideEffects": false, "sideEffects": false,

View File

@ -161,6 +161,7 @@ export const useEditorDsl = (app = inject<TMagicApp>('app'), runtimeApi: Runtime
}); });
return { return {
root,
pageConfig, pageConfig,
app, app,
}; };

View File

@ -1,6 +1,6 @@
{ {
"name": "runtime-vue", "name": "runtime-vue",
"version": "1.7.11", "version": "1.7.13",
"type": "module", "type": "module",
"private": true, "private": true,
"engines": { "engines": {
@ -16,14 +16,14 @@
"build:playground": "node scripts/build.mjs --type=playground" "build:playground": "node scripts/build.mjs --type=playground"
}, },
"dependencies": { "dependencies": {
"@tmagic/core": "1.7.11", "@tmagic/core": "1.7.13",
"@tmagic/stage": "1.7.11", "@tmagic/stage": "1.7.13",
"@tmagic/vue-runtime-help": "^2.0.0", "@tmagic/vue-runtime-help": "^2.0.1",
"axios": "^1.13.2", "axios": "^1.13.2",
"vue": "catalog:" "vue": "catalog:"
}, },
"devDependencies": { "devDependencies": {
"@tmagic/cli": "1.7.11", "@tmagic/cli": "1.7.13",
"@types/fs-extra": "^11.0.4", "@types/fs-extra": "^11.0.4",
"@types/node": "^24.0.10", "@types/node": "^24.0.10",
"@vitejs/plugin-legacy": "^8.0.1", "@vitejs/plugin-legacy": "^8.0.1",