1
0
mirror of synced 2025-11-06 04:21:02 +08:00

Compare commits

...

6 Commits

Author SHA1 Message Date
roymondchen
d147b361d7 v1.0.0-rc.5 2022-05-31 21:45:42 +08:00
roymondchen
09e3be66e1 fix(stage): 流式布局下,镜像节点zindex应该比选中节点高 2022-05-31 21:42:39 +08:00
roymondchen
a8acfaad31 feat(stage): elementGuidelines可以配置 2022-05-31 21:32:04 +08:00
roymondchen
fd5f7779a6 fix(editor): 组件树右键菜单添加组件无效 2022-05-31 21:09:12 +08:00
roymondchen
311ff22ae4 fix(editor): 添加组件默认添加到视窗中间,如果组件初始化height不是数值,则当0处理 2022-05-31 21:05:22 +08:00
roymondchen
86624f5728 fix(editor): 组件树右键菜单 2022-05-31 20:03:48 +08:00
29 changed files with 74 additions and 64 deletions

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"npmClient": "npm",
"packages": [
"packages/*",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/core",
"sideEffects": [
"dist/*"
@@ -33,7 +33,7 @@
"vue"
],
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"events": "^3.3.0"
},
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/editor",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/editor",
"sideEffects": [
"dist/*",
@@ -45,11 +45,11 @@
"dependencies": {
"@babel/core": "^7.18.0",
"@element-plus/icons": "0.0.11",
"@tmagic/core": "^1.0.0-rc.4",
"@tmagic/form": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"@tmagic/core": "^1.0.0-rc.5",
"@tmagic/form": "^1.0.0-rc.5",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/stage": "^1.0.0-rc.5",
"@tmagic/utils": "^1.0.0-rc.5",
"buffer": "^6.0.3",
"color": "^3.1.3",
"element-plus": "^2.2.0",

View File

@@ -49,7 +49,7 @@ export default defineComponent({
onMounted(() => {
globalThis.addEventListener(
'mousedown',
'mouseup',
(e: MouseEvent) => {
if (!visible.value || (e.target && menu.value?.contains(e.target as HTMLElement))) {
return;
@@ -82,7 +82,7 @@ export default defineComponent({
menuStyle.value = {
top: `${top}px`,
left: `${e.clientX}px`,
left: `${e.clientX + 2}px`,
};
});
},

View File

@@ -142,9 +142,13 @@ export const toRelative = (node: MNode) => {
const setTop2Middle = (node: MNode, parentNode: MNode, stage: StageCore) => {
const style = node.style || {};
const height = style.height || 0;
let height = style.height || 0;
if (!stage || typeof style.top !== 'undefined' || !parentNode.style || !isNumber(height)) return style;
if (!stage || typeof style.top !== 'undefined' || !parentNode.style) return style;
if (!isNumber(height)) {
height = 0;
}
const { height: parentHeight } = parentNode.style;

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/form",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/form",
"sideEffects": [
"dist/*",
@@ -35,7 +35,7 @@
},
"dependencies": {
"@element-plus/icons": "0.0.11",
"@tmagic/utils": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.5",
"element-plus": "^2.2.0",
"lodash-es": "^4.17.21",
"moment": "^2.29.2",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/schema",
"sideEffects": false,
"main": "dist/tmagic-schema.umd.js",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/stage",
"sideEffects": [
"dist/*"
@@ -27,9 +27,9 @@
},
"dependencies": {
"@scena/guides": "^0.17.0",
"@tmagic/core": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"@tmagic/core": "^1.0.0-rc.5",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/utils": "^1.0.0-rc.5",
"events": "^3.3.0",
"lodash-es": "^4.17.21",
"moveable": "^0.29.4",

View File

@@ -23,7 +23,7 @@ import type { MoveableOptions } from 'moveable';
import Moveable from 'moveable';
import MoveableHelper from 'moveable-helper';
import { DRAG_EL_ID_PREFIX, GHOST_EL_ID_PREFIX, GuidesType, Mode } from './const';
import { DRAG_EL_ID_PREFIX, GHOST_EL_ID_PREFIX, GuidesType, Mode, ZIndex } from './const';
import StageCore from './StageCore';
import type { Offset, SortEventData, StageDragResizeConfig } from './types';
import { getAbsolutePosition, getGuideLineFromCache, getMode, getOffset } from './util';
@@ -166,16 +166,12 @@ export default class StageDragResize extends EventEmitter {
this.updateDragEl(el);
this.setElementGuidelines(el);
this.moveableOptions = this.getOptions({
target: this.dragEl,
});
}
private setElementGuidelines(el: HTMLElement) {
const nodes = el.parentElement?.children || [];
private setElementGuidelines(nodes: HTMLElement[]) {
this.elementGuidelines.forEach((node) => {
node.remove();
});
@@ -186,7 +182,7 @@ export default class StageDragResize extends EventEmitter {
for (const node of nodes) {
const { width, height } = node.getBoundingClientRect();
if (node === el) continue;
if (node === this.target) continue;
const { left, top } = getOffset(node as HTMLElement);
const elementGuideline = document.createElement('div');
elementGuideline.style.cssText = `position: absolute;width: ${width}px;height: ${height}px;top: ${top}px;left: ${left}px`;
@@ -358,7 +354,7 @@ export default class StageDragResize extends EventEmitter {
const ghostEl = el.cloneNode(true) as HTMLElement;
const { top, left } = getAbsolutePosition(el, getOffset(el));
ghostEl.id = `${GHOST_EL_ID_PREFIX}${el.id}`;
ghostEl.style.zIndex = '5';
ghostEl.style.zIndex = ZIndex.GHOST_EL;
ghostEl.style.opacity = '.5';
ghostEl.style.position = 'absolute';
ghostEl.style.left = `${left}px`;
@@ -382,7 +378,7 @@ export default class StageDragResize extends EventEmitter {
top: ${offset.top}px;
width: ${width}px;
height: ${height}px;
z-index: 9;
z-index: ${ZIndex.DRAG_EL};
`;
this.dragEl.id = `${DRAG_EL_ID_PREFIX}${el.id}`;
@@ -404,6 +400,14 @@ export default class StageDragResize extends EventEmitter {
moveableOptions = moveableOptions(this.core);
}
const elementGuidelines: any = moveableOptions.elementGuidelines || this.target.parentElement?.children || [];
this.setElementGuidelines(elementGuidelines);
if (moveableOptions.elementGuidelines) {
delete moveableOptions.elementGuidelines;
}
return {
origin: false,
rootContainer: this.core.container,

View File

@@ -42,6 +42,8 @@ export enum ZIndex {
MASK = '99999',
/** 选中的节点 */
SELECTED_EL = '666',
GHOST_EL = '700',
DRAG_EL = '9',
}
/** 鼠标按键 */

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/table",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/table",
"sideEffects": [
"dist/*"
@@ -30,7 +30,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/form": "^1.0.0-rc.4",
"@tmagic/form": "^1.0.0-rc.5",
"element-plus": "^2.2.0",
"lodash-es": "^4.17.21",
"vue": "^3.2.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-react",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-react",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"main": "src/index.ts",
"engines": {
"node": ">=14"
@@ -13,7 +13,7 @@
"react:build": "tsc && vite build"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"qrcode": "^1.5.0",
"react": "^17.0.0",
"react-dom": "^17.0.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-vue2",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/ui-vue2",
"main": "src/index.ts",
"scripts": {
@@ -13,7 +13,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"@vue/composition-api": "1.0.5",
"qrcode": "^1.5.0",
"vue": "^2.6.14"

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/ui",
"main": "src/index.ts",
"engines": {
@@ -11,7 +11,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"delegate": "^3.2.0",
"qrcode": "^1.5.0",
"tiny-emitter": "^2.1.0",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"name": "@tmagic/utils",
"main": "dist/tmagic-utils.umd.js",
"module": "dist/tmagic-utils.es.js",
@@ -24,7 +24,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"moment": "^2.29.2"
},
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "tmagic-playground",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "tmagic-playground",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"private": true,
"scripts": {
"dev": "vite --mode vue3",
@@ -11,11 +11,11 @@
},
"dependencies": {
"@element-plus/icons": "0.0.11",
"@tmagic/editor": "^1.0.0-rc.4",
"@tmagic/form": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"@tmagic/editor": "^1.0.0-rc.5",
"@tmagic/form": "^1.0.0-rc.5",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/stage": "^1.0.0-rc.5",
"@tmagic/utils": "^1.0.0-rc.5",
"element-plus": "^2.2.0",
"monaco-editor": "^0.32.1",
"serialize-javascript": "^6.0.0",

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-react",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-react",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"private": true,
"scripts": {
"dev:react": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8076"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/stage": "^1.0.0-rc.5",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue2",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue2",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"private": true,
"scripts": {
"dev:vue2": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8077"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/stage": "^1.0.0-rc.5",
"@vue/composition-api": "1.0.5",
"vue": "^2.6.14"
},

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue3",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue3",
"version": "1.0.0-rc.4",
"version": "1.0.0-rc.5",
"private": true,
"scripts": {
"dev": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8078"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.5",
"@tmagic/stage": "^1.0.0-rc.5",
"axios": "^0.25.0",
"vue": "^3.2.0"
},