@gedit/editor-2d 0.1.31 → 0.1.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 (46) hide show
  1. package/lib/browser/editor2d-model-provider.d.ts +1 -0
  2. package/lib/browser/editor2d-model-provider.d.ts.map +1 -1
  3. package/lib/browser/editor2d-model-provider.js +1 -0
  4. package/lib/browser/editor2d-model-provider.js.map +1 -1
  5. package/lib/browser/editor2d-ref-provider-contribution.d.ts.map +1 -1
  6. package/lib/browser/editor2d-ref-provider-contribution.js +1 -0
  7. package/lib/browser/editor2d-ref-provider-contribution.js.map +1 -1
  8. package/lib/browser/model/editor2d-document.d.ts +11 -6
  9. package/lib/browser/model/editor2d-document.d.ts.map +1 -1
  10. package/lib/browser/model/editor2d-document.js +54 -20
  11. package/lib/browser/model/editor2d-document.js.map +1 -1
  12. package/lib/browser/model/editor2d.d.ts +3 -0
  13. package/lib/browser/model/editor2d.d.ts.map +1 -1
  14. package/lib/browser/model/editor2d.js +5 -0
  15. package/lib/browser/model/editor2d.js.map +1 -1
  16. package/lib/browser/playground/canvas-layer.d.ts +14 -1
  17. package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
  18. package/lib/browser/playground/canvas-layer.js +72 -30
  19. package/lib/browser/playground/canvas-layer.js.map +1 -1
  20. package/lib/browser/playground/entities/editor2d-entity.d.ts +0 -1
  21. package/lib/browser/playground/entities/editor2d-entity.d.ts.map +1 -1
  22. package/lib/browser/playground/entities/editor2d-entity.js +5 -6
  23. package/lib/browser/playground/entities/editor2d-entity.js.map +1 -1
  24. package/lib/browser/playground/playground-context.d.ts +5 -3
  25. package/lib/browser/playground/playground-context.d.ts.map +1 -1
  26. package/lib/browser/playground/playground-context.js +11 -2
  27. package/lib/browser/playground/playground-context.js.map +1 -1
  28. package/lib/browser/playground/playground-contribution.d.ts.map +1 -1
  29. package/lib/browser/playground/playground-contribution.js +24 -26
  30. package/lib/browser/playground/playground-contribution.js.map +1 -1
  31. package/lib/browser/playground/selection-entity-manager.d.ts +4 -2
  32. package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
  33. package/lib/browser/playground/selection-entity-manager.js +21 -24
  34. package/lib/browser/playground/selection-entity-manager.js.map +1 -1
  35. package/package.json +7 -7
  36. package/src/browser/editor2d-model-provider.ts +1 -0
  37. package/src/browser/editor2d-ref-provider-contribution.ts +1 -0
  38. package/src/browser/model/editor2d-document.ts +63 -14
  39. package/src/browser/model/editor2d.ts +7 -1
  40. package/src/browser/playground/canvas-layer.ts +81 -33
  41. package/src/browser/playground/entities/editor2d-entity.ts +5 -7
  42. package/src/browser/playground/playground-context.ts +9 -2
  43. package/src/browser/playground/playground-contribution.ts +24 -26
  44. package/src/browser/playground/selection-entity-manager.ts +20 -24
  45. package/src/.DS_Store +0 -0
  46. package/src/browser/.DS_Store +0 -0
@@ -37,16 +37,19 @@ export class SelectionEntityManager {
37
37
  * @param nodePath
38
38
  * @param node
39
39
  * @param gameObject
40
+ * @param selectable
41
+ * @param adsorbable
40
42
  */
41
- createEntity(nodePath: string, node: Editor2dNode, gameObject: GameObject): Editor2dEntity | undefined {
43
+ createEntity(nodePath: string, node: Editor2dNode, gameObject: GameObject, selectable: boolean, adsorbable: boolean): Editor2dEntity | undefined {
42
44
  const register = this.context.renderEngine.getGameObjectIDERegister(gameObject.scene.config.engine, node.displayType);
43
45
  const deco = register.decoration;
44
- if (!register.getSelectionData) return;
46
+ if (!register.getSelectionData || Editor2dNode.isRootNode(node)) return;
45
47
  const entity = this.entityManager.createEntity<Editor2dEntity>(Editor2dEntity, { id: nodePath });
46
- entity.mouseSelect = deco.mouseSelect === undefined ? true : deco.mouseSelect;
47
- entity.adsorbable = deco.adsorbable === undefined ? true : deco.adsorbable;
48
+ entity.mouseSelect = selectable && (deco.mouseSelect === undefined ? true : deco.mouseSelect);
49
+ entity.adsorbable = adsorbable && (deco.adsorbable === undefined ? true : deco.adsorbable);
48
50
  entity.gameObject = gameObject;
49
51
  entity.node = node;
52
+ entity.transform.sizeToScale = !!deco.sizeToScale;
50
53
  // 切换选择框的类型,如圆形、矩形, 默认矩形
51
54
  if (deco.selectDisplayType) {
52
55
  entity.selectState.update({
@@ -67,26 +70,17 @@ export class SelectionEntityManager {
67
70
  entity.onDispose(() => {
68
71
  this.nodeEntitiesCache.delete(nodePath);
69
72
  });
70
- let lastTransform: TransformSchema | undefined;
71
- // 实体数据变化
72
- entity.onTransformChanged((newTransform: TransformSchema) => {
73
+ entity.onTransformChanged((newData: TransformSchema) => {
73
74
  const document = this.getDocument();
74
75
  if (!document) return;
75
- // 第一次更新不做处理
76
- if (!lastTransform || entity.ignoreTransformChanged || !TransformSchema.is(node)) {
77
- lastTransform = newTransform;
78
- return;
79
- }
80
- // 计算transform的delta偏移量
81
- const delta = TransformSchema.getDelta(lastTransform, newTransform);
82
- lastTransform = newTransform;
83
- document.updateNode(node, TransformSchema.mergeDelta(node, delta));
76
+ document.updateNode(node, newData, true);
84
77
  });
85
78
  // 设置控制key
86
- // TODO
87
- // const controllKeys =
88
- // entity.setControlKeys(this.context.renderEngine.getDisplayControlKeys(node.displayType));
89
- entity.setControlKeys([]);
79
+ if (deco.selectControlKeys) {
80
+ entity.setControlKeys(deco.selectControlKeys);
81
+ } else {
82
+ entity.setControlKeys([]);
83
+ }
90
84
  entity.selectable = false;
91
85
 
92
86
  return entity;
@@ -97,7 +91,7 @@ export class SelectionEntityManager {
97
91
  entity.dispose();
98
92
  }
99
93
  }
100
- updateEntity(nodePath: string, gameObject: GameObject): void {
94
+ updateEntity(nodePath: string, gameObject: GameObject, selectable: boolean, adsorbable: boolean): void {
101
95
  const register = this.context.renderEngine.getGameObjectIDERegister(gameObject.scene.config.engine, gameObject.type);
102
96
  const deco = register.decoration;
103
97
  const entity = this.nodeEntitiesCache.get(nodePath);
@@ -112,14 +106,16 @@ export class SelectionEntityManager {
112
106
  entity.transform.setParent(parentEntity.transform);
113
107
  }
114
108
  }
109
+ entity.transform.isContainer = !!deco.isContainer;
115
110
  entity.update(register.getSelectionData(gameObject));
116
111
  entity.ignoreTransformChanged = false;
112
+ const sizeVisible = !gameObject.data.canvasHide && (entity.transform.size.width > 0 && entity.transform.size.height > 0 || !!deco.isContainer);
117
113
  // 图层节点无法被选中
118
- entity.selectable = entity.transform.size.width > 0 && entity.transform.size.height > 0;
114
+ entity.selectable = selectable && sizeVisible;
119
115
  // 锁定状态的节点无法通过鼠标点击
120
116
  entity.mouseSelect = (deco.mouseSelect === undefined ? true : deco.mouseSelect) && !this.isLocked(node);
121
- // 无法选中的节点同样不支持吸附
122
- entity.adsorbable = entity.selectable && (deco.adsorbable === undefined ? true : deco.adsorbable);
117
+ // 是否支持吸附
118
+ entity.adsorbable = adsorbable && sizeVisible && (deco.adsorbable === undefined ? true : deco.adsorbable);
123
119
  // 同步选中状态
124
120
  entity.selected = node.selected;
125
121
  // 更新zIndex, 每次都要更新,因为节点拖拽会导致所有的zIndex顺序错乱
package/src/.DS_Store DELETED
Binary file
Binary file