@map-colonies/react-components 3.8.1 → 3.10.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 (231) hide show
  1. package/.env +1 -0
  2. package/.storybook/main.js +2 -5
  3. package/CHANGELOG.md +54 -0
  4. package/dist/assets/img/dragIcon.png +0 -0
  5. package/dist/assets/img/dragIconLight.png +0 -0
  6. package/dist/assets/img/glyphicons_067_cleaning.png +0 -0
  7. package/dist/assets/img/glyphicons_094_vector_path_square.png +0 -0
  8. package/dist/assets/img/glyphicons_095_vector_path_circle.png +0 -0
  9. package/dist/assets/img/glyphicons_096_vector_path_polygon.png +0 -0
  10. package/dist/assets/img/glyphicons_097_vector_path_line.png +0 -0
  11. package/dist/assets/img/glyphicons_242_google_maps.png +0 -0
  12. package/dist/assets/img/map-marker.gif +0 -0
  13. package/dist/autocomplete/autocomplete.css +25 -0
  14. package/dist/autocomplete/autocomplete.d.ts +33 -0
  15. package/dist/autocomplete/autocomplete.js +480 -0
  16. package/dist/autocomplete/index.d.ts +1 -0
  17. package/dist/autocomplete/index.js +5 -0
  18. package/dist/box/box.d.ts +3 -0
  19. package/dist/box/box.js +35 -0
  20. package/dist/box/index.d.ts +1 -0
  21. package/dist/box/index.js +5 -0
  22. package/dist/cesium-map/data-sources/custom.data-source.d.ts +5 -0
  23. package/dist/cesium-map/data-sources/custom.data-source.js +23 -0
  24. package/dist/cesium-map/data-sources/drawings.data-source.d.ts +34 -0
  25. package/dist/cesium-map/data-sources/drawings.data-source.js +187 -0
  26. package/dist/cesium-map/data-sources/index.d.ts +2 -0
  27. package/dist/cesium-map/data-sources/index.js +14 -0
  28. package/dist/cesium-map/entities/entity.d.ts +5 -0
  29. package/dist/cesium-map/entities/entity.description.d.ts +6 -0
  30. package/dist/cesium-map/entities/entity.description.js +27 -0
  31. package/dist/cesium-map/entities/entity.js +23 -0
  32. package/dist/cesium-map/entities/graphics/polygon.graphics.d.ts +5 -0
  33. package/dist/cesium-map/entities/graphics/polygon.graphics.js +23 -0
  34. package/dist/cesium-map/entities/graphics/polyline.graphics.d.ts +5 -0
  35. package/dist/cesium-map/entities/graphics/polyline.graphics.js +23 -0
  36. package/dist/cesium-map/entities/graphics/rectangle.graphics.d.ts +5 -0
  37. package/dist/cesium-map/entities/graphics/rectangle.graphics.js +23 -0
  38. package/dist/cesium-map/entities/index.d.ts +4 -0
  39. package/dist/cesium-map/entities/index.js +16 -0
  40. package/dist/cesium-map/index.d.ts +7 -0
  41. package/dist/cesium-map/index.js +19 -0
  42. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -0
  43. package/dist/cesium-map/layers/3d.tileset.js +39 -0
  44. package/dist/cesium-map/layers/3d.tileset.update.d.ts +1 -0
  45. package/dist/cesium-map/layers/3d.tileset.update.js +5 -0
  46. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -0
  47. package/dist/cesium-map/layers/geojson.layer.js +23 -0
  48. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -0
  49. package/dist/cesium-map/layers/imagery.layer.js +64 -0
  50. package/dist/cesium-map/layers/index.d.ts +7 -0
  51. package/dist/cesium-map/layers/index.js +19 -0
  52. package/dist/cesium-map/layers/osm.layer.d.ts +9 -0
  53. package/dist/cesium-map/layers/osm.layer.js +36 -0
  54. package/dist/cesium-map/layers/wms.layer.d.ts +9 -0
  55. package/dist/cesium-map/layers/wms.layer.js +36 -0
  56. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -0
  57. package/dist/cesium-map/layers/wmts.layer.js +36 -0
  58. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -0
  59. package/dist/cesium-map/layers/xyz.layer.js +36 -0
  60. package/dist/cesium-map/layers-manager.d.ts +47 -0
  61. package/dist/cesium-map/layers-manager.js +228 -0
  62. package/dist/cesium-map/map.css +54 -0
  63. package/dist/cesium-map/map.d.ts +46 -0
  64. package/dist/cesium-map/map.js +273 -0
  65. package/dist/cesium-map/map.types.d.ts +8 -0
  66. package/dist/cesium-map/map.types.js +12 -0
  67. package/dist/cesium-map/proxied.types.d.ts +19 -0
  68. package/dist/cesium-map/proxied.types.js +89 -0
  69. package/dist/cesium-map/settings/base-maps.css +37 -0
  70. package/dist/cesium-map/settings/base-maps.d.ts +7 -0
  71. package/dist/cesium-map/settings/base-maps.js +78 -0
  72. package/dist/cesium-map/settings/scene-modes.css +19 -0
  73. package/dist/cesium-map/settings/scene-modes.d.ts +7 -0
  74. package/dist/cesium-map/settings/scene-modes.js +65 -0
  75. package/dist/cesium-map/settings/settings.css +49 -0
  76. package/dist/cesium-map/settings/settings.d.ts +23 -0
  77. package/dist/cesium-map/settings/settings.js +79 -0
  78. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -0
  79. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -0
  80. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -0
  81. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -0
  82. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -0
  83. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -0
  84. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -0
  85. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -0
  86. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -0
  87. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -0
  88. package/dist/cesium-map/tools/coordinates-tracker.tool.js +78 -0
  89. package/dist/cesium-map/tools/draw/drawHelper.css +101 -0
  90. package/dist/cesium-map/tools/draw/drawHelper.d.ts +28 -0
  91. package/dist/cesium-map/tools/draw/drawHelper.js +1694 -0
  92. package/dist/cesium-map/tools/geojson/geojson-to-primitive.d.ts +4 -0
  93. package/dist/cesium-map/tools/geojson/geojson-to-primitive.js +41 -0
  94. package/dist/cesium-map/tools/geojson/index.d.ts +2 -0
  95. package/dist/cesium-map/tools/geojson/index.js +14 -0
  96. package/dist/cesium-map/tools/geojson/point.geojson.d.ts +3 -0
  97. package/dist/cesium-map/tools/geojson/point.geojson.js +21 -0
  98. package/dist/cesium-map/tools/geojson/polygon.geojson.d.ts +3 -0
  99. package/dist/cesium-map/tools/geojson/polygon.geojson.js +24 -0
  100. package/dist/cesium-map/tools/geojson/rectangle.geojson.d.ts +3 -0
  101. package/dist/cesium-map/tools/geojson/rectangle.geojson.js +44 -0
  102. package/dist/cesium-map/tools/inspector.tool.d.ts +4 -0
  103. package/dist/cesium-map/tools/inspector.tool.js +33 -0
  104. package/dist/cesium-map/tools/scale-tracker.tool.css +16 -0
  105. package/dist/cesium-map/tools/scale-tracker.tool.d.ts +8 -0
  106. package/dist/cesium-map/tools/scale-tracker.tool.js +158 -0
  107. package/dist/cesium-map/tools/terranian-height.tool.d.ts +4 -0
  108. package/dist/cesium-map/tools/terranian-height.tool.js +113 -0
  109. package/dist/cssbaseline/cssbaseline.d.ts +5 -0
  110. package/dist/cssbaseline/cssbaseline.js +41 -0
  111. package/dist/cssbaseline/index.d.ts +1 -0
  112. package/dist/cssbaseline/index.js +6 -0
  113. package/dist/date-picker/date-picker.css +9 -0
  114. package/dist/date-picker/date-picker.d.ts +14 -0
  115. package/dist/date-picker/date-picker.js +78 -0
  116. package/dist/date-picker/index.d.ts +1 -0
  117. package/dist/date-picker/index.js +13 -0
  118. package/dist/date-range-picker/date-range-picker.css +9 -0
  119. package/dist/date-range-picker/date-range-picker.d.ts +26 -0
  120. package/dist/date-range-picker/date-range-picker.form-control.css +3 -0
  121. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -0
  122. package/dist/date-range-picker/date-range-picker.form-control.js +95 -0
  123. package/dist/date-range-picker/date-range-picker.js +104 -0
  124. package/dist/date-range-picker/index.d.ts +2 -0
  125. package/dist/date-range-picker/index.js +14 -0
  126. package/dist/file-picker/file-picker.css +62 -0
  127. package/dist/file-picker/file-picker.d.ts +276 -0
  128. package/dist/file-picker/file-picker.js +151 -0
  129. package/dist/file-picker/fs-map.json +1557 -0
  130. package/dist/file-picker/index.d.ts +2 -0
  131. package/dist/file-picker/index.js +14 -0
  132. package/dist/file-picker/localization.d.ts +11 -0
  133. package/dist/file-picker/localization.js +124 -0
  134. package/dist/index.d.ts +13 -0
  135. package/dist/index.js +23 -16
  136. package/dist/map-filter-container/container-map.css +5 -0
  137. package/dist/map-filter-container/container-map.d.ts +11 -0
  138. package/dist/map-filter-container/container-map.js +31 -0
  139. package/dist/map-filter-container/index.d.ts +1 -0
  140. package/dist/map-filter-container/index.js +13 -0
  141. package/dist/map-filter-container/map-filter-container.d.ts +9 -0
  142. package/dist/map-filter-container/map-filter-container.js +78 -0
  143. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -0
  144. package/dist/map-filter-container/polygon-selection-ui.js +62 -0
  145. package/dist/models/defaults.d.ts +28 -0
  146. package/dist/models/defaults.js +32 -0
  147. package/dist/models/enums.d.ts +14 -0
  148. package/dist/models/enums.js +20 -0
  149. package/dist/models/index.d.ts +1 -0
  150. package/dist/models/index.js +13 -0
  151. package/dist/ol-map/feature.d.ts +6 -0
  152. package/dist/ol-map/feature.js +20 -0
  153. package/dist/ol-map/index.d.ts +6 -0
  154. package/dist/ol-map/index.js +18 -0
  155. package/dist/ol-map/interactions/draw.d.ts +8 -0
  156. package/dist/ol-map/interactions/draw.js +44 -0
  157. package/dist/ol-map/interactions/index.d.ts +1 -0
  158. package/dist/ol-map/interactions/index.js +13 -0
  159. package/dist/ol-map/layers/index.d.ts +3 -0
  160. package/dist/ol-map/layers/index.js +15 -0
  161. package/dist/ol-map/layers/tile-layer.d.ts +9 -0
  162. package/dist/ol-map/layers/tile-layer.js +48 -0
  163. package/dist/ol-map/layers/vector-layer.d.ts +4 -0
  164. package/dist/ol-map/layers/vector-layer.js +48 -0
  165. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -0
  166. package/dist/ol-map/layers/vector-tile-layer.js +66 -0
  167. package/dist/ol-map/map.css +17 -0
  168. package/dist/ol-map/map.d.ts +14 -0
  169. package/dist/ol-map/map.js +117 -0
  170. package/dist/ol-map/source/index.d.ts +6 -0
  171. package/dist/ol-map/source/index.js +18 -0
  172. package/dist/ol-map/source/mvt.d.ts +11 -0
  173. package/dist/ol-map/source/mvt.js +37 -0
  174. package/dist/ol-map/source/osm.d.ts +2 -0
  175. package/dist/ol-map/source/osm.js +14 -0
  176. package/dist/ol-map/source/vector-source.d.ts +4 -0
  177. package/dist/ol-map/source/vector-source.js +45 -0
  178. package/dist/ol-map/source/wms.d.ts +17 -0
  179. package/dist/ol-map/source/wms.js +30 -0
  180. package/dist/ol-map/source/wmts.d.ts +21 -0
  181. package/dist/ol-map/source/wmts.js +59 -0
  182. package/dist/ol-map/source/xyz.d.ts +12 -0
  183. package/dist/ol-map/source/xyz.js +27 -0
  184. package/dist/ol-map/style.d.ts +4 -0
  185. package/dist/ol-map/style.js +22 -0
  186. package/dist/popover/index.d.ts +1 -0
  187. package/dist/popover/index.js +5 -0
  188. package/dist/popover/popover.d.ts +3 -0
  189. package/dist/popover/popover.js +35 -0
  190. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -0
  191. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -0
  192. package/dist/smart-table/index.d.ts +2 -0
  193. package/dist/smart-table/index.js +14 -0
  194. package/dist/smart-table/smart-table-head.d.ts +11 -0
  195. package/dist/smart-table/smart-table-head.js +22 -0
  196. package/dist/smart-table/smart-table-row.d.ts +12 -0
  197. package/dist/smart-table/smart-table-row.js +46 -0
  198. package/dist/smart-table/smart-table-types.d.ts +9 -0
  199. package/dist/smart-table/smart-table-types.js +2 -0
  200. package/dist/smart-table/smart-table.d.ts +17 -0
  201. package/dist/smart-table/smart-table.js +51 -0
  202. package/dist/theme/index.d.ts +1 -0
  203. package/dist/theme/index.js +13 -0
  204. package/dist/theme/theme.d.ts +8 -0
  205. package/dist/theme/theme.js +124 -0
  206. package/dist/utils/map.d.ts +3 -0
  207. package/dist/utils/map.js +21 -0
  208. package/dist/utils/projections.d.ts +6 -0
  209. package/dist/utils/projections.js +10 -0
  210. package/dist/utils/story.d.ts +12 -0
  211. package/dist/utils/story.js +2 -0
  212. package/package.json +103 -100
  213. package/public/assets/img/map-marker.gif +0 -0
  214. package/src/lib/cesium-map/map.tsx +22 -12
  215. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +155 -0
  216. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +5 -3
  217. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +1 -1
  218. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -0
  219. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +167 -0
  220. package/src/lib/date-range-picker/{stories/DateRangePicker.stories.tsx → date-range-picker.stories.tsx} +5 -5
  221. package/src/lib/file-picker/file-picker.css +62 -0
  222. package/src/lib/file-picker/file-picker.stories.tsx +447 -0
  223. package/src/lib/file-picker/file-picker.tsx +180 -0
  224. package/src/lib/file-picker/fs-map.json +1557 -0
  225. package/src/lib/file-picker/index.ts +2 -0
  226. package/src/lib/file-picker/localization.ts +164 -0
  227. package/src/lib/index.ts +1 -0
  228. package/src/lib/models/enums.ts +1 -0
  229. package/src/lib/smart-table/smart-table-row.spec.tsx +1 -1
  230. package/tsbuildconfig.json +2 -2
  231. package/tsconfig.json +2 -1
@@ -0,0 +1,49 @@
1
+ .mapScenesContainer {
2
+ display: flex;
3
+ gap: 8px;
4
+ }
5
+
6
+ .settingsIconContainer {
7
+ fill: #fff;
8
+ width: 40px;
9
+ height: 40px;
10
+ background: #303336;
11
+ border: 1px solid #444;
12
+ border-radius: 4px;
13
+ }
14
+
15
+ .settingsIconContainer:hover {
16
+ background: #48b;
17
+ border-color: #aef;
18
+ }
19
+
20
+ .baseMapsContainer {
21
+ margin-top: 12px;
22
+ min-height: 58%;
23
+ }
24
+
25
+ .settingsDialogPortal {
26
+ transform: translateZ(0);
27
+ height: calc(100vh - 220px);
28
+ max-height: 460px;
29
+ width: 280px;
30
+ position: absolute;
31
+ top: 40px;
32
+ right: 80px;
33
+ }
34
+
35
+ .settingsDialogPortal .mdc-dialog__container {
36
+ align-items: unset;
37
+ }
38
+ .settingsDialogPortal .mdc-dialog .mdc-dialog__surface {
39
+ max-height: unset;
40
+ }
41
+
42
+ body[dir='rtl'] .settingsDialogPortal {
43
+ left: 80px;
44
+ right: unset;
45
+ }
46
+
47
+ .sectionLabel {
48
+ margin-block-end: 0.5em;
49
+ }
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { IRasterLayer, IVectorLayer } from '../layers-manager';
3
+ import { CesiumSceneModeEnum } from '../map.types';
4
+ import './settings.css';
5
+ export interface IBaseMap {
6
+ id: string;
7
+ title?: string;
8
+ thumbnail?: string;
9
+ isCurrent?: boolean;
10
+ baseRasteLayers: IRasterLayer[];
11
+ baseVectorLayers: IVectorLayer[];
12
+ }
13
+ export interface IBaseMaps {
14
+ maps: IBaseMap[];
15
+ }
16
+ export interface RCesiumMapProps {
17
+ sceneModes: CesiumSceneModeEnum[];
18
+ baseMaps?: IBaseMaps;
19
+ locale?: {
20
+ [key: string]: string;
21
+ };
22
+ }
23
+ export declare const CesiumSettings: React.FC<RCesiumMapProps>;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.CesiumSettings = void 0;
23
+ var react_1 = __importStar(require("react"));
24
+ var react_core_1 = require("@map-colonies/react-core");
25
+ var lodash_1 = require("lodash");
26
+ var box_1 = require("../../box");
27
+ var scene_modes_1 = require("./scene-modes");
28
+ var base_maps_1 = require("./base-maps");
29
+ require("./settings.css");
30
+ var SETTINGS_SVG_ID = 'ic_settings_24px';
31
+ var CesiumSettings = function (props) {
32
+ var _a, _b, _c;
33
+ var _d = react_1.useState(false), isOpen = _d[0], setIsOpen = _d[1];
34
+ var sceneModes = props.sceneModes, baseMaps = props.baseMaps, locale = props.locale;
35
+ var dialogPortalRef = react_1.useRef(null);
36
+ var dlgTitle = (_a = lodash_1.get(locale, 'MAP_SETTINGS_DIALOG_TITLE')) !== null && _a !== void 0 ? _a : 'Map Settings';
37
+ var sceneModeTitle = (_b = lodash_1.get(locale, 'MAP_SETTINGS_SCENE_MODE_TITLE')) !== null && _b !== void 0 ? _b : 'Scene Mode';
38
+ var baseMapTitle = (_c = lodash_1.get(locale, 'MAP_SETTINGS_BASE_MAP_TITLE')) !== null && _c !== void 0 ? _c : 'Base Map';
39
+ // const btnOkText = get(locale, 'MAP_SETTINGS_OK_BUTTON_TEXT') ?? 'Ok';
40
+ react_1.useEffect(function () {
41
+ var handleClickOutside = function (event) {
42
+ var _a;
43
+ /* eslint-disable */
44
+ var target = event.target;
45
+ var dlgPortalRef = lodash_1.get(dialogPortalRef, 'current');
46
+ if (dlgPortalRef &&
47
+ !dlgPortalRef.contains(target) &&
48
+ target.id !== SETTINGS_SVG_ID &&
49
+ ((_a = target.parentElement) === null || _a === void 0 ? void 0 : _a.id) !== SETTINGS_SVG_ID) {
50
+ document.removeEventListener('click', handleClickOutside, false);
51
+ setIsOpen(false);
52
+ }
53
+ /* eslint-enable */
54
+ };
55
+ document.addEventListener('click', handleClickOutside, false);
56
+ return function () {
57
+ document.removeEventListener('click', handleClickOutside, false);
58
+ };
59
+ });
60
+ return (react_1.default.createElement(react_1.default.Fragment, null,
61
+ react_1.default.createElement(react_core_1.Icon, { icon: react_1.default.createElement("div", { className: "settingsIconContainer" },
62
+ react_1.default.createElement("svg", { width: "100%", height: "100%", viewBox: "0 0 24 24", id: SETTINGS_SVG_ID, x: "288", y: "24" },
63
+ react_1.default.createElement("path", { d: "M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z" }))), onClick: function () {
64
+ setIsOpen(!isOpen);
65
+ } }),
66
+ isOpen && (react_1.default.createElement("div", { id: "dialog-portal-example", className: "settingsDialogPortal", ref: dialogPortalRef },
67
+ react_1.default.createElement(react_core_1.Dialog, { open: isOpen, onClosed: function () {
68
+ setIsOpen(false);
69
+ } },
70
+ react_1.default.createElement(react_core_1.DialogTitle, null, dlgTitle),
71
+ react_1.default.createElement(react_core_1.DialogContent, null,
72
+ react_1.default.createElement("h4", { className: "sectionLabel" }, sceneModeTitle),
73
+ react_1.default.createElement(box_1.Box, { className: "mapScenesContainer" },
74
+ react_1.default.createElement(scene_modes_1.CesiumSceneModes, { sceneModes: sceneModes })),
75
+ react_1.default.createElement(box_1.Box, { className: "baseMapsContainer" }, baseMaps && (react_1.default.createElement(react_1.default.Fragment, null,
76
+ react_1.default.createElement("h4", { className: "sectionLabel" }, baseMapTitle),
77
+ react_1.default.createElement(base_maps_1.CesiumBaseMaps, { baseMaps: baseMaps }))))))))));
78
+ };
79
+ exports.CesiumSettings = CesiumSettings;
@@ -0,0 +1,3 @@
1
+ export declare const dummyTile: Uint8Array;
2
+ declare const _default: ArrayBufferLike;
3
+ export default _default;
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dummyTile = void 0;
4
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
5
+ exports.dummyTile = new Uint8Array([
6
+ 172,
7
+ 223,
8
+ 96,
9
+ 7,
10
+ 210,
11
+ 166,
12
+ 80,
13
+ 193,
14
+ 62,
15
+ 133,
16
+ 0,
17
+ 92,
18
+ 97,
19
+ 125,
20
+ 81,
21
+ 193,
22
+ 175,
23
+ 204,
24
+ 114,
25
+ 156,
26
+ 24,
27
+ 171,
28
+ 39,
29
+ 65,
30
+ 215,
31
+ 131,
32
+ 189,
33
+ 193,
34
+ 92,
35
+ 143,
36
+ 98,
37
+ 193,
38
+ 172,
39
+ 223,
40
+ 224,
41
+ 55,
42
+ 148,
43
+ 164,
44
+ 80,
45
+ 193,
46
+ 62,
47
+ 133,
48
+ 128,
49
+ 115,
50
+ 254,
51
+ 122,
52
+ 81,
53
+ 193,
54
+ 175,
55
+ 204,
56
+ 114,
57
+ 40,
58
+ 74,
59
+ 169,
60
+ 39,
61
+ 65,
62
+ 199,
63
+ 225,
64
+ 33,
65
+ 1,
66
+ 165,
67
+ 221,
68
+ 10,
69
+ 65,
70
+ 165,
71
+ 248,
72
+ 77,
73
+ 38,
74
+ 221,
75
+ 233,
76
+ 229,
77
+ 191,
78
+ 118,
79
+ 168,
80
+ 124,
81
+ 106,
82
+ 57,
83
+ 4,
84
+ 231,
85
+ 191,
86
+ 208,
87
+ 126,
88
+ 103,
89
+ 119,
90
+ 149,
91
+ 64,
92
+ 191,
93
+ 63,
94
+ 9,
95
+ 0,
96
+ 0,
97
+ 0,
98
+ 254,
99
+ 127,
100
+ 253,
101
+ 127,
102
+ 254,
103
+ 127,
104
+ 253,
105
+ 127,
106
+ 0,
107
+ 0,
108
+ 254,
109
+ 255,
110
+ 255,
111
+ 127,
112
+ 0,
113
+ 128,
114
+ 0,
115
+ 0,
116
+ 254,
117
+ 127,
118
+ 253,
119
+ 127,
120
+ 0,
121
+ 0,
122
+ 254,
123
+ 127,
124
+ 0,
125
+ 128,
126
+ 0,
127
+ 0,
128
+ 0,
129
+ 0,
130
+ 253,
131
+ 255,
132
+ 254,
133
+ 127,
134
+ 0,
135
+ 0,
136
+ 0,
137
+ 0,
138
+ 0,
139
+ 0,
140
+ 0,
141
+ 0,
142
+ 0,
143
+ 0,
144
+ 0,
145
+ 0,
146
+ 0,
147
+ 0,
148
+ 0,
149
+ 0,
150
+ 0,
151
+ 0,
152
+ 8,
153
+ 0,
154
+ 0,
155
+ 0,
156
+ 0,
157
+ 0,
158
+ 0,
159
+ 0,
160
+ 0,
161
+ 0,
162
+ 2,
163
+ 0,
164
+ 3,
165
+ 0,
166
+ 0,
167
+ 0,
168
+ 4,
169
+ 0,
170
+ 0,
171
+ 0,
172
+ 2,
173
+ 0,
174
+ 5,
175
+ 0,
176
+ 0,
177
+ 0,
178
+ 0,
179
+ 0,
180
+ 7,
181
+ 0,
182
+ 0,
183
+ 0,
184
+ 0,
185
+ 0,
186
+ 2,
187
+ 0,
188
+ 9,
189
+ 0,
190
+ 7,
191
+ 0,
192
+ 4,
193
+ 0,
194
+ 9,
195
+ 0,
196
+ 1,
197
+ 0,
198
+ 5,
199
+ 0,
200
+ 9,
201
+ 0,
202
+ 3,
203
+ 0,
204
+ 3,
205
+ 0,
206
+ 0,
207
+ 0,
208
+ 0,
209
+ 0,
210
+ 0,
211
+ 0,
212
+ 3,
213
+ 0,
214
+ 3,
215
+ 0,
216
+ 0,
217
+ 0,
218
+ 1,
219
+ 0,
220
+ 7,
221
+ 0,
222
+ 2,
223
+ 0,
224
+ 3,
225
+ 0,
226
+ 0,
227
+ 0,
228
+ 7,
229
+ 0,
230
+ 5,
231
+ 0,
232
+ 8,
233
+ 0,
234
+ 3,
235
+ 0,
236
+ 0,
237
+ 0,
238
+ 4,
239
+ 0,
240
+ 5,
241
+ 0,
242
+ 6,
243
+ 0,
244
+ ]);
245
+ exports.default = exports.dummyTile.buffer;
@@ -0,0 +1,9 @@
1
+ import { IDecodedTile } from './quantized-mesh-terrain-provider';
2
+ export declare const DECODING_STEPS: {
3
+ header: number;
4
+ vertices: number;
5
+ triangleIndices: number;
6
+ edgeIndices: number;
7
+ extensions: number;
8
+ };
9
+ export declare const decode: (data: ArrayBufferLike) => IDecodedTile;
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decode = exports.DECODING_STEPS = void 0;
4
+ var LITTLE_ENDIAN = true;
5
+ var MAX_VERTEX_COUNT = 65536;
6
+ exports.DECODING_STEPS = {
7
+ header: 0,
8
+ vertices: 1,
9
+ triangleIndices: 2,
10
+ edgeIndices: 3,
11
+ extensions: 4,
12
+ };
13
+ var QUANTIZED_MESH_HEADER = {
14
+ centerX: Float64Array.BYTES_PER_ELEMENT,
15
+ centerY: Float64Array.BYTES_PER_ELEMENT,
16
+ centerZ: Float64Array.BYTES_PER_ELEMENT,
17
+ minHeight: Float32Array.BYTES_PER_ELEMENT,
18
+ maxHeight: Float32Array.BYTES_PER_ELEMENT,
19
+ boundingSphereCenterX: Float64Array.BYTES_PER_ELEMENT,
20
+ boundingSphereCenterY: Float64Array.BYTES_PER_ELEMENT,
21
+ boundingSphereCenterZ: Float64Array.BYTES_PER_ELEMENT,
22
+ boundingSphereRadius: Float64Array.BYTES_PER_ELEMENT,
23
+ horizonOcclusionPointX: Float64Array.BYTES_PER_ELEMENT,
24
+ horizonOcclusionPointY: Float64Array.BYTES_PER_ELEMENT,
25
+ horizonOcclusionPointZ: Float64Array.BYTES_PER_ELEMENT,
26
+ };
27
+ var decodeZigZag = function (value) {
28
+ return (value >> 1) ^ -(value & 1);
29
+ };
30
+ var decodeIndex = function (buffer, position, indicesCount, bytesPerIndex, encoded) {
31
+ var indices;
32
+ if (bytesPerIndex === 2) {
33
+ indices = new Uint16Array(buffer, position, indicesCount);
34
+ }
35
+ else {
36
+ indices = new Uint32Array(buffer, position, indicesCount);
37
+ }
38
+ if (!encoded) {
39
+ return indices;
40
+ }
41
+ var highest = 0;
42
+ for (var i = 0; i < indices.length; ++i) {
43
+ var code = indices[i];
44
+ indices[i] = highest - code;
45
+ if (code === 0) {
46
+ ++highest;
47
+ }
48
+ }
49
+ return indices;
50
+ };
51
+ var convertFromTypedArrayToNumbersArray = function (array) {
52
+ var numbersArray = [];
53
+ for (var i = 0; i < array.length; ++i) {
54
+ numbersArray.push(array[i]);
55
+ }
56
+ return numbersArray;
57
+ };
58
+ var decode = function (data) {
59
+ var maxDecodingStep = exports.DECODING_STEPS.extensions;
60
+ var view = new DataView(data);
61
+ var header = {};
62
+ var position = 0;
63
+ // Decode Header
64
+ Object.keys(QUANTIZED_MESH_HEADER).forEach(function (key, bytesCount) {
65
+ // @ts-ignore
66
+ // eslint-disable-next-line
67
+ header[key] =
68
+ bytesCount === 8
69
+ ? view.getFloat64(position, LITTLE_ENDIAN)
70
+ : view.getFloat32(position, LITTLE_ENDIAN);
71
+ position += bytesCount;
72
+ });
73
+ var headerEndPosition = position;
74
+ // if (maxDecodingStep < DECODING_STEPS.vertices) {
75
+ // return { header };
76
+ // }
77
+ // Decode Vertex Data
78
+ position = headerEndPosition;
79
+ var vertexCount = view.getUint32(position, LITTLE_ENDIAN);
80
+ var vertexData = new Uint16Array(vertexCount * 3);
81
+ position += Uint32Array.BYTES_PER_ELEMENT;
82
+ var bytesPerArrayElement = Uint16Array.BYTES_PER_ELEMENT;
83
+ var elementArrayLength = vertexCount * bytesPerArrayElement;
84
+ var uArrayStartPosition = position;
85
+ var vArrayStartPosition = uArrayStartPosition + elementArrayLength;
86
+ var heightArrayStartPosition = vArrayStartPosition + elementArrayLength;
87
+ var u = 0;
88
+ var v = 0;
89
+ var height = 0;
90
+ for (var i = 0; i < vertexCount; i++) {
91
+ u += decodeZigZag(view.getUint16(uArrayStartPosition + bytesPerArrayElement * i, LITTLE_ENDIAN));
92
+ v += decodeZigZag(view.getUint16(vArrayStartPosition + bytesPerArrayElement * i, LITTLE_ENDIAN));
93
+ height += decodeZigZag(view.getUint16(heightArrayStartPosition + bytesPerArrayElement * i, LITTLE_ENDIAN));
94
+ vertexData[i] = u;
95
+ vertexData[i + vertexCount] = v;
96
+ vertexData[i + vertexCount * 2] = height;
97
+ }
98
+ position += elementArrayLength * 3;
99
+ var vertexDataEndPosition = position;
100
+ // if (maxDecodingStep < DECODING_STEPS.triangleIndices) {
101
+ // return { header, vertexData };
102
+ // }
103
+ // Decode Triangle Indices
104
+ position = vertexDataEndPosition;
105
+ vertexCount = vertexData.length / 3;
106
+ var bytesPerIndex = vertexCount > MAX_VERTEX_COUNT
107
+ ? Uint32Array.BYTES_PER_ELEMENT
108
+ : Uint16Array.BYTES_PER_ELEMENT;
109
+ if (position % bytesPerIndex !== 0) {
110
+ position += bytesPerIndex - (position % bytesPerIndex);
111
+ }
112
+ var triangleCount = view.getUint32(position, LITTLE_ENDIAN);
113
+ position += Uint32Array.BYTES_PER_ELEMENT;
114
+ var triangleIndicesCount = triangleCount * 3;
115
+ var triangleIndices = decodeIndex(view.buffer, position, triangleIndicesCount, bytesPerIndex, true);
116
+ position += triangleIndicesCount * bytesPerIndex;
117
+ var triangleIndicesEndPosition = position;
118
+ // if (maxDecodingStep < DECODING_STEPS.edgeIndices) {
119
+ // return { header, vertexData, triangleIndices };
120
+ // }
121
+ // Decode Edge Indices
122
+ position = triangleIndicesEndPosition;
123
+ vertexCount = vertexData.length / 3;
124
+ // bytesPerIndex = vertexCount > MAX_VERTEX_COUNT
125
+ // ? Uint32Array.BYTES_PER_ELEMENT
126
+ // : Uint16Array.BYTES_PER_ELEMENT;
127
+ var westVertexCount = view.getUint32(position, LITTLE_ENDIAN);
128
+ position += Uint32Array.BYTES_PER_ELEMENT;
129
+ var westIndices = convertFromTypedArrayToNumbersArray(decodeIndex(view.buffer, position, westVertexCount, bytesPerIndex, false));
130
+ position += westVertexCount * bytesPerIndex;
131
+ var southVertexCount = view.getUint32(position, LITTLE_ENDIAN);
132
+ position += Uint32Array.BYTES_PER_ELEMENT;
133
+ var southIndices = convertFromTypedArrayToNumbersArray(decodeIndex(view.buffer, position, southVertexCount, bytesPerIndex, false));
134
+ position += southVertexCount * bytesPerIndex;
135
+ var eastVertexCount = view.getUint32(position, LITTLE_ENDIAN);
136
+ position += Uint32Array.BYTES_PER_ELEMENT;
137
+ var eastIndices = convertFromTypedArrayToNumbersArray(decodeIndex(view.buffer, position, eastVertexCount, bytesPerIndex, false));
138
+ position += eastVertexCount * bytesPerIndex;
139
+ var northVertexCount = view.getUint32(position, LITTLE_ENDIAN);
140
+ position += Uint32Array.BYTES_PER_ELEMENT;
141
+ var northIndices = convertFromTypedArrayToNumbersArray(decodeIndex(view.buffer, position, northVertexCount, bytesPerIndex, false));
142
+ position += northVertexCount * bytesPerIndex;
143
+ var edgeIndicesEndPosition = position;
144
+ if (maxDecodingStep < exports.DECODING_STEPS.extensions) {
145
+ return {
146
+ header: header,
147
+ vertexData: vertexData,
148
+ triangleIndices: triangleIndices,
149
+ westIndices: westIndices,
150
+ northIndices: northIndices,
151
+ eastIndices: eastIndices,
152
+ southIndices: southIndices,
153
+ };
154
+ }
155
+ // Decode Extensions
156
+ var extensions = {};
157
+ if (view.byteLength > edgeIndicesEndPosition) {
158
+ position = edgeIndicesEndPosition;
159
+ while (position < view.byteLength) {
160
+ var extensionId = view.getUint8(position);
161
+ position += Uint8Array.BYTES_PER_ELEMENT;
162
+ var extensionLength = view.getUint32(position, true);
163
+ position += Uint32Array.BYTES_PER_ELEMENT;
164
+ var extensionView = new DataView(view.buffer, position, extensionLength);
165
+ switch (extensionId) {
166
+ case 1: {
167
+ extensions.vertexNormals = new Uint8Array(extensionView.buffer, extensionView.byteOffset, extensionView.byteLength);
168
+ break;
169
+ }
170
+ case 2: {
171
+ extensions.waterMask = extensionView.buffer.slice(extensionView.byteOffset, extensionView.byteOffset + extensionView.byteLength);
172
+ break;
173
+ }
174
+ case 4: {
175
+ var jsonLength = extensionView.getUint32(0, LITTLE_ENDIAN);
176
+ var jsonString = '';
177
+ for (var i = 0; i < jsonLength; ++i) {
178
+ jsonString += String.fromCharCode(extensionView.getUint8(Uint32Array.BYTES_PER_ELEMENT + i));
179
+ }
180
+ // eslint-disable-next-line
181
+ extensions.metadata = JSON.parse(jsonString);
182
+ break;
183
+ }
184
+ default: {
185
+ console.warn("Unknown extension with id " + extensionId);
186
+ }
187
+ }
188
+ position += extensionLength;
189
+ }
190
+ }
191
+ return {
192
+ header: header,
193
+ vertexData: vertexData,
194
+ triangleIndices: triangleIndices,
195
+ westIndices: westIndices,
196
+ northIndices: northIndices,
197
+ eastIndices: eastIndices,
198
+ southIndices: southIndices,
199
+ extensions: extensions,
200
+ };
201
+ };
202
+ exports.decode = decode;
@@ -0,0 +1,50 @@
1
+ import { QuantizedMeshTerrainData, TilingScheme } from 'cesium';
2
+ export interface IDecodedTileHeader {
3
+ centerX: number;
4
+ centerY: number;
5
+ centerZ: number;
6
+ minHeight: number;
7
+ maxHeight: number;
8
+ boundingSphereCenterX: number;
9
+ boundingSphereCenterY: number;
10
+ boundingSphereCenterZ: number;
11
+ boundingSphereRadius: number;
12
+ horizonOcclusionPointX: number;
13
+ horizonOcclusionPointY: number;
14
+ horizonOcclusionPointZ: number;
15
+ }
16
+ export interface IExtensions {
17
+ vertexNormals?: Uint8Array;
18
+ waterMask?: ArrayBufferLike;
19
+ metadata?: unknown;
20
+ }
21
+ export interface IDecodedTile {
22
+ header: IDecodedTileHeader;
23
+ vertexData: Uint16Array;
24
+ triangleIndices: Uint16Array | Uint32Array;
25
+ westIndices: number[];
26
+ northIndices: number[];
27
+ eastIndices: number[];
28
+ southIndices: number[];
29
+ extensions?: IExtensions;
30
+ }
31
+ export default class QuantizedMeshTerrainProvider {
32
+ tilingScheme: TilingScheme;
33
+ ready: boolean;
34
+ readyPromise: Promise<boolean>;
35
+ private readonly dummyTile;
36
+ private readonly getUrl;
37
+ private readonly credits;
38
+ constructor(options: {
39
+ getUrl?: (x: number, y: number, level: number) => string;
40
+ credit?: string;
41
+ tilingScheme?: TilingScheme;
42
+ });
43
+ requestTileGeometry(x: number, y: number, level: number): Promise<void | QuantizedMeshTerrainData> | undefined;
44
+ getTileDataAvailable(x: number, y: number, level: number): boolean;
45
+ getLevelMaximumGeometricError(level: number): number;
46
+ private generateDummyTileHeader;
47
+ private createQuantizedMeshData;
48
+ private generateDummyTile;
49
+ private decodeResponse;
50
+ }