bruce-cesium 2.0.0 → 2.0.1

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.
@@ -2600,10 +2600,18 @@
2600
2600
  clearInterval(this.renderQueueInterval);
2601
2601
  this.renderQueueInterval = null;
2602
2602
  this.renderQueue = [];
2603
- this.visualsManager.RemoveRegos({
2604
- menuItemId: this.item.id
2605
- });
2606
- if (!shouldRender) {
2603
+ // Remove just the ones that shouldn't be rendered.
2604
+ // Eg: for a tag menu item we can see what tags are selected and only render those.
2605
+ if (shouldRender) {
2606
+ this.visualsManager.RemoveRegos({
2607
+ menuItemId: this.item.id,
2608
+ retainTagIds: tagsToRender
2609
+ });
2610
+ }
2611
+ else {
2612
+ this.visualsManager.RemoveRegos({
2613
+ menuItemId: this.item.id
2614
+ });
2607
2615
  return;
2608
2616
  }
2609
2617
  var api = this.apiGetter.getApi();
@@ -4145,10 +4153,13 @@
4145
4153
  */
4146
4154
  Register.prototype.RemoveRegos = function (params) {
4147
4155
  var _a, _b, _c;
4148
- var entityId = params.entityId, menuItemId = params.menuItemId, doUpdate = params.doUpdate, relation = params.relation;
4156
+ var entityId = params.entityId, menuItemId = params.menuItemId, doUpdate = params.doUpdate, relation = params.relation, retainTagIds = params.retainTagIds;
4149
4157
  if (doUpdate == null) {
4150
4158
  doUpdate = true;
4151
4159
  }
4160
+ if (retainTagIds == null) {
4161
+ retainTagIds = [];
4162
+ }
4152
4163
  // TODO: refactor.
4153
4164
  // Currently this was made by merging two functions.
4154
4165
  if (menuItemId && !entityId) {
@@ -4159,6 +4170,11 @@
4159
4170
  if (!rego) {
4160
4171
  continue;
4161
4172
  }
4173
+ var regoTagIds = rego.tagIds ? rego.tagIds : [];
4174
+ var shouldRetain = regoTagIds.some(function (tagId) { return retainTagIds.includes(tagId); });
4175
+ if (shouldRetain) {
4176
+ continue;
4177
+ }
4162
4178
  removeEntity(this.viewer, rego.visual);
4163
4179
  var doesInclude = this.rego[entityId_3].find(function (r) { return r.menuItemId === menuItemId; });
4164
4180
  if (doesInclude) {
@@ -7245,14 +7261,28 @@
7245
7261
  * @returns
7246
7262
  */
7247
7263
  Manager.prototype.RenderItem = function (params) {
7248
- var _a, _b, _c;
7264
+ var _a, _b, _c, _d;
7249
7265
  if (this.viewer.isDestroyed()) {
7250
7266
  return null;
7251
7267
  }
7252
7268
  var rItem = this.items.find(function (x) { return x.id == params.item.id; });
7253
- if (!rItem) {
7269
+ if (rItem) {
7270
+ // This means we're updating a tag menu item.
7271
+ // Tag menu items have alternative states based on bookmark settings.
7272
+ // Eg: different tags that were enabled.
7273
+ if (rItem.type == bruceModels.MenuItem.EType.Entities && params.item.Type == bruceModels.MenuItem.EType.Entities) {
7274
+ var eItem = rItem.item;
7275
+ if ((_a = eItem === null || eItem === void 0 ? void 0 : eItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.ExpandLayers) {
7276
+ rItem.renderManager.Init({
7277
+ item: params.item,
7278
+ });
7279
+ rItem.item = params.item;
7280
+ }
7281
+ }
7282
+ }
7283
+ else {
7254
7284
  rItem = {
7255
- id: (_a = params.item.id) !== null && _a !== void 0 ? _a : bruceModels.ObjectUtils.UId(),
7285
+ id: (_b = params.item.id) !== null && _b !== void 0 ? _b : bruceModels.ObjectUtils.UId(),
7256
7286
  childIds: [],
7257
7287
  item: params.item,
7258
7288
  renderManager: null,
@@ -7387,8 +7417,8 @@
7387
7417
  rItem.childIds.push(childId);
7388
7418
  }
7389
7419
  }
7390
- if (!rItem.renderManager || !((_b = rItem.renderManager) === null || _b === void 0 ? void 0 : _b.Disposed)) {
7391
- (_c = this.onUpdate) === null || _c === void 0 ? void 0 : _c.Trigger({ isEnabling: true, itemId: rItem.id });
7420
+ if (rItem.renderManager && !((_c = rItem.renderManager) === null || _c === void 0 ? void 0 : _c.Disposed)) {
7421
+ (_d = this.onUpdate) === null || _d === void 0 ? void 0 : _d.Trigger({ isEnabling: true, itemId: rItem.id });
7392
7422
  }
7393
7423
  rItem.id;
7394
7424
  };
@@ -7731,28 +7761,29 @@
7731
7761
  }
7732
7762
  MenuItemCreator.RenderTileset = RenderTileset;
7733
7763
  function RenderBookmarkItems(params) {
7764
+ var _a;
7734
7765
  return __awaiter(this, void 0, void 0, function () {
7735
- var viewId, bookmarkId, api, view, _a, bookmark, _b, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, renderedItemIds, traverseItems_1, i;
7766
+ var viewId, bookmarkId, api, view, _b, bookmark, _c, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, alternations, renderedItemIds, traverseItems_1, i;
7736
7767
  var _this = this;
7737
- return __generator(this, function (_c) {
7738
- switch (_c.label) {
7768
+ return __generator(this, function (_d) {
7769
+ switch (_d.label) {
7739
7770
  case 0:
7740
7771
  viewId = params.viewId, bookmarkId = params.bookmarkId;
7741
7772
  api = params.apiGetter.getApi();
7742
7773
  if (!params.view) return [3 /*break*/, 1];
7743
- _a = params.view;
7774
+ _b = params.view;
7744
7775
  return [3 /*break*/, 3];
7745
7776
  case 1: return [4 /*yield*/, bruceModels.ProjectView.Get({
7746
7777
  api: api,
7747
7778
  viewId: viewId
7748
7779
  })];
7749
7780
  case 2:
7750
- _a = (_c.sent()).view;
7751
- _c.label = 3;
7781
+ _b = (_d.sent()).view;
7782
+ _d.label = 3;
7752
7783
  case 3:
7753
- view = _a;
7784
+ view = _b;
7754
7785
  if (!params.bookmark) return [3 /*break*/, 4];
7755
- _b = params.bookmark;
7786
+ _c = params.bookmark;
7756
7787
  return [3 /*break*/, 6];
7757
7788
  case 4: return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get({
7758
7789
  api: api,
@@ -7760,10 +7791,10 @@
7760
7791
  bookmarkId: bookmarkId
7761
7792
  })];
7762
7793
  case 5:
7763
- _b = (_c.sent()).bookmark;
7764
- _c.label = 6;
7794
+ _c = (_d.sent()).bookmark;
7795
+ _d.label = 6;
7765
7796
  case 6:
7766
- bookmark = _b;
7797
+ bookmark = _c;
7767
7798
  if (view.DataVersion != bookmark.DataVersion) {
7768
7799
  throw new Error("View and bookmark settings version mismatch.");
7769
7800
  }
@@ -7784,32 +7815,48 @@
7784
7815
  enabledIds = bSettings.selectedItemIds;
7785
7816
  }
7786
7817
  }
7818
+ alternations = (_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.menuItemAlternations;
7819
+ if (!alternations) {
7820
+ alternations = {};
7821
+ }
7787
7822
  renderedItemIds = [];
7788
7823
  if (!((menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) && (enabledIds === null || enabledIds === void 0 ? void 0 : enabledIds.length))) return [3 /*break*/, 10];
7789
7824
  traverseItems_1 = function (item) { return __awaiter(_this, void 0, void 0, function () {
7790
- var itemId, i;
7791
- return __generator(this, function (_a) {
7792
- switch (_a.label) {
7825
+ var eItem, eItemAlt, itemId, i;
7826
+ var _a;
7827
+ return __generator(this, function (_b) {
7828
+ switch (_b.label) {
7793
7829
  case 0:
7830
+ if (alternations[item.id]) {
7831
+ // The only alternation we support right now is tag menu item ones.
7832
+ // The project view menu item contains the instruction to enable tags, the bookmark specifies which ones.
7833
+ if (item.Type == bruceModels.MenuItem.EType.Entities) {
7834
+ eItem = item;
7835
+ if (eItem.BruceEntity.ExpandLayers) {
7836
+ eItemAlt = alternations[item.id];
7837
+ eItem.BruceEntity = __assign(__assign({}, eItem.BruceEntity), { SelectedExpandLayers: (_a = eItemAlt.BruceEntity) === null || _a === void 0 ? void 0 : _a.SelectedExpandLayers });
7838
+ }
7839
+ }
7840
+ }
7794
7841
  if (!enabledIds.includes(item.id)) return [3 /*break*/, 2];
7795
7842
  return [4 /*yield*/, params.manager.RenderItem({
7796
7843
  item: item,
7797
7844
  apiGetter: params.apiGetter
7798
7845
  })];
7799
7846
  case 1:
7800
- itemId = _a.sent();
7847
+ itemId = _b.sent();
7801
7848
  renderedItemIds.push(itemId);
7802
- _a.label = 2;
7849
+ _b.label = 2;
7803
7850
  case 2:
7804
7851
  if (!item.Children) return [3 /*break*/, 6];
7805
7852
  i = 0;
7806
- _a.label = 3;
7853
+ _b.label = 3;
7807
7854
  case 3:
7808
7855
  if (!(i < item.Children.length)) return [3 /*break*/, 6];
7809
7856
  return [4 /*yield*/, traverseItems_1(item.Children[i])];
7810
7857
  case 4:
7811
- _a.sent();
7812
- _a.label = 5;
7858
+ _b.sent();
7859
+ _b.label = 5;
7813
7860
  case 5:
7814
7861
  i++;
7815
7862
  return [3 /*break*/, 3];
@@ -7818,13 +7865,13 @@
7818
7865
  });
7819
7866
  }); };
7820
7867
  i = 0;
7821
- _c.label = 7;
7868
+ _d.label = 7;
7822
7869
  case 7:
7823
7870
  if (!(i < menuItems.length)) return [3 /*break*/, 10];
7824
7871
  return [4 /*yield*/, traverseItems_1(menuItems[i])];
7825
7872
  case 8:
7826
- _c.sent();
7827
- _c.label = 9;
7873
+ _d.sent();
7874
+ _d.label = 9;
7828
7875
  case 9:
7829
7876
  i++;
7830
7877
  return [3 /*break*/, 7];