@map-colonies/react-components 3.12.2 → 3.12.3

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 (375) hide show
  1. package/.eslintignore +1 -1
  2. package/.storybook/main.js +13 -13
  3. package/.storybook/manager.js +6 -6
  4. package/.storybook/preview-head.html +21 -21
  5. package/.storybook/preview.js +18 -18
  6. package/.storybook/theme.js +9 -9
  7. package/CHANGELOG.md +828 -819
  8. package/README.md +53 -53
  9. package/dist/autocomplete/autocomplete.css +25 -25
  10. package/dist/autocomplete/autocomplete.d.ts +33 -33
  11. package/dist/autocomplete/autocomplete.js +478 -478
  12. package/dist/autocomplete/index.d.ts +1 -1
  13. package/dist/autocomplete/index.js +5 -5
  14. package/dist/box/box.d.ts +3 -3
  15. package/dist/box/box.js +35 -35
  16. package/dist/box/index.d.ts +1 -1
  17. package/dist/box/index.js +5 -5
  18. package/dist/cesium-map/data-sources/custom.data-source.d.ts +5 -5
  19. package/dist/cesium-map/data-sources/custom.data-source.js +23 -23
  20. package/dist/cesium-map/data-sources/drawings.data-source.d.ts +34 -34
  21. package/dist/cesium-map/data-sources/drawings.data-source.js +187 -187
  22. package/dist/cesium-map/data-sources/index.d.ts +2 -2
  23. package/dist/cesium-map/data-sources/index.js +14 -14
  24. package/dist/cesium-map/entities/entity.d.ts +5 -5
  25. package/dist/cesium-map/entities/entity.description.d.ts +6 -6
  26. package/dist/cesium-map/entities/entity.description.js +27 -27
  27. package/dist/cesium-map/entities/entity.js +23 -23
  28. package/dist/cesium-map/entities/graphics/polygon.graphics.d.ts +5 -5
  29. package/dist/cesium-map/entities/graphics/polygon.graphics.js +23 -23
  30. package/dist/cesium-map/entities/graphics/polyline.graphics.d.ts +5 -5
  31. package/dist/cesium-map/entities/graphics/polyline.graphics.js +23 -23
  32. package/dist/cesium-map/entities/graphics/rectangle.graphics.d.ts +5 -5
  33. package/dist/cesium-map/entities/graphics/rectangle.graphics.js +23 -23
  34. package/dist/cesium-map/entities/index.d.ts +4 -4
  35. package/dist/cesium-map/entities/index.js +16 -16
  36. package/dist/cesium-map/index.d.ts +8 -8
  37. package/dist/cesium-map/index.js +20 -20
  38. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -7
  39. package/dist/cesium-map/layers/3d.tileset.js +43 -43
  40. package/dist/cesium-map/layers/3d.tileset.with.update.d.ts +6 -6
  41. package/dist/cesium-map/layers/3d.tileset.with.update.js +115 -115
  42. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -5
  43. package/dist/cesium-map/layers/geojson.layer.js +23 -23
  44. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -6
  45. package/dist/cesium-map/layers/imagery.layer.js +68 -68
  46. package/dist/cesium-map/layers/index.d.ts +7 -7
  47. package/dist/cesium-map/layers/index.js +19 -19
  48. package/dist/cesium-map/layers/osm.layer.d.ts +9 -9
  49. package/dist/cesium-map/layers/osm.layer.js +36 -36
  50. package/dist/cesium-map/layers/wms.layer.d.ts +9 -9
  51. package/dist/cesium-map/layers/wms.layer.js +36 -36
  52. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -9
  53. package/dist/cesium-map/layers/wmts.layer.js +36 -36
  54. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -9
  55. package/dist/cesium-map/layers/xyz.layer.js +36 -36
  56. package/dist/cesium-map/layers-manager.d.ts +55 -55
  57. package/dist/cesium-map/layers-manager.js +246 -246
  58. package/dist/cesium-map/map-legend/MapLegend.css +135 -135
  59. package/dist/cesium-map/map-legend/MapLegend.d.ts +15 -15
  60. package/dist/cesium-map/map-legend/MapLegend.js +57 -57
  61. package/dist/cesium-map/map-legend/MapLegendList.d.ts +13 -13
  62. package/dist/cesium-map/map-legend/MapLegendList.js +43 -43
  63. package/dist/cesium-map/map-legend/MapLegendSidebar.d.ts +16 -16
  64. package/dist/cesium-map/map-legend/MapLegendSidebar.js +20 -20
  65. package/dist/cesium-map/map-legend/MapLegendToggle.d.ts +7 -7
  66. package/dist/cesium-map/map-legend/MapLegendToggle.js +20 -20
  67. package/dist/cesium-map/map-legend/index.d.ts +3 -3
  68. package/dist/cesium-map/map-legend/index.js +14 -14
  69. package/dist/cesium-map/map.css +59 -59
  70. package/dist/cesium-map/map.d.ts +59 -59
  71. package/dist/cesium-map/map.js +305 -305
  72. package/dist/cesium-map/map.types.d.ts +8 -8
  73. package/dist/cesium-map/map.types.js +12 -12
  74. package/dist/cesium-map/proxied.types.d.ts +30 -30
  75. package/dist/cesium-map/proxied.types.js +132 -132
  76. package/dist/cesium-map/settings/base-maps.css +37 -37
  77. package/dist/cesium-map/settings/base-maps.d.ts +7 -7
  78. package/dist/cesium-map/settings/base-maps.js +78 -78
  79. package/dist/cesium-map/settings/scene-modes.css +19 -19
  80. package/dist/cesium-map/settings/scene-modes.d.ts +7 -7
  81. package/dist/cesium-map/settings/scene-modes.js +65 -65
  82. package/dist/cesium-map/settings/settings.css +52 -52
  83. package/dist/cesium-map/settings/settings.d.ts +23 -23
  84. package/dist/cesium-map/settings/settings.js +79 -79
  85. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -3
  86. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -245
  87. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -9
  88. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -202
  89. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -50
  90. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -136
  91. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -2
  92. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -38
  93. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  94. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -7
  95. package/dist/cesium-map/tools/coordinates-tracker.tool.js +78 -78
  96. package/dist/cesium-map/tools/draw/drawHelper.css +101 -101
  97. package/dist/cesium-map/tools/draw/drawHelper.d.ts +28 -28
  98. package/dist/cesium-map/tools/draw/drawHelper.js +1694 -1694
  99. package/dist/cesium-map/tools/geojson/geojson-to-primitive.d.ts +4 -4
  100. package/dist/cesium-map/tools/geojson/geojson-to-primitive.js +41 -41
  101. package/dist/cesium-map/tools/geojson/index.d.ts +2 -2
  102. package/dist/cesium-map/tools/geojson/index.js +14 -14
  103. package/dist/cesium-map/tools/geojson/point.geojson.d.ts +3 -3
  104. package/dist/cesium-map/tools/geojson/point.geojson.js +21 -21
  105. package/dist/cesium-map/tools/geojson/polygon.geojson.d.ts +3 -3
  106. package/dist/cesium-map/tools/geojson/polygon.geojson.js +24 -24
  107. package/dist/cesium-map/tools/geojson/rectangle.geojson.d.ts +3 -3
  108. package/dist/cesium-map/tools/geojson/rectangle.geojson.js +44 -44
  109. package/dist/cesium-map/tools/inspector.tool.d.ts +4 -4
  110. package/dist/cesium-map/tools/inspector.tool.js +33 -33
  111. package/dist/cesium-map/tools/scale-tracker.tool.css +16 -16
  112. package/dist/cesium-map/tools/scale-tracker.tool.d.ts +8 -8
  113. package/dist/cesium-map/tools/scale-tracker.tool.js +158 -158
  114. package/dist/cesium-map/tools/terranian-height.tool.d.ts +4 -4
  115. package/dist/cesium-map/tools/terranian-height.tool.js +114 -114
  116. package/dist/cssbaseline/cssbaseline.d.ts +5 -5
  117. package/dist/cssbaseline/cssbaseline.js +41 -41
  118. package/dist/cssbaseline/index.d.ts +1 -1
  119. package/dist/cssbaseline/index.js +6 -6
  120. package/dist/date-picker/date-picker.css +9 -9
  121. package/dist/date-picker/date-picker.d.ts +14 -14
  122. package/dist/date-picker/date-picker.js +78 -78
  123. package/dist/date-picker/index.d.ts +1 -1
  124. package/dist/date-picker/index.js +13 -13
  125. package/dist/date-range-picker/date-range-picker.css +9 -9
  126. package/dist/date-range-picker/date-range-picker.d.ts +26 -26
  127. package/dist/date-range-picker/date-range-picker.form-control.css +3 -3
  128. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -28
  129. package/dist/date-range-picker/date-range-picker.form-control.js +95 -95
  130. package/dist/date-range-picker/date-range-picker.js +104 -104
  131. package/dist/date-range-picker/index.d.ts +2 -2
  132. package/dist/date-range-picker/index.js +14 -14
  133. package/dist/file-picker/file-picker.css +63 -63
  134. package/dist/file-picker/file-picker.d.ts +276 -276
  135. package/dist/file-picker/file-picker.js +151 -151
  136. package/dist/file-picker/fs-map.json +1556 -1556
  137. package/dist/file-picker/index.d.ts +2 -2
  138. package/dist/file-picker/index.js +14 -14
  139. package/dist/file-picker/localization.d.ts +11 -11
  140. package/dist/file-picker/localization.js +124 -124
  141. package/dist/index.d.ts +13 -13
  142. package/dist/index.js +25 -25
  143. package/dist/map-filter-container/container-map.css +5 -5
  144. package/dist/map-filter-container/container-map.d.ts +11 -11
  145. package/dist/map-filter-container/container-map.js +31 -31
  146. package/dist/map-filter-container/index.d.ts +1 -1
  147. package/dist/map-filter-container/index.js +13 -13
  148. package/dist/map-filter-container/map-filter-container.d.ts +9 -9
  149. package/dist/map-filter-container/map-filter-container.js +78 -78
  150. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -12
  151. package/dist/map-filter-container/polygon-selection-ui.js +62 -62
  152. package/dist/models/defaults.d.ts +28 -28
  153. package/dist/models/defaults.js +32 -32
  154. package/dist/models/enums.d.ts +14 -14
  155. package/dist/models/enums.js +20 -20
  156. package/dist/models/index.d.ts +1 -1
  157. package/dist/models/index.js +13 -13
  158. package/dist/ol-map/feature.d.ts +6 -6
  159. package/dist/ol-map/feature.js +20 -20
  160. package/dist/ol-map/index.d.ts +6 -6
  161. package/dist/ol-map/index.js +18 -18
  162. package/dist/ol-map/interactions/draw.d.ts +8 -8
  163. package/dist/ol-map/interactions/draw.js +44 -44
  164. package/dist/ol-map/interactions/index.d.ts +1 -1
  165. package/dist/ol-map/interactions/index.js +13 -13
  166. package/dist/ol-map/layers/index.d.ts +3 -3
  167. package/dist/ol-map/layers/index.js +15 -15
  168. package/dist/ol-map/layers/tile-layer.d.ts +9 -9
  169. package/dist/ol-map/layers/tile-layer.js +48 -48
  170. package/dist/ol-map/layers/vector-layer.d.ts +4 -4
  171. package/dist/ol-map/layers/vector-layer.js +48 -48
  172. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -10
  173. package/dist/ol-map/layers/vector-tile-layer.js +66 -66
  174. package/dist/ol-map/map.css +17 -17
  175. package/dist/ol-map/map.d.ts +14 -14
  176. package/dist/ol-map/map.js +117 -117
  177. package/dist/ol-map/source/index.d.ts +6 -6
  178. package/dist/ol-map/source/index.js +18 -18
  179. package/dist/ol-map/source/mvt.d.ts +11 -11
  180. package/dist/ol-map/source/mvt.js +37 -37
  181. package/dist/ol-map/source/osm.d.ts +2 -2
  182. package/dist/ol-map/source/osm.js +14 -14
  183. package/dist/ol-map/source/vector-source.d.ts +4 -4
  184. package/dist/ol-map/source/vector-source.js +45 -45
  185. package/dist/ol-map/source/wms.d.ts +17 -17
  186. package/dist/ol-map/source/wms.js +30 -30
  187. package/dist/ol-map/source/wmts.d.ts +21 -21
  188. package/dist/ol-map/source/wmts.js +59 -59
  189. package/dist/ol-map/source/xyz.d.ts +12 -12
  190. package/dist/ol-map/source/xyz.js +27 -27
  191. package/dist/ol-map/style.d.ts +4 -4
  192. package/dist/ol-map/style.js +22 -22
  193. package/dist/popover/index.d.ts +1 -1
  194. package/dist/popover/index.js +5 -5
  195. package/dist/popover/popover.d.ts +3 -3
  196. package/dist/popover/popover.js +35 -35
  197. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -7
  198. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -17
  199. package/dist/smart-table/index.d.ts +2 -2
  200. package/dist/smart-table/index.js +14 -14
  201. package/dist/smart-table/smart-table-head.d.ts +11 -11
  202. package/dist/smart-table/smart-table-head.js +22 -22
  203. package/dist/smart-table/smart-table-row.d.ts +12 -12
  204. package/dist/smart-table/smart-table-row.js +46 -46
  205. package/dist/smart-table/smart-table-types.d.ts +9 -9
  206. package/dist/smart-table/smart-table-types.js +2 -2
  207. package/dist/smart-table/smart-table.d.ts +17 -17
  208. package/dist/smart-table/smart-table.js +51 -51
  209. package/dist/theme/index.d.ts +1 -1
  210. package/dist/theme/index.js +13 -13
  211. package/dist/theme/theme.d.ts +8 -8
  212. package/dist/theme/theme.js +124 -124
  213. package/dist/utils/map.d.ts +3 -3
  214. package/dist/utils/map.js +21 -21
  215. package/dist/utils/projections.d.ts +6 -6
  216. package/dist/utils/projections.js +10 -10
  217. package/dist/utils/story.d.ts +12 -12
  218. package/dist/utils/story.js +2 -2
  219. package/package.json +3 -3
  220. package/public/index.html +43 -43
  221. package/public/manifest.json +25 -25
  222. package/public/robots.txt +3 -3
  223. package/src/index.tsx +9 -9
  224. package/src/lib/autocomplete/autocomplete.css +25 -25
  225. package/src/lib/autocomplete/autocomplete.stories.tsx +101 -101
  226. package/src/lib/autocomplete/autocomplete.tsx +681 -681
  227. package/src/lib/autocomplete/index.ts +1 -1
  228. package/src/lib/box/box.tsx +7 -7
  229. package/src/lib/box/index.ts +1 -1
  230. package/src/lib/cesium-map/context-menu.stories.tsx +444 -444
  231. package/src/lib/cesium-map/data-sources/custom.data-source.tsx +12 -12
  232. package/src/lib/cesium-map/data-sources/drawings.data-source.stories.tsx +161 -161
  233. package/src/lib/cesium-map/data-sources/drawings.data-source.tsx +204 -204
  234. package/src/lib/cesium-map/data-sources/index.ts +2 -2
  235. package/src/lib/cesium-map/entities/entity.description.tsx +19 -19
  236. package/src/lib/cesium-map/entities/entity.graphics.stories.tsx +48 -48
  237. package/src/lib/cesium-map/entities/entity.stories.tsx +146 -146
  238. package/src/lib/cesium-map/entities/entity.tsx +10 -10
  239. package/src/lib/cesium-map/entities/graphics/polygon.graphics.tsx +12 -12
  240. package/src/lib/cesium-map/entities/graphics/polyline.graphics.tsx +12 -12
  241. package/src/lib/cesium-map/entities/graphics/rectangle.graphics.tsx +12 -12
  242. package/src/lib/cesium-map/entities/index.ts +4 -4
  243. package/src/lib/cesium-map/index.ts +8 -8
  244. package/src/lib/cesium-map/layers/3d.tileset.stories.tsx +164 -164
  245. package/src/lib/cesium-map/layers/3d.tileset.tsx +51 -51
  246. package/src/lib/cesium-map/layers/3d.tileset.with.update.tsx +120 -120
  247. package/src/lib/cesium-map/layers/geojson.layer.stories.tsx +119 -119
  248. package/src/lib/cesium-map/layers/geojson.layer.tsx +12 -12
  249. package/src/lib/cesium-map/layers/imagery.layer.stories.tsx +39 -39
  250. package/src/lib/cesium-map/layers/imagery.layer.tsx +37 -37
  251. package/src/lib/cesium-map/layers/index.ts +7 -7
  252. package/src/lib/cesium-map/layers/layers.rect.stories.tsx +171 -171
  253. package/src/lib/cesium-map/layers/osm.layer.stories.tsx +40 -40
  254. package/src/lib/cesium-map/layers/osm.layer.tsx +22 -22
  255. package/src/lib/cesium-map/layers/wms.layer.stories.tsx +38 -38
  256. package/src/lib/cesium-map/layers/wms.layer.tsx +22 -22
  257. package/src/lib/cesium-map/layers/wmts.layer.stories.tsx +53 -53
  258. package/src/lib/cesium-map/layers/wmts.layer.tsx +22 -22
  259. package/src/lib/cesium-map/layers/xyz.layer.stories.tsx +37 -37
  260. package/src/lib/cesium-map/layers/xyz.layer.tsx +22 -22
  261. package/src/lib/cesium-map/layers-manager.stories.tsx +286 -286
  262. package/src/lib/cesium-map/layers-manager.ts +354 -354
  263. package/src/lib/cesium-map/map-legend/MapLegend.css +135 -135
  264. package/src/lib/cesium-map/map-legend/MapLegend.tsx +92 -92
  265. package/src/lib/cesium-map/map-legend/MapLegendList.tsx +47 -47
  266. package/src/lib/cesium-map/map-legend/MapLegendSidebar.tsx +55 -55
  267. package/src/lib/cesium-map/map-legend/MapLegendToggle.tsx +31 -31
  268. package/src/lib/cesium-map/map-legend/index.tsx +3 -3
  269. package/src/lib/cesium-map/map-legend/legends-sidebar.stories.tsx +201 -201
  270. package/src/lib/cesium-map/map.css +59 -59
  271. package/src/lib/cesium-map/map.stories.tsx +143 -143
  272. package/src/lib/cesium-map/map.tsx +446 -446
  273. package/src/lib/cesium-map/map.types.ts +11 -11
  274. package/src/lib/cesium-map/proxied.types.ts +54 -54
  275. package/src/lib/cesium-map/settings/base-maps.css +37 -37
  276. package/src/lib/cesium-map/settings/base-maps.tsx +94 -94
  277. package/src/lib/cesium-map/settings/scene-modes.css +19 -19
  278. package/src/lib/cesium-map/settings/scene-modes.tsx +100 -100
  279. package/src/lib/cesium-map/settings/settings.css +52 -52
  280. package/src/lib/cesium-map/settings/settings.stories.tsx +182 -182
  281. package/src/lib/cesium-map/settings/settings.tsx +141 -141
  282. package/src/lib/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.ts +243 -243
  283. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-decoder.ts +321 -321
  284. package/src/lib/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.ts +237 -237
  285. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +170 -170
  286. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +187 -187
  287. package/src/lib/cesium-map/tools/cesium/primitives-conversions.cesium.ts +15 -15
  288. package/src/lib/cesium-map/tools/coordinates-tracker.tool.css +11 -11
  289. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +79 -79
  290. package/src/lib/cesium-map/tools/draw/drawHelper.css +101 -101
  291. package/src/lib/cesium-map/tools/draw/drawHelper.ts +2116 -2116
  292. package/src/lib/cesium-map/tools/geojson/geojson-to-primitive.ts +54 -54
  293. package/src/lib/cesium-map/tools/geojson/index.ts +2 -2
  294. package/src/lib/cesium-map/tools/geojson/point.geojson.ts +29 -29
  295. package/src/lib/cesium-map/tools/geojson/polygon.geojson.ts +24 -24
  296. package/src/lib/cesium-map/tools/geojson/rectangle.geojson.ts +21 -21
  297. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -15
  298. package/src/lib/cesium-map/tools/scale-tracker.tool.css +16 -16
  299. package/src/lib/cesium-map/tools/scale-tracker.tool.tsx +192 -192
  300. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +171 -171
  301. package/src/lib/cssbaseline/cssbaseline.tsx +19 -19
  302. package/src/lib/cssbaseline/index.ts +4 -4
  303. package/src/lib/date-picker/date-picker.css +9 -9
  304. package/src/lib/date-picker/date-picker.stories.tsx +130 -130
  305. package/src/lib/date-picker/date-picker.tsx +90 -90
  306. package/src/lib/date-picker/index.ts +1 -1
  307. package/src/lib/date-range-picker/date-range-picker.css +9 -9
  308. package/src/lib/date-range-picker/date-range-picker.form-control.css +3 -3
  309. package/src/lib/date-range-picker/date-range-picker.form-control.spec.tsx +58 -58
  310. package/src/lib/date-range-picker/date-range-picker.form-control.tsx +150 -150
  311. package/src/lib/date-range-picker/date-range-picker.stories.tsx +207 -207
  312. package/src/lib/date-range-picker/date-range-picker.tsx +156 -156
  313. package/src/lib/date-range-picker/index.ts +2 -2
  314. package/src/lib/file-picker/file-picker.css +63 -63
  315. package/src/lib/file-picker/file-picker.stories.tsx +447 -447
  316. package/src/lib/file-picker/file-picker.tsx +180 -180
  317. package/src/lib/file-picker/fs-map.json +1556 -1556
  318. package/src/lib/file-picker/index.ts +2 -2
  319. package/src/lib/file-picker/localization.ts +164 -164
  320. package/src/lib/index.ts +13 -13
  321. package/src/lib/map-filter-container/container-map.css +5 -5
  322. package/src/lib/map-filter-container/container-map.tsx +48 -48
  323. package/src/lib/map-filter-container/index.ts +1 -1
  324. package/src/lib/map-filter-container/map-filter-container.tsx +91 -91
  325. package/src/lib/map-filter-container/polygon-selection-ui.spec.tsx +119 -119
  326. package/src/lib/map-filter-container/polygon-selection-ui.tsx +111 -111
  327. package/src/lib/map-filter-container/stories/Map.stories.tsx +76 -76
  328. package/src/lib/models/defaults.ts +32 -32
  329. package/src/lib/models/enums.ts +16 -16
  330. package/src/lib/models/index.ts +1 -1
  331. package/src/lib/ol-map/feature.tsx +23 -23
  332. package/src/lib/ol-map/index.ts +6 -6
  333. package/src/lib/ol-map/interactions/draw.tsx +56 -56
  334. package/src/lib/ol-map/interactions/index.ts +1 -1
  335. package/src/lib/ol-map/layers/index.ts +3 -3
  336. package/src/lib/ol-map/layers/tile-layer.tsx +36 -36
  337. package/src/lib/ol-map/layers/vector-layer.tsx +32 -32
  338. package/src/lib/ol-map/layers/vector-tile-layer.tsx +56 -56
  339. package/src/lib/ol-map/map.css +17 -17
  340. package/src/lib/ol-map/map.tsx +137 -137
  341. package/src/lib/ol-map/source/index.ts +6 -6
  342. package/src/lib/ol-map/source/mvt.tsx +46 -46
  343. package/src/lib/ol-map/source/osm.tsx +13 -13
  344. package/src/lib/ol-map/source/stories/mvt.stories.tsx +68 -68
  345. package/src/lib/ol-map/source/stories/vector-source.stories.tsx +78 -78
  346. package/src/lib/ol-map/source/stories/wms.stories.tsx +51 -51
  347. package/src/lib/ol-map/source/stories/wmts.stories.tsx +72 -72
  348. package/src/lib/ol-map/source/stories/xyz.stories.tsx +53 -53
  349. package/src/lib/ol-map/source/vector-source.tsx +30 -30
  350. package/src/lib/ol-map/source/wms.tsx +40 -40
  351. package/src/lib/ol-map/source/wmts.tsx +82 -82
  352. package/src/lib/ol-map/source/xyz.tsx +33 -33
  353. package/src/lib/ol-map/stories/map.stories.tsx +60 -60
  354. package/src/lib/ol-map/style.ts +24 -24
  355. package/src/lib/popover/index.ts +1 -1
  356. package/src/lib/popover/popover.tsx +7 -7
  357. package/src/lib/smart-table/__mock-data__/smartTableMocks.ts +22 -22
  358. package/src/lib/smart-table/index.ts +2 -2
  359. package/src/lib/smart-table/smart-table-head.spec.tsx +116 -116
  360. package/src/lib/smart-table/smart-table-head.tsx +47 -47
  361. package/src/lib/smart-table/smart-table-row.spec.tsx +109 -109
  362. package/src/lib/smart-table/smart-table-row.tsx +78 -78
  363. package/src/lib/smart-table/smart-table-types.ts +10 -10
  364. package/src/lib/smart-table/smart-table.spec.tsx +116 -116
  365. package/src/lib/smart-table/smart-table.tsx +115 -115
  366. package/src/lib/smart-table/stories/SmartTable.stories.tsx +114 -114
  367. package/src/lib/theme/index.ts +1 -1
  368. package/src/lib/theme/theme.ts +123 -123
  369. package/src/lib/utils/map.ts +19 -19
  370. package/src/lib/utils/projections.ts +7 -7
  371. package/src/lib/utils/story.ts +11 -11
  372. package/src/react-app-env.d.ts +1 -1
  373. package/src/setupTests.ts +14 -14
  374. package/tsbuildconfig.json +37 -37
  375. package/tsconfig.json +26 -26
@@ -1,321 +1,321 @@
1
- /* eslint-disable @typescript-eslint/no-magic-numbers */
2
- import {
3
- IDecodedTile,
4
- IDecodedTileHeader,
5
- IExtensions,
6
- } from './quantized-mesh-terrain-provider';
7
-
8
- const LITTLE_ENDIAN = true;
9
- const MAX_VERTEX_COUNT = 65536;
10
-
11
- export const DECODING_STEPS = {
12
- header: 0,
13
- vertices: 1,
14
- triangleIndices: 2,
15
- edgeIndices: 3,
16
- extensions: 4,
17
- };
18
-
19
- const QUANTIZED_MESH_HEADER = {
20
- centerX: Float64Array.BYTES_PER_ELEMENT,
21
- centerY: Float64Array.BYTES_PER_ELEMENT,
22
- centerZ: Float64Array.BYTES_PER_ELEMENT,
23
-
24
- minHeight: Float32Array.BYTES_PER_ELEMENT,
25
- maxHeight: Float32Array.BYTES_PER_ELEMENT,
26
-
27
- boundingSphereCenterX: Float64Array.BYTES_PER_ELEMENT,
28
- boundingSphereCenterY: Float64Array.BYTES_PER_ELEMENT,
29
- boundingSphereCenterZ: Float64Array.BYTES_PER_ELEMENT,
30
- boundingSphereRadius: Float64Array.BYTES_PER_ELEMENT,
31
-
32
- horizonOcclusionPointX: Float64Array.BYTES_PER_ELEMENT,
33
- horizonOcclusionPointY: Float64Array.BYTES_PER_ELEMENT,
34
- horizonOcclusionPointZ: Float64Array.BYTES_PER_ELEMENT,
35
- };
36
-
37
- const decodeZigZag = (value: number): number => {
38
- return (value >> 1) ^ -(value & 1);
39
- };
40
-
41
- const decodeIndex = (
42
- buffer: ArrayBufferLike,
43
- position: number,
44
- indicesCount: number,
45
- bytesPerIndex: number,
46
- encoded: boolean
47
- ): Uint16Array | Uint32Array => {
48
- let indices;
49
-
50
- if (bytesPerIndex === 2) {
51
- indices = new Uint16Array(buffer, position, indicesCount);
52
- } else {
53
- indices = new Uint32Array(buffer, position, indicesCount);
54
- }
55
-
56
- if (!encoded) {
57
- return indices;
58
- }
59
-
60
- let highest = 0;
61
-
62
- for (let i = 0; i < indices.length; ++i) {
63
- const code = indices[i];
64
-
65
- indices[i] = highest - code;
66
-
67
- if (code === 0) {
68
- ++highest;
69
- }
70
- }
71
-
72
- return indices;
73
- };
74
-
75
- const convertFromTypedArrayToNumbersArray = (
76
- array: Uint16Array | Uint32Array
77
- ): number[] => {
78
- const numbersArray: number[] = [];
79
- for (let i = 0; i < array.length; ++i) {
80
- numbersArray.push(array[i]);
81
- }
82
- return numbersArray;
83
- };
84
-
85
- export const decode = (data: ArrayBufferLike): IDecodedTile => {
86
- const maxDecodingStep = DECODING_STEPS.extensions;
87
- const view = new DataView(data);
88
- const header = {} as IDecodedTileHeader;
89
- let position = 0;
90
-
91
- // Decode Header
92
-
93
- Object.keys(QUANTIZED_MESH_HEADER).forEach(
94
- (key: string, bytesCount: number) => {
95
- // @ts-ignore
96
- // eslint-disable-next-line
97
- header[key] =
98
- bytesCount === 8
99
- ? view.getFloat64(position, LITTLE_ENDIAN)
100
- : view.getFloat32(position, LITTLE_ENDIAN);
101
- position += bytesCount;
102
- }
103
- );
104
-
105
- const headerEndPosition = position;
106
-
107
- // if (maxDecodingStep < DECODING_STEPS.vertices) {
108
- // return { header };
109
- // }
110
-
111
- // Decode Vertex Data
112
-
113
- position = headerEndPosition;
114
-
115
- let vertexCount = view.getUint32(position, LITTLE_ENDIAN);
116
-
117
- const vertexData = new Uint16Array(vertexCount * 3);
118
-
119
- position += Uint32Array.BYTES_PER_ELEMENT;
120
-
121
- const bytesPerArrayElement = Uint16Array.BYTES_PER_ELEMENT;
122
- const elementArrayLength = vertexCount * bytesPerArrayElement;
123
- const uArrayStartPosition = position;
124
- const vArrayStartPosition = uArrayStartPosition + elementArrayLength;
125
- const heightArrayStartPosition = vArrayStartPosition + elementArrayLength;
126
-
127
- let u = 0;
128
- let v = 0;
129
- let height = 0;
130
-
131
- for (let i = 0; i < vertexCount; i++) {
132
- u += decodeZigZag(
133
- view.getUint16(
134
- uArrayStartPosition + bytesPerArrayElement * i,
135
- LITTLE_ENDIAN
136
- )
137
- );
138
- v += decodeZigZag(
139
- view.getUint16(
140
- vArrayStartPosition + bytesPerArrayElement * i,
141
- LITTLE_ENDIAN
142
- )
143
- );
144
- height += decodeZigZag(
145
- view.getUint16(
146
- heightArrayStartPosition + bytesPerArrayElement * i,
147
- LITTLE_ENDIAN
148
- )
149
- );
150
-
151
- vertexData[i] = u;
152
- vertexData[i + vertexCount] = v;
153
- vertexData[i + vertexCount * 2] = height;
154
- }
155
-
156
- position += elementArrayLength * 3;
157
-
158
- const vertexDataEndPosition = position;
159
-
160
- // if (maxDecodingStep < DECODING_STEPS.triangleIndices) {
161
- // return { header, vertexData };
162
- // }
163
-
164
- // Decode Triangle Indices
165
-
166
- position = vertexDataEndPosition;
167
-
168
- vertexCount = vertexData.length / 3;
169
-
170
- const bytesPerIndex =
171
- vertexCount > MAX_VERTEX_COUNT
172
- ? Uint32Array.BYTES_PER_ELEMENT
173
- : Uint16Array.BYTES_PER_ELEMENT;
174
-
175
- if (position % bytesPerIndex !== 0) {
176
- position += bytesPerIndex - (position % bytesPerIndex);
177
- }
178
-
179
- const triangleCount = view.getUint32(position, LITTLE_ENDIAN);
180
- position += Uint32Array.BYTES_PER_ELEMENT;
181
-
182
- const triangleIndicesCount = triangleCount * 3;
183
- const triangleIndices = decodeIndex(
184
- view.buffer,
185
- position,
186
- triangleIndicesCount,
187
- bytesPerIndex,
188
- true
189
- );
190
- position += triangleIndicesCount * bytesPerIndex;
191
-
192
- const triangleIndicesEndPosition = position;
193
-
194
- // if (maxDecodingStep < DECODING_STEPS.edgeIndices) {
195
- // return { header, vertexData, triangleIndices };
196
- // }
197
-
198
- // Decode Edge Indices
199
-
200
- position = triangleIndicesEndPosition;
201
-
202
- vertexCount = vertexData.length / 3;
203
-
204
- // bytesPerIndex = vertexCount > MAX_VERTEX_COUNT
205
- // ? Uint32Array.BYTES_PER_ELEMENT
206
- // : Uint16Array.BYTES_PER_ELEMENT;
207
-
208
- const westVertexCount = view.getUint32(position, LITTLE_ENDIAN);
209
- position += Uint32Array.BYTES_PER_ELEMENT;
210
-
211
- const westIndices = convertFromTypedArrayToNumbersArray(
212
- decodeIndex(view.buffer, position, westVertexCount, bytesPerIndex, false)
213
- );
214
- position += westVertexCount * bytesPerIndex;
215
-
216
- const southVertexCount = view.getUint32(position, LITTLE_ENDIAN);
217
- position += Uint32Array.BYTES_PER_ELEMENT;
218
-
219
- const southIndices = convertFromTypedArrayToNumbersArray(
220
- decodeIndex(view.buffer, position, southVertexCount, bytesPerIndex, false)
221
- );
222
- position += southVertexCount * bytesPerIndex;
223
-
224
- const eastVertexCount = view.getUint32(position, LITTLE_ENDIAN);
225
- position += Uint32Array.BYTES_PER_ELEMENT;
226
-
227
- const eastIndices = convertFromTypedArrayToNumbersArray(
228
- decodeIndex(view.buffer, position, eastVertexCount, bytesPerIndex, false)
229
- );
230
- position += eastVertexCount * bytesPerIndex;
231
-
232
- const northVertexCount = view.getUint32(position, LITTLE_ENDIAN);
233
- position += Uint32Array.BYTES_PER_ELEMENT;
234
-
235
- const northIndices = convertFromTypedArrayToNumbersArray(
236
- decodeIndex(view.buffer, position, northVertexCount, bytesPerIndex, false)
237
- );
238
- position += northVertexCount * bytesPerIndex;
239
-
240
- const edgeIndicesEndPosition = position;
241
-
242
- if (maxDecodingStep < DECODING_STEPS.extensions) {
243
- return {
244
- header,
245
- vertexData,
246
- triangleIndices,
247
- westIndices,
248
- northIndices,
249
- eastIndices,
250
- southIndices,
251
- };
252
- }
253
-
254
- // Decode Extensions
255
-
256
- const extensions = {} as IExtensions;
257
-
258
- if (view.byteLength > edgeIndicesEndPosition) {
259
- position = edgeIndicesEndPosition;
260
-
261
- while (position < view.byteLength) {
262
- const extensionId = view.getUint8(position);
263
- position += Uint8Array.BYTES_PER_ELEMENT;
264
-
265
- const extensionLength = view.getUint32(position, true);
266
- position += Uint32Array.BYTES_PER_ELEMENT;
267
-
268
- const extensionView = new DataView(
269
- view.buffer,
270
- position,
271
- extensionLength
272
- );
273
-
274
- switch (extensionId) {
275
- case 1: {
276
- extensions.vertexNormals = new Uint8Array(
277
- extensionView.buffer,
278
- extensionView.byteOffset,
279
- extensionView.byteLength
280
- );
281
- break;
282
- }
283
- case 2: {
284
- extensions.waterMask = extensionView.buffer.slice(
285
- extensionView.byteOffset,
286
- extensionView.byteOffset + extensionView.byteLength
287
- );
288
- break;
289
- }
290
- case 4: {
291
- const jsonLength = extensionView.getUint32(0, LITTLE_ENDIAN);
292
- let jsonString = '';
293
- for (let i = 0; i < jsonLength; ++i) {
294
- jsonString += String.fromCharCode(
295
- extensionView.getUint8(Uint32Array.BYTES_PER_ELEMENT + i)
296
- );
297
- }
298
- // eslint-disable-next-line
299
- extensions.metadata = JSON.parse(jsonString);
300
- break;
301
- }
302
- default: {
303
- console.warn(`Unknown extension with id ${extensionId}`);
304
- }
305
- }
306
-
307
- position += extensionLength;
308
- }
309
- }
310
-
311
- return {
312
- header,
313
- vertexData,
314
- triangleIndices,
315
- westIndices,
316
- northIndices,
317
- eastIndices,
318
- southIndices,
319
- extensions,
320
- };
321
- };
1
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
2
+ import {
3
+ IDecodedTile,
4
+ IDecodedTileHeader,
5
+ IExtensions,
6
+ } from './quantized-mesh-terrain-provider';
7
+
8
+ const LITTLE_ENDIAN = true;
9
+ const MAX_VERTEX_COUNT = 65536;
10
+
11
+ export const DECODING_STEPS = {
12
+ header: 0,
13
+ vertices: 1,
14
+ triangleIndices: 2,
15
+ edgeIndices: 3,
16
+ extensions: 4,
17
+ };
18
+
19
+ const QUANTIZED_MESH_HEADER = {
20
+ centerX: Float64Array.BYTES_PER_ELEMENT,
21
+ centerY: Float64Array.BYTES_PER_ELEMENT,
22
+ centerZ: Float64Array.BYTES_PER_ELEMENT,
23
+
24
+ minHeight: Float32Array.BYTES_PER_ELEMENT,
25
+ maxHeight: Float32Array.BYTES_PER_ELEMENT,
26
+
27
+ boundingSphereCenterX: Float64Array.BYTES_PER_ELEMENT,
28
+ boundingSphereCenterY: Float64Array.BYTES_PER_ELEMENT,
29
+ boundingSphereCenterZ: Float64Array.BYTES_PER_ELEMENT,
30
+ boundingSphereRadius: Float64Array.BYTES_PER_ELEMENT,
31
+
32
+ horizonOcclusionPointX: Float64Array.BYTES_PER_ELEMENT,
33
+ horizonOcclusionPointY: Float64Array.BYTES_PER_ELEMENT,
34
+ horizonOcclusionPointZ: Float64Array.BYTES_PER_ELEMENT,
35
+ };
36
+
37
+ const decodeZigZag = (value: number): number => {
38
+ return (value >> 1) ^ -(value & 1);
39
+ };
40
+
41
+ const decodeIndex = (
42
+ buffer: ArrayBufferLike,
43
+ position: number,
44
+ indicesCount: number,
45
+ bytesPerIndex: number,
46
+ encoded: boolean
47
+ ): Uint16Array | Uint32Array => {
48
+ let indices;
49
+
50
+ if (bytesPerIndex === 2) {
51
+ indices = new Uint16Array(buffer, position, indicesCount);
52
+ } else {
53
+ indices = new Uint32Array(buffer, position, indicesCount);
54
+ }
55
+
56
+ if (!encoded) {
57
+ return indices;
58
+ }
59
+
60
+ let highest = 0;
61
+
62
+ for (let i = 0; i < indices.length; ++i) {
63
+ const code = indices[i];
64
+
65
+ indices[i] = highest - code;
66
+
67
+ if (code === 0) {
68
+ ++highest;
69
+ }
70
+ }
71
+
72
+ return indices;
73
+ };
74
+
75
+ const convertFromTypedArrayToNumbersArray = (
76
+ array: Uint16Array | Uint32Array
77
+ ): number[] => {
78
+ const numbersArray: number[] = [];
79
+ for (let i = 0; i < array.length; ++i) {
80
+ numbersArray.push(array[i]);
81
+ }
82
+ return numbersArray;
83
+ };
84
+
85
+ export const decode = (data: ArrayBufferLike): IDecodedTile => {
86
+ const maxDecodingStep = DECODING_STEPS.extensions;
87
+ const view = new DataView(data);
88
+ const header = {} as IDecodedTileHeader;
89
+ let position = 0;
90
+
91
+ // Decode Header
92
+
93
+ Object.keys(QUANTIZED_MESH_HEADER).forEach(
94
+ (key: string, bytesCount: number) => {
95
+ // @ts-ignore
96
+ // eslint-disable-next-line
97
+ header[key] =
98
+ bytesCount === 8
99
+ ? view.getFloat64(position, LITTLE_ENDIAN)
100
+ : view.getFloat32(position, LITTLE_ENDIAN);
101
+ position += bytesCount;
102
+ }
103
+ );
104
+
105
+ const headerEndPosition = position;
106
+
107
+ // if (maxDecodingStep < DECODING_STEPS.vertices) {
108
+ // return { header };
109
+ // }
110
+
111
+ // Decode Vertex Data
112
+
113
+ position = headerEndPosition;
114
+
115
+ let vertexCount = view.getUint32(position, LITTLE_ENDIAN);
116
+
117
+ const vertexData = new Uint16Array(vertexCount * 3);
118
+
119
+ position += Uint32Array.BYTES_PER_ELEMENT;
120
+
121
+ const bytesPerArrayElement = Uint16Array.BYTES_PER_ELEMENT;
122
+ const elementArrayLength = vertexCount * bytesPerArrayElement;
123
+ const uArrayStartPosition = position;
124
+ const vArrayStartPosition = uArrayStartPosition + elementArrayLength;
125
+ const heightArrayStartPosition = vArrayStartPosition + elementArrayLength;
126
+
127
+ let u = 0;
128
+ let v = 0;
129
+ let height = 0;
130
+
131
+ for (let i = 0; i < vertexCount; i++) {
132
+ u += decodeZigZag(
133
+ view.getUint16(
134
+ uArrayStartPosition + bytesPerArrayElement * i,
135
+ LITTLE_ENDIAN
136
+ )
137
+ );
138
+ v += decodeZigZag(
139
+ view.getUint16(
140
+ vArrayStartPosition + bytesPerArrayElement * i,
141
+ LITTLE_ENDIAN
142
+ )
143
+ );
144
+ height += decodeZigZag(
145
+ view.getUint16(
146
+ heightArrayStartPosition + bytesPerArrayElement * i,
147
+ LITTLE_ENDIAN
148
+ )
149
+ );
150
+
151
+ vertexData[i] = u;
152
+ vertexData[i + vertexCount] = v;
153
+ vertexData[i + vertexCount * 2] = height;
154
+ }
155
+
156
+ position += elementArrayLength * 3;
157
+
158
+ const vertexDataEndPosition = position;
159
+
160
+ // if (maxDecodingStep < DECODING_STEPS.triangleIndices) {
161
+ // return { header, vertexData };
162
+ // }
163
+
164
+ // Decode Triangle Indices
165
+
166
+ position = vertexDataEndPosition;
167
+
168
+ vertexCount = vertexData.length / 3;
169
+
170
+ const bytesPerIndex =
171
+ vertexCount > MAX_VERTEX_COUNT
172
+ ? Uint32Array.BYTES_PER_ELEMENT
173
+ : Uint16Array.BYTES_PER_ELEMENT;
174
+
175
+ if (position % bytesPerIndex !== 0) {
176
+ position += bytesPerIndex - (position % bytesPerIndex);
177
+ }
178
+
179
+ const triangleCount = view.getUint32(position, LITTLE_ENDIAN);
180
+ position += Uint32Array.BYTES_PER_ELEMENT;
181
+
182
+ const triangleIndicesCount = triangleCount * 3;
183
+ const triangleIndices = decodeIndex(
184
+ view.buffer,
185
+ position,
186
+ triangleIndicesCount,
187
+ bytesPerIndex,
188
+ true
189
+ );
190
+ position += triangleIndicesCount * bytesPerIndex;
191
+
192
+ const triangleIndicesEndPosition = position;
193
+
194
+ // if (maxDecodingStep < DECODING_STEPS.edgeIndices) {
195
+ // return { header, vertexData, triangleIndices };
196
+ // }
197
+
198
+ // Decode Edge Indices
199
+
200
+ position = triangleIndicesEndPosition;
201
+
202
+ vertexCount = vertexData.length / 3;
203
+
204
+ // bytesPerIndex = vertexCount > MAX_VERTEX_COUNT
205
+ // ? Uint32Array.BYTES_PER_ELEMENT
206
+ // : Uint16Array.BYTES_PER_ELEMENT;
207
+
208
+ const westVertexCount = view.getUint32(position, LITTLE_ENDIAN);
209
+ position += Uint32Array.BYTES_PER_ELEMENT;
210
+
211
+ const westIndices = convertFromTypedArrayToNumbersArray(
212
+ decodeIndex(view.buffer, position, westVertexCount, bytesPerIndex, false)
213
+ );
214
+ position += westVertexCount * bytesPerIndex;
215
+
216
+ const southVertexCount = view.getUint32(position, LITTLE_ENDIAN);
217
+ position += Uint32Array.BYTES_PER_ELEMENT;
218
+
219
+ const southIndices = convertFromTypedArrayToNumbersArray(
220
+ decodeIndex(view.buffer, position, southVertexCount, bytesPerIndex, false)
221
+ );
222
+ position += southVertexCount * bytesPerIndex;
223
+
224
+ const eastVertexCount = view.getUint32(position, LITTLE_ENDIAN);
225
+ position += Uint32Array.BYTES_PER_ELEMENT;
226
+
227
+ const eastIndices = convertFromTypedArrayToNumbersArray(
228
+ decodeIndex(view.buffer, position, eastVertexCount, bytesPerIndex, false)
229
+ );
230
+ position += eastVertexCount * bytesPerIndex;
231
+
232
+ const northVertexCount = view.getUint32(position, LITTLE_ENDIAN);
233
+ position += Uint32Array.BYTES_PER_ELEMENT;
234
+
235
+ const northIndices = convertFromTypedArrayToNumbersArray(
236
+ decodeIndex(view.buffer, position, northVertexCount, bytesPerIndex, false)
237
+ );
238
+ position += northVertexCount * bytesPerIndex;
239
+
240
+ const edgeIndicesEndPosition = position;
241
+
242
+ if (maxDecodingStep < DECODING_STEPS.extensions) {
243
+ return {
244
+ header,
245
+ vertexData,
246
+ triangleIndices,
247
+ westIndices,
248
+ northIndices,
249
+ eastIndices,
250
+ southIndices,
251
+ };
252
+ }
253
+
254
+ // Decode Extensions
255
+
256
+ const extensions = {} as IExtensions;
257
+
258
+ if (view.byteLength > edgeIndicesEndPosition) {
259
+ position = edgeIndicesEndPosition;
260
+
261
+ while (position < view.byteLength) {
262
+ const extensionId = view.getUint8(position);
263
+ position += Uint8Array.BYTES_PER_ELEMENT;
264
+
265
+ const extensionLength = view.getUint32(position, true);
266
+ position += Uint32Array.BYTES_PER_ELEMENT;
267
+
268
+ const extensionView = new DataView(
269
+ view.buffer,
270
+ position,
271
+ extensionLength
272
+ );
273
+
274
+ switch (extensionId) {
275
+ case 1: {
276
+ extensions.vertexNormals = new Uint8Array(
277
+ extensionView.buffer,
278
+ extensionView.byteOffset,
279
+ extensionView.byteLength
280
+ );
281
+ break;
282
+ }
283
+ case 2: {
284
+ extensions.waterMask = extensionView.buffer.slice(
285
+ extensionView.byteOffset,
286
+ extensionView.byteOffset + extensionView.byteLength
287
+ );
288
+ break;
289
+ }
290
+ case 4: {
291
+ const jsonLength = extensionView.getUint32(0, LITTLE_ENDIAN);
292
+ let jsonString = '';
293
+ for (let i = 0; i < jsonLength; ++i) {
294
+ jsonString += String.fromCharCode(
295
+ extensionView.getUint8(Uint32Array.BYTES_PER_ELEMENT + i)
296
+ );
297
+ }
298
+ // eslint-disable-next-line
299
+ extensions.metadata = JSON.parse(jsonString);
300
+ break;
301
+ }
302
+ default: {
303
+ console.warn(`Unknown extension with id ${extensionId}`);
304
+ }
305
+ }
306
+
307
+ position += extensionLength;
308
+ }
309
+ }
310
+
311
+ return {
312
+ header,
313
+ vertexData,
314
+ triangleIndices,
315
+ westIndices,
316
+ northIndices,
317
+ eastIndices,
318
+ southIndices,
319
+ extensions,
320
+ };
321
+ };