@gedit/editor-2d 0.1.114 → 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.js +66 -85
- package/lib/browser/editor2d-service.js.map +1 -1
- package/lib/browser/model/editor2d-document.d.ts +1 -1
- package/lib/browser/model/editor2d-document.d.ts.map +1 -1
- package/lib/browser/model/editor2d-document.js +358 -526
- 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.js +142 -244
- package/lib/browser/playground/canvas-draw.js.map +1 -1
- package/lib/browser/playground/canvas-layer.js +54 -101
- 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 -1
- package/lib/browser/playground/playground-context.d.ts.map +1 -1
- package/lib/browser/playground/playground-context.js +49 -47
- 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.js +74 -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/model/editor2d-document.ts +6 -2
- package/src/browser/playground/playground-context.ts +2 -0
- package/src/browser/playground/selector-extend-renderer.tsx +43 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gedit/editor-2d",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.115",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/browser/index",
|
|
6
6
|
"typings": "lib/browser/index.d.ts",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"src"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@gedit/app-config": "^0.1.
|
|
13
|
-
"@gedit/editor": "^0.1.
|
|
14
|
-
"@gedit/playground": "^0.1.
|
|
15
|
-
"@gedit/render-engine-ide": "^0.1.
|
|
16
|
-
"@gedit/workspace-2d": "^0.1.
|
|
12
|
+
"@gedit/app-config": "^0.1.110",
|
|
13
|
+
"@gedit/editor": "^0.1.83",
|
|
14
|
+
"@gedit/playground": "^0.1.92",
|
|
15
|
+
"@gedit/render-engine-ide": "^0.1.114",
|
|
16
|
+
"@gedit/workspace-2d": "^0.1.89",
|
|
17
17
|
"json-stringify-pretty-compact": "^2.0.0",
|
|
18
18
|
"nanoid": "^3.3.2"
|
|
19
19
|
},
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"nyc": {
|
|
36
36
|
"extends": "../../configs/nyc.json"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "8bdf36b3a3898da871ec15be92760865fc6a182a"
|
|
39
39
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { inject, injectable
|
|
1
|
+
import { inject, injectable } from 'inversify';
|
|
2
2
|
import {
|
|
3
3
|
DidChangeLabelEvent,
|
|
4
4
|
LabelProvider,
|
|
@@ -22,15 +22,6 @@ export class Editor2dLabelProvider implements LabelProviderContribution {
|
|
|
22
22
|
protected readonly treeLabelProvider: TreeLabelProvider;
|
|
23
23
|
@inject(AppConfigService) protected appConfig: AppConfigService;
|
|
24
24
|
|
|
25
|
-
@postConstruct()
|
|
26
|
-
protected init(): void {
|
|
27
|
-
this.appConfig.onConfigChange(() => {
|
|
28
|
-
this.onDidChangeEmitter.fire({
|
|
29
|
-
affects: (element: object) => !!this.canHandle(element)
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
25
|
canHandle(element: object): number {
|
|
35
26
|
return Editor2dNode.is(element) ?
|
|
36
27
|
this.treeLabelProvider.canHandle(element) + 1 :
|
|
@@ -38,11 +29,6 @@ export class Editor2dLabelProvider implements LabelProviderContribution {
|
|
|
38
29
|
}
|
|
39
30
|
|
|
40
31
|
getIcon(node: Editor2dNode | Editor2dContainerNode): string {
|
|
41
|
-
if (node.tags && node.tags.length > 0) {
|
|
42
|
-
const tagId = node.tags[0].id;
|
|
43
|
-
const tagIcon = this.appConfig.getTagIconClass(tagId);
|
|
44
|
-
if (tagIcon) return tagIcon;
|
|
45
|
-
}
|
|
46
32
|
// TODO 后边需要支持多引擎适配
|
|
47
33
|
const register = this.renderEngineService.getGameObjectIDERegister(this.appConfig.engineName, node.displayType);
|
|
48
34
|
if (register && register.decoration && register.decoration.iconClass) {
|
|
@@ -250,11 +250,15 @@ export class Editor2dDocument extends TreeImpl<Editor2dNode, Editor2dContainerNo
|
|
|
250
250
|
/**
|
|
251
251
|
* 检测节点名字,保证唯一
|
|
252
252
|
* @param siblings
|
|
253
|
-
* @param
|
|
253
|
+
* @param name
|
|
254
254
|
* @protected
|
|
255
255
|
*/
|
|
256
256
|
protected getUniqueName(siblings: Editor2dNode[], name: string, i: number = 0): string {
|
|
257
|
-
const
|
|
257
|
+
const numMatched = name.match(/[0-9]+$/);
|
|
258
|
+
let newName = i ? `${name}${i}` : name;
|
|
259
|
+
if (numMatched) {
|
|
260
|
+
newName = name.slice(0, numMatched.index) + (parseInt(numMatched[0]) + i);
|
|
261
|
+
}
|
|
258
262
|
if (siblings.some(n => n.name === newName)) {
|
|
259
263
|
return this.getUniqueName(siblings, name, i + 1);
|
|
260
264
|
}
|
|
@@ -13,6 +13,7 @@ import { SelectionService } from '@gedit/application-common';
|
|
|
13
13
|
import { Editor2dContextKeyService } from '../editor2d-context-key-service';
|
|
14
14
|
import type { CanvasDraw } from './canvas-draw';
|
|
15
15
|
import SelectionType = TreeSelection.SelectionType;
|
|
16
|
+
import { FormService } from '@gedit/ui';
|
|
16
17
|
|
|
17
18
|
export const Editor2dPlayGround = Symbol('Editor2dPlayGround');
|
|
18
19
|
|
|
@@ -32,6 +33,7 @@ export class PlaygroundContext2d {
|
|
|
32
33
|
@inject(SelectionService) readonly selectionService: SelectionService,
|
|
33
34
|
@inject(AppConfigService) readonly appConfig: AppConfigService,
|
|
34
35
|
@inject(Editor2dModelOptions) readonly options: Editor2dModelOptions,
|
|
36
|
+
@inject(FormService) readonly formService: FormService,
|
|
35
37
|
@inject(Editor2dContextKeyService) readonly contextKeyService: Editor2dContextKeyService
|
|
36
38
|
) {
|
|
37
39
|
this.document.toDispose.push(this.onCanvasDataChangedEmitter);
|
|
@@ -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}
|