@gedit/editor-2d 0.1.111 → 0.1.115
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/lib/browser/editor2d-context-key-service.js +24 -35
- package/lib/browser/editor2d-context-key-service.js.map +1 -1
- package/lib/browser/editor2d-contribution.js +89 -139
- package/lib/browser/editor2d-contribution.js.map +1 -1
- package/lib/browser/editor2d-frontend-module.js +20 -20
- package/lib/browser/editor2d-frontend-module.js.map +1 -1
- package/lib/browser/editor2d-label-provider.d.ts +0 -1
- package/lib/browser/editor2d-label-provider.d.ts.map +1 -1
- package/lib/browser/editor2d-label-provider.js +37 -58
- package/lib/browser/editor2d-label-provider.js.map +1 -1
- package/lib/browser/editor2d-model-provider.js +61 -127
- package/lib/browser/editor2d-model-provider.js.map +1 -1
- package/lib/browser/editor2d-ref-provider-contribution.js +44 -110
- package/lib/browser/editor2d-ref-provider-contribution.js.map +1 -1
- package/lib/browser/editor2d-service.d.ts +1 -1
- package/lib/browser/editor2d-service.d.ts.map +1 -1
- package/lib/browser/editor2d-service.js +70 -83
- package/lib/browser/editor2d-service.js.map +1 -1
- package/lib/browser/model/editor2d-document.d.ts +2 -2
- package/lib/browser/model/editor2d-document.d.ts.map +1 -1
- package/lib/browser/model/editor2d-document.js +376 -547
- package/lib/browser/model/editor2d-document.js.map +1 -1
- package/lib/browser/model/editor2d-iterator.js +27 -67
- package/lib/browser/model/editor2d-iterator.js.map +1 -1
- package/lib/browser/model/editor2d-model-container.js +10 -21
- package/lib/browser/model/editor2d-model-container.js.map +1 -1
- package/lib/browser/model/editor2d-model.js +77 -92
- package/lib/browser/model/editor2d-model.js.map +1 -1
- package/lib/browser/model/editor2d-selection.js +16 -43
- package/lib/browser/model/editor2d-selection.js.map +1 -1
- package/lib/browser/model/editor2d-widget.js +71 -90
- package/lib/browser/model/editor2d-widget.js.map +1 -1
- package/lib/browser/model/editor2d.js +41 -127
- package/lib/browser/model/editor2d.js.map +1 -1
- package/lib/browser/model/utils/anim.utils.js +14 -14
- package/lib/browser/model/utils/anim.utils.js.map +1 -1
- package/lib/browser/playground/canvas-draw-layer.js +45 -69
- package/lib/browser/playground/canvas-draw-layer.js.map +1 -1
- package/lib/browser/playground/canvas-draw.d.ts +1 -0
- package/lib/browser/playground/canvas-draw.d.ts.map +1 -1
- package/lib/browser/playground/canvas-draw.js +152 -241
- package/lib/browser/playground/canvas-draw.js.map +1 -1
- package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
- package/lib/browser/playground/canvas-layer.js +57 -102
- package/lib/browser/playground/canvas-layer.js.map +1 -1
- package/lib/browser/playground/entities/document-entity.js +8 -28
- package/lib/browser/playground/entities/document-entity.js.map +1 -1
- package/lib/browser/playground/entities/editor2d-entity.js +14 -37
- package/lib/browser/playground/entities/editor2d-entity.js.map +1 -1
- package/lib/browser/playground/playground-context.d.ts +3 -2
- package/lib/browser/playground/playground-context.d.ts.map +1 -1
- package/lib/browser/playground/playground-context.js +56 -55
- package/lib/browser/playground/playground-context.js.map +1 -1
- package/lib/browser/playground/playground-contribution.js +61 -65
- package/lib/browser/playground/playground-contribution.js.map +1 -1
- package/lib/browser/playground/selection-entity-manager.d.ts +1 -0
- package/lib/browser/playground/selection-entity-manager.d.ts.map +1 -1
- package/lib/browser/playground/selection-entity-manager.js +82 -132
- package/lib/browser/playground/selection-entity-manager.js.map +1 -1
- package/lib/browser/playground/selector-extend-icons.js +15 -16
- package/lib/browser/playground/selector-extend-icons.js.map +1 -1
- package/lib/browser/playground/selector-extend-renderer.d.ts +3 -2
- package/lib/browser/playground/selector-extend-renderer.d.ts.map +1 -1
- package/lib/browser/playground/selector-extend-renderer.js +67 -52
- package/lib/browser/playground/selector-extend-renderer.js.map +1 -1
- package/lib/browser/utils/snapshot.js +81 -172
- package/lib/browser/utils/snapshot.js.map +1 -1
- package/package.json +7 -7
- package/src/browser/editor2d-label-provider.ts +1 -15
- package/src/browser/editor2d-service.ts +9 -6
- package/src/browser/model/editor2d-document.ts +19 -12
- package/src/browser/playground/canvas-draw.ts +14 -1
- package/src/browser/playground/canvas-layer.ts +4 -2
- package/src/browser/playground/playground-context.ts +11 -10
- package/src/browser/playground/selection-entity-manager.tsx +9 -3
- package/src/browser/playground/selector-extend-renderer.tsx +43 -10
|
@@ -155,12 +155,13 @@ export class SelectionEntityManager {
|
|
|
155
155
|
entity.update(register.getSelectionData(gameObject));
|
|
156
156
|
entity.ignoreTransformChanged = false;
|
|
157
157
|
const sizeVisible = !this.isHidden(entity.node); // && (entity.transform.size.width > 0 && entity.transform.size.height > 0 || !!deco.isContainer);
|
|
158
|
+
const opacityZero = this.isOpacityZero(node);
|
|
158
159
|
// 图层节点无法被选中
|
|
159
160
|
entity.selectable = entity.selectableInit && sizeVisible;
|
|
160
161
|
// 锁定状态的节点无法通过鼠标点击
|
|
161
|
-
entity.mouseSelect = (deco.mouseSelect === undefined ? true : deco.mouseSelect) && !this.isLocked(node);
|
|
162
|
+
entity.mouseSelect = (deco.mouseSelect === undefined ? true : deco.mouseSelect) && !opacityZero && !this.isLocked(node);
|
|
162
163
|
// 是否支持吸附
|
|
163
|
-
entity.adsorbable = entity.adsorbableInit && sizeVisible && (deco.adsorbable === undefined ? true : deco.adsorbable);
|
|
164
|
+
entity.adsorbable = entity.adsorbableInit && sizeVisible && !opacityZero && (deco.adsorbable === undefined ? true : deco.adsorbable);
|
|
164
165
|
// 同步选中状态
|
|
165
166
|
entity.selected = !!node?.selected;
|
|
166
167
|
// 更新zIndex, 每次都要更新,因为节点拖拽会导致所有的zIndex顺序错乱
|
|
@@ -190,7 +191,7 @@ export class SelectionEntityManager {
|
|
|
190
191
|
}
|
|
191
192
|
}
|
|
192
193
|
if (!this.isVisible()) return;
|
|
193
|
-
this.context.syncToSelectionService(this);
|
|
194
|
+
// this.context.syncToSelectionService(this);
|
|
194
195
|
if (entitiesScrollTo.length > 0) {
|
|
195
196
|
// 滚动画布到选中的节点
|
|
196
197
|
this.entityManager.getEntity<PlaygroundConfigEntity>(PlaygroundConfigEntity)!.scrollToView({entities: entitiesScrollTo});
|
|
@@ -209,6 +210,11 @@ export class SelectionEntityManager {
|
|
|
209
210
|
}
|
|
210
211
|
return Rectangle.enlarge(rects);
|
|
211
212
|
}
|
|
213
|
+
isOpacityZero(node: Editor2dNode | undefined): boolean {
|
|
214
|
+
if (!node) return false;
|
|
215
|
+
if (node.opacity === 0) return true;
|
|
216
|
+
return this.isOpacityZero(node.parent as Editor2dNode);
|
|
217
|
+
}
|
|
212
218
|
isHidden(node: Editor2dNode | undefined): boolean {
|
|
213
219
|
if (!node) return false;
|
|
214
220
|
if (node.canvasHide) return true;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
3
|
import clsx from 'clsx';
|
|
4
|
-
import {
|
|
4
|
+
import { Popover, Tooltip } from '@gedit/ui';
|
|
5
5
|
|
|
6
6
|
import { selectIcon, SelectorExtendType } from './selector-extend-icons';
|
|
7
7
|
import { GameObjectIDERegister, GameObjectSelectorExtend as SelectorExtend } from '@gedit/render-engine-ide';
|
|
8
|
-
import {
|
|
8
|
+
import { SelectorEntityRendererProps, } from '@gedit/playground';
|
|
9
9
|
import type { Editor2dEntity } from './entities/editor2d-entity';
|
|
10
10
|
import { Editor2dNode } from '../model';
|
|
11
|
+
import { PlaygroundContext2d } from './playground-context';
|
|
11
12
|
|
|
12
13
|
const getClassName = (str: string) => `gedit-selector-extend-${str}`;
|
|
13
14
|
|
|
14
15
|
export interface SelectorExtendProps extends SelectorEntityRendererProps {
|
|
15
16
|
register?: GameObjectIDERegister;
|
|
16
|
-
context
|
|
17
|
+
context: PlaygroundContext2d;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
const defaultExtends: SelectorExtend[] = [
|
|
@@ -24,14 +25,38 @@ const defaultExtends: SelectorExtend[] = [
|
|
|
24
25
|
order: 0,
|
|
25
26
|
visible: (node: Editor2dNode, register: GameObjectIDERegister) => register?.getDisableKeys().indexOf('link') === -1,
|
|
26
27
|
event: {
|
|
27
|
-
title: '
|
|
28
|
+
title: '跳转配置',
|
|
28
29
|
type: 'selectorExtendAttr',
|
|
29
30
|
children: [
|
|
31
|
+
{
|
|
32
|
+
type: 'radio',
|
|
33
|
+
key: 'linkType',
|
|
34
|
+
label: '类型',
|
|
35
|
+
renderProps: {
|
|
36
|
+
defaultValue: 'url',
|
|
37
|
+
items: [{value: 'url', label: 'URL'}, {value: 'scene', label: '场景'}]
|
|
38
|
+
}
|
|
39
|
+
},
|
|
30
40
|
{
|
|
31
41
|
type: 'text',
|
|
32
42
|
key: 'link',
|
|
43
|
+
visible: (v, key, node: Editor2dNode) => (
|
|
44
|
+
node && !node.linkType || node.linkType === 'url'
|
|
45
|
+
),
|
|
33
46
|
label: '链接',
|
|
34
|
-
placeholder: '
|
|
47
|
+
placeholder: '请输入 url 地址',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
type: 'mindmapSelect',
|
|
51
|
+
key: 'link',
|
|
52
|
+
visible: (v, key, node: Editor2dNode) => (
|
|
53
|
+
node && node.linkType === 'scene'
|
|
54
|
+
),
|
|
55
|
+
renderProps: {
|
|
56
|
+
filterTypes: ['scene']
|
|
57
|
+
},
|
|
58
|
+
label: '场景',
|
|
59
|
+
placeholder: '请选择场景',
|
|
35
60
|
},
|
|
36
61
|
],
|
|
37
62
|
},
|
|
@@ -89,6 +114,7 @@ const sortData = (data: SelectorExtend[]) => {
|
|
|
89
114
|
const SelectorIcon = (props: {
|
|
90
115
|
item: SelectorExtend;
|
|
91
116
|
onChange: (type: SelectorExtendType | 'updateData', value?: any) => void;
|
|
117
|
+
context: PlaygroundContext2d,
|
|
92
118
|
node: any;
|
|
93
119
|
}) => {
|
|
94
120
|
const {item, onChange, node} = props;
|
|
@@ -110,7 +136,7 @@ const SelectorIcon = (props: {
|
|
|
110
136
|
if (item.event) {
|
|
111
137
|
return (
|
|
112
138
|
<Popover
|
|
113
|
-
content={
|
|
139
|
+
content={props.context.formService.renderSchema({
|
|
114
140
|
...item.event,
|
|
115
141
|
context: {
|
|
116
142
|
node,
|
|
@@ -144,6 +170,8 @@ export const SelectorExtendRender = (props: SelectorExtendProps) => {
|
|
|
144
170
|
const {entity, register, context} = props;
|
|
145
171
|
const {node} = entity as Editor2dEntity;
|
|
146
172
|
const {selectorExtends = []} = register?.decoration || {};
|
|
173
|
+
const [t, update] = React.useState(0);
|
|
174
|
+
if (!node) return <></>;
|
|
147
175
|
|
|
148
176
|
const childData = sortData(
|
|
149
177
|
([] as SelectorExtend[])
|
|
@@ -151,7 +179,7 @@ export const SelectorExtendRender = (props: SelectorExtendProps) => {
|
|
|
151
179
|
.filter(c => (c.visible ? c.visible(node, register) : true))
|
|
152
180
|
);
|
|
153
181
|
const onChange = (type: SelectorExtendType | 'updateData', value?: any) => {
|
|
154
|
-
const {document} = context
|
|
182
|
+
const {document} = context!;
|
|
155
183
|
switch (type) {
|
|
156
184
|
case SelectorExtendType.TO_TOP:
|
|
157
185
|
document.moveUp(node);
|
|
@@ -162,14 +190,14 @@ export const SelectorExtendRender = (props: SelectorExtendProps) => {
|
|
|
162
190
|
case SelectorExtendType.FLIP_X:
|
|
163
191
|
document.updateNode(
|
|
164
192
|
node,
|
|
165
|
-
{flip: {...node
|
|
193
|
+
{flip: {...node.flip!, x: !node?.flip?.x}},
|
|
166
194
|
true
|
|
167
195
|
);
|
|
168
196
|
break;
|
|
169
197
|
case SelectorExtendType.FLIP_Y:
|
|
170
198
|
document.updateNode(
|
|
171
199
|
node,
|
|
172
|
-
{flip: {...node
|
|
200
|
+
{flip: {...node.flip!, y: !node?.flip?.y}},
|
|
173
201
|
true
|
|
174
202
|
);
|
|
175
203
|
break;
|
|
@@ -177,8 +205,12 @@ export const SelectorExtendRender = (props: SelectorExtendProps) => {
|
|
|
177
205
|
document.delNodes(node);
|
|
178
206
|
break;
|
|
179
207
|
case 'updateData':
|
|
180
|
-
|
|
208
|
+
// 修改linkType则清空link
|
|
209
|
+
if (value.linkType) {
|
|
210
|
+
value.link = '';
|
|
211
|
+
}
|
|
181
212
|
document.updateNode(node, value, true);
|
|
213
|
+
update(t + 1);
|
|
182
214
|
break;
|
|
183
215
|
default:
|
|
184
216
|
console.warn(`无效类型: ${type}.`);
|
|
@@ -199,6 +231,7 @@ export const SelectorExtendRender = (props: SelectorExtendProps) => {
|
|
|
199
231
|
{c.map(item => (
|
|
200
232
|
<SelectorIcon
|
|
201
233
|
item={item}
|
|
234
|
+
context={context}
|
|
202
235
|
onChange={onChange}
|
|
203
236
|
node={node}
|
|
204
237
|
key={item.type}
|