@mapcomponents/react-maplibre 0.1.69 → 0.1.71

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 (523) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +3 -2
  3. package/dist/components/MlComponentTemplate/MlComponentTemplate.d.ts +1 -6
  4. package/dist/components/MlCreatePdfButton/MlCreatePdfButton.d.ts +3 -3
  5. package/dist/components/MlCreatePdfForm/MlCreatePdfForm.d.ts +7 -2
  6. package/dist/components/MlCreatePngButton/MlCreatePngButton.d.ts +22 -0
  7. package/dist/components/MlCreatePngButton/MlCreatePngButton.stories.d.ts +14 -0
  8. package/dist/components/MlGpxViewer/util/{MetadataDrawer.d.ts → Metadata.d.ts} +1 -2
  9. package/dist/components/MlGpxViewer/util/MlGpxDemoLoader.d.ts +1 -1
  10. package/dist/hooks/useExportMap/lib.d.ts +16 -1
  11. package/dist/index.d.ts +2 -0
  12. package/dist/index.esm.js +292 -287
  13. package/dist/index.esm.js.map +1 -1
  14. package/dist/ui_components/Sidebar.d.ts +5 -3
  15. package/dist/ui_components/TopToolbar.d.ts +8 -7
  16. package/package.json +1 -2
  17. package/.babelrc +0 -22
  18. package/.editorconfig +0 -19
  19. package/.eslintignore +0 -12
  20. package/.eslintrc.js +0 -30
  21. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -41
  22. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  23. package/.github/workflows/check-catalogue-metadata-schema.yml +0 -19
  24. package/.github/workflows/check-formatting.yml +0 -46
  25. package/.github/workflows/node_version_test.yml +0 -26
  26. package/.github/workflows/publish.yml +0 -21
  27. package/.github/workflows/storybook.yml +0 -28
  28. package/.prettierignore +0 -11
  29. package/.prettierrc.json +0 -6
  30. package/.storybook/.babelrc +0 -26
  31. package/.storybook/main.js +0 -40
  32. package/.storybook/manager.js +0 -6
  33. package/.storybook/mapcomponents_logo.png +0 -0
  34. package/.storybook/preview.js +0 -33
  35. package/.storybook/style.css +0 -15
  36. package/.storybook/wheregroupTheme.js +0 -9
  37. package/config/env.js +0 -106
  38. package/config/jest/babelTransform.js +0 -29
  39. package/config/jest/cssTransform.js +0 -14
  40. package/config/jest/fileTransform.js +0 -40
  41. package/config/paths.js +0 -75
  42. package/coverage/clover.xml +0 -2018
  43. package/coverage/coverage-final.json +0 -60
  44. package/coverage/lcov-report/base.css +0 -224
  45. package/coverage/lcov-report/block-navigation.js +0 -87
  46. package/coverage/lcov-report/favicon.png +0 -0
  47. package/coverage/lcov-report/index.html +0 -731
  48. package/coverage/lcov-report/prettify.css +0 -1
  49. package/coverage/lcov-report/prettify.js +0 -2
  50. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  51. package/coverage/lcov-report/sorter.js +0 -196
  52. package/coverage/lcov-report/src/components/MapLibreMap/MapLibreMap.tsx.html +0 -466
  53. package/coverage/lcov-report/src/components/MapLibreMap/index.html +0 -116
  54. package/coverage/lcov-report/src/components/MlCenterPosition/MlCenterPosition.tsx.html +0 -322
  55. package/coverage/lcov-report/src/components/MlCenterPosition/index.html +0 -116
  56. package/coverage/lcov-report/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx.html +0 -238
  57. package/coverage/lcov-report/src/components/MlCreatePdfButton/index.html +0 -116
  58. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx.html +0 -148
  59. package/coverage/lcov-report/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx.html +0 -196
  60. package/coverage/lcov-report/src/components/MlCreatePdfForm/index.html +0 -131
  61. package/coverage/lcov-report/src/components/MlFeatureEditor/MlFeatureEditor.tsx.html +0 -535
  62. package/coverage/lcov-report/src/components/MlFeatureEditor/index.html +0 -116
  63. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx.html +0 -340
  64. package/coverage/lcov-report/src/components/MlFillExtrusionLayer/index.html +0 -116
  65. package/coverage/lcov-report/src/components/MlFollowGps/MlFollowGps.tsx.html +0 -808
  66. package/coverage/lcov-report/src/components/MlFollowGps/index.html +0 -116
  67. package/coverage/lcov-report/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx.html +0 -469
  68. package/coverage/lcov-report/src/components/MlGeoJsonLayer/index.html +0 -116
  69. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js.html +0 -652
  70. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js.html +0 -649
  71. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx.html +0 -112
  72. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx.html +0 -115
  73. package/coverage/lcov-report/src/components/MlGeoJsonLayer/story_utils/index.html +0 -161
  74. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx.html +0 -469
  75. package/coverage/lcov-report/src/components/MlGeojsonLayerWithSource/index.html +0 -116
  76. package/coverage/lcov-report/src/components/MlGpxViewer/MlGpxViewer.tsx.html +0 -394
  77. package/coverage/lcov-report/src/components/MlGpxViewer/index.html +0 -116
  78. package/coverage/lcov-report/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx.html +0 -385
  79. package/coverage/lcov-report/src/components/MlImageMarkerLayer/index.html +0 -116
  80. package/coverage/lcov-report/src/components/MlLayer/MlLayer.tsx.html +0 -247
  81. package/coverage/lcov-report/src/components/MlLayer/index.html +0 -116
  82. package/coverage/lcov-report/src/components/MlLayerMagnify/MlLayerMagnify.tsx.html +0 -745
  83. package/coverage/lcov-report/src/components/MlLayerMagnify/index.html +0 -116
  84. package/coverage/lcov-report/src/components/MlLayerSwipe/MlLayerSwipe.tsx.html +0 -520
  85. package/coverage/lcov-report/src/components/MlLayerSwipe/index.html +0 -116
  86. package/coverage/lcov-report/src/components/MlLayerSwitcher/MlLayerSwitcher.js.html +0 -736
  87. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/LayerBox.js.html +0 -316
  88. package/coverage/lcov-report/src/components/MlLayerSwitcher/components/index.html +0 -116
  89. package/coverage/lcov-report/src/components/MlLayerSwitcher/index.html +0 -116
  90. package/coverage/lcov-report/src/components/MlMarker/MlMarker.tsx.html +0 -505
  91. package/coverage/lcov-report/src/components/MlMarker/index.html +0 -116
  92. package/coverage/lcov-report/src/components/MlMeasureTool/MlMeasureTool.tsx.html +0 -265
  93. package/coverage/lcov-report/src/components/MlMeasureTool/index.html +0 -116
  94. package/coverage/lcov-report/src/components/MlNavigationCompass/MlNavigationCompass.tsx.html +0 -763
  95. package/coverage/lcov-report/src/components/MlNavigationCompass/index.html +0 -116
  96. package/coverage/lcov-report/src/components/MlNavigationTools/MlNavigationTools.tsx.html +0 -613
  97. package/coverage/lcov-report/src/components/MlNavigationTools/index.html +0 -116
  98. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.js.html +0 -298
  99. package/coverage/lcov-report/src/components/MlOsmLayer/MlOsmLayer.stories_.js.html +0 -232
  100. package/coverage/lcov-report/src/components/MlOsmLayer/index.html +0 -131
  101. package/coverage/lcov-report/src/components/MlScaleReference/MlScaleReference.tsx.html +0 -412
  102. package/coverage/lcov-report/src/components/MlScaleReference/index.html +0 -116
  103. package/coverage/lcov-report/src/components/MlShareMapState/MlShareMapState.tsx.html +0 -892
  104. package/coverage/lcov-report/src/components/MlShareMapState/index.html +0 -116
  105. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/ColorPicker.tsx.html +0 -214
  106. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerList.tsx.html +0 -121
  107. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerListItem.tsx.html +0 -412
  108. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx.html +0 -463
  109. package/coverage/lcov-report/src/components/MlSketchTool/LayerList/index.html +0 -161
  110. package/coverage/lcov-report/src/components/MlSketchTool/MlSketchTool.tsx.html +0 -898
  111. package/coverage/lcov-report/src/components/MlSketchTool/index.html +0 -116
  112. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx.html +0 -514
  113. package/coverage/lcov-report/src/components/MlSpatialElevationProfile/index.html +0 -116
  114. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreeJsLayer.js.html +0 -703
  115. package/coverage/lcov-report/src/components/MlThreeJsLayer/MlThreejsLayer.tsx.html +0 -769
  116. package/coverage/lcov-report/src/components/MlThreeJsLayer/index.html +0 -131
  117. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx.html +0 -406
  118. package/coverage/lcov-report/src/components/MlTransitionGeoJsonLayer/index.html +0 -116
  119. package/coverage/lcov-report/src/components/MlUseMapDebugger/MlUseMapDebugger.js.html +0 -310
  120. package/coverage/lcov-report/src/components/MlUseMapDebugger/index.html +0 -116
  121. package/coverage/lcov-report/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx.html +0 -517
  122. package/coverage/lcov-report/src/components/MlVectorTileLayer/index.html +0 -116
  123. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js.html +0 -277
  124. package/coverage/lcov-report/src/components/MlWmsFeatureInfoPopup/index.html +0 -116
  125. package/coverage/lcov-report/src/components/MlWmsLayer/MlWmsLayer.tsx.html +0 -739
  126. package/coverage/lcov-report/src/components/MlWmsLayer/index.html +0 -116
  127. package/coverage/lcov-report/src/components/MlWmsLoader/MlWmsLoader.tsx.html +0 -1102
  128. package/coverage/lcov-report/src/components/MlWmsLoader/index.html +0 -116
  129. package/coverage/lcov-report/src/contexts/MapContext.tsx.html +0 -403
  130. package/coverage/lcov-report/src/contexts/SimpleDataContext.js.html +0 -103
  131. package/coverage/lcov-report/src/contexts/SimpleDataProvider.js.html +0 -277
  132. package/coverage/lcov-report/src/contexts/index.html +0 -146
  133. package/coverage/lcov-report/src/hooks/index.html +0 -191
  134. package/coverage/lcov-report/src/hooks/useCameraFollowPath/index.html +0 -116
  135. package/coverage/lcov-report/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx.html +0 -661
  136. package/coverage/lcov-report/src/hooks/useExportMap/index.html +0 -131
  137. package/coverage/lcov-report/src/hooks/useExportMap/index.ts.html +0 -175
  138. package/coverage/lcov-report/src/hooks/useExportMap/lib.ts.html +0 -559
  139. package/coverage/lcov-report/src/hooks/useGpx/index.html +0 -116
  140. package/coverage/lcov-report/src/hooks/useGpx/useGpx.tsx.html +0 -295
  141. package/coverage/lcov-report/src/hooks/useLayer.ts.html +0 -787
  142. package/coverage/lcov-report/src/hooks/useLayerEvent.js.html +0 -232
  143. package/coverage/lcov-report/src/hooks/useLayerFilter/index.html +0 -116
  144. package/coverage/lcov-report/src/hooks/useLayerFilter/useLayerFilter.ts.html +0 -184
  145. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/index.html +0 -116
  146. package/coverage/lcov-report/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx.html +0 -334
  147. package/coverage/lcov-report/src/hooks/useMap.ts.html +0 -358
  148. package/coverage/lcov-report/src/hooks/useMapState.ts.html +0 -631
  149. package/coverage/lcov-report/src/hooks/useSource.ts.html +0 -337
  150. package/coverage/lcov-report/src/hooks/useWms.ts.html +0 -397
  151. package/coverage/lcov-report/src/index.html +0 -116
  152. package/coverage/lcov-report/src/index.ts.html +0 -316
  153. package/coverage/lcov.info +0 -3987
  154. package/cypress/support/commands.ts +0 -37
  155. package/cypress/support/component-index.html +0 -12
  156. package/cypress/support/component.ts +0 -46
  157. package/cypress.config.ts +0 -101
  158. package/dist/components/MlCreatePdfButton/lib/createPdf.d.ts +0 -2
  159. package/dist/components/MlCreatePdfButton/lib/nominatimMap.d.ts +0 -2
  160. package/eslintErrorTest.js +0 -10
  161. package/public/assets/3D/godzilla_simple.glb +0 -0
  162. package/public/assets/dop.png +0 -0
  163. package/public/assets/historic.png +0 -0
  164. package/public/assets/marker.png +0 -0
  165. package/public/assets/osm.png +0 -0
  166. package/public/assets/sample.gpx +0 -716
  167. package/public/assets/sample1.gpx +0 -3003
  168. package/public/assets/sample2.gpx +0 -1264
  169. package/public/assets/sample3.gpx +0 -912
  170. package/public/assets/wg-marker.png +0 -0
  171. package/public/catalogue/.gitkeep +0 -0
  172. package/public/catalogue/mc_meta.json +0 -1
  173. package/public/favicon.ico +0 -0
  174. package/public/index.html +0 -39
  175. package/public/logo.png +0 -0
  176. package/public/manifest.json +0 -25
  177. package/public/robots.txt +0 -3
  178. package/public/thumbnails/MapLibreMap.png +0 -0
  179. package/public/thumbnails/MlCameraFollowPath.png +0 -0
  180. package/public/thumbnails/MlCreatePdfButton.png +0 -0
  181. package/public/thumbnails/MlCreatePdfForm.png +0 -0
  182. package/public/thumbnails/MlDeckGlLayer.png +0 -0
  183. package/public/thumbnails/MlDeckGlTerrainLayer.png +0 -0
  184. package/public/thumbnails/MlDemoDashboard.png +0 -0
  185. package/public/thumbnails/MlFeatureEditor.png +0 -0
  186. package/public/thumbnails/MlFillExtrusionLayer.png +0 -0
  187. package/public/thumbnails/MlFollowGps.png +0 -0
  188. package/public/thumbnails/MlGeoJsonLayer.png +0 -0
  189. package/public/thumbnails/MlGpxViewer.png +0 -0
  190. package/public/thumbnails/MlHillshadeLayer.png +0 -0
  191. package/public/thumbnails/MlIconLayer.png +0 -0
  192. package/public/thumbnails/MlLaermkarte.png +0 -0
  193. package/public/thumbnails/MlLayerMagnify.png +0 -0
  194. package/public/thumbnails/MlLayerSwipe.png +0 -0
  195. package/public/thumbnails/MlMapDrawTools.png +0 -0
  196. package/public/thumbnails/MlMeasureTool.png +0 -0
  197. package/public/thumbnails/MlMobilerImker.png +0 -0
  198. package/public/thumbnails/MlNavigationCompass.png +0 -0
  199. package/public/thumbnails/MlNavigationTools.png +0 -0
  200. package/public/thumbnails/MlOsmLayer.png +0 -0
  201. package/public/thumbnails/MlScaleReference.png +0 -0
  202. package/public/thumbnails/MlSketchTool.png +0 -0
  203. package/public/thumbnails/MlSpatialElevationProfile.png +0 -0
  204. package/public/thumbnails/MlThreeJsLayer.png +0 -0
  205. package/public/thumbnails/MlTransitionGeoJsonLayer.png +0 -0
  206. package/public/thumbnails/MlVectorTileLayer.png +0 -0
  207. package/public/thumbnails/MlWanderApp.png +0 -0
  208. package/public/thumbnails/MlWmsLayer.png +0 -0
  209. package/public/thumbnails/MlWmsLoader.png +0 -0
  210. package/public/thumbnails/useCameraFollowPath.png +0 -0
  211. package/rollup.config.js +0 -74
  212. package/scripts/build-catalogue-markdown-docs.js +0 -28
  213. package/scripts/build-catalogue-meta.js +0 -42
  214. package/scripts/create-map-component.sh +0 -36
  215. package/scripts/test.js +0 -53
  216. package/src/@types/assets/index.d.ts +0 -20
  217. package/src/App.css +0 -0
  218. package/src/components/MapLibreMap/MapLibreMap.stories.js +0 -106
  219. package/src/components/MapLibreMap/MapLibreMap.test.js +0 -84
  220. package/src/components/MapLibreMap/MapLibreMap.tsx +0 -127
  221. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.test.js +0 -395
  222. package/src/components/MapLibreMap/lib/MapLibreGlWrapper.ts +0 -691
  223. package/src/components/MlBasicComponent.js +0 -39
  224. package/src/components/MlCenterPosition/MlCenterPosition.doc.de.md +0 -3
  225. package/src/components/MlCenterPosition/MlCenterPosition.meta_.json +0 -14
  226. package/src/components/MlCenterPosition/MlCenterPosition.stories.tsx +0 -20
  227. package/src/components/MlCenterPosition/MlCenterPosition.tsx +0 -79
  228. package/src/components/MlComponentTemplate/MlComponentTemplate.doc.de.md +0 -3
  229. package/src/components/MlComponentTemplate/MlComponentTemplate.meta_.json +0 -14
  230. package/src/components/MlComponentTemplate/MlComponentTemplate.stories.tsx +0 -20
  231. package/src/components/MlComponentTemplate/MlComponentTemplate.tsx +0 -42
  232. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.de.md +0 -1
  233. package/src/components/MlCreatePdfButton/MlCreatePdfButton.doc.en.md +0 -1
  234. package/src/components/MlCreatePdfButton/MlCreatePdfButton.meta_.json +0 -14
  235. package/src/components/MlCreatePdfButton/MlCreatePdfButton.stories.tsx +0 -35
  236. package/src/components/MlCreatePdfButton/MlCreatePdfButton.tsx +0 -51
  237. package/src/components/MlCreatePdfButton/lib/createPdf.ts +0 -189
  238. package/src/components/MlCreatePdfButton/lib/nominatimMap.ts +0 -57
  239. package/src/components/MlCreatePdfForm/MlCreatePdfForm.cy.tsx +0 -21
  240. package/src/components/MlCreatePdfForm/MlCreatePdfForm.doc.de.md +0 -3
  241. package/src/components/MlCreatePdfForm/MlCreatePdfForm.meta.json +0 -14
  242. package/src/components/MlCreatePdfForm/MlCreatePdfForm.stories.tsx +0 -165
  243. package/src/components/MlCreatePdfForm/MlCreatePdfForm.tsx +0 -37
  244. package/src/components/MlCreatePdfForm/lib/PdfContext.tsx +0 -51
  245. package/src/components/MlCreatePdfForm/lib/PdfForm.tsx +0 -257
  246. package/src/components/MlCreatePdfForm/lib/PdfPreview.tsx +0 -327
  247. package/src/components/MlCreatePdfForm/lib/_PdfPreview.tsx +0 -399
  248. package/src/components/MlCreatePdfForm/lib/pdf.templates.ts +0 -82
  249. package/src/components/MlCreatePdfForm/lib/pdfContext.d.ts +0 -24
  250. package/src/components/MlCreatePdfForm/lib/preview.css +0 -114
  251. package/src/components/MlFeatureEditor/MlFeatureEditor.css +0 -0
  252. package/src/components/MlFeatureEditor/MlFeatureEditor.doc.de.md +0 -1
  253. package/src/components/MlFeatureEditor/MlFeatureEditor.doc.en.md +0 -1
  254. package/src/components/MlFeatureEditor/MlFeatureEditor.meta.json +0 -14
  255. package/src/components/MlFeatureEditor/MlFeatureEditor.stories.js +0 -91
  256. package/src/components/MlFeatureEditor/MlFeatureEditor.test.js +0 -126
  257. package/src/components/MlFeatureEditor/MlFeatureEditor.tsx +0 -150
  258. package/src/components/MlFeatureEditor/custom-direct-select-mode.js +0 -303
  259. package/src/components/MlFeatureEditor/custom-polygon-mode.js +0 -188
  260. package/src/components/MlFeatureEditor/custom-select-mode.js +0 -406
  261. package/src/components/MlFeatureEditor/lib/LICENSE.md +0 -18
  262. package/src/components/MlFeatureEditor/lib/common_selectors.js +0 -72
  263. package/src/components/MlFeatureEditor/lib/constants.js +0 -104
  264. package/src/components/MlFeatureEditor/lib/constrain_feature_movement.js +0 -72
  265. package/src/components/MlFeatureEditor/lib/create_midpoint.js +0 -42
  266. package/src/components/MlFeatureEditor/lib/create_supplementary_points.js +0 -102
  267. package/src/components/MlFeatureEditor/lib/create_vertex.js +0 -35
  268. package/src/components/MlFeatureEditor/lib/double_click_zoom.js +0 -30
  269. package/src/components/MlFeatureEditor/lib/euclidean_distance.js +0 -9
  270. package/src/components/MlFeatureEditor/lib/features_at.js +0 -52
  271. package/src/components/MlFeatureEditor/lib/get_features_and_set_cursor.js +0 -28
  272. package/src/components/MlFeatureEditor/lib/is_click.js +0 -22
  273. package/src/components/MlFeatureEditor/lib/is_event_at_coordinates.js +0 -10
  274. package/src/components/MlFeatureEditor/lib/is_tap.js +0 -19
  275. package/src/components/MlFeatureEditor/lib/map_event_to_bounding_box.js +0 -18
  276. package/src/components/MlFeatureEditor/lib/mode_handler.js +0 -120
  277. package/src/components/MlFeatureEditor/lib/mouse_event_point.js +0 -23
  278. package/src/components/MlFeatureEditor/lib/move_features.js +0 -47
  279. package/src/components/MlFeatureEditor/lib/sort_features.js +0 -45
  280. package/src/components/MlFeatureEditor/lib/string_set.js +0 -59
  281. package/src/components/MlFeatureEditor/lib/string_sets_are_equal.js +0 -8
  282. package/src/components/MlFeatureEditor/lib/theme.js +0 -236
  283. package/src/components/MlFeatureEditor/lib/to_dense_array.js +0 -15
  284. package/src/components/MlFeatureEditor/lib/utils.js +0 -51
  285. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.doc.de.md +0 -1
  286. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.doc.en.md +0 -1
  287. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.meta.json +0 -14
  288. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.stories.js +0 -24
  289. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.test.js +0 -15
  290. package/src/components/MlFillExtrusionLayer/MlFillExtrusionLayer.tsx +0 -85
  291. package/src/components/MlFollowGps/MlFollowGps.doc.de.md +0 -1
  292. package/src/components/MlFollowGps/MlFollowGps.doc.en.md +0 -1
  293. package/src/components/MlFollowGps/MlFollowGps.meta.json +0 -14
  294. package/src/components/MlFollowGps/MlFollowGps.stories.js +0 -40
  295. package/src/components/MlFollowGps/MlFollowGps.test.js +0 -63
  296. package/src/components/MlFollowGps/MlFollowGps.tsx +0 -241
  297. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.doc.de.md +0 -1
  298. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.doc.en.md +0 -1
  299. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.meta.json +0 -14
  300. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.stories.tsx +0 -191
  301. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.test.js +0 -20
  302. package/src/components/MlGeoJsonLayer/MlGeoJsonLayer.tsx +0 -128
  303. package/src/components/MlGeoJsonLayer/assets/earthquake.json +0 -109937
  304. package/src/components/MlGeoJsonLayer/assets/sample_1.json +0 -140
  305. package/src/components/MlGeoJsonLayer/assets/sample_2.json +0 -142
  306. package/src/components/MlGeoJsonLayer/assets/sample_polygon_1.json +0 -33
  307. package/src/components/MlGeoJsonLayer/assets/wg_locations.json +0 -65
  308. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.lineStyler.js +0 -189
  309. package/src/components/MlGeoJsonLayer/story_utils/MlGeoJsonLayer.polygonStyler.js +0 -188
  310. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerCircleStyler.tsx +0 -9
  311. package/src/components/MlGeoJsonLayer/story_utils/MlGeojsonLayerHeatMapStyler.tsx +0 -10
  312. package/src/components/MlGeoJsonLayer/util/getDefaultLayerTypeByGeometry.ts +0 -31
  313. package/src/components/MlGeoJsonLayer/util/getDefaultPaintPropsByType.ts +0 -37
  314. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.doc.de.md +0 -3
  315. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.meta_.json +0 -14
  316. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.stories.tsx +0 -19
  317. package/src/components/MlGeojsonLayerWithSource/MlGeojsonLayerWithSource.tsx +0 -128
  318. package/src/components/MlGpxViewer/MlGpxViewer.doc.de.md +0 -1
  319. package/src/components/MlGpxViewer/MlGpxViewer.doc.en.md +0 -1
  320. package/src/components/MlGpxViewer/MlGpxViewer.meta.json +0 -14
  321. package/src/components/MlGpxViewer/MlGpxViewer.stories.tsx +0 -100
  322. package/src/components/MlGpxViewer/MlGpxViewer.test.js +0 -53
  323. package/src/components/MlGpxViewer/MlGpxViewer.tsx +0 -103
  324. package/src/components/MlGpxViewer/util/GeoJsonContext.ts +0 -13
  325. package/src/components/MlGpxViewer/util/GeoJsonProvider.tsx +0 -25
  326. package/src/components/MlGpxViewer/util/MetadataDrawer.tsx +0 -38
  327. package/src/components/MlGpxViewer/util/MlGpxDemoLoader.tsx +0 -130
  328. package/src/components/MlGpxViewer/util/MlGpxViewerInstructions.tsx +0 -71
  329. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.doc.de.md +0 -3
  330. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.meta_.json +0 -14
  331. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.stories.tsx +0 -41
  332. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.test.js +0 -38
  333. package/src/components/MlImageMarkerLayer/MlImageMarkerLayer.tsx +0 -100
  334. package/src/components/MlLayer/MlLayer.doc.de.md +0 -3
  335. package/src/components/MlLayer/MlLayer.meta_.json +0 -14
  336. package/src/components/MlLayer/MlLayer.test.js +0 -117
  337. package/src/components/MlLayer/MlLayer.tsx +0 -54
  338. package/src/components/MlLayerMagnify/MlLayerMagnify.doc.de.md +0 -1
  339. package/src/components/MlLayerMagnify/MlLayerMagnify.doc.en.md +0 -1
  340. package/src/components/MlLayerMagnify/MlLayerMagnify.meta.json +0 -14
  341. package/src/components/MlLayerMagnify/MlLayerMagnify.stories.tsx +0 -44
  342. package/src/components/MlLayerMagnify/MlLayerMagnify.test.tsx +0 -83
  343. package/src/components/MlLayerMagnify/MlLayerMagnify.tsx +0 -220
  344. package/src/components/MlLayerMagnify/style.css +0 -48
  345. package/src/components/MlLayerSwipe/MlLayerSwipe.doc.de.md +0 -1
  346. package/src/components/MlLayerSwipe/MlLayerSwipe.doc.en.md +0 -1
  347. package/src/components/MlLayerSwipe/MlLayerSwipe.meta.json +0 -14
  348. package/src/components/MlLayerSwipe/MlLayerSwipe.stories.tsx +0 -36
  349. package/src/components/MlLayerSwipe/MlLayerSwipe.test.js +0 -86
  350. package/src/components/MlLayerSwipe/MlLayerSwipe.tsx +0 -145
  351. package/src/components/MlLayerSwipe/style.css +0 -48
  352. package/src/components/MlLayerSwitcher/MlLayerSwitcher.css +0 -17
  353. package/src/components/MlLayerSwitcher/MlLayerSwitcher.doc.de.md +0 -3
  354. package/src/components/MlLayerSwitcher/MlLayerSwitcher.js +0 -217
  355. package/src/components/MlLayerSwitcher/MlLayerSwitcher.meta_.json +0 -14
  356. package/src/components/MlLayerSwitcher/MlLayerSwitcher.stories.js +0 -103
  357. package/src/components/MlLayerSwitcher/assets/sample_1.json +0 -26
  358. package/src/components/MlLayerSwitcher/assets/sample_2.json +0 -22
  359. package/src/components/MlLayerSwitcher/components/LayerBox.js +0 -77
  360. package/src/components/MlMarker/MlMarker.doc.de.md +0 -3
  361. package/src/components/MlMarker/MlMarker.meta_.json +0 -14
  362. package/src/components/MlMarker/MlMarker.stories.js +0 -22
  363. package/src/components/MlMarker/MlMarker.tsx +0 -140
  364. package/src/components/MlMeasureTool/MlMeasureTool.doc.de.md +0 -3
  365. package/src/components/MlMeasureTool/MlMeasureTool.meta.json +0 -14
  366. package/src/components/MlMeasureTool/MlMeasureTool.stories.js +0 -96
  367. package/src/components/MlMeasureTool/MlMeasureTool.tsx +0 -60
  368. package/src/components/MlNavigationCompass/MlNavigationCompass.doc.de.md +0 -1
  369. package/src/components/MlNavigationCompass/MlNavigationCompass.doc.en.md +0 -1
  370. package/src/components/MlNavigationCompass/MlNavigationCompass.meta.json +0 -14
  371. package/src/components/MlNavigationCompass/MlNavigationCompass.stories.js +0 -63
  372. package/src/components/MlNavigationCompass/MlNavigationCompass.test.js +0 -68
  373. package/src/components/MlNavigationCompass/MlNavigationCompass.tsx +0 -226
  374. package/src/components/MlNavigationCompass/assets/needle.svg +0 -17
  375. package/src/components/MlNavigationCompass/assets/needle__.svg +0 -19
  376. package/src/components/MlNavigationCompass/assets/rotate_left.svg +0 -13
  377. package/src/components/MlNavigationCompass/assets/rotate_right.svg +0 -15
  378. package/src/components/MlNavigationTools/MlNavigationTools.doc.de.md +0 -1
  379. package/src/components/MlNavigationTools/MlNavigationTools.doc.en.md +0 -1
  380. package/src/components/MlNavigationTools/MlNavigationTools.meta.json +0 -14
  381. package/src/components/MlNavigationTools/MlNavigationTools.stories.js +0 -64
  382. package/src/components/MlNavigationTools/MlNavigationTools.tsx +0 -176
  383. package/src/components/MlOsmLayer/MlOsmLayer.js +0 -71
  384. package/src/components/MlOsmLayer/MlOsmLayer.stories_.js +0 -49
  385. package/src/components/MlOsmLayer/MlOsmLayer.test.js +0 -19
  386. package/src/components/MlScaleReference/MlScaleReference.doc.de.md +0 -1
  387. package/src/components/MlScaleReference/MlScaleReference.doc.en.md +0 -1
  388. package/src/components/MlScaleReference/MlScaleReference.meta.json +0 -14
  389. package/src/components/MlScaleReference/MlScaleReference.stories.js +0 -51
  390. package/src/components/MlScaleReference/MlScaleReference.tsx +0 -109
  391. package/src/components/MlShareMapState/MlShareMapState.doc.de.md +0 -3
  392. package/src/components/MlShareMapState/MlShareMapState.meta_.json +0 -14
  393. package/src/components/MlShareMapState/MlShareMapState.stories.tsx +0 -100
  394. package/src/components/MlShareMapState/MlShareMapState.tsx +0 -269
  395. package/src/components/MlSketchTool/LayerList/ColorPicker.tsx +0 -43
  396. package/src/components/MlSketchTool/LayerList/LayerList.tsx +0 -12
  397. package/src/components/MlSketchTool/LayerList/LayerListItem.tsx +0 -109
  398. package/src/components/MlSketchTool/LayerList/LayerPropertyForm.tsx +0 -126
  399. package/src/components/MlSketchTool/MlSketchTool.doc.de.md +0 -3
  400. package/src/components/MlSketchTool/MlSketchTool.meta.json +0 -14
  401. package/src/components/MlSketchTool/MlSketchTool.stories.tsx +0 -26
  402. package/src/components/MlSketchTool/MlSketchTool.tsx +0 -271
  403. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.doc.de.md +0 -1
  404. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.doc.en.md +0 -1
  405. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.meta.json +0 -14
  406. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.stories.tsx +0 -121
  407. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.test.js +0 -48
  408. package/src/components/MlSpatialElevationProfile/MlSpatialElevationProfile.tsx +0 -143
  409. package/src/components/MlSpatialElevationProfile/util/getElevationData.tsx +0 -103
  410. package/src/components/MlThreeJsLayer/MlThreeJsLayer.doc.de.md +0 -1
  411. package/src/components/MlThreeJsLayer/MlThreeJsLayer.doc.en.md +0 -1
  412. package/src/components/MlThreeJsLayer/MlThreeJsLayer.js +0 -207
  413. package/src/components/MlThreeJsLayer/MlThreeJsLayer.meta.json +0 -14
  414. package/src/components/MlThreeJsLayer/MlThreeJsLayer.stories.tsx +0 -37
  415. package/src/components/MlThreeJsLayer/MlThreeJsLayer.test.js +0 -33
  416. package/src/components/MlThreeJsLayer/MlThreejsLayer.tsx +0 -228
  417. package/src/components/MlThreeJsLayer/lib/GLTFLoader.js +0 -3331
  418. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.doc.de.md +0 -3
  419. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.meta.json +0 -14
  420. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.stories.js +0 -52
  421. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.test.js +0 -20
  422. package/src/components/MlTransitionGeoJsonLayer/MlTransitionGeoJsonLayer.tsx +0 -107
  423. package/src/components/MlTransitionGeoJsonLayer/assets/sample_1.json +0 -26
  424. package/src/components/MlTransitionGeoJsonLayer/assets/sample_2.json +0 -22
  425. package/src/components/MlTransitionGeoJsonLayer/assets/sample_polygon_1.json +0 -33
  426. package/src/components/MlTransitionGeoJsonLayer/util/transitionFunctions.js +0 -221
  427. package/src/components/MlUseMapDebugger/MlUseMapDebugger.doc.de.md +0 -3
  428. package/src/components/MlUseMapDebugger/MlUseMapDebugger.js +0 -75
  429. package/src/components/MlUseMapDebugger/MlUseMapDebugger.meta_.json +0 -14
  430. package/src/components/MlUseMapDebugger/MlUseMapDebugger.stories.js +0 -30
  431. package/src/components/MlVectorTileLayer/MlVectorTileLayer.doc.de.md +0 -1
  432. package/src/components/MlVectorTileLayer/MlVectorTileLayer.doc.en.md +0 -1
  433. package/src/components/MlVectorTileLayer/MlVectorTileLayer.meta.json +0 -14
  434. package/src/components/MlVectorTileLayer/MlVectorTileLayer.stories.js +0 -52
  435. package/src/components/MlVectorTileLayer/MlVectorTileLayer.test.js +0 -40
  436. package/src/components/MlVectorTileLayer/MlVectorTileLayer.tsx +0 -144
  437. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.doc.de.md +0 -3
  438. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.js +0 -64
  439. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.meta_.json +0 -14
  440. package/src/components/MlWmsFeatureInfoPopup/MlWmsFeatureInfoPopup.stories.tsx +0 -22
  441. package/src/components/MlWmsLayer/MlWmsLayer.stories.js +0 -49
  442. package/src/components/MlWmsLayer/MlWmsLayer.test.js +0 -19
  443. package/src/components/MlWmsLayer/MlWmsLayer.tsx +0 -218
  444. package/src/components/MlWmsLoader/MlWmsLoader.doc.de.md +0 -1
  445. package/src/components/MlWmsLoader/MlWmsLoader.doc.en.md +0 -1
  446. package/src/components/MlWmsLoader/MlWmsLoader.meta.json +0 -14
  447. package/src/components/MlWmsLoader/MlWmsLoader.stories.tsx +0 -81
  448. package/src/components/MlWmsLoader/MlWmsLoader.tsx +0 -339
  449. package/src/components/MlWmsLoader/utils/MlWmsLoaderInstructions.tsx +0 -50
  450. package/src/components/MlWmsLoader/utils/WMSLinks.tsx +0 -128
  451. package/src/contexts/MapComponentsProvider.test.js +0 -260
  452. package/src/contexts/MapContext.tsx +0 -106
  453. package/src/contexts/SimpleDataContext.js +0 -6
  454. package/src/contexts/SimpleDataProvider.js +0 -64
  455. package/src/contexts/SimpleDataProvider.test.js +0 -68
  456. package/src/custom.d.ts +0 -4
  457. package/src/decorators/EmptyMapDecorator.js +0 -38
  458. package/src/decorators/MapContextDecorator.js +0 -39
  459. package/src/decorators/MapContextDecoratorHooks.js +0 -39
  460. package/src/decorators/MultiMapContextDecorator.js +0 -80
  461. package/src/decorators/NoNavToolsDecorator.js +0 -33
  462. package/src/decorators/ThemeDecorator.js +0 -24
  463. package/src/decorators/style.css +0 -34
  464. package/src/hooks/assets/pointWG.json +0 -13
  465. package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.de.md +0 -4
  466. package/src/hooks/useCameraFollowPath/useCameraFollowPath.doc.en.md +0 -1
  467. package/src/hooks/useCameraFollowPath/useCameraFollowPath.meta.json +0 -14
  468. package/src/hooks/useCameraFollowPath/useCameraFollowPath.stories.tsx +0 -192
  469. package/src/hooks/useCameraFollowPath/useCameraFollowPath.tsx +0 -192
  470. package/src/hooks/useExportMap/index.ts +0 -30
  471. package/src/hooks/useExportMap/lib.ts +0 -158
  472. package/src/hooks/useGpx/lib/gpxConverter.js +0 -521
  473. package/src/hooks/useGpx/useGpx.doc.de.md +0 -3
  474. package/src/hooks/useGpx/useGpx.meta_.json +0 -15
  475. package/src/hooks/useGpx/useGpx.stories.js +0 -20
  476. package/src/hooks/useGpx/useGpx.tsx +0 -70
  477. package/src/hooks/useLayer.test.js +0 -205
  478. package/src/hooks/useLayer.ts +0 -234
  479. package/src/hooks/useLayerEvent.js +0 -49
  480. package/src/hooks/useLayerFilter/useLayerFilter.doc.de.md +0 -3
  481. package/src/hooks/useLayerFilter/useLayerFilter.meta_.json +0 -14
  482. package/src/hooks/useLayerFilter/useLayerFilter.stories.tsx +0 -40
  483. package/src/hooks/useLayerFilter/useLayerFilter.ts +0 -33
  484. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.doc.de.md +0 -3
  485. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.meta_.json +0 -15
  486. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.stories.js +0 -20
  487. package/src/hooks/useLayerHoverPopup/useLayerHoverPopup.tsx +0 -83
  488. package/src/hooks/useMap.test.tsx +0 -48
  489. package/src/hooks/useMap.ts +0 -91
  490. package/src/hooks/useMapState.stories.js +0 -120
  491. package/src/hooks/useMapState.ts +0 -182
  492. package/src/hooks/useSource.ts +0 -84
  493. package/src/hooks/useSources.stories.js +0 -232
  494. package/src/hooks/useWms.ts +0 -104
  495. package/src/index.ts +0 -78
  496. package/src/setupTests.js +0 -113
  497. package/src/stories/components/Readme.js +0 -7
  498. package/src/ui_components/Dropzone.tsx +0 -104
  499. package/src/ui_components/ImageLoader.tsx +0 -83
  500. package/src/ui_components/LayerList/LayerList.stories.tsx +0 -136
  501. package/src/ui_components/LayerList/LayerList.tsx +0 -12
  502. package/src/ui_components/LayerList/LayerListFolder.tsx +0 -82
  503. package/src/ui_components/LayerList/LayerListItem.tsx +0 -180
  504. package/src/ui_components/LayerList/assets/sample_1.json +0 -26
  505. package/src/ui_components/LayerList/assets/sample_2.json +0 -22
  506. package/src/ui_components/LayerList/assets/sample_polygon_1.json +0 -33
  507. package/src/ui_components/LayerList/assets/style.json +0 -2599
  508. package/src/ui_components/LayerList/util/LayerListItemVectorLayer.tsx +0 -92
  509. package/src/ui_components/LayerList/util/LayerPropertyForm.tsx +0 -125
  510. package/src/ui_components/LayerList/util/input/ColorPicker.tsx +0 -44
  511. package/src/ui_components/LoadingOverlay.css +0 -9
  512. package/src/ui_components/LoadingOverlayContext.tsx +0 -79
  513. package/src/ui_components/MapcomponentsTheme.tsx +0 -133
  514. package/src/ui_components/Sidebar.tsx +0 -87
  515. package/src/ui_components/Tooltip.tsx +0 -17
  516. package/src/ui_components/TopToolbar.tsx +0 -24
  517. package/src/ui_components/UploadButton.tsx +0 -57
  518. package/src/util/BubbleForInstructions.js +0 -48
  519. package/src/util/Instructions.tsx +0 -60
  520. package/src/util/index.js +0 -4
  521. package/src/util/layerRemovalTest.js +0 -121
  522. package/src/util/sourceRemovalTest.js +0 -113
  523. package/tsconfig.json +0 -34
@@ -1,769 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/components/MlThreeJsLayer/MlThreejsLayer.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../index.html">All files</a> / <a href="index.html">src/components/MlThreeJsLayer</a> MlThreejsLayer.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">0% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>0/72</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">0% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/28</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">0% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/9</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">0% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>0/70</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-neutral">&nbsp;</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-no">&nbsp;</span>
317
- <span class="cline-any cline-no">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-no">&nbsp;</span>
320
- <span class="cline-any cline-no">&nbsp;</span>
321
- <span class="cline-any cline-no">&nbsp;</span>
322
- <span class="cline-any cline-no">&nbsp;</span>
323
- <span class="cline-any cline-no">&nbsp;</span>
324
- <span class="cline-any cline-no">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-no">&nbsp;</span>
327
- <span class="cline-any cline-no">&nbsp;</span>
328
- <span class="cline-any cline-no">&nbsp;</span>
329
- <span class="cline-any cline-no">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-no">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-no">&nbsp;</span>
336
- <span class="cline-any cline-no">&nbsp;</span>
337
- <span class="cline-any cline-no">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-no">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-no">&nbsp;</span>
344
- <span class="cline-any cline-no">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-no">&nbsp;</span>
347
- <span class="cline-any cline-no">&nbsp;</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-no">&nbsp;</span>
350
- <span class="cline-any cline-no">&nbsp;</span>
351
- <span class="cline-any cline-no">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-no">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-no">&nbsp;</span>
357
- <span class="cline-any cline-no">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-no">&nbsp;</span>
360
- <span class="cline-any cline-neutral">&nbsp;</span>
361
- <span class="cline-any cline-neutral">&nbsp;</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-neutral">&nbsp;</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-neutral">&nbsp;</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-neutral">&nbsp;</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-neutral">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-neutral">&nbsp;</span>
386
- <span class="cline-any cline-neutral">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-no">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-no">&nbsp;</span>
397
- <span class="cline-any cline-no">&nbsp;</span>
398
- <span class="cline-any cline-no">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-no">&nbsp;</span>
402
- <span class="cline-any cline-no">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-no">&nbsp;</span>
406
- <span class="cline-any cline-no">&nbsp;</span>
407
- <span class="cline-any cline-no">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-no">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-no">&nbsp;</span>
416
- <span class="cline-any cline-no">&nbsp;</span>
417
- <span class="cline-any cline-no">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-no">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-no">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-no">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-no">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-no">&nbsp;</span>
447
- <span class="cline-any cline-no">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-neutral">&nbsp;</span>
453
- <span class="cline-any cline-neutral">&nbsp;</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-neutral">&nbsp;</span>
458
- <span class="cline-any cline-neutral">&nbsp;</span>
459
- <span class="cline-any cline-neutral">&nbsp;</span>
460
- <span class="cline-any cline-no">&nbsp;</span>
461
- <span class="cline-any cline-no">&nbsp;</span>
462
- <span class="cline-any cline-no">&nbsp;</span>
463
- <span class="cline-any cline-no">&nbsp;</span>
464
- <span class="cline-any cline-no">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-no">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-no">&nbsp;</span>
472
- <span class="cline-any cline-no">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-no">&nbsp;</span>
477
- <span class="cline-any cline-no">&nbsp;</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-no">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-no">&nbsp;</span>
482
- <span class="cline-any cline-no">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-no">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-no">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-no">&nbsp;</span>
497
- <span class="cline-any cline-no">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-no">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useContext, useRef, useEffect, useState } from 'react';
523
- import MapContext from '../../contexts/MapContext';
524
- &nbsp;
525
- import Button from '@mui/material/Button';
526
- import maplibregl, { CustomLayerInterface, LngLatLike, Map } from 'maplibre-gl';
527
- import * as THREE from 'three';
528
- import GLTFLoader from './lib/GLTFLoader';
529
- import PropTypes from 'prop-types';
530
- import MapLibreGlWrapper from '../MapLibreMap/lib/MapLibreGlWrapper';
531
- &nbsp;
532
- /**
533
- * Renders obj or gltf 3D Models on the MapLibreMap referenced by props.mapId
534
- *
535
- * @component
536
- */
537
- &nbsp;
538
- export interface MlThreeJsLayerProps {
539
- mapId?: string;
540
- init?: object;
541
- onDone?: () =&gt; void;
542
- }
543
- &nbsp;
544
- const MlThreeJsLayer = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(p</span>rops: MlThreeJsLayerProps) =&gt; {</span>
545
- const mapContext = <span class="cstat-no" title="statement not covered" >useContext(MapContext);</span>
546
- &nbsp;
547
- const layerName = <span class="cstat-no" title="statement not covered" >'3d-model';</span>
548
- const [showLayer, setShowLayer] = <span class="cstat-no" title="statement not covered" >useState(true);</span>
549
- const showLayerRef = <span class="cstat-no" title="statement not covered" >useRef(true);</span>
550
- const initializedRef = <span class="cstat-no" title="statement not covered" >useRef(false);</span>
551
- const mapRef = <span class="cstat-no" title="statement not covered" >useRef&lt;MapLibreGlWrapper&gt;();</span>
552
- const initFuncRef = <span class="cstat-no" title="statement not covered" >useRef(props.init);</span>
553
- &nbsp;
554
- const cleanup = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
555
- <span class="cstat-no" title="statement not covered" > if (mapRef.current &amp;&amp; mapRef.current.style) {</span>
556
- <span class="cstat-no" title="statement not covered" > if (mapRef.current.getLayer(layerName)) {</span>
557
- <span class="cstat-no" title="statement not covered" > mapRef.current.removeLayer(layerName);</span>
558
- }
559
- <span class="cstat-no" title="statement not covered" > mapRef.current = undefined;</span>
560
- }
561
- };
562
- &nbsp;
563
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
564
- <span class="cstat-no" title="statement not covered" > if (typeof initFuncRef.current === 'function') {</span>
565
- <span class="cstat-no" title="statement not covered" > initFuncRef.current();</span>
566
- }
567
- &nbsp;
568
- <span class="cstat-no" title="statement not covered" > return cleanup;</span>
569
- }, []);
570
- &nbsp;
571
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
572
- <span class="cstat-no" title="statement not covered" > if (!mapContext.mapExists(props.mapId) || initializedRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
573
- &nbsp;
574
- <span class="cstat-no" title="statement not covered" > initializedRef.current = true;</span>
575
- <span class="cstat-no" title="statement not covered" > mapRef.current = mapContext.getMap(props.mapId);</span>
576
- &nbsp;
577
- <span class="cstat-no" title="statement not covered" > mapRef.current?.setCenter([7.099771581806502, 50.73395746209983]);</span>
578
- <span class="cstat-no" title="statement not covered" > mapRef.current?.setZoom(15);</span>
579
- <span class="cstat-no" title="statement not covered" > mapRef.current?.setPitch(45);</span>
580
- &nbsp;
581
- // parameters to ensure the model is georeferenced correctly on the map
582
- const modelOrigin = <span class="cstat-no" title="statement not covered" >[7.099771581806502, 50.73395746209983];</span>
583
- // 50.73395746209983, 7.099771581806502
584
- const modelAltitude = <span class="cstat-no" title="statement not covered" >0;</span>
585
- const modelRotate = <span class="cstat-no" title="statement not covered" >[Math.PI / 2, 90, 0];</span>
586
- &nbsp;
587
- const modelAsMercatorCoordinate = <span class="cstat-no" title="statement not covered" >maplibregl.MercatorCoordinate.fromLngLat(</span>
588
- modelOrigin as LngLatLike,
589
- modelAltitude
590
- );
591
- &nbsp;
592
- // transformation parameters to position, rotate and scale the 3D model onto the map
593
- const modelTransform = <span class="cstat-no" title="statement not covered" >{</span>
594
- translateX: modelAsMercatorCoordinate.x + 0.0000008,
595
- translateY: modelAsMercatorCoordinate.y + 0.0000018,
596
- translateZ: modelAsMercatorCoordinate.z,
597
- rotateX: modelRotate[0],
598
- rotateY: modelRotate[1],
599
- rotateZ: modelRotate[2],
600
- /* Since our 3D model is in real world meters, a scale transform needs to be
601
- * applied since the CustomLayerInterface expects units in MercatorCoordinates.
602
- */
603
- scale: modelAsMercatorCoordinate.meterInMercatorCoordinateUnits() + 0.00000003,
604
- };
605
- &nbsp;
606
- //var THREE = window.THREE;
607
- &nbsp;
608
- // configuration of the custom layer for a 3D model per the CustomLayerInterface
609
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
610
- // @ts-ignore
611
- const customLayer: CustomLayerInterface &amp; {
612
- camera: THREE.Camera | undefined;
613
- scene: THREE.Scene | undefined;
614
- map: Map;
615
- renderer: THREE.WebGLRenderer;
616
- } = <span class="cstat-no" title="statement not covered" >{</span>
617
- id: '3d-model',
618
- type: 'custom',
619
- renderingMode: '3d',
620
- camera: undefined,
621
- scene: undefined,
622
- onAdd: <span class="fstat-no" title="function not covered" >fu</span>nction (map: Map, gl: WebGL2RenderingContext) {
623
- // eslint-disable-next-line @typescript-eslint/no-this-alias
624
- const self = <span class="cstat-no" title="statement not covered" >this;</span>
625
- <span class="cstat-no" title="statement not covered" > this.camera = new THREE.Camera();</span>
626
- <span class="cstat-no" title="statement not covered" > this.scene = new THREE.Scene();</span>
627
- &nbsp;
628
- // create two three.js lights to illuminate the model
629
- const directionalLight = <span class="cstat-no" title="statement not covered" >new THREE.DirectionalLight(0xffffff);</span>
630
- <span class="cstat-no" title="statement not covered" > directionalLight.position.set(0, -70, 100).normalize();</span>
631
- <span class="cstat-no" title="statement not covered" > this.scene.add(directionalLight);</span>
632
- &nbsp;
633
- const directionalLight2 = <span class="cstat-no" title="statement not covered" >new THREE.DirectionalLight(0xffffff);</span>
634
- <span class="cstat-no" title="statement not covered" > directionalLight2.position.set(0, 70, 100).normalize();</span>
635
- <span class="cstat-no" title="statement not covered" > this.scene.add(directionalLight2);</span>
636
- &nbsp;
637
- // use the three.js GLTF loader to add the 3D model to the three.js scene
638
- const loader = <span class="cstat-no" title="statement not covered" >new GLTFLoader();</span>
639
- <span class="cstat-no" title="statement not covered" > loader.load(</span>
640
- 'assets/3D/godzilla_simple.glb',
641
- //"https://docs.mapbox.com/mapbox-gl-js/assets/34M_17/34M_17.gltf",
642
- <span class="fstat-no" title="function not covered" > fu</span>nction (gltf: { scene: THREE.Scene }) {
643
- <span class="cstat-no" title="statement not covered" > self.scene?.add(gltf.scene);</span>
644
- <span class="cstat-no" title="statement not covered" > if (typeof props.onDone === 'function') {</span>
645
- <span class="cstat-no" title="statement not covered" > props.onDone();</span>
646
- }
647
- }.bind(this)
648
- );
649
- <span class="cstat-no" title="statement not covered" > this.map = map;</span>
650
- &nbsp;
651
- // use the Mapbox GL JS map canvas for three.js
652
- <span class="cstat-no" title="statement not covered" > this.renderer = new THREE.WebGLRenderer({</span>
653
- canvas: map.getCanvas(),
654
- context: gl,
655
- antialias: true,
656
- });
657
- &nbsp;
658
- <span class="cstat-no" title="statement not covered" > this.renderer.autoClear = false;</span>
659
- },
660
- render: <span class="fstat-no" title="function not covered" >fu</span>nction (_gl, matrix) {
661
- const rotationX = <span class="cstat-no" title="statement not covered" >new THREE.Matrix4().makeRotationAxis(</span>
662
- new THREE.Vector3(1, 0, 0),
663
- modelTransform.rotateX
664
- );
665
- const rotationY = <span class="cstat-no" title="statement not covered" >new THREE.Matrix4().makeRotationAxis(</span>
666
- new THREE.Vector3(0, 1, 0),
667
- modelTransform.rotateY
668
- );
669
- const rotationZ = <span class="cstat-no" title="statement not covered" >new THREE.Matrix4().makeRotationAxis(</span>
670
- new THREE.Vector3(0, 0, 1),
671
- modelTransform.rotateZ
672
- );
673
- &nbsp;
674
- const m = <span class="cstat-no" title="statement not covered" >new THREE.Matrix4().fromArray(matrix);</span>
675
- const l = <span class="cstat-no" title="statement not covered" >new THREE.Matrix4()</span>
676
- .makeTranslation(
677
- modelTransform.translateX,
678
- modelTransform.translateY,
679
- modelTransform.translateZ
680
- )
681
- .scale(
682
- new THREE.Vector3(modelTransform.scale, -modelTransform.scale, modelTransform.scale)
683
- )
684
- .multiply(rotationX)
685
- .multiply(rotationY)
686
- .multiply(rotationZ);
687
- &nbsp;
688
- <span class="cstat-no" title="statement not covered" > if (this.camera &amp;&amp; this.scene) {</span>
689
- <span class="cstat-no" title="statement not covered" > this.camera.projectionMatrix = m.multiply(l);</span>
690
- <span class="cstat-no" title="statement not covered" > this.renderer.resetState();</span>
691
- <span class="cstat-no" title="statement not covered" > this.renderer.render(this.scene, this.camera);</span>
692
- <span class="cstat-no" title="statement not covered" > this.map.triggerRepaint();</span>
693
- }
694
- },
695
- };
696
- &nbsp;
697
- <span class="cstat-no" title="statement not covered" > mapRef.current?.addLayer(customLayer);</span>
698
- &nbsp;
699
- <span class="cstat-no" title="statement not covered" > if (mapRef.current?.getLayer(layerName)) {</span>
700
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(layerName, 'visibility', 'visible');</span>
701
- }
702
- }, [mapContext.mapIds, mapContext, props]);
703
- &nbsp;
704
- <span class="cstat-no" title="statement not covered" > useEffect(<span class="fstat-no" title="function not covered" >()</span> =&gt; {</span>
705
- <span class="cstat-no" title="statement not covered" > if (!mapRef.current) <span class="cstat-no" title="statement not covered" >return;</span></span>
706
- &nbsp;
707
- <span class="cstat-no" title="statement not covered" > if (mapRef.current.getLayer(layerName)) {</span>
708
- // toggle layer visibility by changing the layout object's visibility property
709
- <span class="cstat-no" title="statement not covered" > if (showLayer) {</span>
710
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(layerName, 'visibility', 'visible');</span>
711
- } else {
712
- <span class="cstat-no" title="statement not covered" > mapRef.current.setLayoutProperty(layerName, 'visibility', 'none');</span>
713
- }
714
- }
715
- //
716
- }, [showLayer, mapContext]);
717
- &nbsp;
718
- <span class="cstat-no" title="statement not covered" > return (</span>
719
- &lt;&gt;
720
- &lt;Button
721
- color="primary"
722
- variant={showLayer ? 'contained' : 'outlined'}
723
- onClick={<span class="fstat-no" title="function not covered" >()</span> =&gt; {
724
- <span class="cstat-no" title="statement not covered" > setShowLayer(!showLayer);</span>
725
- <span class="cstat-no" title="statement not covered" > showLayerRef.current = !showLayer;</span>
726
- }}
727
- &gt;
728
- 3D
729
- &lt;/Button&gt;
730
- &lt;/&gt;
731
- );
732
- };
733
- &nbsp;
734
- <span class="cstat-no" title="statement not covered" >MlThreeJsLayer.propTypes = {</span>
735
- /**
736
- * Id of the target MapLibre instance in mapContext
737
- */
738
- mapId: PropTypes.string,
739
- /**
740
- * function that gets called when initialized
741
- */
742
- init: PropTypes.func,
743
- /**
744
- * function that gets called when models are loaded
745
- */
746
- onDone: PropTypes.func,
747
- };
748
- &nbsp;
749
- export default MlThreeJsLayer;
750
- &nbsp;</pre></td></tr></table></pre>
751
-
752
- <div class='push'></div><!-- for sticky footer -->
753
- </div><!-- /wrapper -->
754
- <div class='footer quiet pad2 space-top1 center small'>
755
- Code coverage generated by
756
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
757
- at 2023-02-07T10:00:38.313Z
758
- </div>
759
- <script src="../../../prettify.js"></script>
760
- <script>
761
- window.onload = function () {
762
- prettyPrint();
763
- };
764
- </script>
765
- <script src="../../../sorter.js"></script>
766
- <script src="../../../block-navigation.js"></script>
767
- </body>
768
- </html>
769
-