bruce-cesium 0.4.0 → 0.4.2

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 (34) hide show
  1. package/dist/bruce-cesium.es5.js +46 -58
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +45 -57
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +30 -30
  6. package/dist/lib/rendering/entity-render-engine.js +848 -848
  7. package/dist/lib/rendering/menu-item-manager.js +252 -252
  8. package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
  9. package/dist/lib/rendering/render-addons/render-addon.js +2 -2
  10. package/dist/lib/rendering/render-helper.js +296 -296
  11. package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
  12. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +146 -146
  13. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +143 -143
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +234 -234
  15. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +139 -139
  16. package/dist/lib/rendering/render-managers/render-manager.js +50 -50
  17. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +236 -236
  18. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +320 -320
  19. package/dist/lib/rendering/tile-render-engine.js +815 -831
  20. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  21. package/dist/lib/rendering/tileset-render-engine.js +499 -499
  22. package/dist/lib/rendering/view-render-engine.js +305 -309
  23. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  24. package/dist/lib/rendering/visuals-register.js +402 -394
  25. package/dist/lib/rendering/visuals-register.js.map +1 -1
  26. package/dist/lib/utils/drawing-utils.js +42 -42
  27. package/dist/lib/utils/entity-utils.js +99 -99
  28. package/dist/lib/utils/measure-utils.js +34 -34
  29. package/dist/lib/utils/view-utils.js +72 -72
  30. package/dist/lib/viewer/cesium-view-monitor.js +231 -231
  31. package/dist/lib/viewer/viewer-utils.js +85 -85
  32. package/dist/types/rendering/tile-render-engine.d.ts +2 -4
  33. package/dist/types/rendering/visuals-register.d.ts +2 -0
  34. package/package.json +76 -76
@@ -1,253 +1,253 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- 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;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.MenuItemManager = void 0;
51
- var bruce_models_1 = require("bruce-models");
52
- var entities_render_manager_1 = require("./render-managers/entities/entities-render-manager");
53
- var entities_loaded_render_manager_1 = require("./render-managers/entities/entities-loaded-render-manager");
54
- var visuals_register_1 = require("./visuals-register");
55
- var entities_ids_render_manager_1 = require("./render-managers/entities/entities-ids-render-manager");
56
- var entity_render_manager_1 = require("./render-managers/entities/entity-render-manager");
57
- var tileset_cad_render_manager_1 = require("./render-managers/tilesets/tileset-cad-render-manager");
58
- var shared_getters_1 = require("./render-managers/common/shared-getters");
59
- var cesium_view_monitor_1 = require("../viewer/cesium-view-monitor");
60
- var tileset_osm_render_manager_1 = require("./render-managers/tilesets/tileset-osm-render-manager");
61
- /**
62
- * Utility to keep track of enabled menu items within a Cesium viewer.
63
- */
64
- var MenuItemManager;
65
- (function (MenuItemManager) {
66
- var Manager = /** @class */ (function () {
67
- function Manager(viewer, visualsRegister) {
68
- this.items = [];
69
- this.onUpdate = null;
70
- this.viewer = viewer;
71
- if (!visualsRegister) {
72
- visualsRegister = new visuals_register_1.VisualsRegister.Register(viewer);
73
- }
74
- this.visualsRegister = visualsRegister;
75
- this.sharedGetters = new shared_getters_1.SharedGetters.Cache();
76
- this.sharedMonitor = new cesium_view_monitor_1.CesiumViewMonitor(this.viewer);
77
- }
78
- Object.defineProperty(Manager.prototype, "Viewer", {
79
- get: function () {
80
- return this.viewer;
81
- },
82
- enumerable: false,
83
- configurable: true
84
- });
85
- Object.defineProperty(Manager.prototype, "VisualsRegister", {
86
- get: function () {
87
- return this.visualsRegister;
88
- },
89
- enumerable: false,
90
- configurable: true
91
- });
92
- Object.defineProperty(Manager.prototype, "OnUpdate", {
93
- get: function () {
94
- if (!this.onUpdate) {
95
- this.onUpdate = new bruce_models_1.BruceEvent();
96
- }
97
- return this.onUpdate;
98
- },
99
- enumerable: false,
100
- configurable: true
101
- });
102
- /**
103
- * Renders a given menu item and all ids children.
104
- * Will return the enabled item id.
105
- * @param params
106
- * @param recursive
107
- * @returns
108
- */
109
- Manager.prototype.RenderItem = function (params, recursive) {
110
- var _a, _b;
111
- if (recursive === void 0) { recursive = true; }
112
- return __awaiter(this, void 0, void 0, function () {
113
- var rItem, i, childId;
114
- return __generator(this, function (_c) {
115
- switch (_c.label) {
116
- case 0:
117
- rItem = this.items.find(function (x) { return x.id == params.item.id; });
118
- if (!!rItem) return [3 /*break*/, 2];
119
- rItem = {
120
- id: (_a = params.item.id) !== null && _a !== void 0 ? _a : bruce_models_1.ObjectUtils.UId(),
121
- childIds: [],
122
- item: params.item,
123
- renderManager: null,
124
- type: params.item.Type
125
- };
126
- this.items.push(rItem);
127
- switch (params.item.Type) {
128
- case bruce_models_1.MenuItem.EType.Entities:
129
- rItem.renderManager = new entities_render_manager_1.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
130
- break;
131
- case bruce_models_1.MenuItem.EType.EntitiesLoaded:
132
- rItem.renderManager = new entities_loaded_render_manager_1.EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
133
- break;
134
- case bruce_models_1.MenuItem.EType.EntitiesIds:
135
- rItem.renderManager = new entities_ids_render_manager_1.EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
136
- break;
137
- case bruce_models_1.MenuItem.EType.Entity:
138
- rItem.renderManager = new entity_render_manager_1.EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
139
- break;
140
- case bruce_models_1.MenuItem.EType.CadTileset:
141
- rItem.renderManager = new tileset_cad_render_manager_1.TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
142
- break;
143
- case bruce_models_1.MenuItem.EType.Osm:
144
- rItem.renderManager = new tileset_osm_render_manager_1.TilesetOsmRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
145
- break;
146
- case bruce_models_1.MenuItem.EType.PointCloud:
147
- // TODO;
148
- break;
149
- case bruce_models_1.MenuItem.EType.EntityTileset:
150
- // TODO;
151
- break;
152
- case bruce_models_1.MenuItem.EType.Kml:
153
- // TODO;
154
- break;
155
- // Any "none" type can be ignored. These are just containers for other items.
156
- case bruce_models_1.MenuItem.EType.None:
157
- break;
158
- default:
159
- console.error("Menu item type is not implemented.", params.item.Type);
160
- }
161
- if (!rItem.renderManager) return [3 /*break*/, 2];
162
- return [4 /*yield*/, rItem.renderManager.Init()];
163
- case 1:
164
- _c.sent();
165
- _c.label = 2;
166
- case 2:
167
- if (!(params.item.Children && recursive)) return [3 /*break*/, 6];
168
- i = 0;
169
- _c.label = 3;
170
- case 3:
171
- if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
172
- return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
173
- case 4:
174
- childId = _c.sent();
175
- rItem.childIds.push(childId);
176
- _c.label = 5;
177
- case 5:
178
- i++;
179
- return [3 /*break*/, 3];
180
- case 6:
181
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
182
- return [2 /*return*/, rItem.id];
183
- }
184
- });
185
- });
186
- };
187
- /**
188
- * Disables a menu item by ids id.
189
- * This will disable all children as well.
190
- * @param id
191
- * @param recursive
192
- */
193
- Manager.prototype.RemoveItemById = function (id, recursive) {
194
- var _a, _b;
195
- if (recursive === void 0) { recursive = true; }
196
- return __awaiter(this, void 0, void 0, function () {
197
- var item, _loop_1, this_1, i;
198
- return __generator(this, function (_c) {
199
- switch (_c.label) {
200
- case 0:
201
- item = this.items.find(function (x) { return x.id === id; });
202
- if (!item) return [3 /*break*/, 5];
203
- if (!recursive) return [3 /*break*/, 4];
204
- _loop_1 = function (i) {
205
- var child;
206
- return __generator(this, function (_a) {
207
- switch (_a.label) {
208
- case 0:
209
- child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
210
- if (!child) return [3 /*break*/, 2];
211
- return [4 /*yield*/, this_1.RemoveItemById(child.id)];
212
- case 1:
213
- _a.sent();
214
- _a.label = 2;
215
- case 2: return [2 /*return*/];
216
- }
217
- });
218
- };
219
- this_1 = this;
220
- i = 0;
221
- _c.label = 1;
222
- case 1:
223
- if (!(i < item.childIds.length)) return [3 /*break*/, 4];
224
- return [5 /*yield**/, _loop_1(i)];
225
- case 2:
226
- _c.sent();
227
- _c.label = 3;
228
- case 3:
229
- i++;
230
- return [3 /*break*/, 1];
231
- case 4:
232
- try {
233
- (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
234
- }
235
- catch (e) {
236
- console.error(e);
237
- }
238
- this.items = this.items.filter(function (x) { return x.id !== id; });
239
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
240
- _c.label = 5;
241
- case 5: return [2 /*return*/];
242
- }
243
- });
244
- });
245
- };
246
- Manager.prototype.GetEnabledItemIds = function () {
247
- return this.items.map(function (x) { return x.id; });
248
- };
249
- return Manager;
250
- }());
251
- MenuItemManager.Manager = Manager;
252
- })(MenuItemManager = exports.MenuItemManager || (exports.MenuItemManager = {}));
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.MenuItemManager = void 0;
51
+ var bruce_models_1 = require("bruce-models");
52
+ var entities_render_manager_1 = require("./render-managers/entities/entities-render-manager");
53
+ var entities_loaded_render_manager_1 = require("./render-managers/entities/entities-loaded-render-manager");
54
+ var visuals_register_1 = require("./visuals-register");
55
+ var entities_ids_render_manager_1 = require("./render-managers/entities/entities-ids-render-manager");
56
+ var entity_render_manager_1 = require("./render-managers/entities/entity-render-manager");
57
+ var tileset_cad_render_manager_1 = require("./render-managers/tilesets/tileset-cad-render-manager");
58
+ var shared_getters_1 = require("./render-managers/common/shared-getters");
59
+ var cesium_view_monitor_1 = require("../viewer/cesium-view-monitor");
60
+ var tileset_osm_render_manager_1 = require("./render-managers/tilesets/tileset-osm-render-manager");
61
+ /**
62
+ * Utility to keep track of enabled menu items within a Cesium viewer.
63
+ */
64
+ var MenuItemManager;
65
+ (function (MenuItemManager) {
66
+ var Manager = /** @class */ (function () {
67
+ function Manager(viewer, visualsRegister) {
68
+ this.items = [];
69
+ this.onUpdate = null;
70
+ this.viewer = viewer;
71
+ if (!visualsRegister) {
72
+ visualsRegister = new visuals_register_1.VisualsRegister.Register(viewer);
73
+ }
74
+ this.visualsRegister = visualsRegister;
75
+ this.sharedGetters = new shared_getters_1.SharedGetters.Cache();
76
+ this.sharedMonitor = new cesium_view_monitor_1.CesiumViewMonitor(this.viewer);
77
+ }
78
+ Object.defineProperty(Manager.prototype, "Viewer", {
79
+ get: function () {
80
+ return this.viewer;
81
+ },
82
+ enumerable: false,
83
+ configurable: true
84
+ });
85
+ Object.defineProperty(Manager.prototype, "VisualsRegister", {
86
+ get: function () {
87
+ return this.visualsRegister;
88
+ },
89
+ enumerable: false,
90
+ configurable: true
91
+ });
92
+ Object.defineProperty(Manager.prototype, "OnUpdate", {
93
+ get: function () {
94
+ if (!this.onUpdate) {
95
+ this.onUpdate = new bruce_models_1.BruceEvent();
96
+ }
97
+ return this.onUpdate;
98
+ },
99
+ enumerable: false,
100
+ configurable: true
101
+ });
102
+ /**
103
+ * Renders a given menu item and all ids children.
104
+ * Will return the enabled item id.
105
+ * @param params
106
+ * @param recursive
107
+ * @returns
108
+ */
109
+ Manager.prototype.RenderItem = function (params, recursive) {
110
+ var _a, _b;
111
+ if (recursive === void 0) { recursive = true; }
112
+ return __awaiter(this, void 0, void 0, function () {
113
+ var rItem, i, childId;
114
+ return __generator(this, function (_c) {
115
+ switch (_c.label) {
116
+ case 0:
117
+ rItem = this.items.find(function (x) { return x.id == params.item.id; });
118
+ if (!!rItem) return [3 /*break*/, 2];
119
+ rItem = {
120
+ id: (_a = params.item.id) !== null && _a !== void 0 ? _a : bruce_models_1.ObjectUtils.UId(),
121
+ childIds: [],
122
+ item: params.item,
123
+ renderManager: null,
124
+ type: params.item.Type
125
+ };
126
+ this.items.push(rItem);
127
+ switch (params.item.Type) {
128
+ case bruce_models_1.MenuItem.EType.Entities:
129
+ rItem.renderManager = new entities_render_manager_1.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
130
+ break;
131
+ case bruce_models_1.MenuItem.EType.EntitiesLoaded:
132
+ rItem.renderManager = new entities_loaded_render_manager_1.EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
133
+ break;
134
+ case bruce_models_1.MenuItem.EType.EntitiesIds:
135
+ rItem.renderManager = new entities_ids_render_manager_1.EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
136
+ break;
137
+ case bruce_models_1.MenuItem.EType.Entity:
138
+ rItem.renderManager = new entity_render_manager_1.EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
139
+ break;
140
+ case bruce_models_1.MenuItem.EType.CadTileset:
141
+ rItem.renderManager = new tileset_cad_render_manager_1.TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
142
+ break;
143
+ case bruce_models_1.MenuItem.EType.Osm:
144
+ rItem.renderManager = new tileset_osm_render_manager_1.TilesetOsmRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
145
+ break;
146
+ case bruce_models_1.MenuItem.EType.PointCloud:
147
+ // TODO;
148
+ break;
149
+ case bruce_models_1.MenuItem.EType.EntityTileset:
150
+ // TODO;
151
+ break;
152
+ case bruce_models_1.MenuItem.EType.Kml:
153
+ // TODO;
154
+ break;
155
+ // Any "none" type can be ignored. These are just containers for other items.
156
+ case bruce_models_1.MenuItem.EType.None:
157
+ break;
158
+ default:
159
+ console.error("Menu item type is not implemented.", params.item.Type);
160
+ }
161
+ if (!rItem.renderManager) return [3 /*break*/, 2];
162
+ return [4 /*yield*/, rItem.renderManager.Init()];
163
+ case 1:
164
+ _c.sent();
165
+ _c.label = 2;
166
+ case 2:
167
+ if (!(params.item.Children && recursive)) return [3 /*break*/, 6];
168
+ i = 0;
169
+ _c.label = 3;
170
+ case 3:
171
+ if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
172
+ return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
173
+ case 4:
174
+ childId = _c.sent();
175
+ rItem.childIds.push(childId);
176
+ _c.label = 5;
177
+ case 5:
178
+ i++;
179
+ return [3 /*break*/, 3];
180
+ case 6:
181
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
182
+ return [2 /*return*/, rItem.id];
183
+ }
184
+ });
185
+ });
186
+ };
187
+ /**
188
+ * Disables a menu item by ids id.
189
+ * This will disable all children as well.
190
+ * @param id
191
+ * @param recursive
192
+ */
193
+ Manager.prototype.RemoveItemById = function (id, recursive) {
194
+ var _a, _b;
195
+ if (recursive === void 0) { recursive = true; }
196
+ return __awaiter(this, void 0, void 0, function () {
197
+ var item, _loop_1, this_1, i;
198
+ return __generator(this, function (_c) {
199
+ switch (_c.label) {
200
+ case 0:
201
+ item = this.items.find(function (x) { return x.id === id; });
202
+ if (!item) return [3 /*break*/, 5];
203
+ if (!recursive) return [3 /*break*/, 4];
204
+ _loop_1 = function (i) {
205
+ var child;
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
210
+ if (!child) return [3 /*break*/, 2];
211
+ return [4 /*yield*/, this_1.RemoveItemById(child.id)];
212
+ case 1:
213
+ _a.sent();
214
+ _a.label = 2;
215
+ case 2: return [2 /*return*/];
216
+ }
217
+ });
218
+ };
219
+ this_1 = this;
220
+ i = 0;
221
+ _c.label = 1;
222
+ case 1:
223
+ if (!(i < item.childIds.length)) return [3 /*break*/, 4];
224
+ return [5 /*yield**/, _loop_1(i)];
225
+ case 2:
226
+ _c.sent();
227
+ _c.label = 3;
228
+ case 3:
229
+ i++;
230
+ return [3 /*break*/, 1];
231
+ case 4:
232
+ try {
233
+ (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
234
+ }
235
+ catch (e) {
236
+ console.error(e);
237
+ }
238
+ this.items = this.items.filter(function (x) { return x.id !== id; });
239
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
240
+ _c.label = 5;
241
+ case 5: return [2 /*return*/];
242
+ }
243
+ });
244
+ });
245
+ };
246
+ Manager.prototype.GetEnabledItemIds = function () {
247
+ return this.items.map(function (x) { return x.id; });
248
+ };
249
+ return Manager;
250
+ }());
251
+ MenuItemManager.Manager = Manager;
252
+ })(MenuItemManager = exports.MenuItemManager || (exports.MenuItemManager = {}));
253
253
  //# sourceMappingURL=menu-item-manager.js.map