@gedit/editor-2d 0.1.114 → 0.2.0

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 (134) 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.d.ts +1 -1
  14. package/lib/browser/editor2d-ref-provider-contribution.d.ts.map +1 -1
  15. package/lib/browser/editor2d-ref-provider-contribution.js +46 -112
  16. package/lib/browser/editor2d-ref-provider-contribution.js.map +1 -1
  17. package/lib/browser/editor2d-service.js +66 -85
  18. package/lib/browser/editor2d-service.js.map +1 -1
  19. package/lib/browser/model/editor2d-document.d.ts +46 -20
  20. package/lib/browser/model/editor2d-document.d.ts.map +1 -1
  21. package/lib/browser/model/editor2d-document.js +602 -549
  22. package/lib/browser/model/editor2d-document.js.map +1 -1
  23. package/lib/browser/model/editor2d-iterator.js +27 -67
  24. package/lib/browser/model/editor2d-iterator.js.map +1 -1
  25. package/lib/browser/model/editor2d-model-container.js +10 -21
  26. package/lib/browser/model/editor2d-model-container.js.map +1 -1
  27. package/lib/browser/model/editor2d-model.js +77 -92
  28. package/lib/browser/model/editor2d-model.js.map +1 -1
  29. package/lib/browser/model/editor2d-selection.js +16 -43
  30. package/lib/browser/model/editor2d-selection.js.map +1 -1
  31. package/lib/browser/model/editor2d-widget.js +71 -90
  32. package/lib/browser/model/editor2d-widget.js.map +1 -1
  33. package/lib/browser/model/editor2d.d.ts +8 -4
  34. package/lib/browser/model/editor2d.d.ts.map +1 -1
  35. package/lib/browser/model/editor2d.js +61 -128
  36. package/lib/browser/model/editor2d.js.map +1 -1
  37. package/lib/browser/model/utils/anim.utils.d.ts +3 -0
  38. package/lib/browser/model/utils/anim.utils.d.ts.map +1 -1
  39. package/lib/browser/model/utils/anim.utils.js +24 -18
  40. package/lib/browser/model/utils/anim.utils.js.map +1 -1
  41. package/lib/browser/playground/canvas-draw.d.ts +8 -0
  42. package/lib/browser/playground/canvas-draw.d.ts.map +1 -1
  43. package/lib/browser/playground/canvas-draw.js +164 -252
  44. package/lib/browser/playground/canvas-draw.js.map +1 -1
  45. package/lib/browser/playground/canvas-layer.d.ts +10 -2
  46. package/lib/browser/playground/canvas-layer.d.ts.map +1 -1
  47. package/lib/browser/playground/canvas-layer.js +78 -102
  48. package/lib/browser/playground/canvas-layer.js.map +1 -1
  49. package/lib/browser/playground/entities/document-entity.js +8 -28
  50. package/lib/browser/playground/entities/document-entity.js.map +1 -1
  51. package/lib/browser/playground/entities/editor2d-entity.js +14 -37
  52. package/lib/browser/playground/entities/editor2d-entity.js.map +1 -1
  53. package/lib/browser/playground/entities/extend-entity.d.ts +10 -0
  54. package/lib/browser/playground/entities/extend-entity.d.ts.map +1 -0
  55. package/lib/browser/playground/entities/extend-entity.js +34 -0
  56. package/lib/browser/playground/entities/extend-entity.js.map +1 -0
  57. package/lib/browser/playground/entities/index.d.ts +1 -0
  58. package/lib/browser/playground/entities/index.d.ts.map +1 -1
  59. package/lib/browser/playground/entities/index.js +1 -0
  60. package/lib/browser/playground/entities/index.js.map +1 -1
  61. package/lib/browser/playground/extend-edit-layer-point-event.d.ts +30 -0
  62. package/lib/browser/playground/extend-edit-layer-point-event.d.ts.map +1 -0
  63. package/lib/browser/playground/extend-edit-layer-point-event.js +50 -0
  64. package/lib/browser/playground/extend-edit-layer-point-event.js.map +1 -0
  65. package/lib/browser/playground/extend-edit-layer.d.ts +38 -0
  66. package/lib/browser/playground/extend-edit-layer.d.ts.map +1 -0
  67. package/lib/browser/playground/extend-edit-layer.js +335 -0
  68. package/lib/browser/playground/extend-edit-layer.js.map +1 -0
  69. package/lib/browser/playground/index.d.ts +1 -0
  70. package/lib/browser/playground/index.d.ts.map +1 -1
  71. package/lib/browser/playground/index.js +1 -0
  72. package/lib/browser/playground/index.js.map +1 -1
  73. package/lib/browser/playground/path-edit-layer-move-point.d.ts +15 -0
  74. package/lib/browser/playground/path-edit-layer-move-point.d.ts.map +1 -0
  75. package/lib/browser/playground/path-edit-layer-move-point.js +47 -0
  76. package/lib/browser/playground/path-edit-layer-move-point.js.map +1 -0
  77. package/lib/browser/playground/path-edit-layer-svg-path.d.ts +11 -0
  78. package/lib/browser/playground/path-edit-layer-svg-path.d.ts.map +1 -0
  79. package/lib/browser/playground/path-edit-layer-svg-path.js +21 -0
  80. package/lib/browser/playground/path-edit-layer-svg-path.js.map +1 -0
  81. package/lib/browser/playground/path-edit-layer.d.ts +36 -0
  82. package/lib/browser/playground/path-edit-layer.d.ts.map +1 -0
  83. package/lib/browser/playground/path-edit-layer.js +257 -0
  84. package/lib/browser/playground/path-edit-layer.js.map +1 -0
  85. package/lib/browser/playground/playground-context.d.ts +3 -1
  86. package/lib/browser/playground/playground-context.d.ts.map +1 -1
  87. package/lib/browser/playground/playground-context.js +49 -47
  88. package/lib/browser/playground/playground-context.js.map +1 -1
  89. package/lib/browser/playground/playground-contribution.d.ts +2 -0
  90. package/lib/browser/playground/playground-contribution.d.ts.map +1 -1
  91. package/lib/browser/playground/playground-contribution.js +100 -67
  92. package/lib/browser/playground/playground-contribution.js.map +1 -1
  93. package/lib/browser/playground/selection-entity-manager.js +74 -132
  94. package/lib/browser/playground/selection-entity-manager.js.map +1 -1
  95. package/lib/browser/playground/selector-extend-icons.js +15 -16
  96. package/lib/browser/playground/selector-extend-icons.js.map +1 -1
  97. package/lib/browser/playground/selector-extend-renderer.d.ts +3 -2
  98. package/lib/browser/playground/selector-extend-renderer.d.ts.map +1 -1
  99. package/lib/browser/playground/selector-extend-renderer.js +67 -52
  100. package/lib/browser/playground/selector-extend-renderer.js.map +1 -1
  101. package/lib/browser/utils/snapshot.d.ts.map +1 -1
  102. package/lib/browser/utils/snapshot.js +81 -172
  103. package/lib/browser/utils/snapshot.js.map +1 -1
  104. package/package.json +9 -7
  105. package/src/browser/editor2d-label-provider.ts +1 -15
  106. package/src/browser/editor2d-ref-provider-contribution.ts +8 -8
  107. package/src/browser/model/editor2d-document.ts +284 -51
  108. package/src/browser/model/editor2d.ts +21 -5
  109. package/src/browser/model/utils/anim.utils.ts +9 -2
  110. package/src/browser/playground/canvas-draw.ts +31 -17
  111. package/src/browser/playground/canvas-layer.ts +25 -3
  112. package/src/browser/playground/entities/extend-entity.ts +37 -0
  113. package/src/browser/playground/entities/index.ts +1 -0
  114. package/src/browser/playground/extend-edit-layer-point-event.tsx +71 -0
  115. package/src/browser/playground/extend-edit-layer.tsx +442 -0
  116. package/src/browser/playground/index.ts +1 -0
  117. package/src/browser/playground/path-edit-layer-move-point.tsx +71 -0
  118. package/src/browser/playground/path-edit-layer-svg-path.tsx +50 -0
  119. package/src/browser/playground/path-edit-layer.tsx +330 -0
  120. package/src/browser/playground/playground-context.ts +2 -0
  121. package/src/browser/playground/playground-contribution.ts +37 -3
  122. package/src/browser/playground/selector-extend-renderer.tsx +43 -10
  123. package/src/browser/style/canvas-layer.css +16 -0
  124. package/src/browser/style/extend-edit-layer.less +127 -0
  125. package/src/browser/style/index.less +2 -1
  126. package/src/browser/style/path-edit-layer.less +72 -0
  127. package/src/browser/svg/pen+.svg +24 -0
  128. package/src/browser/utils/snapshot.ts +1 -0
  129. package/lib/browser/playground/canvas-draw-layer.d.ts +0 -22
  130. package/lib/browser/playground/canvas-draw-layer.d.ts.map +0 -1
  131. package/lib/browser/playground/canvas-draw-layer.js +0 -126
  132. package/lib/browser/playground/canvas-draw-layer.js.map +0 -1
  133. package/src/browser/playground/canvas-draw-layer.tsx +0 -88
  134. package/src/browser/style/canvas-draw-layer.less +0 -24
@@ -1,30 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
29
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -37,168 +11,143 @@ var __metadata = (this && this.__metadata) || function (k, v) {
37
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
38
12
  return function (target, key) { decorator(target, key, paramIndex); }
39
13
  };
40
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
- return new (P || (P = Promise))(function (resolve, reject) {
43
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
44
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
45
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
46
- step((generator = generator.apply(thisArg, _arguments || [])).next());
47
- });
48
- };
49
- var __generator = (this && this.__generator) || function (thisArg, body) {
50
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
- function verb(n) { return function (v) { return step([n, v]); }; }
53
- function step(op) {
54
- if (f) throw new TypeError("Generator is already executing.");
55
- while (_) try {
56
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
- if (y = 0, t) op = [op[0] & 2, t.value];
58
- switch (op[0]) {
59
- case 0: case 1: t = op; break;
60
- case 4: _.label++; return { value: op[1], done: false };
61
- case 5: _.label++; y = op[1]; op = [0]; continue;
62
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
63
- default:
64
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
65
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
66
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
67
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
68
- if (t[2]) _.ops.pop();
69
- _.trys.pop(); continue;
70
- }
71
- op = body.call(thisArg, _);
72
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
73
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
74
- }
75
- };
76
- var __values = (this && this.__values) || function(o) {
77
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
78
- if (m) return m.call(o);
79
- if (o && typeof o.length === "number") return {
80
- next: function () {
81
- if (o && i >= o.length) o = void 0;
82
- return { value: o && o[i++], done: !o };
83
- }
84
- };
85
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
86
- };
87
14
  Object.defineProperty(exports, "__esModule", { value: true });
88
- exports.Editor2dDocument = void 0;
89
- var inversify_1 = require("inversify");
90
- var utils_1 = require("@gedit/utils");
91
- var editor2d_1 = require("./editor2d");
92
- var render_engine_1 = require("@gedit/render-engine");
93
- var render_engine_ide_1 = require("@gedit/render-engine-ide");
94
- var tree_1 = require("@gedit/tree");
95
- var browser_1 = require("@gedit/resource/lib/browser");
96
- var connection_1 = require("@gedit/connection");
97
- var workspace_2d_1 = require("@gedit/workspace-2d");
98
- var resource_1 = require("@gedit/resource");
99
- var app_config_1 = require("@gedit/app-config");
100
- var editor2d_iterator_1 = require("./editor2d-iterator");
101
- var utils_2 = require("./utils");
102
- var versionId = 0;
103
- var Editor2dDocument = /** @class */ (function (_super) {
104
- __extends(Editor2dDocument, _super);
105
- function Editor2dDocument(message, options, resourceProivder, resourceAutoSaveService, resourceService, engineService, appConfig) {
106
- var _this = _super.call(this) || this;
107
- _this.message = message;
108
- _this.options = options;
109
- _this.resourceProivder = resourceProivder;
110
- _this.resourceAutoSaveService = resourceAutoSaveService;
111
- _this.resourceService = resourceService;
112
- _this.engineService = engineService;
113
- _this.appConfig = appConfig;
114
- _this.onContentChangedEmitter = new utils_1.Emitter();
115
- _this.onSavedEmitter = new utils_1.Emitter();
116
- _this.onContentChanged = _this.onContentChangedEmitter.event;
117
- _this.onSaved = _this.onSavedEmitter.event;
118
- _this.animationStarted = false;
119
- _this.animationIds = []; // 当前正在录制的动画节点
120
- _this._localVersion = 0;
121
- _this._saveVersion = 0;
122
- _this.errors = [];
123
- _this.componentContents = {};
124
- _this._snaplines = [];
125
- _this.loading = true;
126
- _this.fireContentChanged = function (nodes, type, noSave, noFiredChanged) {
15
+ exports.Editor2dDocument = exports.Editor2dComponentProvider = exports.maskEnabledArray = exports.maskShowArray = void 0;
16
+ const inversify_1 = require("inversify");
17
+ const utils_1 = require("@gedit/utils");
18
+ const editor2d_1 = require("./editor2d");
19
+ const render_engine_1 = require("@gedit/render-engine");
20
+ const render_engine_ide_1 = require("@gedit/render-engine-ide");
21
+ const tree_1 = require("@gedit/tree");
22
+ const browser_1 = require("@gedit/resource/lib/browser");
23
+ const connection_1 = require("@gedit/connection");
24
+ const workspace_2d_1 = require("@gedit/workspace-2d");
25
+ const resource_1 = require("@gedit/resource");
26
+ const app_config_1 = require("@gedit/app-config");
27
+ const editor2d_iterator_1 = require("./editor2d-iterator");
28
+ // import { getAnimationKeys, getChangeAnimationData } from './utils';
29
+ exports.maskShowArray = [
30
+ render_engine_1.GameObjectBaseType.IMAGE,
31
+ render_engine_1.GameObjectBaseType.RECTANGLE,
32
+ render_engine_1.GameObjectBaseType.PATH,
33
+ render_engine_1.GameObjectBaseType.CIRCLE,
34
+ render_engine_1.GameObjectBaseType.POLYGON,
35
+ render_engine_1.GameObjectBaseType.TEXT,
36
+ render_engine_1.GameObjectBaseType.TRIANGLE,
37
+ ];
38
+ exports.maskEnabledArray = [
39
+ render_engine_1.GameObjectBaseType.GROUP,
40
+ render_engine_1.GameObjectBaseType.PARTICLES,
41
+ ];
42
+ let versionId = 0;
43
+ exports.Editor2dComponentProvider = Symbol('Editor2dComponentProvider');
44
+ let Editor2dDocument = class Editor2dDocument extends tree_1.TreeImpl {
45
+ constructor(message, options, resourceProvider, resourceAutoSaveService, resourceService, engineService, appConfig, componentProvider) {
46
+ super();
47
+ this.message = message;
48
+ this.options = options;
49
+ this.resourceProvider = resourceProvider;
50
+ this.resourceAutoSaveService = resourceAutoSaveService;
51
+ this.resourceService = resourceService;
52
+ this.engineService = engineService;
53
+ this.appConfig = appConfig;
54
+ this.componentProvider = componentProvider;
55
+ this.onContentChangedEmitter = new utils_1.Emitter();
56
+ this.onSavedEmitter = new utils_1.Emitter();
57
+ this.onContentChanged = this.onContentChangedEmitter.event;
58
+ this.onSaved = this.onSavedEmitter.event;
59
+ this.animationStarted = false;
60
+ this.animationIds = []; // 当前正在录制的动画节点
61
+ this._localVersion = 0;
62
+ this._saveVersion = 0;
63
+ this.errors = [];
64
+ // protected componentContents: { [key: string]: Editor2dNode } = {};
65
+ this._snaplines = [];
66
+ this.loading = true;
67
+ this.fireContentChanged = (nodes, type, noSave, noFiredChanged) => {
127
68
  // TODO 这里修改目前还是全量的,需要优化
128
- var contents = nodes.map(function (n) { return ({ text: 'treeNode' }); });
129
- _this._localVersion = ++versionId;
69
+ const contents = nodes.map(n => ({ text: 'treeNode' }));
70
+ this._localVersion = ++versionId;
130
71
  if (!noFiredChanged) {
131
- _this.onContentChangedEmitter.fire({ document: _this, contentChanges: contents, nodes: nodes, type: type });
72
+ this.onContentChangedEmitter.fire({ document: this, contentChanges: contents, nodes, type });
132
73
  }
133
- if (!_this.loading && !noSave) {
134
- _this._saveVersion++;
135
- if (_this._saveVersion === Number.MAX_VALUE) {
136
- _this._saveVersion = 0;
74
+ if (!this.loading && !noSave) {
75
+ this._saveVersion++;
76
+ if (this._saveVersion === Number.MAX_VALUE) {
77
+ this._saveVersion = 0;
137
78
  }
138
- _this.onSavedEmitter.fire({ document: _this, contentChanges: contents, nodes: nodes, type: type });
79
+ this.onSavedEmitter.fire({ document: this, contentChanges: contents, nodes, type });
139
80
  }
140
81
  };
141
- _this.refreshingNodes = new WeakMap();
142
- _this.toDispose.push(_this.onContentChangedEmitter);
143
- _this.toDispose.push(_this.onSavedEmitter);
82
+ this.refreshingNodes = new WeakMap();
83
+ this.toDispose.push(this.onContentChangedEmitter);
84
+ this.toDispose.push(this.onSavedEmitter);
144
85
  // this.toDispose.
145
86
  // this.toDispose.push(this.resourceAutoSaveService);
146
- _this.toDispose.push(_this.resourceAutoSaveService.onSyncContent(function (content) { return _this.reloadContent(content || ''); }));
147
- _this.toDispose.push(_this.onSaved(function (event) { return _this.resourceAutoSaveService.fireDidChangeContent(event); }));
87
+ this.toDispose.push(this.resourceAutoSaveService.onSyncContent(content => this.reloadContent(content || '')));
88
+ this.toDispose.push(this.onSaved(event => this.resourceAutoSaveService.fireDidChangeContent(event)));
89
+ // 组件数据加载
90
+ if (this.componentProvider) {
91
+ this.toDispose.push(this.componentProvider.onLoad(() => {
92
+ this.fireContentChanged([], 'update', true);
93
+ }));
94
+ // 组件数据更新
95
+ this.toDispose.push(this.componentProvider.onComponentChanged((0, utils_1.debounce)((compUri) => {
96
+ if (this.uri === compUri.toString()) {
97
+ return;
98
+ }
99
+ if (this.hasIncludesComponent(compUri)) {
100
+ this.fireContentChanged([], 'update', true);
101
+ }
102
+ }, 1000)));
103
+ }
148
104
  // TODO
149
105
  // this.toDispose.push(this.resourceService.onRefsChange(async () => {
150
106
  // await this.loadRefInfos();
151
107
  // }));
152
108
  // 同步数据
153
- _this.resourceAutoSaveService.sync();
154
- return _this;
155
- }
156
- Object.defineProperty(Editor2dDocument.prototype, "uri", {
157
- get: function () {
158
- return this.options.autoSaveService.resource.uri.toString();
159
- },
160
- enumerable: false,
161
- configurable: true
162
- });
163
- Object.defineProperty(Editor2dDocument.prototype, "engineName", {
164
- get: function () {
165
- return this.appConfig.engineName;
166
- },
167
- enumerable: false,
168
- configurable: true
169
- });
109
+ this.resourceAutoSaveService.sync();
110
+ }
111
+ get uri() {
112
+ return this.options.autoSaveService.resource.uri.toString();
113
+ }
114
+ get engineName() {
115
+ return this.appConfig.engineName;
116
+ }
117
+ hasIncludesComponent(compUri) {
118
+ var _a;
119
+ if (!this.root)
120
+ return false;
121
+ for (const node of new editor2d_iterator_1.Editor2dIterator(this.root)) {
122
+ if (node !== this.root
123
+ && node.displayType === render_engine_1.GameObjectBaseType.COMPONENT
124
+ && new utils_1.URI((_a = node.component) === null || _a === void 0 ? void 0 : _a.id).displayName === compUri.displayName) {
125
+ return true;
126
+ }
127
+ }
128
+ return false;
129
+ }
170
130
  /**
171
131
  * 切换资源, 只有模板编辑器需要用到
172
132
  */
173
- Editor2dDocument.prototype.changeResource = function (uri) {
174
- return __awaiter(this, void 0, void 0, function () {
175
- var uriObj, resource;
176
- return __generator(this, function (_a) {
177
- switch (_a.label) {
178
- case 0:
179
- uriObj = new utils_1.URI(uri);
180
- return [4 /*yield*/, this.resourceProivder(uriObj)];
181
- case 1:
182
- resource = _a.sent();
183
- this.resourceAutoSaveService.changeResource(resource);
184
- this.resourceAutoSaveService.sync();
185
- return [2 /*return*/];
186
- }
187
- });
188
- });
189
- };
190
- /**
191
- * 获取依赖的组件的内容
192
- * @param compPath
193
- * @param parentNode
194
- */
195
- Editor2dDocument.prototype.getComponentContent = function (compPath, parentNode) {
196
- var comp = this.componentContents[compPath];
197
- if (comp && comp.children)
198
- return comp.children.map(function (c) { return (__assign(__assign({}, c), { parent: parentNode })); });
199
- };
200
- Editor2dDocument.prototype.createDisplayNode = function (displayType, parent, position, index, data) {
201
- var parentNode;
133
+ async changeResource(uri) {
134
+ const uriObj = new utils_1.URI(uri);
135
+ const resource = await this.resourceProvider(uriObj);
136
+ this.resourceAutoSaveService.changeResource(resource);
137
+ this.resourceAutoSaveService.sync();
138
+ }
139
+ // /**
140
+ // * 获取依赖的组件的内容
141
+ // * @param compPath
142
+ // * @param parentNode
143
+ // */
144
+ getComponentContent(compPath, parentNode) {
145
+ if (!this.componentProvider)
146
+ return undefined;
147
+ return this.componentProvider.getComponentContent(compPath, parentNode);
148
+ }
149
+ createDisplayNode(displayType, parent, position, index, data) {
150
+ let parentNode;
202
151
  if (!parent || editor2d_1.Editor2dNode.isRootNode(parent)) {
203
152
  parentNode = this.getNode(editor2d_1.Editor2dNode.ROOT_NODE_ID);
204
153
  }
@@ -206,10 +155,10 @@ var Editor2dDocument = /** @class */ (function (_super) {
206
155
  parentNode = editor2d_1.Editor2dNode.toContainerNode(parent);
207
156
  }
208
157
  // const lastChild = parentNode.children.slice().reverse().find(c => c.position !== undefined);
209
- var attrs = this.engineService.getDisplayDefaultData(this.engineName, displayType);
158
+ const attrs = this.engineService.getDisplayDefaultData(this.engineName, displayType);
210
159
  if (attrs.position) {
211
160
  if (!position) {
212
- var pos = 100 + Math.round(Math.random() * 100);
161
+ const pos = 100 + Math.round(Math.random() * 100);
213
162
  position = (displayType !== render_engine_1.GameObjectBaseType.GROUP && displayType !== render_engine_1.GameObjectBaseType.COMPONENT) ? { x: pos, y: pos } : { x: 0, y: 0 };
214
163
  }
215
164
  attrs.position.x = position.x;
@@ -222,23 +171,23 @@ var Editor2dDocument = /** @class */ (function (_super) {
222
171
  // // attrs.position.y = lastChild.position!.y + 20;
223
172
  // }
224
173
  }
225
- var name = this.getUniqueName(parentNode.children || [], (data === null || data === void 0 ? void 0 : data.name) || this.engineService.getGameObjectIDERegister(this.engineName, displayType).decoration.name);
226
- var node = editor2d_1.Editor2dNode.createNode(__assign(__assign(__assign({}, attrs), data), { name: name }), displayType, undefined, Object.keys(this.nodes));
174
+ const name = this.getUniqueName(parentNode.children || [], (data === null || data === void 0 ? void 0 : data.name) || this.engineService.getGameObjectIDERegister(this.engineName, displayType).decoration.name);
175
+ const node = editor2d_1.Editor2dNode.createNode(Object.assign(Object.assign(Object.assign({}, attrs), data), { name }), displayType, undefined, Object.keys(this.nodes));
227
176
  this.addChildren(node, parentNode, index === undefined ? 0 : index);
228
177
  return node;
229
- };
230
- Editor2dDocument.prototype.copyNode = function (targetNode) {
178
+ }
179
+ copyNode(targetNode) {
231
180
  if (!targetNode || editor2d_1.Editor2dNode.isRootNode(targetNode))
232
181
  return;
233
- var parent = targetNode.parent;
182
+ const parent = targetNode.parent;
234
183
  if (!this.canbeAddAsChild(parent, targetNode.displayType))
235
184
  return;
236
- var children = parent.children;
237
- var index = children.findIndex(function (value) { return value.id === targetNode.id; });
185
+ const children = parent.children;
186
+ const index = children.findIndex(value => value.id === targetNode.id);
238
187
  return this.copyToParentNode(parent, targetNode, index + 1);
239
- };
240
- Editor2dDocument.prototype.copyToParentNode = function (parentNode, nodeData, index, position) {
241
- var parent = undefined;
188
+ }
189
+ copyToParentNode(parentNode, nodeData, index, position) {
190
+ let parent = undefined;
242
191
  if (this.canbeAddAsChild(parentNode, nodeData.displayType)) {
243
192
  parent = parentNode;
244
193
  }
@@ -246,14 +195,14 @@ var Editor2dDocument = /** @class */ (function (_super) {
246
195
  parent = parentNode.parent;
247
196
  }
248
197
  if (parent) {
249
- var newNode = editor2d_1.Editor2dNode.clone(nodeData, [], Object.keys(this.nodes));
198
+ const newNode = editor2d_1.Editor2dNode.clone(nodeData, [], Object.keys(this.nodes));
250
199
  if (newNode.position) {
251
200
  newNode.position.x = position ? position.x : newNode.position.x + 20;
252
201
  newNode.position.y = position ? position.y : newNode.position.y + 20;
253
202
  }
254
203
  if (index === undefined) {
255
204
  if (parent === parentNode.parent) {
256
- index = parent.children.findIndex(function (value) { return value.id === parentNode.id; });
205
+ index = parent.children.findIndex(value => value.id === parentNode.id);
257
206
  if (index < 0) {
258
207
  index = 0;
259
208
  }
@@ -262,9 +211,9 @@ var Editor2dDocument = /** @class */ (function (_super) {
262
211
  index = 0;
263
212
  }
264
213
  }
265
- var name_1 = this.getUniqueName((parent.children || []), nodeData.name);
266
- Object.assign(newNode, { name: name_1 });
267
- var children = parent.children;
214
+ const name = this.getUniqueName((parent.children || []), nodeData.name);
215
+ Object.assign(newNode, { name });
216
+ let children = parent.children;
268
217
  if (!children) {
269
218
  children = parent.children = [];
270
219
  parent.expanded = true;
@@ -276,11 +225,11 @@ var Editor2dDocument = /** @class */ (function (_super) {
276
225
  this.fireContentChanged([newNode], 'add');
277
226
  return newNode;
278
227
  }
279
- };
280
- Editor2dDocument.prototype.delNode = function (targetNode, silent) {
228
+ }
229
+ delNode(targetNode, silent) {
281
230
  if (!targetNode || editor2d_1.Editor2dNode.isRootNode(targetNode))
282
231
  return;
283
- var parent = targetNode.parent;
232
+ const parent = targetNode.parent;
284
233
  this.removeNode(targetNode);
285
234
  tree_1.CompositeTreeNode.removeChild(parent, targetNode);
286
235
  if (!editor2d_1.Editor2dNode.isRootNode(parent) && parent.children.length === 0) {
@@ -290,25 +239,20 @@ var Editor2dDocument = /** @class */ (function (_super) {
290
239
  if (!silent) {
291
240
  this.fireContentChanged([targetNode], 'delete');
292
241
  }
293
- };
294
- Editor2dDocument.prototype.delNodes = function () {
295
- var _this = this;
296
- var targetNodes = [];
297
- for (var _i = 0; _i < arguments.length; _i++) {
298
- targetNodes[_i] = arguments[_i];
299
- }
300
- targetNodes.forEach(function (node) { return _this.delNode(node, true); });
242
+ }
243
+ delNodes(...targetNodes) {
244
+ targetNodes.forEach(node => this.delNode(node, true));
301
245
  if (targetNodes.length > 0) {
302
246
  this.fireContentChanged(targetNodes, 'delete');
303
247
  }
304
- };
305
- Editor2dDocument.prototype.rename = function (targetNode, name) {
248
+ }
249
+ rename(targetNode, name) {
306
250
  if (!name || !targetNode || editor2d_1.Editor2dNode.isRootNode(targetNode))
307
251
  return;
308
- this.updateNode(targetNode, { name: name });
309
- };
310
- Editor2dDocument.prototype.addChildren = function (node, parentNode, index) {
311
- if (index === void 0) { index = 0; }
252
+ this.updateNode(targetNode, { name });
253
+ }
254
+ addChildren(node, parentNode, index = 0) {
255
+ this.clearMask(node);
312
256
  if (node.parent) {
313
257
  this.delNode(node, true);
314
258
  }
@@ -318,23 +262,21 @@ var Editor2dDocument = /** @class */ (function (_super) {
318
262
  parentNode.children.splice(index, 0, node);
319
263
  tree_1.CompositeTreeNode.setParent(node, index, parentNode);
320
264
  parentNode.expanded = true;
265
+ this.nextMaskToNode(node);
321
266
  this.refresh(parentNode);
322
267
  this.fireContentChanged([node], node.parent ? 'update' : 'add');
323
- };
268
+ }
324
269
  /**
325
270
  * 打开节点
326
271
  */
327
- Editor2dDocument.prototype.expandNode = function (node, expanded) {
328
- if (expanded === void 0) { expanded = true; }
272
+ expandNode(node, expanded = true) {
329
273
  if (tree_1.CompositeTreeNode.is(node)) {
330
274
  node.expanded = expanded;
331
275
  this.refresh(node);
332
276
  }
333
- };
334
- Editor2dDocument.prototype.updateNode = function (node, data, forceUpdate, noSave, noFiredChanged) {
335
- if (data === void 0) { data = {}; }
336
- if (forceUpdate === void 0) { forceUpdate = false; }
337
- var treeNode = typeof node === 'string' ? this.nodes[node] : this.nodes[node.id];
277
+ }
278
+ updateNode(node, data = {}, forceUpdate = false, noSave, noFiredChanged) {
279
+ const treeNode = typeof node === 'string' ? this.nodes[node] : this.nodes[node.id];
338
280
  if (!treeNode)
339
281
  return;
340
282
  // if (data.name) {
@@ -349,24 +291,27 @@ var Editor2dDocument = /** @class */ (function (_super) {
349
291
  console.error('无法覆盖同步节点数据: ', treeNode, data);
350
292
  return;
351
293
  }
352
- var changed = forceUpdate ? true : utils_1.Compare.isDeepChanged(treeNode, data);
294
+ const changed = forceUpdate ? true : utils_1.Compare.isDeepChanged(treeNode, data);
353
295
  if (changed) {
354
296
  Object.assign(treeNode, data);
355
297
  treeNode.version = (treeNode.version || 0) + 1;
356
298
  // this.refresh(treeNode as Editor2dContainerNode);
357
299
  this.fireContentChanged([treeNode], 'update', noSave, noFiredChanged);
358
300
  }
359
- };
301
+ }
360
302
  /**
361
303
  * 检测节点名字,保证唯一
362
304
  * @param siblings
363
- * @param newName
305
+ * @param name
364
306
  * @protected
365
307
  */
366
- Editor2dDocument.prototype.getUniqueName = function (siblings, name, i) {
367
- if (i === void 0) { i = 0; }
368
- var newName = i ? "".concat(name, "(").concat(i, ")") : name;
369
- if (siblings.some(function (n) { return n.name === newName; })) {
308
+ getUniqueName(siblings, name, i = 0) {
309
+ const numMatched = name.match(/[0-9]+$/);
310
+ let newName = i ? `${name}${i}` : name;
311
+ if (numMatched) {
312
+ newName = name.slice(0, numMatched.index) + (parseInt(numMatched[0]) + i);
313
+ }
314
+ if (siblings.some(n => n.name === newName)) {
370
315
  return this.getUniqueName(siblings, name, i + 1);
371
316
  }
372
317
  return newName;
@@ -381,22 +326,22 @@ var Editor2dDocument = /** @class */ (function (_super) {
381
326
  return this.getUniqueName(siblings, name, displayType);
382
327
  }
383
328
  return name; */
384
- };
385
- Editor2dDocument.prototype.getSiblings = function (treeNode) {
329
+ }
330
+ getSiblings(treeNode) {
386
331
  if (treeNode.parent) {
387
- return treeNode.parent.children.filter(function (n) { return n !== treeNode; });
332
+ return treeNode.parent.children.filter(n => n !== treeNode);
388
333
  }
389
334
  return [];
390
- };
391
- Editor2dDocument.prototype.reloadContent = function (content) {
392
- var data = { version: this.version };
335
+ }
336
+ reloadContent(content) {
337
+ let data = { version: this.version };
393
338
  this.loading = true;
394
339
  try {
395
340
  data = JSON.parse(content || '{}');
396
341
  }
397
342
  catch (e) {
398
343
  console.error(e);
399
- this.message.error("\u6587\u4EF6 ".concat(this.uri, " \u5185\u5BB9\u89E3\u6790\u5931\u8D25"));
344
+ this.message.error(`文件 ${this.uri} 内容解析失败`);
400
345
  }
401
346
  if (data.content) {
402
347
  this._localVersion = data.content.version;
@@ -411,113 +356,262 @@ var Editor2dDocument = /** @class */ (function (_super) {
411
356
  this._snaplines = data.snaplines;
412
357
  }
413
358
  this.refresh();
414
- this.loadRefInfos();
359
+ // this.loadRefInfos();
415
360
  this.fireContentChanged([], 'add', true);
416
- };
417
- Editor2dDocument.prototype.reloadEnd = function () {
361
+ }
362
+ reloadEnd() {
418
363
  if (this.loading) {
419
364
  this.loading = false;
420
365
  }
421
- };
422
- Editor2dDocument.prototype.createRootNode = function () {
423
- var root = editor2d_1.Editor2dNode.createRootNode(new utils_1.URI(this.uri));
366
+ }
367
+ createRootNode() {
368
+ const root = editor2d_1.Editor2dNode.createRootNode(new utils_1.URI(this.uri));
424
369
  if (root.displayType === render_engine_1.GameObjectBaseType.SCENE) {
425
- var defaultData = this.engineService.getDisplayDefaultData(this.engineName, render_engine_1.GameObjectBaseType.SCENE);
370
+ const defaultData = this.engineService.getDisplayDefaultData(this.engineName, render_engine_1.GameObjectBaseType.SCENE);
426
371
  Object.assign(root, defaultData);
427
372
  }
428
373
  return root;
429
- };
430
- Editor2dDocument.prototype.save = function () {
374
+ }
375
+ save() {
431
376
  return this.resourceAutoSaveService.save();
432
- };
377
+ }
433
378
  ;
434
- Object.defineProperty(Editor2dDocument.prototype, "dirty", {
435
- get: function () {
436
- return this.resourceAutoSaveService.dirty;
437
- },
438
- enumerable: false,
439
- configurable: true
440
- });
441
- Object.defineProperty(Editor2dDocument.prototype, "autoSave", {
442
- get: function () {
443
- return this.resourceAutoSaveService.autoSave;
444
- },
445
- enumerable: false,
446
- configurable: true
447
- });
448
- Object.defineProperty(Editor2dDocument.prototype, "onDirtyChanged", {
449
- get: function () {
450
- return this.resourceAutoSaveService.onDirtyChanged;
451
- },
452
- enumerable: false,
453
- configurable: true
454
- });
455
- Editor2dDocument.prototype.toggleVisible = function (nodes, visible) {
456
- var _this = this;
457
- nodes.forEach(function (node) {
458
- if (_this.checkDecoration(node, 'hidable')) {
459
- _this.updateNode(node, { canvasHide: visible !== undefined ? !visible : !node.canvasHide });
379
+ get dirty() {
380
+ return this.resourceAutoSaveService.dirty;
381
+ }
382
+ get autoSave() {
383
+ return this.resourceAutoSaveService.autoSave;
384
+ }
385
+ get onDirtyChanged() {
386
+ return this.resourceAutoSaveService.onDirtyChanged;
387
+ }
388
+ /**
389
+ * @mask 操作说明
390
+ * 1. 当前 isMask 为 true, 移除 prevNode 上的 mask, 移到相应的图层后再设。
391
+ * 2. 当前 isMask 为 true 且 mask 有值,只清除 mask;
392
+ * 3. 当前是 mask child,先移除 mask, 拖到指定后再判断下一个是否 mask, 再附值;
393
+ * 4. 当前不是 mask, 移到 mask 树下,,设定下一个 node 上的 mask, 如果下一个 node 是 mask, 直接附值 id;
394
+ */
395
+ clearMask(node) {
396
+ // 只 mask 状态时, 移除 prevNode 上的 mask;
397
+ if (node.isMask && !node.mask) {
398
+ this.setPrevNodeMask(node.previousSibling);
399
+ }
400
+ // 当前忽略底层 mask 的,恢复上面的 mask;
401
+ if (node.mask && node.ignoreMask) {
402
+ this.setPrevNodeMask(node.previousSibling, node.mask);
403
+ }
404
+ if (node.mask) {
405
+ // 移除 mask;
406
+ node.mask = undefined;
407
+ }
408
+ }
409
+ nextMaskToNode(node) {
410
+ // 判断父级是否 mask 或 maskChild, 如果是则不用设
411
+ const nextNode = node.nextSibling;
412
+ const nextIsMask = nextNode && (nextNode.isMask || nextNode.mask);
413
+ // 如果底下有 mask;
414
+ if (nextIsMask) {
415
+ node.mask = nextNode.mask || nextNode.id;
416
+ // 底层忽略 mask 又是 mask 的情况,用底层的 id;
417
+ if (nextNode.ignoreMask && nextNode.isMask) {
418
+ node.mask = nextNode.id;
419
+ }
420
+ // 忽略 mask, 清除上一层的 mask;
421
+ if (node.ignoreMask) {
422
+ this.setPrevNodeMask(node.previousSibling);
423
+ }
424
+ //
425
+ // this.fireContentChanged([node], 'update', false, true);
426
+ }
427
+ else if (node.isMask) {
428
+ // 不是 mask,且当前是 mask, 设定上一层为 mask child;
429
+ this.setPrevNodeMask(node.previousSibling, node.id);
430
+ }
431
+ }
432
+ setPrevNodeMask(node, id) {
433
+ if (!node) {
434
+ return;
435
+ }
436
+ const n = node;
437
+ // 跳出不是 mask 实列
438
+ if (!exports.maskShowArray.concat(exports.maskEnabledArray).includes(n.displayType)) {
439
+ return;
440
+ }
441
+ // this.updateNode(n, { mask: id });
442
+ if (id !== n.mask) {
443
+ // n.version = (n.version || 0) + 1;
444
+ n.mask = id;
445
+ // this.updateNode(n, { mask: id }, true);
446
+ // this.fireContentChanged([n], 'update');
447
+ }
448
+ /**
449
+ * 断掉蒙板条件
450
+ * 1. 上一个忽略蒙板
451
+ * 2. 上一个类型不是图形或图片
452
+ * 3. 当前是蒙板,且 id 为 undefined
453
+ */
454
+ const prevNode = node.previousSibling;
455
+ if (prevNode &&
456
+ !n.ignoreMask &&
457
+ exports.maskShowArray.concat(exports.maskEnabledArray).includes(prevNode.displayType)
458
+ && !(n.isMask && typeof id === 'undefined')) {
459
+ this.setPrevNodeMask(node.previousSibling, id);
460
+ }
461
+ }
462
+ /**
463
+ * 切换 mask 图层;
464
+ * 多选:取最后一个当 mask, 并创建编组;
465
+ * 单选:设定同级的 previousSibling 的 isMaskChild = true;
466
+ * @param nodes
467
+ * @param mask
468
+ */
469
+ toggleMask(nodes, mask) {
470
+ if (nodes.length === 1) {
471
+ const node = nodes[0];
472
+ // this.updateNode(node, { isMask: !!mask });
473
+ /**
474
+ * @设定mask
475
+ * 1. 无特殊情况直接设
476
+ * 2. 在 mask 中且没有忽略底层,只改 isMask 值;
477
+ * 3. 在 mask 中且忽略了底层,改 isMask 和上一层的值;
478
+ */
479
+ node.isMask = mask;
480
+ // 1 和 3 处理
481
+ if (node.mask && node.ignoreMask || !node.mask) {
482
+ this.setPrevNodeMask(node.previousSibling, mask ? node.id : undefined);
483
+ }
484
+ this.fireContentChanged([node], 'update');
485
+ return;
486
+ }
487
+ /**
488
+ * @多个处理
489
+ * 多个用 getSelectedNodes, 保持图层顺序
490
+ * 检查最底下一个是否是可当 mask 的元素
491
+ * 1. 是:建个分组将最后个设 mask
492
+ * 2. 不是:Enabled 设定 mask, hierarchy-contribution 里判断
493
+ */
494
+ nodes = this.getSelectedNodes();
495
+ const group = this.combineNodes(nodes);
496
+ if (!group) {
497
+ return;
498
+ }
499
+ const lastNode = nodes[nodes.length - 1];
500
+ const childNodes = nodes.splice(0, nodes.length - 1);
501
+ lastNode.isMask = true;
502
+ childNodes.forEach(c => {
503
+ if (c.mask !== lastNode.id) {
504
+ c.mask = lastNode.id;
505
+ }
506
+ });
507
+ const groupNextNode = group.nextSibling;
508
+ let id;
509
+ // 如果底层是 maskChild 且没忽略,group 同步底层的 mask
510
+ if (groupNextNode.mask && !groupNextNode.ignoreMask) {
511
+ id = groupNextNode.mask;
512
+ }
513
+ // 如果底层是 mask,且忽略了底层,group mask 设为底层 id
514
+ if (groupNextNode.isMask && groupNextNode.ignoreMask) {
515
+ id = groupNextNode.id;
516
+ }
517
+ if (id) {
518
+ group.mask = id;
519
+ }
520
+ this.fireContentChanged(childNodes.concat([lastNode, group]), 'update');
521
+ }
522
+ /**
523
+ * 忽略底层 mask
524
+ * 忽略层 mask 不删除,留着恢复用,
525
+ * 设定忽略层 ignoreMask 和 清除 prev 上的 mask;
526
+ * @param nodes length === 1, 多个忽略
527
+ * @param ignore
528
+ */
529
+ ignoreMask(nodes, ignore) {
530
+ const node = nodes[0];
531
+ /**
532
+ * @忽略处理
533
+ * 1. 无特殊直接处理
534
+ * 2. 当前是 mask, 设定上一层的 mask 为当前 id;
535
+ */
536
+ if (ignore !== node.ignoreMask) {
537
+ node.ignoreMask = ignore;
538
+ }
539
+ const nextNode = node.nextSibling;
540
+ if (!ignore && nextNode && !(nextNode.mask || nextNode.isMask)) {
541
+ // 如果底层不是 mask, 清掉mask
542
+ node.mask = undefined;
543
+ }
544
+ // this.updateNode(node, { ignoreMask: ignore });
545
+ let id = ignore ? undefined : node.mask;
546
+ id = node.isMask && ignore ? node.id : id;
547
+ // id = node.isMask && !ignore ? node.mask : id;
548
+ // console.log(id, ignore);
549
+ this.setPrevNodeMask(node.previousSibling, id);
550
+ this.fireContentChanged([node], 'update');
551
+ }
552
+ toggleVisible(nodes, visible) {
553
+ nodes.forEach(node => {
554
+ if (this.checkDecoration(node, 'hidable')) {
555
+ this.updateNode(node, { canvasHide: visible !== undefined ? !visible : !node.canvasHide });
460
556
  }
461
557
  });
462
- };
463
- Editor2dDocument.prototype.toggleLock = function (nodes, locked) {
464
- var _this = this;
465
- nodes.forEach(function (node) {
466
- if (_this.checkDecoration(node, 'lockable')) {
467
- _this.updateNode(node, { locked: locked !== undefined ? locked : !node.locked });
558
+ }
559
+ toggleLock(nodes, locked) {
560
+ nodes.forEach(node => {
561
+ if (this.checkDecoration(node, 'lockable')) {
562
+ this.updateNode(node, { locked: locked !== undefined ? locked : !node.locked });
468
563
  }
469
564
  });
470
- };
471
- Editor2dDocument.prototype.moveUp = function (node, toTop) {
472
- var children = node.parent.children;
473
- var targetNode = toTop ? children[0] : node.previousSibling;
565
+ }
566
+ moveUp(node, toTop) {
567
+ const children = node.parent.children;
568
+ const targetNode = toTop ? children[0] : node.previousSibling;
474
569
  if (targetNode) {
475
570
  this.moveToNode(node, targetNode);
476
571
  }
477
- };
572
+ }
478
573
  /**
479
574
  * 上移动多个节点
480
575
  * @param nodes
481
576
  */
482
- Editor2dDocument.prototype.moveUpMore = function (nodes) {
483
- var _this = this;
577
+ moveUpMore(nodes) {
484
578
  nodes = nodes.length > 1
485
- ? nodes.slice().sort(function (n1, n2) { return tree_1.CompositeTreeNode.indexOf(n1.parent, n1) - tree_1.CompositeTreeNode.indexOf(n2.parent, n2); })
579
+ ? nodes.slice().sort((n1, n2) => tree_1.CompositeTreeNode.indexOf(n1.parent, n1) - tree_1.CompositeTreeNode.indexOf(n2.parent, n2))
486
580
  : nodes;
487
- nodes.forEach(function (n) { return _this.moveUp(n); });
488
- };
581
+ nodes.forEach(n => this.moveUp(n));
582
+ }
489
583
  /**
490
584
  * 下移动多个节点
491
585
  */
492
- Editor2dDocument.prototype.moveDownMore = function (nodes) {
493
- var _this = this;
586
+ moveDownMore(nodes) {
494
587
  nodes = nodes.length > 1
495
- ? nodes.slice().sort(function (n1, n2) { return tree_1.CompositeTreeNode.indexOf(n2.parent, n2) - tree_1.CompositeTreeNode.indexOf(n1.parent, n1); })
588
+ ? nodes.slice().sort((n1, n2) => tree_1.CompositeTreeNode.indexOf(n2.parent, n2) - tree_1.CompositeTreeNode.indexOf(n1.parent, n1))
496
589
  : nodes;
497
- nodes.forEach(function (n) { return _this.moveDown(n); });
498
- };
499
- Editor2dDocument.prototype.moveDown = function (node, toBottom) {
500
- var children = node.parent.children;
501
- var targetNode = toBottom ? children[children.length - 1] : node.nextSibling;
590
+ nodes.forEach(n => this.moveDown(n));
591
+ }
592
+ moveDown(node, toBottom) {
593
+ const children = node.parent.children;
594
+ const targetNode = toBottom ? children[children.length - 1] : node.nextSibling;
502
595
  if (targetNode) {
503
596
  this.moveToNode(node, targetNode, true);
504
597
  }
505
- };
598
+ }
506
599
  /**
507
600
  * 移动到对应节点位置
508
601
  * @param node
509
602
  * @param targetNode
510
603
  * @param toAfter - 是否加到目标节点的后边,默认前面
511
604
  */
512
- Editor2dDocument.prototype.moveToNode = function (node, targetNode, toAfter) {
605
+ moveToNode(node, targetNode, toAfter) {
513
606
  if (editor2d_1.Editor2dNode.isRootNode(targetNode) || tree_1.TreeNode.equals(node, targetNode))
514
607
  return;
515
- var parent = targetNode.parent;
516
- var children = parent.children;
608
+ this.clearMask(node);
609
+ const parent = targetNode.parent;
610
+ const children = parent.children;
517
611
  this.delNode(node, true);
518
- var targetIndex = children.indexOf(targetNode);
519
- var previousSibling = targetNode.previousSibling;
520
- var nextSibling = targetNode.nextSibling;
612
+ const targetIndex = children.indexOf(targetNode);
613
+ const previousSibling = targetNode.previousSibling;
614
+ const nextSibling = targetNode.nextSibling;
521
615
  // const uniqueName = this.getUniqueName(children, node.name!, node.displayType);
522
616
  if (!toAfter) {
523
617
  children.splice(targetIndex, 0, node);
@@ -527,8 +621,8 @@ var Editor2dDocument = /** @class */ (function (_super) {
527
621
  });
528
622
  }
529
623
  Object.assign(node, {
530
- parent: parent,
531
- previousSibling: previousSibling,
624
+ parent,
625
+ previousSibling,
532
626
  nextSibling: targetNode,
533
627
  });
534
628
  Object.assign(targetNode, {
@@ -541,9 +635,9 @@ var Editor2dDocument = /** @class */ (function (_super) {
541
635
  nextSibling: node
542
636
  });
543
637
  Object.assign(node, {
544
- parent: parent,
638
+ parent,
545
639
  previousSibling: targetNode,
546
- nextSibling: nextSibling,
640
+ nextSibling,
547
641
  });
548
642
  if (nextSibling) {
549
643
  Object.assign(nextSibling, {
@@ -551,137 +645,138 @@ var Editor2dDocument = /** @class */ (function (_super) {
551
645
  });
552
646
  }
553
647
  }
648
+ this.nextMaskToNode(node);
554
649
  this.refresh(parent);
555
650
  this.fireContentChanged([node], 'update');
556
- };
557
- Editor2dDocument.prototype.moveToNodesAsChildren = function (nodes, targetNode) {
558
- var _this = this;
651
+ }
652
+ moveToNodesAsChildren(nodes, targetNode) {
559
653
  // 后边的先加
560
654
  nodes = nodes.slice().reverse();
561
- var canAddAsChild = !nodes.find(function (s) { return !_this.canbeAddAsChild(targetNode, s.displayType, s); });
655
+ const canAddAsChild = !nodes.find(s => !this.canbeAddAsChild(targetNode, s.displayType, s));
562
656
  if (canAddAsChild) {
563
- nodes.forEach(function (node) { return _this.addChildren(node, targetNode, 0); });
657
+ nodes.forEach(node => this.addChildren(node, targetNode, 0));
564
658
  return true;
565
659
  }
566
660
  return false;
567
- };
568
- Editor2dDocument.prototype.moveToNodesAsSiblings = function (nodes, targetNode) {
569
- var _this = this;
661
+ }
662
+ moveToNodesAsSiblings(nodes, targetNode) {
570
663
  // 后边的先加
571
664
  nodes = nodes.slice().reverse();
572
- var canAddAsSibling = targetNode.parent && !nodes.find(function (s) { return !_this.canbeAddAsChild(targetNode.parent, s.displayType, s); });
665
+ const canAddAsSibling = targetNode.parent && !nodes.find(s => !this.canbeAddAsChild(targetNode.parent, s.displayType, s));
573
666
  if (canAddAsSibling) {
574
- nodes.forEach(function (node) {
575
- _this.moveToNode(node, targetNode, true);
667
+ nodes.forEach(node => {
668
+ this.moveToNode(node, targetNode, true);
576
669
  });
577
670
  return true;
578
671
  }
579
672
  return false;
580
- };
581
- Editor2dDocument.prototype.getSelectedNodes = function () {
582
- var nodes = [];
673
+ }
674
+ getSelectedNodes() {
675
+ const nodes = [];
583
676
  // eslint-disable-next-line guard-for-in
584
- for (var id in this.nodes) {
585
- var node = this.nodes[id];
677
+ for (const id in this.nodes) {
678
+ const node = this.nodes[id];
586
679
  if (node && node.selected) {
587
680
  nodes.push(node);
588
681
  }
589
682
  }
590
683
  return nodes;
591
- };
592
- Editor2dDocument.prototype.getNodeById = function (nodeId) {
684
+ }
685
+ getNodeById(nodeId) {
593
686
  return this.nodes[nodeId];
594
- };
595
- Editor2dDocument.prototype.getNodeIcon = function (node) {
687
+ }
688
+ getNodeIcon(node) {
596
689
  if (node.tags && node.tags.length > 0) {
597
- var tagId = node.tags[0].id;
598
- var tagIcon = this.appConfig.getTagIconClass(tagId);
690
+ const tagId = node.tags[0].id;
691
+ const tagIcon = this.appConfig.getTagIconClass(tagId);
599
692
  if (tagIcon)
600
693
  return tagIcon;
601
694
  }
602
- var register = this.engineService.getGameObjectIDERegister(this.engineName, node.displayType);
695
+ const register = this.engineService.getGameObjectIDERegister(this.engineName, node.displayType);
603
696
  if (register && register.decoration && register.decoration.iconClass) {
604
697
  return register.decoration.iconClass;
605
698
  }
606
699
  return '';
607
- };
608
- Editor2dDocument.prototype.getNodeIconColor = function (node) {
700
+ }
701
+ getNodeIconColor(node) {
609
702
  if (node.tags && node.tags.length > 0) {
610
- var tagId = node.tags[0].id;
611
- var tagIcon = this.appConfig.getTagColorClass(tagId);
703
+ const tagId = node.tags[0].id;
704
+ const tagIcon = this.appConfig.getTagColorClass(tagId);
612
705
  if (tagIcon)
613
706
  return tagIcon;
614
707
  }
615
708
  return '';
616
- };
617
- Editor2dDocument.prototype.getSelectedNodesWithoutRoot = function () {
618
- return this.getSelectedNodes().filter(function (n) { return !editor2d_1.Editor2dNode.isRootNode(n); });
619
- };
620
- Editor2dDocument.prototype.isContainNode = function (parent, id) {
621
- var target = this.nodes[id];
709
+ }
710
+ getSelectedNodesWithoutRoot() {
711
+ return this.getSelectedNodes().filter(n => !editor2d_1.Editor2dNode.isRootNode(n));
712
+ }
713
+ isContainNode(parent, id) {
714
+ let target = this.nodes[id];
622
715
  while (target) {
623
716
  if (target.id === parent.id)
624
717
  return true;
625
718
  target = target.parent;
626
719
  }
627
720
  return false;
628
- };
721
+ }
629
722
  /**
630
723
  * 合并分组
631
724
  * @param nodes
632
725
  */
633
- Editor2dDocument.prototype.combineNodes = function (nodes) {
726
+ combineNodes(n) {
727
+ // 合成分组保持图层顺序
728
+ const nodes = n || this.getSelectedNodes();
634
729
  if (nodes.length > 0) {
635
730
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
636
- var parent_1 = nodes[0].parent;
637
- var index = tree_1.CompositeTreeNode.indexOf(parent_1, nodes[0]);
638
- var group = this.createDisplayNode(render_engine_1.GameObjectBaseType.GROUP, parent_1, undefined, index);
731
+ const parent = nodes[0].parent;
732
+ const index = tree_1.CompositeTreeNode.indexOf(parent, nodes[0]);
733
+ const group = this.createDisplayNode(render_engine_1.GameObjectBaseType.GROUP, parent, undefined, index);
639
734
  this.moveToNodesAsChildren(nodes, group);
735
+ return group;
640
736
  }
641
- };
737
+ }
642
738
  /**
643
739
  * 解除分组,目前只支持图层
644
740
  * @param node
645
741
  */
646
- Editor2dDocument.prototype.unCombineNode = function (node) {
647
- var _this = this;
742
+ unCombineNode(node) {
648
743
  if (node.children && node.parent) {
649
744
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
650
- var parentNode_1 = node.parent;
651
- var curIndex_1 = tree_1.CompositeTreeNode.indexOf(parentNode_1, node);
652
- node.children.slice().reverse().forEach(function (n) {
653
- _this.addChildren(n, parentNode_1, curIndex_1);
745
+ const parentNode = node.parent;
746
+ const curIndex = tree_1.CompositeTreeNode.indexOf(parentNode, node);
747
+ node.children.slice().reverse().forEach((n) => {
748
+ this.addChildren(n, parentNode, curIndex);
654
749
  });
655
750
  }
656
751
  this.delNode(node);
657
- };
752
+ }
658
753
  /**
659
754
  * 可以作为子节点
660
755
  * @param targetNode
661
756
  * @param childDisplayType
662
757
  * @param childNode
663
758
  */
664
- Editor2dDocument.prototype.canbeAddAsChild = function (targetNode, childDisplayType, childNode) {
759
+ canbeAddAsChild(targetNode, childDisplayType, childNode) {
665
760
  if (childNode && childNode.parent === targetNode)
666
761
  return true;
667
- var isRootNode = editor2d_1.Editor2dNode.isRootNode(targetNode);
668
- var nodeDeco = this.engineService.getGameObjectDecoration(this.engineName, targetNode.displayType);
669
- var childDeco = this.engineService.getGameObjectDecoration(this.engineName, childDisplayType);
670
- var childTypes = typeof nodeDeco.childTypes === 'function' ? nodeDeco.childTypes(targetNode) : (nodeDeco.childTypes || []);
671
- var checkParent = false;
762
+ const isRootNode = editor2d_1.Editor2dNode.isRootNode(targetNode);
763
+ const nodeDeco = this.engineService.getGameObjectDecoration(this.engineName, targetNode.displayType);
764
+ const childDeco = this.engineService.getGameObjectDecoration(this.engineName, childDisplayType);
765
+ const childTypes = typeof nodeDeco.childTypes === 'function' ? nodeDeco.childTypes(targetNode) : (nodeDeco.childTypes || []);
766
+ let checkParent = false;
672
767
  if (childDeco.parentTypes !== undefined) {
673
- checkParent = childDeco.parentTypes.find(function (d) { return targetNode.displayType === d || (isRootNode && d === 'root') || nodeDeco.group === d; }) !== undefined;
768
+ checkParent = childDeco.parentTypes.find(d => targetNode.displayType === d || (isRootNode && d === 'root') || nodeDeco.group === d) !== undefined;
674
769
  if (checkParent && childDeco.parentIgnoreTypes !== undefined) {
675
- checkParent = !childDeco.parentIgnoreTypes.find(function (d) { return targetNode.displayType === d || (isRootNode && d === 'root') || nodeDeco.group === d; });
770
+ checkParent = !childDeco.parentIgnoreTypes.find(d => targetNode.displayType === d || (isRootNode && d === 'root') || nodeDeco.group === d);
676
771
  }
677
772
  }
678
- var checkChildren = childTypes.find(function (d) { return childDisplayType === d || childDeco.group === d; }) !== undefined;
679
- var checkSuccess = checkParent || checkChildren;
773
+ const checkChildren = childTypes.find(d => childDisplayType === d || childDeco.group === d) !== undefined;
774
+ const checkSuccess = checkParent || checkChildren;
680
775
  if (!checkSuccess)
681
776
  return false;
682
- var siblings = targetNode.children || [];
777
+ const siblings = targetNode.children || [];
683
778
  if (childDeco.single) {
684
- var addedNodes = siblings.filter(function (s) { return s.displayType === childDisplayType; });
779
+ const addedNodes = siblings.filter(s => s.displayType === childDisplayType);
685
780
  if (addedNodes.length > 0)
686
781
  return false;
687
782
  }
@@ -689,43 +784,40 @@ var Editor2dDocument = /** @class */ (function (_super) {
689
784
  return childDeco.canbeAddedAsChild(targetNode, siblings);
690
785
  }
691
786
  return true;
692
- };
693
- Editor2dDocument.prototype.checkDecoration = function (node, decoKey) {
694
- var deco = this.engineService.getGameObjectDecoration(this.engineName, node.displayType);
787
+ }
788
+ checkDecoration(node, decoKey) {
789
+ const deco = this.engineService.getGameObjectDecoration(this.engineName, node.displayType);
695
790
  return deco[decoKey] === undefined || !!deco[decoKey];
696
- };
697
- Editor2dDocument.prototype.setAnimationStarted = function (b) {
791
+ }
792
+ setAnimationStarted(b) {
698
793
  this.animationStarted = b;
699
- };
700
- Editor2dDocument.prototype.startRecordAnimation = function (animationIds, onNodeChange) {
701
- var _this = this;
794
+ }
795
+ startRecordAnimation(animationIds, onNodeChange) {
702
796
  // this.animationStarted = true;
703
797
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
704
- var getNodesToChildrenById = function (n, id) {
705
- return n.children && n.children.some(function (c) { return c.id === id || getNodesToChildrenById(c, id); });
706
- };
798
+ const getNodesToChildrenById = (n, id) => n.children && n.children.some((c) => c.id === id || getNodesToChildrenById(c, id));
707
799
  this.animationIds = animationIds();
708
- var cache = this.animationIds
709
- .map(function (id) { return _this.getNodeById(id); }).filter(function (n) { return !!n; })
710
- .map(function (node) { return _this.cloneNodeData(node); });
711
- var toDispose = this.onContentChanged(function (e) {
712
- _this.animationIds = animationIds();
800
+ // 缓存移到 timeline 里处理
801
+ /* const cache: Editor2dNode[] = this.animationIds
802
+ .map(id => this.getNodeById(id)).filter(n => !!n)
803
+ .map(node => this.cloneNodeData(node as Editor2dNode)); */
804
+ const toDispose = this.onContentChanged(e => {
805
+ this.animationIds = animationIds();
713
806
  // TODO 删除动画元件后,动画面板清空数据
714
807
  if (e.nodes) {
715
- var nodes = e.nodes.filter(function (n) {
716
- // 新建面板时,加入的元素先插入 cache 记录初始值
717
- if (n && n.animation && n.displayType === render_engine_1.GameObjectBaseType.ANIMATION) {
718
- var _a = n.animation, animation = _a === void 0 ? {} : _a;
719
- var _b = (animation || {}).frames, frames_1 = _b === void 0 ? {} : _b;
720
- frames_1.forEach(function (c) {
721
- if (!cache.some(function (d) { return d.id === c.id; })) {
722
- var node = _this.cloneNodeData(_this.getNodeById(c.id));
723
- cache.push(node);
724
- }
725
- });
808
+ const nodes = e.nodes.filter((n) =>
809
+ // 新建面板时,加入的元素先插入 cache 记录初始值
810
+ /* if (n && n.animation && n.displayType === GameObjectBaseType.ANIMATION) {
811
+ const { animation = {} } = n;
812
+ const { frames = {} } = animation || {};
813
+ frames.forEach((c: any) => {
814
+ if (!cache.some(d => d.id === c.id)) {
815
+ const node = this.cloneNodeData(this.getNodeById(c.id) as Editor2dNode);
816
+ cache.push(node);
726
817
  }
727
- return _this.animationIds.some(function (id) { return (id === n.id) || getNodesToChildrenById(n, id); });
728
- });
818
+ });
819
+ } */
820
+ this.animationIds.some(id => (id === n.id) || getNodesToChildrenById(n, id)));
729
821
  if (nodes.length) {
730
822
  // TODO: 音乐素材变更
731
823
  onNodeChange(nodes, e.type);
@@ -733,179 +825,147 @@ var Editor2dDocument = /** @class */ (function (_super) {
733
825
  }
734
826
  });
735
827
  return {
736
- dispose: function () {
828
+ dispose: () => {
737
829
  toDispose.dispose();
738
830
  // reset node data
739
- cache.forEach(function (nodeData) {
740
- var displayType = nodeData.displayType;
741
- var currentNode = _this.getNodeById(nodeData.id);
742
- if (!currentNode) {
743
- return;
744
- }
745
- var register = _this.engineService.getGameObjectIDERegister(_this.engineService.engineName, displayType);
746
- var _a = _this.engineService.getGameObjectDecoration(_this.engineService.engineName, displayType).timelineDisabledKeys, timelineDisabledKeys = _a === void 0 ? [] : _a;
747
- var keysList = (0, utils_2.getAnimationKeys)(_this.engineService, register, timelineDisabledKeys);
748
- var changeData = (0, utils_2.getChangeAnimationData)(keysList, currentNode, nodeData);
749
- changeData.name = currentNode === null || currentNode === void 0 ? void 0 : currentNode.name;
750
- _this.updateNode(nodeData.id, changeData, true);
751
- });
831
+ /* cache.forEach(nodeData => {
832
+ const { displayType } = nodeData;
833
+ const currentNode = this.getNodeById(nodeData.id);
834
+ if (!currentNode) {
835
+ return;
836
+ }
837
+ const register = this.engineService.getGameObjectIDERegister(this.engineService.engineName, displayType);
838
+ const {
839
+ timelineDisabledKeys = [],
840
+ } = this.engineService.getGameObjectDecoration(
841
+ this.engineService.engineName,
842
+ displayType,
843
+ );
844
+ const keysList = getAnimationKeys(this.engineService, register, timelineDisabledKeys);
845
+ const changeData: {[key: string]: any} = getChangeAnimationData(keysList, currentNode, nodeData);
846
+ changeData.name = currentNode?.name;
847
+ this.updateNode(nodeData.id, changeData, true);
848
+ }); */
752
849
  // this.animationStarted = false;
753
- _this.animationIds = [];
850
+ this.animationIds = [];
754
851
  }
755
852
  };
756
- };
853
+ }
757
854
  /**
758
855
  * 同一个时间周期的refresh自动取消
759
856
  * @param raw
760
857
  */
761
- Editor2dDocument.prototype.refresh = function (raw) {
762
- var _this = this;
858
+ refresh(raw) {
763
859
  if (!raw)
764
- return _super.prototype.refresh.call(this);
765
- var deferred = new utils_1.PromiseDeferred();
860
+ return super.refresh();
861
+ const deferred = new utils_1.PromiseDeferred();
766
862
  if (this.refreshingNodes.has(raw)) {
767
- var cache = this.refreshingNodes.get(raw);
863
+ const cache = this.refreshingNodes.get(raw);
768
864
  cache.deferred.resolve(undefined);
769
865
  clearTimeout(cache.timeout);
770
866
  this.refreshingNodes.delete(raw);
771
867
  }
772
- var timeout = setTimeout(function () {
773
- _this.refreshingNodes.delete(raw);
774
- _super.prototype.refresh.call(_this, raw)
775
- .then(function (res) { return deferred.resolve(res); })
776
- .catch(function (rej) { return deferred.reject(rej); });
868
+ const timeout = setTimeout(() => {
869
+ this.refreshingNodes.delete(raw);
870
+ super.refresh(raw)
871
+ .then(res => deferred.resolve(res))
872
+ .catch(rej => deferred.reject(rej));
777
873
  });
778
874
  // @ts-ignore
779
- this.refreshingNodes.set(raw, { timeout: timeout, deferred: deferred });
875
+ this.refreshingNodes.set(raw, { timeout, deferred });
780
876
  return deferred.promise;
781
- };
782
- Editor2dDocument.prototype.cloneNodeData = function (node) {
877
+ }
878
+ cloneNodeData(node) {
783
879
  return (0, utils_1.deepClone)((0, utils_1.omit)(node, ['parent', 'previousSibling', 'nextSibling', 'selected', 'canvasHide', 'version']));
784
- };
785
- Object.defineProperty(Editor2dDocument.prototype, "version", {
786
- get: function () {
787
- return this._localVersion;
788
- },
789
- enumerable: false,
790
- configurable: true
791
- });
792
- Object.defineProperty(Editor2dDocument.prototype, "length", {
793
- get: function () {
794
- return Object.keys(this.nodes).length;
795
- },
796
- enumerable: false,
797
- configurable: true
798
- });
799
- /**
800
- * 检测错误
801
- * @protected
802
- */
803
- Editor2dDocument.prototype.loadRefInfos = function () {
804
- return __awaiter(this, void 0, void 0, function () {
805
- var componentContents, _a, normalize;
806
- return __generator(this, function (_b) {
807
- switch (_b.label) {
808
- case 0: return [4 /*yield*/, this.resourceService.getDependenciesContent(this.uri, function (u) { return !!u.match(/\.comp/); })];
809
- case 1:
810
- componentContents = _b.sent();
811
- if (!!this.options.isTemplate) return [3 /*break*/, 3];
812
- _a = this;
813
- return [4 /*yield*/, this.resourceService.checkRefsErrors(this.uri)];
814
- case 2:
815
- _a.errors = _b.sent();
816
- _b.label = 3;
817
- case 3:
818
- normalize = function (node, version, parent) {
819
- if (parent) {
820
- node.parent = parent;
821
- }
822
- if (version !== undefined) {
823
- node.version = version;
824
- }
825
- node.children = node.children ? node.children.map(function (c) { return normalize(c, version, node); }) : undefined;
826
- return node;
827
- };
828
- this.componentContents = (0, utils_1.mapValues)(componentContents, function (value) { return value.content ? normalize(value.content, value.version) : undefined; });
829
- return [4 /*yield*/, this.refresh()];
830
- case 4:
831
- _b.sent();
832
- this.fireContentChanged([], 'add', true);
833
- return [2 /*return*/];
834
- }
835
- });
836
- });
837
- };
838
- Editor2dDocument.prototype.getWarningDesc = function (node) {
880
+ }
881
+ get version() {
882
+ return this._localVersion;
883
+ }
884
+ get length() {
885
+ return Object.keys(this.nodes).length;
886
+ }
887
+ // /**
888
+ // * 检测错误
889
+ // * @protected
890
+ // */
891
+ // protected async loadRefInfos(): Promise<void> {
892
+ // const componentContents = await this.resourceService.getDependenciesContent<Editor2dContent>(this.uri, u => !!u.match(/\.comp/));
893
+ // // 模板模式暂时不做资源依赖检测
894
+ // if (!this.options.isTemplate) {
895
+ // this.errors = await this.resourceService.checkRefsErrors(this.uri);
896
+ // }
897
+ // const normalize = (node: Editor2dNode, version?: number, parent?: Editor2dNode) => {
898
+ // if (parent) {
899
+ // node.parent = parent as Editor2dContainerNode;
900
+ // }
901
+ // if (version !== undefined) {
902
+ // node.version = version;
903
+ // }
904
+ // node.children = node.children ? node.children.map(c => normalize(c as Editor2dNode, version, node)) : undefined;
905
+ // return node;
906
+ // };
907
+ // this.componentContents = mapValues<Editor2dNode>(componentContents, (value: Editor2dContent) => value.content ? normalize(value.content!, value.version) : undefined);
908
+ // await this.refresh();
909
+ // this.fireContentChanged([], 'add', true);
910
+ // }
911
+ getWarningDesc(node) {
839
912
  if (node.error && node.error.message)
840
913
  return node.error.message;
841
- var uris = [];
842
- var register = this.engineService.getGameObjectIDERegister(this.engineName, node.displayType);
914
+ let uris = [];
915
+ const register = this.engineService.getGameObjectIDERegister(this.engineName, node.displayType);
843
916
  if (register.getReferenceUris) {
844
917
  uris = register.getReferenceUris(node);
845
918
  }
846
919
  else {
847
920
  return undefined;
848
921
  }
849
- var error = this.errors.find(function (e) { return uris.includes(e.uri); });
922
+ const error = this.errors.find(e => uris.includes(e.uri));
850
923
  return error === null || error === void 0 ? void 0 : error.message;
851
- };
852
- Editor2dDocument.prototype.queryNodesByTypes = function (types) {
853
- var e_1, _a;
924
+ }
925
+ queryNodesByTypes(types) {
854
926
  if (!this.root)
855
927
  return [];
856
- var nodes = [];
857
- try {
858
- for (var _b = __values(new editor2d_iterator_1.Editor2dIterator(this.root)), _c = _b.next(); !_c.done; _c = _b.next()) {
859
- var node = _c.value;
860
- if (node !== this.root && (!types || types.includes(node.displayType))) {
861
- nodes.push(node);
862
- }
863
- }
864
- }
865
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
866
- finally {
867
- try {
868
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
928
+ const nodes = [];
929
+ for (const node of new editor2d_iterator_1.Editor2dIterator(this.root)) {
930
+ if (node !== this.root && (!types || types.includes(node.displayType))) {
931
+ nodes.push(node);
869
932
  }
870
- finally { if (e_1) throw e_1.error; }
871
933
  }
872
934
  return nodes;
873
- };
874
- Editor2dDocument.prototype.nodeIdToGameObjectId = function (nodeId) {
875
- var node = this.nodes[nodeId];
935
+ }
936
+ nodeIdToGameObjectId(nodeId) {
937
+ const node = this.nodes[nodeId];
876
938
  if (!node)
877
939
  return '';
878
- var objectId = editor2d_1.Editor2dNode.getNodePath(node);
940
+ const objectId = editor2d_1.Editor2dNode.getNodePath(node);
879
941
  return objectId;
880
- };
942
+ }
881
943
  /**
882
944
  * 获取游戏对象
883
945
  * @param nodeId
884
946
  */
885
- Editor2dDocument.prototype.getGameObjectById = function (nodeId) {
886
- var objectId = this.nodeIdToGameObjectId(nodeId);
887
- var game = this.engineService.getGameWidgetByUri(this.uri);
947
+ getGameObjectById(nodeId) {
948
+ const objectId = this.nodeIdToGameObjectId(nodeId);
949
+ const game = this.engineService.getGameWidgetByUri(this.uri);
888
950
  if (game) {
889
- var scene = game.getCurrentScene();
951
+ const scene = game.getCurrentScene();
890
952
  if (scene) {
891
953
  return scene.gameObjectStore.get(objectId);
892
954
  }
893
955
  }
894
- };
956
+ }
895
957
  /**
896
958
  * 位置移动
897
959
  * @param nodes
898
960
  * @param type
899
961
  * @param delta
900
962
  */
901
- Editor2dDocument.prototype.positionMove = function (nodes, type, delta) {
902
- var _this = this;
903
- if (delta === void 0) { delta = 1; }
904
- nodes = nodes.filter(function (node) { return node.position; });
963
+ positionMove(nodes, type, delta = 1) {
964
+ nodes = nodes.filter(node => node.position);
905
965
  if (nodes.length === 0)
906
966
  return;
907
- var moveType = 'x';
908
- var moveDelta = delta;
967
+ let moveType = 'x';
968
+ let moveDelta = delta;
909
969
  switch (type) {
910
970
  case 'left':
911
971
  moveDelta = -moveDelta;
@@ -920,58 +980,51 @@ var Editor2dDocument = /** @class */ (function (_super) {
920
980
  moveType = 'y';
921
981
  break;
922
982
  }
923
- nodes.forEach(function (node) {
924
- var position = node.position;
925
- var newPosition = {
983
+ nodes.forEach(node => {
984
+ const position = node.position;
985
+ const newPosition = {
926
986
  x: moveType === 'x' ? position.x + moveDelta : position.x,
927
987
  y: moveType === 'y' ? position.y + moveDelta : position.y,
928
988
  };
929
- _this.updateNode(node, { position: newPosition, }, true, true, true);
989
+ this.updateNode(node, { position: newPosition, }, true, true, true);
930
990
  });
931
991
  this.fireContentChanged(nodes, 'update');
932
- };
933
- Object.defineProperty(Editor2dDocument.prototype, "snaplines", {
934
- get: function () {
935
- return this._snaplines;
936
- },
937
- set: function (lines) {
938
- this._snaplines = lines;
939
- if (JSON.stringify(lines) !== JSON.stringify(this._snaplines)) {
940
- this.fireContentChanged([], 'update');
941
- }
942
- },
943
- enumerable: false,
944
- configurable: true
945
- });
946
- Object.defineProperty(Editor2dDocument.prototype, "saveVersion", {
947
- get: function () {
948
- return this._saveVersion;
949
- },
950
- enumerable: false,
951
- configurable: true
952
- });
953
- Editor2dDocument.prototype.findIndex = function (node) {
954
- var parent = node.parent;
992
+ }
993
+ get snaplines() {
994
+ return this._snaplines;
995
+ }
996
+ set snaplines(lines) {
997
+ this._snaplines = lines;
998
+ if (JSON.stringify(lines) !== JSON.stringify(this._snaplines)) {
999
+ this.fireContentChanged([], 'update');
1000
+ }
1001
+ }
1002
+ get saveVersion() {
1003
+ return this._saveVersion;
1004
+ }
1005
+ findIndex(node) {
1006
+ const parent = node.parent;
955
1007
  if (parent) {
956
1008
  return parent.children.indexOf(node);
957
1009
  }
958
1010
  return 0;
959
- };
960
- Editor2dDocument = __decorate([
961
- (0, inversify_1.injectable)(),
962
- __param(0, (0, inversify_1.inject)(connection_1.MessageService)),
963
- __param(1, (0, inversify_1.inject)(editor2d_1.Editor2dModelOptions)),
964
- __param(2, (0, inversify_1.inject)(resource_1.ResourceProvider)),
965
- __param(3, (0, inversify_1.inject)(browser_1.ResourceAutoSaveService)),
966
- __param(4, (0, inversify_1.inject)(workspace_2d_1.WorkspaceResourceService)),
967
- __param(5, (0, inversify_1.inject)(render_engine_ide_1.RenderEngineIDEService)),
968
- __param(6, (0, inversify_1.inject)(app_config_1.AppConfigService)),
969
- __metadata("design:paramtypes", [connection_1.MessageService, Object, Function, browser_1.ResourceAutoSaveService,
970
- workspace_2d_1.WorkspaceResourceService,
971
- render_engine_ide_1.RenderEngineIDEService,
972
- app_config_1.AppConfigService])
973
- ], Editor2dDocument);
974
- return Editor2dDocument;
975
- }(tree_1.TreeImpl));
1011
+ }
1012
+ };
1013
+ Editor2dDocument = __decorate([
1014
+ (0, inversify_1.injectable)(),
1015
+ __param(0, (0, inversify_1.inject)(connection_1.MessageService)),
1016
+ __param(1, (0, inversify_1.inject)(editor2d_1.Editor2dModelOptions)),
1017
+ __param(2, (0, inversify_1.inject)(resource_1.ResourceProvider)),
1018
+ __param(3, (0, inversify_1.inject)(browser_1.ResourceAutoSaveService)),
1019
+ __param(4, (0, inversify_1.inject)(workspace_2d_1.WorkspaceResourceService)),
1020
+ __param(5, (0, inversify_1.inject)(render_engine_ide_1.RenderEngineIDEService)),
1021
+ __param(6, (0, inversify_1.inject)(app_config_1.AppConfigService)),
1022
+ __param(7, (0, inversify_1.inject)(exports.Editor2dComponentProvider)),
1023
+ __param(7, (0, inversify_1.optional)()),
1024
+ __metadata("design:paramtypes", [connection_1.MessageService, Object, Function, browser_1.ResourceAutoSaveService,
1025
+ workspace_2d_1.WorkspaceResourceService,
1026
+ render_engine_ide_1.RenderEngineIDEService,
1027
+ app_config_1.AppConfigService, Object])
1028
+ ], Editor2dDocument);
976
1029
  exports.Editor2dDocument = Editor2dDocument;
977
1030
  //# sourceMappingURL=editor2d-document.js.map