@gedit/editor-2d 0.2.35 → 0.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/lib/browser/model/editor2d-document.js +8 -8
- package/lib/browser/model/editor2d-document.js.map +1 -1
- package/lib/browser/model/editor2d-model.d.ts +1 -1
- package/lib/browser/model/editor2d-model.d.ts.map +1 -1
- package/lib/browser/playground/canvas-draw.d.ts +7 -3
- package/lib/browser/playground/canvas-draw.d.ts.map +1 -1
- package/lib/browser/playground/canvas-draw.js +39 -8
- package/lib/browser/playground/canvas-draw.js.map +1 -1
- package/lib/browser/playground/canvas-layer.d.ts +2 -1
- package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
- package/lib/browser/playground/canvas-layer.js +77 -3
- package/lib/browser/playground/canvas-layer.js.map +1 -1
- package/lib/browser/playground/extend-edit-layer.d.ts.map +1 -1
- package/lib/browser/playground/extend-edit-layer.js +1 -0
- package/lib/browser/playground/extend-edit-layer.js.map +1 -1
- package/lib/browser/playground/playground-context.d.ts +7 -2
- package/lib/browser/playground/playground-context.d.ts.map +1 -1
- package/lib/browser/playground/playground-context.js +9 -2
- package/lib/browser/playground/playground-context.js.map +1 -1
- package/lib/browser/playground/selection-entity-manager.d.ts +2 -1
- package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
- package/lib/browser/playground/selection-entity-manager.js +27 -0
- package/lib/browser/playground/selection-entity-manager.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/model/editor2d-document.ts +2 -2
- package/src/browser/playground/canvas-draw.ts +38 -5
- package/src/browser/playground/canvas-layer.ts +84 -6
- package/src/browser/playground/extend-edit-layer.tsx +1 -0
- package/src/browser/playground/playground-context.ts +8 -1
- package/src/browser/playground/selection-entity-manager.tsx +29 -1
|
@@ -410,6 +410,7 @@ export class ExtendEditLayer extends Layer {
|
|
|
410
410
|
top: bounds.y * scale,
|
|
411
411
|
width,
|
|
412
412
|
height,
|
|
413
|
+
transformOrigin: `${transform.origin.x * 100}% ${transform.origin.y * 100}%`,
|
|
413
414
|
transform: rotate ? `rotate(${rotate}deg)` : undefined,
|
|
414
415
|
};
|
|
415
416
|
const data = this.getNodeValue();
|
|
@@ -14,6 +14,8 @@ import { Editor2dContextKeyService } from '../editor2d-context-key-service';
|
|
|
14
14
|
import type { CanvasDraw } from './canvas-draw';
|
|
15
15
|
import SelectionType = TreeSelection.SelectionType;
|
|
16
16
|
import { FormService } from '@gedit/ui';
|
|
17
|
+
import { OpenerService } from '@gedit/application-common/lib/browser';
|
|
18
|
+
import { WorkspaceService } from '@gedit/workspace-2d';
|
|
17
19
|
|
|
18
20
|
export const Editor2dPlayGround = Symbol('Editor2dPlayGround');
|
|
19
21
|
|
|
@@ -26,6 +28,7 @@ export class PlaygroundContext2d {
|
|
|
26
28
|
* 监听画布变化,可用于生成缩略图
|
|
27
29
|
*/
|
|
28
30
|
readonly onCanvasDataChanged = this.onCanvasDataChangedEmitter.event;
|
|
31
|
+
readonly rootURI: URI;
|
|
29
32
|
constructor(
|
|
30
33
|
@inject(RenderEngineIDEService) readonly renderEngine: RenderEngineIDEService,
|
|
31
34
|
@inject(Editor2dDocument) readonly document: Editor2dDocument,
|
|
@@ -34,8 +37,12 @@ export class PlaygroundContext2d {
|
|
|
34
37
|
@inject(AppConfigService) readonly appConfig: AppConfigService,
|
|
35
38
|
@inject(Editor2dModelOptions) readonly options: Editor2dModelOptions,
|
|
36
39
|
@inject(FormService) readonly formService: FormService,
|
|
37
|
-
@inject(Editor2dContextKeyService) readonly contextKeyService: Editor2dContextKeyService
|
|
40
|
+
@inject(Editor2dContextKeyService) readonly contextKeyService: Editor2dContextKeyService,
|
|
41
|
+
@inject(OpenerService) readonly openerService: OpenerService,
|
|
42
|
+
@inject(WorkspaceService)
|
|
43
|
+
protected readonly workspaceService: WorkspaceService,
|
|
38
44
|
) {
|
|
45
|
+
this.rootURI = new URI(this.workspaceService.currentRoot!.uri);
|
|
39
46
|
this.document.toDispose.push(this.onCanvasDataChangedEmitter);
|
|
40
47
|
if (options.onCanvasDataChanged) {
|
|
41
48
|
this.onCanvasDataChanged(drawer => options.onCanvasDataChanged!(drawer));
|
|
@@ -32,7 +32,7 @@ const numberToFixed4 = (data: {[key: string]: any}) => {
|
|
|
32
32
|
* 选择器实体相关逻辑
|
|
33
33
|
*/
|
|
34
34
|
export class SelectionEntityManager {
|
|
35
|
-
|
|
35
|
+
nodeEntitiesCache: Map<string, Editor2dEntity> = new Map();
|
|
36
36
|
constructor(
|
|
37
37
|
protected entityManager: EntityManager,
|
|
38
38
|
protected context: PlaygroundContext2d,
|
|
@@ -61,6 +61,26 @@ export class SelectionEntityManager {
|
|
|
61
61
|
return DefaultSelectorEntityRenderer(newProps);
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
|
+
|
|
65
|
+
setTransformMask(entity: Editor2dEntity, nodePath: string, node?: Editor2dNode): void {
|
|
66
|
+
let maskEntity;
|
|
67
|
+
if (node) {
|
|
68
|
+
entity.transform.isMask = node.isMask;
|
|
69
|
+
if (node.mask && !node.ignoreMask) {
|
|
70
|
+
// 组件里取不到 node
|
|
71
|
+
const p = nodePath.split('/');
|
|
72
|
+
p.splice(p.length - 1, 1);
|
|
73
|
+
const maskNodePath = p.concat(node.mask).join('/');
|
|
74
|
+
maskEntity = this.nodeEntitiesCache.get(maskNodePath);
|
|
75
|
+
if (maskEntity) {
|
|
76
|
+
entity.transform.maskTransform = maskEntity?.transform;
|
|
77
|
+
}
|
|
78
|
+
// maskEntity?.transform && entity.transform.setMaskBounds(maskEntity?.transform);
|
|
79
|
+
} else {
|
|
80
|
+
entity.transform.maskTransform = undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
64
84
|
/**
|
|
65
85
|
* 创建画布对应的选择器实体
|
|
66
86
|
* @param nodePath
|
|
@@ -83,6 +103,8 @@ export class SelectionEntityManager {
|
|
|
83
103
|
entity.nodeId = node.id;
|
|
84
104
|
entity.context = this.context;
|
|
85
105
|
entity.transform.sizeToScale = !!deco.sizeToScale;
|
|
106
|
+
|
|
107
|
+
this.setTransformMask(entity, nodePath, node);
|
|
86
108
|
// 切换选择框的类型,如圆形、矩形, 默认矩形
|
|
87
109
|
if (deco.selectDisplayType) {
|
|
88
110
|
entity.selectState.update({
|
|
@@ -131,6 +153,11 @@ export class SelectionEntityManager {
|
|
|
131
153
|
} else {
|
|
132
154
|
entity.setControlKeys([]);
|
|
133
155
|
}
|
|
156
|
+
if (deco.originBtnDisabled) {
|
|
157
|
+
entity.selectState.update({
|
|
158
|
+
originBtnDisabled: deco.originBtnDisabled,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
134
161
|
entity.selectable = false;
|
|
135
162
|
|
|
136
163
|
return entity;
|
|
@@ -171,6 +198,7 @@ export class SelectionEntityManager {
|
|
|
171
198
|
entity.selected = !!node?.selected;
|
|
172
199
|
// 更新zIndex, 每次都要更新,因为节点拖拽会导致所有的zIndex顺序错乱
|
|
173
200
|
entity.zIndex = gameObject.data.depth || 0;
|
|
201
|
+
this.setTransformMask(entity, nodePath, node);
|
|
174
202
|
}
|
|
175
203
|
getSelectedEntities(): Editor2dEntity[] {
|
|
176
204
|
const selectedEntities: Editor2dEntity[] = [];
|