@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.
Files changed (31) hide show
  1. package/LICENSE +21 -0
  2. package/lib/browser/model/editor2d-document.js +8 -8
  3. package/lib/browser/model/editor2d-document.js.map +1 -1
  4. package/lib/browser/model/editor2d-model.d.ts +1 -1
  5. package/lib/browser/model/editor2d-model.d.ts.map +1 -1
  6. package/lib/browser/playground/canvas-draw.d.ts +7 -3
  7. package/lib/browser/playground/canvas-draw.d.ts.map +1 -1
  8. package/lib/browser/playground/canvas-draw.js +39 -8
  9. package/lib/browser/playground/canvas-draw.js.map +1 -1
  10. package/lib/browser/playground/canvas-layer.d.ts +2 -1
  11. package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
  12. package/lib/browser/playground/canvas-layer.js +77 -3
  13. package/lib/browser/playground/canvas-layer.js.map +1 -1
  14. package/lib/browser/playground/extend-edit-layer.d.ts.map +1 -1
  15. package/lib/browser/playground/extend-edit-layer.js +1 -0
  16. package/lib/browser/playground/extend-edit-layer.js.map +1 -1
  17. package/lib/browser/playground/playground-context.d.ts +7 -2
  18. package/lib/browser/playground/playground-context.d.ts.map +1 -1
  19. package/lib/browser/playground/playground-context.js +9 -2
  20. package/lib/browser/playground/playground-context.js.map +1 -1
  21. package/lib/browser/playground/selection-entity-manager.d.ts +2 -1
  22. package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
  23. package/lib/browser/playground/selection-entity-manager.js +27 -0
  24. package/lib/browser/playground/selection-entity-manager.js.map +1 -1
  25. package/package.json +7 -7
  26. package/src/browser/model/editor2d-document.ts +2 -2
  27. package/src/browser/playground/canvas-draw.ts +38 -5
  28. package/src/browser/playground/canvas-layer.ts +84 -6
  29. package/src/browser/playground/extend-edit-layer.tsx +1 -0
  30. package/src/browser/playground/playground-context.ts +8 -1
  31. 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
- protected nodeEntitiesCache: Map<string, Editor2dEntity> = new Map();
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[] = [];