bruce-cesium 5.7.9 → 5.8.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.
Files changed (230) hide show
  1. package/dist/bruce-cesium.es5.js +32308 -0
  2. package/dist/bruce-cesium.es5.js.map +1 -0
  3. package/dist/bruce-cesium.umd.js +32232 -0
  4. package/dist/bruce-cesium.umd.js.map +1 -0
  5. package/dist/lib/bruce-cesium.js +76 -0
  6. package/dist/lib/bruce-cesium.js.map +1 -0
  7. package/dist/lib/internal/cesium-utils.js +109 -0
  8. package/dist/lib/internal/cesium-utils.js.map +1 -0
  9. package/dist/lib/internal/js-utils.js +22 -0
  10. package/dist/lib/internal/js-utils.js.map +1 -0
  11. package/dist/lib/internal/limited-log.js +17 -0
  12. package/dist/lib/internal/limited-log.js.map +1 -0
  13. package/dist/lib/rendering/cesium-animated-in-out.js +166 -0
  14. package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -0
  15. package/dist/lib/rendering/cesium-animated-property.js +1111 -0
  16. package/dist/lib/rendering/cesium-animated-property.js.map +1 -0
  17. package/dist/lib/rendering/entity-gatherer.js +327 -0
  18. package/dist/lib/rendering/entity-gatherer.js.map +1 -0
  19. package/dist/lib/rendering/entity-render-engine-model3d.js +689 -0
  20. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -0
  21. package/dist/lib/rendering/entity-render-engine-point.js +984 -0
  22. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -0
  23. package/dist/lib/rendering/entity-render-engine-polygon.js +669 -0
  24. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -0
  25. package/dist/lib/rendering/entity-render-engine-polyline.js +415 -0
  26. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -0
  27. package/dist/lib/rendering/entity-render-engine.js +442 -0
  28. package/dist/lib/rendering/entity-render-engine.js.map +1 -0
  29. package/dist/lib/rendering/getters/batched-data-getter.js +91 -0
  30. package/dist/lib/rendering/getters/batched-data-getter.js.map +1 -0
  31. package/dist/lib/rendering/getters/entity-filter-getter.js +634 -0
  32. package/dist/lib/rendering/getters/entity-filter-getter.js.map +1 -0
  33. package/dist/lib/rendering/getters/entity-globe.js +172 -0
  34. package/dist/lib/rendering/getters/entity-globe.js.map +1 -0
  35. package/dist/lib/rendering/menu-item-creator.js +354 -0
  36. package/dist/lib/rendering/menu-item-creator.js.map +1 -0
  37. package/dist/lib/rendering/menu-item-manager.js +464 -0
  38. package/dist/lib/rendering/menu-item-manager.js.map +1 -0
  39. package/dist/lib/rendering/relation-render-engine.js +235 -0
  40. package/dist/lib/rendering/relation-render-engine.js.map +1 -0
  41. package/dist/lib/rendering/render-managers/common/cesium-parabola.js +368 -0
  42. package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +1 -0
  43. package/dist/lib/rendering/render-managers/common/entity-label.js +703 -0
  44. package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -0
  45. package/dist/lib/rendering/render-managers/common/point-clustering.js +826 -0
  46. package/dist/lib/rendering/render-managers/common/point-clustering.js.map +1 -0
  47. package/dist/lib/rendering/render-managers/common/shared-getters.js +187 -0
  48. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -0
  49. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js +668 -0
  50. package/dist/lib/rendering/render-managers/data-source/data-source-static-csv-manager.js.map +1 -0
  51. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +92 -0
  52. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +1 -0
  53. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +143 -0
  54. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -0
  55. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +510 -0
  56. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -0
  57. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +717 -0
  58. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -0
  59. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +999 -0
  60. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -0
  61. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +186 -0
  62. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -0
  63. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js +226 -0
  64. package/dist/lib/rendering/render-managers/other/assembly-render-manager.js.map +1 -0
  65. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js +430 -0
  66. package/dist/lib/rendering/render-managers/other/google-search-render-manager.js.map +1 -0
  67. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +290 -0
  68. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -0
  69. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +401 -0
  70. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -0
  71. package/dist/lib/rendering/render-managers/render-manager.js +276 -0
  72. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -0
  73. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +356 -0
  74. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -0
  75. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +861 -0
  76. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -0
  77. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +279 -0
  78. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -0
  79. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +104 -0
  80. package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +1 -0
  81. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js +81 -0
  82. package/dist/lib/rendering/render-managers/tilesets/tileset-i3s-render-manager.js.map +1 -0
  83. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +378 -0
  84. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -0
  85. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +140 -0
  86. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -0
  87. package/dist/lib/rendering/tile-render-engine.js +1328 -0
  88. package/dist/lib/rendering/tile-render-engine.js.map +1 -0
  89. package/dist/lib/rendering/tileset-render-engine.js +588 -0
  90. package/dist/lib/rendering/tileset-render-engine.js.map +1 -0
  91. package/dist/lib/rendering/tileset-styler.js +590 -0
  92. package/dist/lib/rendering/tileset-styler.js.map +1 -0
  93. package/dist/lib/rendering/view-render-engine.js +1004 -0
  94. package/dist/lib/rendering/view-render-engine.js.map +1 -0
  95. package/dist/lib/rendering/visual-register-culler.js +676 -0
  96. package/dist/lib/rendering/visual-register-culler.js.map +1 -0
  97. package/dist/lib/rendering/visuals-register.js +1741 -0
  98. package/dist/lib/rendering/visuals-register.js.map +1 -0
  99. package/dist/lib/utils/cesium-entity-styler.js +914 -0
  100. package/dist/lib/utils/cesium-entity-styler.js.map +1 -0
  101. package/dist/lib/utils/drawing-utils.js +308 -0
  102. package/dist/lib/utils/drawing-utils.js.map +1 -0
  103. package/dist/lib/utils/entity-utils.js +1382 -0
  104. package/dist/lib/utils/entity-utils.js.map +1 -0
  105. package/dist/lib/utils/measure-utils.js +73 -0
  106. package/dist/lib/utils/measure-utils.js.map +1 -0
  107. package/dist/lib/utils/simplify-geometry.js +323 -0
  108. package/dist/lib/utils/simplify-geometry.js.map +1 -0
  109. package/dist/lib/utils/view-utils.js +392 -0
  110. package/dist/lib/utils/view-utils.js.map +1 -0
  111. package/dist/lib/viewer/cesium-view-monitor.js +393 -0
  112. package/dist/lib/viewer/cesium-view-monitor.js.map +1 -0
  113. package/dist/lib/viewer/viewer-event-tracker.js +70 -0
  114. package/dist/lib/viewer/viewer-event-tracker.js.map +1 -0
  115. package/dist/lib/viewer/viewer-utils.js +310 -0
  116. package/dist/lib/viewer/viewer-utils.js.map +1 -0
  117. package/dist/lib/widgets/common/draw-3d-polygon.js +458 -0
  118. package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -0
  119. package/dist/lib/widgets/common/draw-3d-polyline.js +415 -0
  120. package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -0
  121. package/dist/lib/widgets/common/measure-creator.js +468 -0
  122. package/dist/lib/widgets/common/measure-creator.js.map +1 -0
  123. package/dist/lib/widgets/common/walkthrough.js +336 -0
  124. package/dist/lib/widgets/common/walkthrough.js.map +1 -0
  125. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js +36 -0
  126. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-fullscreen.js.map +1 -0
  127. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js +437 -0
  128. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar-search.js.map +1 -0
  129. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js +38 -0
  130. package/dist/lib/widgets/controls-view-bar/widget-control-view-bar.js.map +1 -0
  131. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js +219 -0
  132. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.js.map +1 -0
  133. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js +304 -0
  134. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab-user.js.map +1 -0
  135. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js +29 -0
  136. package/dist/lib/widgets/tabs-left-panel/widget-left-panel-tab.js.map +1 -0
  137. package/dist/lib/widgets/widget-bookmarks.js +497 -0
  138. package/dist/lib/widgets/widget-bookmarks.js.map +1 -0
  139. package/dist/lib/widgets/widget-branding.js +165 -0
  140. package/dist/lib/widgets/widget-branding.js.map +1 -0
  141. package/dist/lib/widgets/widget-cursorbar.js +1179 -0
  142. package/dist/lib/widgets/widget-cursorbar.js.map +1 -0
  143. package/dist/lib/widgets/widget-embedded-info-view.js +201 -0
  144. package/dist/lib/widgets/widget-embedded-info-view.js.map +1 -0
  145. package/dist/lib/widgets/widget-info-view.js +681 -0
  146. package/dist/lib/widgets/widget-info-view.js.map +1 -0
  147. package/dist/lib/widgets/widget-left-panel.js +548 -0
  148. package/dist/lib/widgets/widget-left-panel.js.map +1 -0
  149. package/dist/lib/widgets/widget-nav-compass.js +469 -0
  150. package/dist/lib/widgets/widget-nav-compass.js.map +1 -0
  151. package/dist/lib/widgets/widget-view-bar.js +284 -0
  152. package/dist/lib/widgets/widget-view-bar.js.map +1 -0
  153. package/dist/lib/widgets/widget.js +66 -0
  154. package/dist/lib/widgets/widget.js.map +1 -0
  155. package/dist/types/bruce-cesium.d.ts +58 -0
  156. package/dist/types/internal/cesium-utils.d.ts +23 -0
  157. package/dist/types/internal/js-utils.d.ts +8 -0
  158. package/dist/types/internal/limited-log.d.ts +6 -0
  159. package/dist/types/rendering/cesium-animated-in-out.d.ts +12 -0
  160. package/dist/types/rendering/cesium-animated-property.d.ts +245 -0
  161. package/dist/types/rendering/entity-gatherer.d.ts +36 -0
  162. package/dist/types/rendering/entity-render-engine-model3d.d.ts +56 -0
  163. package/dist/types/rendering/entity-render-engine-point.d.ts +73 -0
  164. package/dist/types/rendering/entity-render-engine-polygon.d.ts +26 -0
  165. package/dist/types/rendering/entity-render-engine-polyline.d.ts +47 -0
  166. package/dist/types/rendering/entity-render-engine.d.ts +108 -0
  167. package/dist/types/rendering/getters/batched-data-getter.d.ts +28 -0
  168. package/dist/types/rendering/getters/entity-filter-getter.d.ts +104 -0
  169. package/dist/types/rendering/getters/entity-globe.d.ts +21 -0
  170. package/dist/types/rendering/menu-item-creator.d.ts +53 -0
  171. package/dist/types/rendering/menu-item-manager.d.ts +85 -0
  172. package/dist/types/rendering/relation-render-engine.d.ts +32 -0
  173. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +39 -0
  174. package/dist/types/rendering/render-managers/common/entity-label.d.ts +82 -0
  175. package/dist/types/rendering/render-managers/common/point-clustering.d.ts +91 -0
  176. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +41 -0
  177. package/dist/types/rendering/render-managers/data-source/data-source-static-csv-manager.d.ts +41 -0
  178. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +25 -0
  179. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +31 -0
  180. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +76 -0
  181. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +90 -0
  182. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +90 -0
  183. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +42 -0
  184. package/dist/types/rendering/render-managers/other/assembly-render-manager.d.ts +38 -0
  185. package/dist/types/rendering/render-managers/other/google-search-render-manager.d.ts +45 -0
  186. package/dist/types/rendering/render-managers/other/legacy-relations-render-manager.d.ts +60 -0
  187. package/dist/types/rendering/render-managers/other/relations-render-manager.d.ts +53 -0
  188. package/dist/types/rendering/render-managers/render-manager.d.ts +30 -0
  189. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +37 -0
  190. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +86 -0
  191. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +41 -0
  192. package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +26 -0
  193. package/dist/types/rendering/render-managers/tilesets/tileset-i3s-render-manager.d.ts +25 -0
  194. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +48 -0
  195. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +27 -0
  196. package/dist/types/rendering/tile-render-engine.d.ts +80 -0
  197. package/dist/types/rendering/tileset-render-engine.d.ts +99 -0
  198. package/dist/types/rendering/tileset-styler.d.ts +86 -0
  199. package/dist/types/rendering/view-render-engine.d.ts +32 -0
  200. package/dist/types/rendering/visual-register-culler.d.ts +18 -0
  201. package/dist/types/rendering/visuals-register.d.ts +361 -0
  202. package/dist/types/utils/cesium-entity-styler.d.ts +103 -0
  203. package/dist/types/utils/drawing-utils.d.ts +59 -0
  204. package/dist/types/utils/entity-utils.d.ts +133 -0
  205. package/dist/types/utils/measure-utils.d.ts +20 -0
  206. package/dist/types/utils/simplify-geometry.d.ts +19 -0
  207. package/dist/types/utils/view-utils.d.ts +101 -0
  208. package/dist/types/viewer/cesium-view-monitor.d.ts +35 -0
  209. package/dist/types/viewer/viewer-event-tracker.d.ts +47 -0
  210. package/dist/types/viewer/viewer-utils.d.ts +88 -0
  211. package/dist/types/widgets/common/draw-3d-polygon.d.ts +62 -0
  212. package/dist/types/widgets/common/draw-3d-polyline.d.ts +50 -0
  213. package/dist/types/widgets/common/measure-creator.d.ts +60 -0
  214. package/dist/types/widgets/common/walkthrough.d.ts +37 -0
  215. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-fullscreen.d.ts +10 -0
  216. package/dist/types/widgets/controls-view-bar/widget-control-view-bar-search.d.ts +18 -0
  217. package/dist/types/widgets/controls-view-bar/widget-control-view-bar.d.ts +23 -0
  218. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-bookmarks.d.ts +11 -0
  219. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab-user.d.ts +24 -0
  220. package/dist/types/widgets/tabs-left-panel/widget-left-panel-tab.d.ts +17 -0
  221. package/dist/types/widgets/widget-bookmarks.d.ts +40 -0
  222. package/dist/types/widgets/widget-branding.d.ts +15 -0
  223. package/dist/types/widgets/widget-cursorbar.d.ts +48 -0
  224. package/dist/types/widgets/widget-embedded-info-view.d.ts +13 -0
  225. package/dist/types/widgets/widget-info-view.d.ts +21 -0
  226. package/dist/types/widgets/widget-left-panel.d.ts +73 -0
  227. package/dist/types/widgets/widget-nav-compass.d.ts +27 -0
  228. package/dist/types/widgets/widget-view-bar.d.ts +37 -0
  229. package/dist/types/widgets/widget.d.ts +29 -0
  230. package/package.json +1 -1
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViewerUtils = void 0;
4
+ const Cesium = require("cesium");
5
+ const menu_item_manager_1 = require("../rendering/menu-item-manager");
6
+ const bruce_models_1 = require("bruce-models");
7
+ const widget_nav_compass_1 = require("../widgets/widget-nav-compass");
8
+ const widget_1 = require("../widgets/widget");
9
+ const widget_branding_1 = require("../widgets/widget-branding");
10
+ const widget_cursorbar_1 = require("../widgets/widget-cursorbar");
11
+ const widget_bookmarks_1 = require("../widgets/widget-bookmarks");
12
+ const widget_info_view_1 = require("../widgets/widget-info-view");
13
+ const widget_embedded_info_view_1 = require("../widgets/widget-embedded-info-view");
14
+ const widget_left_panel_1 = require("../widgets/widget-left-panel");
15
+ const viewer_event_tracker_1 = require("./viewer-event-tracker");
16
+ const bruce_cesium_1 = require("src/bruce-cesium");
17
+ const CESIUM_VIEWER_MANAGER_KEY = "_cesiumViewerManager";
18
+ const CESIUM_VIEWER_EVENT_TRACKER_KEY = "_cesiumViewerEventTracker";
19
+ /**
20
+ * Bug related to entities not being visible after they were added then a render was requested.
21
+ * It was 4 point entities in York. They would not appear until a request render was recalled.
22
+ * Adding this slow render loop as a band-aid fix.
23
+ */
24
+ const BACKGROUND_RENDERING_KEY = "_backgroundRendering";
25
+ function backgroundRendering(viewer) {
26
+ if (viewer[BACKGROUND_RENDERING_KEY]) {
27
+ return;
28
+ }
29
+ viewer[BACKGROUND_RENDERING_KEY] = true;
30
+ const interval = setInterval(() => {
31
+ var _a;
32
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.cesiumWidget) || !(viewer === null || viewer === void 0 ? void 0 : viewer.scene) || viewer.isDestroyed()) {
33
+ clearInterval(interval);
34
+ return;
35
+ }
36
+ // We'll ignore the call if the viewer container is not visible.
37
+ if (!viewer.container || ((_a = viewer.container.style) === null || _a === void 0 ? void 0 : _a.display) == "none") {
38
+ return;
39
+ }
40
+ try {
41
+ // Check if last render time is greater than 3 seconds ago.
42
+ // We check in case something else is also requesting renders.
43
+ const lastRenderTime = viewer.scene.lastRenderTime;
44
+ if (!lastRenderTime || Cesium.JulianDate.secondsDifference(Cesium.JulianDate.now(), lastRenderTime) > 3) {
45
+ // Check if window is active/in focus.
46
+ // TODO: Should render the moment it is in focus as well.
47
+ if (document.hasFocus()) {
48
+ viewer.scene.requestRender();
49
+ }
50
+ }
51
+ }
52
+ catch (e) {
53
+ console.error("backgroundRendering", e);
54
+ }
55
+ }, 1500);
56
+ }
57
+ // Cache of Cesium Token -> Validity.
58
+ const _cToken_check_cache = {};
59
+ var ViewerUtils;
60
+ (function (ViewerUtils) {
61
+ /**
62
+ * Destroys all the junk that cesium viewer ships with.
63
+ * @param viewer
64
+ */
65
+ function InitViewer(params) {
66
+ const { viewer, destroyWidgets, styleContainer, nextspaceWidgets, widgetParams } = params;
67
+ const data = { widgets: {} };
68
+ if (destroyWidgets != false) {
69
+ try {
70
+ ViewerUtils.DestroyWidget(viewer.timeline);
71
+ ViewerUtils.DestroyWidget(viewer.vrButton);
72
+ ViewerUtils.DestroyWidget(viewer.sceneModePicker);
73
+ ViewerUtils.DestroyWidget(viewer.homeButton);
74
+ ViewerUtils.DestroyWidget(viewer.fullscreenButton);
75
+ ViewerUtils.DestroyWidget(viewer.baseLayerPicker);
76
+ }
77
+ catch (e) {
78
+ console.error(e);
79
+ }
80
+ }
81
+ if (styleContainer != false) {
82
+ ViewerUtils.StyleContainer({ viewer });
83
+ }
84
+ if (nextspaceWidgets != false) {
85
+ data.widgets = ViewerUtils.CreateWidgets({
86
+ ...widgetParams,
87
+ viewer
88
+ });
89
+ }
90
+ backgroundRendering(viewer);
91
+ // Capturing the destroy call to destroy all widgets.
92
+ const olDestroy = viewer.destroy;
93
+ viewer.destroy = () => {
94
+ if (!viewer || viewer.isDestroyed()) {
95
+ return;
96
+ }
97
+ try {
98
+ ViewerUtils.DisposeNextspaceWidgets(viewer);
99
+ }
100
+ // We don't want the actual destroy to fail.
101
+ catch (e) {
102
+ console.error(e);
103
+ }
104
+ if (olDestroy) {
105
+ // Calling with original binding to retain scope.
106
+ olDestroy.call(viewer);
107
+ }
108
+ };
109
+ return data;
110
+ }
111
+ ViewerUtils.InitViewer = InitViewer;
112
+ /**
113
+ * Destroys all widgets attached to the given viewer.
114
+ * All Nextspace widgets get auto-associated with the viewer they are created against.
115
+ * @param viewer
116
+ */
117
+ function DisposeNextspaceWidgets(viewer) {
118
+ widget_1.Widget.GetWidgets(viewer).forEach(widget => {
119
+ widget.Dispose();
120
+ });
121
+ }
122
+ ViewerUtils.DisposeNextspaceWidgets = DisposeNextspaceWidgets;
123
+ function DestroyWidget(widget) {
124
+ // We're getting cases where calling destroy on a widget with missing a element is crashing Cesium.
125
+ // To try avoid this we're checking against container existing.
126
+ if (widget && !widget.isDestroyed() && widget.container) {
127
+ widget.destroy();
128
+ }
129
+ }
130
+ ViewerUtils.DestroyWidget = DestroyWidget;
131
+ /**
132
+ * Hides all unnecessary elements from the Cesium viewer container.
133
+ * @param viewer
134
+ */
135
+ function StyleContainer(params) {
136
+ var _a;
137
+ const { viewer } = params;
138
+ const container = viewer.container;
139
+ if (!container.style.position) {
140
+ container.style.position = "relative";
141
+ }
142
+ const genContainer = (_a = container.getElementsByClassName("cesium-viewer")) === null || _a === void 0 ? void 0 : _a[0];
143
+ if (genContainer) {
144
+ const children = genContainer.children;
145
+ for (let i = 0; i < children.length; i++) {
146
+ const child = children[i];
147
+ if (!child.classList.contains("cesium-viewer-cesiumWidgetContainer")) {
148
+ child.style.display = "none";
149
+ }
150
+ }
151
+ }
152
+ const canvas = viewer.canvas;
153
+ canvas.style.width = "100%";
154
+ canvas.style.height = "100%";
155
+ const widget = canvas.parentElement;
156
+ widget.style.width = "100%";
157
+ widget.style.height = "100%";
158
+ widget.style.touchAction = "none";
159
+ const widgetContainer = widget.parentElement;
160
+ widgetContainer.style.width = "100%";
161
+ widgetContainer.style.height = "100%";
162
+ const viewerContainer = widgetContainer.parentElement;
163
+ viewerContainer.style.fontFamily = "sans-serif";
164
+ viewerContainer.style.fontSize = "16px";
165
+ viewerContainer.style.overflow = "hidden";
166
+ viewerContainer.style.display = "block";
167
+ viewerContainer.style.position = "relative";
168
+ viewerContainer.style.top = "0";
169
+ viewerContainer.style.left = "0";
170
+ viewerContainer.style.width = "100%";
171
+ viewerContainer.style.height = "100%";
172
+ }
173
+ ViewerUtils.StyleContainer = StyleContainer;
174
+ /**
175
+ * Returns a given Cesium viewer's menu item manager.
176
+ * If one is missing then it'll optionally create one before returning it.
177
+ * @param params
178
+ * @returns
179
+ */
180
+ function GetManager(params) {
181
+ const { viewer, createIfMissing, getters } = params;
182
+ if (viewer[CESIUM_VIEWER_MANAGER_KEY]) {
183
+ return viewer[CESIUM_VIEWER_MANAGER_KEY];
184
+ }
185
+ else if (createIfMissing != false) {
186
+ const manager = new menu_item_manager_1.MenuItemManager.Manager({
187
+ viewer,
188
+ getters
189
+ });
190
+ viewer[CESIUM_VIEWER_MANAGER_KEY] = manager;
191
+ return manager;
192
+ }
193
+ return null;
194
+ }
195
+ ViewerUtils.GetManager = GetManager;
196
+ /**
197
+ * Creates Nextspace default widgets.
198
+ * Returns key/value pairs for created widgets. Key is widget name.
199
+ * @param params
200
+ */
201
+ function CreateWidgets(params) {
202
+ let { viewer, manager, container, apiGetters, navCompass, defaultState, branding, cursorBar, viewBar, searchBar, bookmarks, infoView, embeddedInfoView, leftPanel } = params;
203
+ const widgets = {};
204
+ if (!viewer && manager) {
205
+ viewer = manager.Viewer;
206
+ }
207
+ if (viewer && !manager) {
208
+ manager = ViewerUtils.GetManager({ viewer });
209
+ }
210
+ if (!container && viewer) {
211
+ container = viewer.container;
212
+ }
213
+ if (!apiGetters) {
214
+ apiGetters = bruce_models_1.ENVIRONMENT.Api();
215
+ }
216
+ if (defaultState == null) {
217
+ defaultState = true;
218
+ }
219
+ const widgetParams = {
220
+ viewer,
221
+ container,
222
+ apiGetters: apiGetters,
223
+ manager
224
+ };
225
+ if ((typeof navCompass == "boolean" && navCompass) || defaultState) {
226
+ widgets["navCompass"] = new widget_nav_compass_1.WidgetNavCompass(widgetParams);
227
+ }
228
+ if ((typeof branding == "boolean" && branding) || defaultState) {
229
+ widgets["navBranding"] = new widget_branding_1.WidgetBranding(widgetParams);
230
+ }
231
+ if ((typeof cursorBar == "boolean" && cursorBar) || defaultState) {
232
+ widgets["cursorBar"] = new widget_cursorbar_1.WidgetCursorBar(widgetParams);
233
+ }
234
+ if (
235
+ // Backwards compatibility.
236
+ typeof searchBar == "boolean" ? (searchBar) : (
237
+ // Latest version.
238
+ typeof viewBar == "boolean" ? (viewBar) : (
239
+ // Fallback.
240
+ defaultState))) {
241
+ widgets["viewBar"] = new bruce_cesium_1.WidgetViewBar(widgetParams);
242
+ }
243
+ if ((typeof bookmarks == "boolean" && bookmarks) || (defaultState && !leftPanel)) {
244
+ widgets["bookmarks"] = new widget_bookmarks_1.WidgetBookmarks({
245
+ ...widgetParams,
246
+ viewId: params.viewId,
247
+ runFirstBookmark: params.runFirstBookmark
248
+ });
249
+ }
250
+ if (!(typeof bookmarks == "boolean" && bookmarks) && leftPanel) {
251
+ widgets["leftPanel"] = new widget_left_panel_1.WidgetLeftPanel({
252
+ ...widgetParams,
253
+ viewId: params.viewId,
254
+ runFirstBookmark: params.runFirstBookmark
255
+ });
256
+ }
257
+ if ((typeof infoView == "boolean" && infoView) || (defaultState && !embeddedInfoView)) {
258
+ widgets["infoView"] = new widget_info_view_1.WidgetInfoView(widgetParams);
259
+ }
260
+ if (!(typeof infoView == "boolean" && infoView) && embeddedInfoView) {
261
+ widgets["embeddedInfoView"] = new widget_embedded_info_view_1.WidgetEmbeddedInfoView({
262
+ ...widgetParams
263
+ });
264
+ }
265
+ return widgets;
266
+ }
267
+ ViewerUtils.CreateWidgets = CreateWidgets;
268
+ /**
269
+ * Returns if the given token is valid or not.
270
+ * This will perform a test request to Cesium API.
271
+ * @param token
272
+ * @returns
273
+ */
274
+ async function AssertIonToken(token) {
275
+ if (!token) {
276
+ return false;
277
+ }
278
+ if (_cToken_check_cache[token] != null) {
279
+ return _cToken_check_cache[token];
280
+ }
281
+ try {
282
+ const url = `https://api.cesium.com/v1/assets/1/endpoint?access_token=${token}`;
283
+ const response = await fetch(url);
284
+ const json = await response.json();
285
+ _cToken_check_cache[token] = Boolean(json === null || json === void 0 ? void 0 : json.url);
286
+ return _cToken_check_cache[token];
287
+ }
288
+ catch (e) {
289
+ console.error(e);
290
+ _cToken_check_cache[token] = false;
291
+ }
292
+ }
293
+ ViewerUtils.AssertIonToken = AssertIonToken;
294
+ /**
295
+ * Gets or creates a viewer event tracker.
296
+ * This will log and emit events that are tracked.
297
+ * @param viewer
298
+ * @returns
299
+ */
300
+ function GetEventTracker(viewer) {
301
+ let tracker = viewer[CESIUM_VIEWER_EVENT_TRACKER_KEY];
302
+ if (!tracker) {
303
+ tracker = new viewer_event_tracker_1.ViewerEventTracker.Tracker("warn,error");
304
+ }
305
+ viewer[CESIUM_VIEWER_EVENT_TRACKER_KEY] = tracker;
306
+ return tracker;
307
+ }
308
+ ViewerUtils.GetEventTracker = GetEventTracker;
309
+ })(ViewerUtils = exports.ViewerUtils || (exports.ViewerUtils = {}));
310
+ //# sourceMappingURL=viewer-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer-utils.js","sourceRoot":"","sources":["../../../src/viewer/viewer-utils.ts"],"names":[],"mappings":"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"}