@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.
Files changed (65) hide show
  1. package/lib/browser/editor2d-context-key-service.js +24 -35
  2. package/lib/browser/editor2d-context-key-service.js.map +1 -1
  3. package/lib/browser/editor2d-contribution.js +89 -139
  4. package/lib/browser/editor2d-contribution.js.map +1 -1
  5. package/lib/browser/editor2d-frontend-module.js +20 -20
  6. package/lib/browser/editor2d-frontend-module.js.map +1 -1
  7. package/lib/browser/editor2d-label-provider.d.ts +0 -1
  8. package/lib/browser/editor2d-label-provider.d.ts.map +1 -1
  9. package/lib/browser/editor2d-label-provider.js +37 -58
  10. package/lib/browser/editor2d-label-provider.js.map +1 -1
  11. package/lib/browser/editor2d-model-provider.js +61 -127
  12. package/lib/browser/editor2d-model-provider.js.map +1 -1
  13. package/lib/browser/editor2d-ref-provider-contribution.js +44 -110
  14. package/lib/browser/editor2d-ref-provider-contribution.js.map +1 -1
  15. package/lib/browser/editor2d-service.js +66 -85
  16. package/lib/browser/editor2d-service.js.map +1 -1
  17. package/lib/browser/model/editor2d-document.d.ts +1 -1
  18. package/lib/browser/model/editor2d-document.d.ts.map +1 -1
  19. package/lib/browser/model/editor2d-document.js +358 -526
  20. package/lib/browser/model/editor2d-document.js.map +1 -1
  21. package/lib/browser/model/editor2d-iterator.js +27 -67
  22. package/lib/browser/model/editor2d-iterator.js.map +1 -1
  23. package/lib/browser/model/editor2d-model-container.js +10 -21
  24. package/lib/browser/model/editor2d-model-container.js.map +1 -1
  25. package/lib/browser/model/editor2d-model.js +77 -92
  26. package/lib/browser/model/editor2d-model.js.map +1 -1
  27. package/lib/browser/model/editor2d-selection.js +16 -43
  28. package/lib/browser/model/editor2d-selection.js.map +1 -1
  29. package/lib/browser/model/editor2d-widget.js +71 -90
  30. package/lib/browser/model/editor2d-widget.js.map +1 -1
  31. package/lib/browser/model/editor2d.js +41 -127
  32. package/lib/browser/model/editor2d.js.map +1 -1
  33. package/lib/browser/model/utils/anim.utils.js +14 -14
  34. package/lib/browser/model/utils/anim.utils.js.map +1 -1
  35. package/lib/browser/playground/canvas-draw-layer.js +45 -69
  36. package/lib/browser/playground/canvas-draw-layer.js.map +1 -1
  37. package/lib/browser/playground/canvas-draw.js +142 -244
  38. package/lib/browser/playground/canvas-draw.js.map +1 -1
  39. package/lib/browser/playground/canvas-layer.js +54 -101
  40. package/lib/browser/playground/canvas-layer.js.map +1 -1
  41. package/lib/browser/playground/entities/document-entity.js +8 -28
  42. package/lib/browser/playground/entities/document-entity.js.map +1 -1
  43. package/lib/browser/playground/entities/editor2d-entity.js +14 -37
  44. package/lib/browser/playground/entities/editor2d-entity.js.map +1 -1
  45. package/lib/browser/playground/playground-context.d.ts +3 -1
  46. package/lib/browser/playground/playground-context.d.ts.map +1 -1
  47. package/lib/browser/playground/playground-context.js +49 -47
  48. package/lib/browser/playground/playground-context.js.map +1 -1
  49. package/lib/browser/playground/playground-contribution.js +61 -65
  50. package/lib/browser/playground/playground-contribution.js.map +1 -1
  51. package/lib/browser/playground/selection-entity-manager.js +74 -132
  52. package/lib/browser/playground/selection-entity-manager.js.map +1 -1
  53. package/lib/browser/playground/selector-extend-icons.js +15 -16
  54. package/lib/browser/playground/selector-extend-icons.js.map +1 -1
  55. package/lib/browser/playground/selector-extend-renderer.d.ts +3 -2
  56. package/lib/browser/playground/selector-extend-renderer.d.ts.map +1 -1
  57. package/lib/browser/playground/selector-extend-renderer.js +67 -52
  58. package/lib/browser/playground/selector-extend-renderer.js.map +1 -1
  59. package/lib/browser/utils/snapshot.js +81 -172
  60. package/lib/browser/utils/snapshot.js.map +1 -1
  61. package/package.json +7 -7
  62. package/src/browser/editor2d-label-provider.ts +1 -15
  63. package/src/browser/model/editor2d-document.ts +6 -2
  64. package/src/browser/playground/playground-context.ts +2 -0
  65. 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.114",
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.109",
13
- "@gedit/editor": "^0.1.82",
14
- "@gedit/playground": "^0.1.91",
15
- "@gedit/render-engine-ide": "^0.1.113",
16
- "@gedit/workspace-2d": "^0.1.88",
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": "38955d50985d4822295450aa6531b86760f7f43e"
38
+ "gitHead": "8bdf36b3a3898da871ec15be92760865fc6a182a"
39
39
  }
@@ -1,4 +1,4 @@
1
- import { inject, injectable, postConstruct } from 'inversify';
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 newName
253
+ * @param name
254
254
  * @protected
255
255
  */
256
256
  protected getUniqueName(siblings: Editor2dNode[], name: string, i: number = 0): string {
257
- const newName = i ? `${name}(${i})` : name;
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 { Form, Popover, Tooltip } from '@gedit/ui';
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 { PlaygroundContext, SelectorEntityRendererProps, } from '@gedit/playground';
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?: PlaygroundContext;
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: '请输出 url 地址',
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={Form.renderBySchema({
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?.flip, x: !node?.flip?.x}},
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?.flip, y: !node?.flip?.y}},
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
- console.log(value);
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}