@panoramax/web-viewer 4.4.0-develop-746bcb00 → 4.4.0-develop-d8b38e70

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 (341) hide show
  1. package/{src → build}/components/core/Basic.js +22 -16
  2. package/{src → build}/components/core/CoverageMap.js +19 -14
  3. package/{src → build}/components/core/Editor.js +16 -16
  4. package/{src → build}/components/core/PhotoViewer.js +30 -29
  5. package/{src → build}/components/core/Viewer.js +21 -20
  6. package/build/components/core/index.js +10 -0
  7. package/build/components/index.js +11 -0
  8. package/build/components/index_photoviewer.js +6 -0
  9. package/{src → build}/components/layout/BottomDrawer.js +4 -4
  10. package/{src → build}/components/layout/CorneredGrid.js +1 -1
  11. package/{src → build}/components/layout/Mini.js +5 -4
  12. package/{src → build}/components/layout/Tabs.js +1 -1
  13. package/build/components/layout/index.js +9 -0
  14. package/{src → build}/components/menus/LocationPrecisionDoc.js +4 -6
  15. package/{src → build}/components/menus/MapBackground.js +4 -6
  16. package/{src → build}/components/menus/MapFilters.js +16 -21
  17. package/{src → build}/components/menus/MapLayers.js +20 -24
  18. package/{src → build}/components/menus/MapLegend.js +3 -4
  19. package/{src → build}/components/menus/MiniPictureLegend.js +3 -4
  20. package/{src → build}/components/menus/PictureLegend.js +10 -15
  21. package/{src → build}/components/menus/PictureMetadata.js +12 -19
  22. package/{src → build}/components/menus/PlayerOptions.js +5 -7
  23. package/{src → build}/components/menus/QualityScoreDoc.js +3 -4
  24. package/{src → build}/components/menus/ReportForm.js +8 -9
  25. package/{src → build}/components/menus/SemanticsDoc.js +3 -4
  26. package/{src → build}/components/menus/SemanticsDownload.js +3 -3
  27. package/{src → build}/components/menus/SemanticsFilters.js +7 -8
  28. package/{src → build}/components/menus/SemanticsList.js +11 -18
  29. package/{src → build}/components/menus/SemanticsMetadata.js +8 -11
  30. package/{src → build}/components/menus/Share.js +6 -7
  31. package/build/components/menus/index.js +22 -0
  32. package/build/components/menus/index_photoviewer.js +11 -0
  33. package/{src → build}/components/styles.js +0 -2
  34. package/{src → build}/components/ui/AnnotationsSwitch.js +6 -8
  35. package/{src → build}/components/ui/Button.js +1 -1
  36. package/{src → build}/components/ui/ButtonGroup.js +2 -1
  37. package/{src → build}/components/ui/CopyButton.js +4 -6
  38. package/{src → build}/components/ui/Grade.js +5 -5
  39. package/{src → build}/components/ui/GradeFilter.js +3 -3
  40. package/{src → build}/components/ui/IconSwitch.js +1 -1
  41. package/{src → build}/components/ui/LinkButton.js +1 -1
  42. package/{src → build}/components/ui/ListGroup.js +3 -3
  43. package/{src → build}/components/ui/ListItem.js +1 -1
  44. package/{src → build}/components/ui/Loader.js +8 -7
  45. package/{src → build}/components/ui/Map.js +38 -26
  46. package/{src → build}/components/ui/MapMore.js +7 -7
  47. package/{src → build}/components/ui/Photo.js +29 -27
  48. package/{src → build}/components/ui/Popup.js +4 -4
  49. package/{src → build}/components/ui/QualityScore.js +4 -4
  50. package/{src → build}/components/ui/SearchBar.js +6 -7
  51. package/{src → build}/components/ui/SemanticsEditor.js +14 -15
  52. package/{src → build}/components/ui/SemanticsTable.js +4 -5
  53. package/{src → build}/components/ui/Switch.js +1 -1
  54. package/{src → build}/components/ui/TogglableGroup.js +4 -4
  55. package/build/components/ui/index.js +29 -0
  56. package/build/components/ui/index_photoviewer.js +21 -0
  57. package/{src → build}/components/ui/widgets/CopyCoordinates.js +5 -5
  58. package/{src → build}/components/ui/widgets/GeoSearch.js +10 -10
  59. package/{src → build}/components/ui/widgets/Legend.js +9 -8
  60. package/{src → build}/components/ui/widgets/LevelSelect.js +9 -7
  61. package/{src → build}/components/ui/widgets/MapFiltersButton.js +5 -5
  62. package/{src → build}/components/ui/widgets/MapLayersButton.js +5 -5
  63. package/{src → build}/components/ui/widgets/OSMEditors.js +8 -8
  64. package/{src → build}/components/ui/widgets/PictureLegendActions.js +4 -4
  65. package/{src → build}/components/ui/widgets/Player.js +6 -7
  66. package/{src → build}/components/ui/widgets/SemanticsFiltersButton.js +6 -7
  67. package/{src → build}/components/ui/widgets/Zoom.js +6 -6
  68. package/build/components/ui/widgets/index.js +16 -0
  69. package/build/components/ui/widgets/index_photoviewer.js +7 -0
  70. package/build/editor.html +94 -10
  71. package/{src → build}/img/arrow_triangle.svg +0 -1
  72. package/{src → build}/img/arrow_turn.svg +0 -1
  73. package/build/index.html +111 -1
  74. package/build/index.js +6 -95
  75. package/build/index_photoviewer.js +4 -0
  76. package/build/map.html +97 -1
  77. package/build/package.json +141 -0
  78. package/build/photo.html +85 -1
  79. package/build/servers.js +3 -4
  80. package/{src → build}/translations/pt.json +7 -2
  81. package/{src → build}/utils/API.js +33 -33
  82. package/{src → build}/utils/InitParameters.js +11 -9
  83. package/{src → build}/utils/MapStyleComposer.js +39 -37
  84. package/{src → build}/utils/PhotoAdapter.js +1 -0
  85. package/{src → build}/utils/PresetsManager.js +4 -4
  86. package/{src → build}/utils/SemanticsMapProtocol.js +3 -4
  87. package/{src → build}/utils/URLHandler.js +16 -14
  88. package/{src → build}/utils/geocoder.js +5 -5
  89. package/{src → build}/utils/i18n.js +21 -20
  90. package/build/utils/index.js +17 -0
  91. package/build/utils/index_photoviewer.js +14 -0
  92. package/{src → build}/utils/indoor.js +9 -5
  93. package/{src → build}/utils/map.js +15 -11
  94. package/{src → build}/utils/picture.js +22 -17
  95. package/{src → build}/utils/semantics.js +9 -5
  96. package/{src → build}/utils/utils.js +8 -4
  97. package/{src → build}/utils/widgets.js +2 -2
  98. package/build/viewer.html +120 -35
  99. package/build/viewer_indoor.html +90 -8
  100. package/build/widgets.html +410 -1
  101. package/package.json +81 -204
  102. package/.dockerignore +0 -7
  103. package/.gitlab-ci.yml +0 -78
  104. package/CHANGELOG.md +0 -853
  105. package/CODE_OF_CONDUCT.md +0 -134
  106. package/Dockerfile +0 -14
  107. package/build/index.css +0 -36
  108. package/build/index.css.map +0 -1
  109. package/build/index.js.map +0 -1
  110. package/build/photoviewer.css +0 -36
  111. package/build/photoviewer.css.map +0 -1
  112. package/build/photoviewer.js +0 -86
  113. package/build/photoviewer.js.map +0 -1
  114. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff +0 -0
  115. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff2 +0 -0
  116. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff +0 -0
  117. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff2 +0 -0
  118. package/config/env.js +0 -104
  119. package/config/getHttpsConfig.js +0 -69
  120. package/config/getPackageJson.js +0 -25
  121. package/config/jest/babelTransform.js +0 -29
  122. package/config/jest/cssTransform.js +0 -14
  123. package/config/jest/fileTransform.js +0 -40
  124. package/config/jest/mocks.js +0 -230
  125. package/config/modules.js +0 -134
  126. package/config/paths.js +0 -76
  127. package/config/pnpTs.js +0 -35
  128. package/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
  129. package/config/webpack.config.js +0 -825
  130. package/config/webpackDevServer.config.js +0 -131
  131. package/docs/03_URL_settings.md +0 -218
  132. package/docs/05_Compatibility.md +0 -83
  133. package/docs/09_Develop.md +0 -141
  134. package/docs/90_Releases.md +0 -27
  135. package/docs/images/class_diagram.drawio +0 -144
  136. package/docs/images/class_diagram.jpg +0 -0
  137. package/docs/images/comparative_3drender.jpg +0 -0
  138. package/docs/images/indoor_level.png +0 -0
  139. package/docs/images/screenshot.jpg +0 -0
  140. package/docs/index.md +0 -159
  141. package/docs/reference/components/core/Basic.md +0 -211
  142. package/docs/reference/components/core/CoverageMap.md +0 -220
  143. package/docs/reference/components/core/Editor.md +0 -252
  144. package/docs/reference/components/core/PhotoViewer.md +0 -320
  145. package/docs/reference/components/core/Viewer.md +0 -398
  146. package/docs/reference/components/layout/BottomDrawer.md +0 -35
  147. package/docs/reference/components/layout/CorneredGrid.md +0 -29
  148. package/docs/reference/components/layout/Mini.md +0 -45
  149. package/docs/reference/components/layout/Tabs.md +0 -46
  150. package/docs/reference/components/menus/LocationPrecisionDoc.md +0 -15
  151. package/docs/reference/components/menus/MapBackground.md +0 -32
  152. package/docs/reference/components/menus/MapFilters.md +0 -37
  153. package/docs/reference/components/menus/MapLayers.md +0 -15
  154. package/docs/reference/components/menus/MapLegend.md +0 -32
  155. package/docs/reference/components/menus/MiniPictureLegend.md +0 -15
  156. package/docs/reference/components/menus/PictureLegend.md +0 -45
  157. package/docs/reference/components/menus/PictureMetadata.md +0 -32
  158. package/docs/reference/components/menus/PlayerOptions.md +0 -15
  159. package/docs/reference/components/menus/QualityScoreDoc.md +0 -15
  160. package/docs/reference/components/menus/ReportForm.md +0 -15
  161. package/docs/reference/components/menus/SemanticsDoc.md +0 -15
  162. package/docs/reference/components/menus/SemanticsDownload.md +0 -15
  163. package/docs/reference/components/menus/SemanticsFilters.md +0 -33
  164. package/docs/reference/components/menus/SemanticsList.md +0 -97
  165. package/docs/reference/components/menus/SemanticsMetadata.md +0 -15
  166. package/docs/reference/components/menus/ShareMenu.md +0 -32
  167. package/docs/reference/components/ui/AnnotationsSwitch.md +0 -32
  168. package/docs/reference/components/ui/Button.md +0 -40
  169. package/docs/reference/components/ui/ButtonGroup.md +0 -36
  170. package/docs/reference/components/ui/CopyButton.md +0 -41
  171. package/docs/reference/components/ui/Grade.md +0 -32
  172. package/docs/reference/components/ui/GradeFilter.md +0 -42
  173. package/docs/reference/components/ui/IconSwitch.md +0 -53
  174. package/docs/reference/components/ui/LinkButton.md +0 -45
  175. package/docs/reference/components/ui/ListGroup.md +0 -22
  176. package/docs/reference/components/ui/ListItem.md +0 -39
  177. package/docs/reference/components/ui/Loader.md +0 -56
  178. package/docs/reference/components/ui/Map.md +0 -150
  179. package/docs/reference/components/ui/MapMore.md +0 -150
  180. package/docs/reference/components/ui/Photo.md +0 -495
  181. package/docs/reference/components/ui/Popup.md +0 -56
  182. package/docs/reference/components/ui/ProgressBar.md +0 -32
  183. package/docs/reference/components/ui/QualityScore.md +0 -45
  184. package/docs/reference/components/ui/SearchBar.md +0 -63
  185. package/docs/reference/components/ui/SemanticsEditor.md +0 -113
  186. package/docs/reference/components/ui/SemanticsTable.md +0 -32
  187. package/docs/reference/components/ui/Switch.md +0 -49
  188. package/docs/reference/components/ui/TogglableGroup.md +0 -39
  189. package/docs/reference/components/ui/widgets/CopyCoordinates.md +0 -32
  190. package/docs/reference/components/ui/widgets/GeoSearch.md +0 -36
  191. package/docs/reference/components/ui/widgets/Legend.md +0 -58
  192. package/docs/reference/components/ui/widgets/LevelSelect.md +0 -16
  193. package/docs/reference/components/ui/widgets/MapFiltersButton.md +0 -37
  194. package/docs/reference/components/ui/widgets/MapLayersButton.md +0 -15
  195. package/docs/reference/components/ui/widgets/OSMEditors.md +0 -15
  196. package/docs/reference/components/ui/widgets/PictureLegendActions.md +0 -32
  197. package/docs/reference/components/ui/widgets/Player.md +0 -34
  198. package/docs/reference/components/ui/widgets/SemanticsFiltersButton.md +0 -15
  199. package/docs/reference/components/ui/widgets/Zoom.md +0 -15
  200. package/docs/reference/utils/API.md +0 -389
  201. package/docs/reference/utils/InitParameters.md +0 -68
  202. package/docs/reference/utils/MapStyleComposer.md +0 -408
  203. package/docs/reference/utils/PanoraMapProtocol.md +0 -28
  204. package/docs/reference/utils/PresetsManager.md +0 -43
  205. package/docs/reference/utils/SemanticsMapProtocol.md +0 -43
  206. package/docs/reference/utils/URLHandler.md +0 -114
  207. package/docs/reference.md +0 -99
  208. package/docs/shortcuts.md +0 -11
  209. package/docs/tutorials/aerial_imagery.md +0 -21
  210. package/docs/tutorials/authentication.md +0 -10
  211. package/docs/tutorials/custom_widgets.md +0 -59
  212. package/docs/tutorials/indoor_maps.md +0 -50
  213. package/docs/tutorials/map_style.md +0 -83
  214. package/docs/tutorials/migrate_v4.md +0 -153
  215. package/docs/tutorials/migrate_v5.md +0 -103
  216. package/docs/tutorials/semantics_overlays.md +0 -74
  217. package/docs/tutorials/synced_coverage.md +0 -43
  218. package/mkdocs.yml +0 -131
  219. package/public/editor.html +0 -53
  220. package/public/index.html +0 -70
  221. package/public/map.html +0 -55
  222. package/public/photo.html +0 -43
  223. package/public/servers.js +0 -15
  224. package/public/viewer.html +0 -79
  225. package/public/viewer_indoor.html +0 -48
  226. package/public/widgets.html +0 -366
  227. package/scripts/build.js +0 -217
  228. package/scripts/doc.js +0 -79
  229. package/scripts/start.js +0 -172
  230. package/scripts/test.js +0 -52
  231. package/src/components/core/index.js +0 -12
  232. package/src/components/index.js +0 -13
  233. package/src/components/index_photoviewer.js +0 -8
  234. package/src/components/layout/index.js +0 -9
  235. package/src/components/menus/index.js +0 -22
  236. package/src/components/menus/index_photoviewer.js +0 -13
  237. package/src/components/ui/index.js +0 -29
  238. package/src/components/ui/index_photoviewer.js +0 -23
  239. package/src/components/ui/widgets/index.js +0 -16
  240. package/src/components/ui/widgets/index_photoviewer.js +0 -9
  241. package/src/index.js +0 -8
  242. package/src/index_photoviewer.js +0 -6
  243. package/src/utils/index.js +0 -17
  244. package/src/utils/index_photoviewer.js +0 -16
  245. package/tests/components/core/Basic.test.js +0 -168
  246. package/tests/components/core/BasicMock.js +0 -25
  247. package/tests/components/core/CoverageMap.test.js +0 -20
  248. package/tests/components/core/Editor.test.js +0 -20
  249. package/tests/components/core/PhotoViewer.test.js +0 -57
  250. package/tests/components/core/Viewer.test.js +0 -85
  251. package/tests/components/core/__snapshots__/PhotoViewer.test.js.snap +0 -96
  252. package/tests/components/core/__snapshots__/Viewer.test.js.snap +0 -188
  253. package/tests/components/ui/CopyButton.test.js +0 -52
  254. package/tests/components/ui/Loader.test.js +0 -55
  255. package/tests/components/ui/Map.test.js +0 -145
  256. package/tests/components/ui/Photo.test.js +0 -437
  257. package/tests/components/ui/Popup.test.js +0 -26
  258. package/tests/components/ui/QualityScore.test.js +0 -18
  259. package/tests/components/ui/SearchBar.test.js +0 -110
  260. package/tests/components/ui/__snapshots__/CopyButton.test.js.snap +0 -33
  261. package/tests/components/ui/__snapshots__/Loader.test.js.snap +0 -56
  262. package/tests/components/ui/__snapshots__/Map.test.js.snap +0 -16
  263. package/tests/components/ui/__snapshots__/Photo.test.js.snap +0 -263
  264. package/tests/components/ui/__snapshots__/Popup.test.js.snap +0 -29
  265. package/tests/components/ui/__snapshots__/QualityScore.test.js.snap +0 -11
  266. package/tests/components/ui/__snapshots__/SearchBar.test.js.snap +0 -65
  267. package/tests/data/Map_geocoder_ban.json +0 -36
  268. package/tests/data/Map_geocoder_nominatim.json +0 -41
  269. package/tests/data/Viewer_pictures_1.json +0 -148
  270. package/tests/setupTests.js +0 -5
  271. package/tests/utils/API.test.js +0 -752
  272. package/tests/utils/InitParameters.test.js +0 -599
  273. package/tests/utils/MapStyleComposer.test.js +0 -697
  274. package/tests/utils/PresetsManager.test.js +0 -123
  275. package/tests/utils/URLHandler.test.js +0 -587
  276. package/tests/utils/__snapshots__/API.test.js.snap +0 -40
  277. package/tests/utils/__snapshots__/MapStyleComposer.test.js.snap +0 -767
  278. package/tests/utils/__snapshots__/URLHandler.test.js.snap +0 -21
  279. package/tests/utils/__snapshots__/geocoder.test.js.snap +0 -37
  280. package/tests/utils/__snapshots__/map.test.js.snap +0 -1249
  281. package/tests/utils/__snapshots__/picture.test.js.snap +0 -327
  282. package/tests/utils/__snapshots__/widgets.test.js.snap +0 -19
  283. package/tests/utils/geocoder.test.js +0 -37
  284. package/tests/utils/i18n.test.js +0 -111
  285. package/tests/utils/map.test.js +0 -200
  286. package/tests/utils/picture.test.js +0 -745
  287. package/tests/utils/semantics.test.js +0 -174
  288. package/tests/utils/utils.test.js +0 -358
  289. package/tests/utils/widgets.test.js +0 -31
  290. /package/{src → build}/components/core/Basic.css +0 -0
  291. /package/{src → build}/components/core/CoverageMap.css +0 -0
  292. /package/{src → build}/components/core/Editor.css +0 -0
  293. /package/{src → build}/components/core/PhotoViewer.css +0 -0
  294. /package/{src → build}/components/core/Viewer.css +0 -0
  295. /package/{src → build}/components/ui/ButtonGroup.css +0 -0
  296. /package/{src → build}/components/ui/Map.css +0 -0
  297. /package/{src → build}/components/ui/Photo.css +0 -0
  298. /package/{src → build}/components/ui/ProgressBar.js +0 -0
  299. /package/{src → build}/components/ui/widgets/GeoSearch.css +0 -0
  300. /package/{src → build}/components/ui/widgets/LevelSelect.css +0 -0
  301. /package/{src → build}/components/ui/widgets/Player.css +0 -0
  302. /package/{public → build}/favicon.ico +0 -0
  303. /package/{src → build}/img/arrow_360.svg +0 -0
  304. /package/{src → build}/img/arrow_flat.svg +0 -0
  305. /package/{src → build}/img/bg_aerial.jpg +0 -0
  306. /package/{src → build}/img/bg_streets.jpg +0 -0
  307. /package/{src → build}/img/loader_base.jpg +0 -0
  308. /package/{src → build}/img/logo_dead.svg +0 -0
  309. /package/{src → build}/img/marker.svg +0 -0
  310. /package/{src → build}/img/marker_blue.svg +0 -0
  311. /package/{src → build}/img/osm.svg +0 -0
  312. /package/{src → build}/img/panoramax.svg +0 -0
  313. /package/{src → build}/img/switch_big.svg +0 -0
  314. /package/{src → build}/img/switch_mini.svg +0 -0
  315. /package/{src → build}/img/wd.svg +0 -0
  316. /package/{src → build}/translations/ar.json +0 -0
  317. /package/{src → build}/translations/be.json +0 -0
  318. /package/{src → build}/translations/br.json +0 -0
  319. /package/{src → build}/translations/cy.json +0 -0
  320. /package/{src → build}/translations/da.json +0 -0
  321. /package/{src → build}/translations/de.json +0 -0
  322. /package/{src → build}/translations/en.json +0 -0
  323. /package/{src → build}/translations/eo.json +0 -0
  324. /package/{src → build}/translations/es.json +0 -0
  325. /package/{src → build}/translations/fi.json +0 -0
  326. /package/{src → build}/translations/fr.json +0 -0
  327. /package/{src → build}/translations/hu.json +0 -0
  328. /package/{src → build}/translations/it.json +0 -0
  329. /package/{src → build}/translations/ja.json +0 -0
  330. /package/{src → build}/translations/ko.json +0 -0
  331. /package/{src → build}/translations/nl.json +0 -0
  332. /package/{src → build}/translations/nn.json +0 -0
  333. /package/{src → build}/translations/pl.json +0 -0
  334. /package/{src → build}/translations/pt_BR.json +0 -0
  335. /package/{src → build}/translations/sv.json +0 -0
  336. /package/{src → build}/translations/ti.json +0 -0
  337. /package/{src → build}/translations/tr.json +0 -0
  338. /package/{src → build}/translations/uk.json +0 -0
  339. /package/{src → build}/translations/zh_Hant.json +0 -0
  340. /package/{src → build}/utils/PanoraMapProtocol.js +0 -0
  341. /package/{src → build}/utils/services.js +0 -0
@@ -0,0 +1,4 @@
1
+ // Lightweight export for PhotoViewer
2
+ export * as components from "./components/index_photoviewer.js";
3
+ export * as utils from "./utils/index_photoviewer.js";
4
+ export {default as PhotoViewer} from "./components/core/PhotoViewer.js";
package/build/map.html CHANGED
@@ -1 +1,97 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><title>Panoramax Coverage Map</title><style>#coverage{position:relative;width:95%;margin:2.5%;height:400px}#coverage.fullpage{position:fixed;top:0;bottom:0;left:0;right:0;height:unset;width:unset;margin:0}</style><script defer="defer" src="index.js"></script><link href="index.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><pnx-coverage-map id="coverage" class="fullpage"></pnx-coverage-map><script src="./servers.js"></script><script>var coverage=document.getElementById("coverage");coverage.setAttribute("endpoint",server),coverage.addEventListener("ready",(()=>{coverage.map.on("sequence-hover",(e=>{console.log("Hovered sequence",e.seqId)})),coverage.addEventListener("select",(e=>{console.log("Selected sequence",e.detail.seqId,"picture",e.detail.picId)}))}),{once:!0})</script></body></html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
6
+ <title>Panoramax Coverage Map</title>
7
+ <style>
8
+ #coverage {
9
+ position: relative;
10
+ width: 95%;
11
+ margin: 2.5%;
12
+ height: 400px;
13
+ }
14
+ #coverage.fullpage {
15
+ position: fixed;
16
+ top: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ right: 0;
20
+ height: unset;
21
+ width: unset;
22
+ margin: 0;
23
+ }
24
+ </style>
25
+
26
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@5.21.1/dist/maplibre-gl.css" />
27
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core@5.14.1/index.css" />
28
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/virtual-tour-plugin@5.14.1/index.css" />
29
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/gallery-plugin@5.14.1/index.css" />
30
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/markers-plugin@5.14.1/index.css" />
31
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/atkinson-hyperlegible-next/index.css" />
32
+ </head>
33
+ <body>
34
+ <script type="importmap">
35
+ {
36
+ "imports": {
37
+ "@fortawesome/fontawesome-svg-core": "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-svg-core@6.7.2/index.mjs",
38
+ "@fortawesome/free-regular-svg-icons": "https://cdn.jsdelivr.net/npm/@fortawesome/free-regular-svg-icons@6.7.2/index.mjs",
39
+ "@fortawesome/free-solid-svg-icons": "https://cdn.jsdelivr.net/npm/@fortawesome/free-solid-svg-icons@6.7.2/index.mjs",
40
+ "@maplibre/vt-pbf": "https://cdn.jsdelivr.net/npm/@maplibre/vt-pbf@4.3.0/dist/index.es.js",
41
+ "@mapbox/vector-tile": "https://cdn.jsdelivr.net/npm/@mapbox/vector-tile@2.0.4/index.js",
42
+ "@photo-sphere-viewer/core": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core@5.14.1/index.module.js",
43
+ "@photo-sphere-viewer/equirectangular-tiles-adapter": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/equirectangular-tiles-adapter@5.14.1/index.module.js",
44
+ "@photo-sphere-viewer/gallery-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/gallery-plugin@5.14.1/index.module.js",
45
+ "@photo-sphere-viewer/markers-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/markers-plugin@5.14.1/index.module.js",
46
+ "@photo-sphere-viewer/compass-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/compass-plugin@5.14.1/index.module.js",
47
+ "@photo-sphere-viewer/virtual-tour-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/virtual-tour-plugin@5.14.1/index.module.js",
48
+ "geojson-vt": "https://cdn.jsdelivr.net/npm/geojson-vt@4.0.2/src/index.js",
49
+ "iconify-icon": "https://cdn.jsdelivr.net/npm/iconify-icon@3.0.2/dist/iconify-icon.mjs",
50
+ "json5": "https://cdn.jsdelivr.net/npm/json5@2.2.3/dist/index.min.mjs",
51
+ "lit": "https://cdn.jsdelivr.net/npm/lit@3.3.2/index.js",
52
+ "lit/": "https://cdn.jsdelivr.net/npm/lit@3.3.2/",
53
+ "lit-html": "https://cdn.jsdelivr.net/npm/lit-html@3.3.2/lit-html.js",
54
+ "lit-html/": "https://cdn.jsdelivr.net/npm/lit-html@3.3.2/",
55
+ "lit-element/": "https://cdn.jsdelivr.net/npm/lit-element@4.2.2/",
56
+ "maplibre-gl": "https://cdn.jsdelivr.net/npm/maplibre-gl@5.21.1/dist/maplibre-gl.js",
57
+ "pmtiles": "https://cdn.jsdelivr.net/npm/pmtiles@4.4.0/dist/esm/index.js",
58
+ "query-selector-shadow-dom": "https://cdn.jsdelivr.net/npm/query-selector-shadow-dom@1.0.0/dist/querySelectorShadowDom.js",
59
+ "@panoramax/web-viewer": "./src/index.js",
60
+ "@lit/reactive-element": "https://cdn.jsdelivr.net/npm/@lit/reactive-element@2.1.2/reactive-element.js",
61
+ "@mapbox/point-geometry": "https://cdn.jsdelivr.net/npm/@mapbox/point-geometry@1.1.0/index.js",
62
+ "fflate": "https://cdn.jsdelivr.net/npm/fflate@0.8.2/esm/browser.js",
63
+ "pbf": "https://cdn.jsdelivr.net/npm/pbf@4.0.1/index.js",
64
+ "three": "https://cdn.jsdelivr.net/npm/three@0.179.1/build/three.module.js"
65
+ }
66
+ }
67
+ </script>
68
+ <noscript>
69
+ You need to enable JavaScript to run this app.
70
+ </noscript>
71
+
72
+ <pnx-coverage-map
73
+ id="coverage"
74
+ class="fullpage"
75
+ ></pnx-coverage-map>
76
+
77
+ <script type="module" src="./index.js"></script>
78
+ <script src="./servers.js"></script>
79
+ <script>
80
+ // Retrieve component from DOM
81
+ var coverage = document.getElementById("coverage");
82
+ coverage.setAttribute("endpoint", server);
83
+
84
+ coverage.addEventListener("ready", () => {
85
+ // Listen to sequence hovered on map
86
+ coverage.map.on("sequence-hover", e => {
87
+ console.log("Hovered sequence", e.seqId);
88
+ });
89
+
90
+ // Listen to user clicks on map
91
+ coverage.addEventListener("select", e => {
92
+ console.log("Selected sequence", e.detail.seqId, "picture", e.detail.picId);
93
+ });
94
+ }, {once: true});
95
+ </script>
96
+ </body>
97
+ </html>
@@ -0,0 +1,141 @@
1
+ {
2
+ "name": "@panoramax/web-viewer",
3
+ "version": "4.4.0",
4
+ "description": "Panoramax web viewer for geolocated pictures",
5
+ "main": "./build/index.js",
6
+ "type": "module",
7
+ "files": [
8
+ "build"
9
+ ],
10
+ "exports": {
11
+ ".": {
12
+ "import": "./build/index.js"
13
+ }
14
+ },
15
+ "author": "Panoramax team",
16
+ "scripts": {
17
+ "start": "web-dev-server --config config/web-dev-server.config.mjs",
18
+ "build": "node scripts/build.js",
19
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
20
+ "lint": "npx eslint --fix src/",
21
+ "doc": "node scripts/doc.js",
22
+ "trypublish": "npm publish || true"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "https://gitlab.com/panoramax/clients/web-viewer"
27
+ },
28
+ "homepage": ".",
29
+ "keywords": [
30
+ "library",
31
+ "panoramax",
32
+ "pictures",
33
+ "geolocated"
34
+ ],
35
+ "publishConfig": {
36
+ "access": "public"
37
+ },
38
+ "license": "MIT",
39
+ "devDependencies": {
40
+ "@eslint/js": "^9.39.4",
41
+ "@web/dev-server": "^0.4.6",
42
+ "@web/dev-server-rollup": "^0.6.4",
43
+ "eslint": "^9.39.4",
44
+ "eslint-plugin-import": "^2.32.0",
45
+ "eslint-plugin-jest": "^29.15.2",
46
+ "eslint-plugin-jsdoc": "^62.9.0",
47
+ "globals": "^17.5.0",
48
+ "identity-obj-proxy": "^3.0.0",
49
+ "jest": "^30.3.0",
50
+ "jest-environment-jsdom": "^30.3.0",
51
+ "jest-fixed-jsdom": "^0.0.11",
52
+ "jsdoc-to-markdown": "^9.1.1",
53
+ "rollup-plugin-postcss": "^4.0.2",
54
+ "whatwg-url": "^16.0.1"
55
+ },
56
+ "dependencies": {
57
+ "@fontsource/atkinson-hyperlegible-next": "^5.2.2",
58
+ "@fortawesome/fontawesome-svg-core": "^6.7.2",
59
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
60
+ "@fortawesome/free-solid-svg-icons": "^6.7.2",
61
+ "@maplibre/vt-pbf": "^4.0.3",
62
+ "@photo-sphere-viewer/core": "5.14.1",
63
+ "@photo-sphere-viewer/equirectangular-tiles-adapter": "5.14.1",
64
+ "@photo-sphere-viewer/gallery-plugin": "5.14.1",
65
+ "@photo-sphere-viewer/markers-plugin": "5.14.1",
66
+ "@photo-sphere-viewer/virtual-tour-plugin": "5.14.1",
67
+ "geojson-vt": "^4.0.2",
68
+ "iconify-icon": "^3.0.0",
69
+ "json5": "^2.2.3",
70
+ "lit": "^3.2.1",
71
+ "maplibre-gl": "^5.17.0",
72
+ "pmtiles": "^4.3.0",
73
+ "query-selector-shadow-dom": "^1.0.1"
74
+ },
75
+ "panoramax": {
76
+ "importcss": [
77
+ "maplibre-gl@5.21.1/dist/maplibre-gl.css",
78
+ "@photo-sphere-viewer/core@5.14.1/index.css",
79
+ "@photo-sphere-viewer/virtual-tour-plugin@5.14.1/index.css",
80
+ "@photo-sphere-viewer/gallery-plugin@5.14.1/index.css",
81
+ "@photo-sphere-viewer/markers-plugin@5.14.1/index.css",
82
+ "@fontsource/atkinson-hyperlegible-next/index.css"
83
+ ],
84
+ "importmap": {
85
+ "@fortawesome/fontawesome-svg-core": "@6.7.2/index.mjs",
86
+ "@fortawesome/free-regular-svg-icons": "@6.7.2/index.mjs",
87
+ "@fortawesome/free-solid-svg-icons": "@6.7.2/index.mjs",
88
+ "@maplibre/vt-pbf": "@4.3.0/dist/index.es.js",
89
+ "@mapbox/vector-tile": "@2.0.4/index.js",
90
+ "@photo-sphere-viewer/core": "@5.14.1/index.module.js",
91
+ "@photo-sphere-viewer/equirectangular-tiles-adapter": "@5.14.1/index.module.js",
92
+ "@photo-sphere-viewer/gallery-plugin": "@5.14.1/index.module.js",
93
+ "@photo-sphere-viewer/markers-plugin": "@5.14.1/index.module.js",
94
+ "@photo-sphere-viewer/compass-plugin": "@5.14.1/index.module.js",
95
+ "@photo-sphere-viewer/virtual-tour-plugin": "@5.14.1/index.module.js",
96
+ "geojson-vt": "@4.0.2/src/index.js",
97
+ "iconify-icon": "@3.0.2/dist/iconify-icon.mjs",
98
+ "json5": "@2.2.3/dist/index.min.mjs",
99
+ "lit": "@3.3.2/index.js",
100
+ "lit/": "@3.3.2/",
101
+ "lit-html": "@3.3.2/lit-html.js",
102
+ "lit-html/": "@3.3.2/",
103
+ "lit-element/": "@4.2.2/",
104
+ "maplibre-gl": "@5.21.1/dist/maplibre-gl.js",
105
+ "pmtiles": "@4.4.0/dist/esm/index.js",
106
+ "query-selector-shadow-dom": "@1.0.0/dist/querySelectorShadowDom.js",
107
+ "@panoramax/web-viewer": "./src/index.js",
108
+ "@lit/reactive-element": "@2.1.2/reactive-element.js",
109
+ "@mapbox/point-geometry": "@1.1.0/index.js",
110
+ "fflate": "@0.8.2/esm/browser.js",
111
+ "pbf": "@4.0.1/index.js",
112
+ "three": "@0.179.1/build/three.module.js"
113
+ }
114
+ },
115
+ "jest": {
116
+ "clearMocks": true,
117
+ "testPathIgnorePatterns": [
118
+ "<rootDir>/node_modules/",
119
+ "<rootDir>/build"
120
+ ],
121
+ "transform": {},
122
+ "testEnvironment": "jest-fixed-jsdom",
123
+ "testEnvironmentOptions": {
124
+ "resources": "usable",
125
+ "runScripts": "dangerously"
126
+ },
127
+ "globals": {
128
+ "window": {}
129
+ },
130
+ "modulePaths": [
131
+ "<rootDir>"
132
+ ],
133
+ "moduleNameMapper": {
134
+ "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/config/jest/fileMock.js",
135
+ "\\.css$": "identity-obj-proxy"
136
+ },
137
+ "setupFilesAfterEnv": [
138
+ "<rootDir>/config/jest/mocks.js"
139
+ ]
140
+ }
141
+ }
package/build/photo.html CHANGED
@@ -1 +1,85 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"/><title>Panoramax Photo Viewer</title><style>#viewer{position:relative;width:95%;margin:2.5%;height:400px}#viewer.fullpage{position:fixed;top:0;bottom:0;left:0;right:0;height:unset;width:unset;margin:0}</style><script defer="defer" src="index.js"></script><link href="index.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><pnx-photo-viewer id="viewer" class="fullpage" picture="329af5c6-4761-4a6d-9c1e-674fd6daa8b6"></pnx-photo-viewer><script src="./servers.js"></script><script>var viewer=document.getElementById("viewer");viewer.setAttribute("endpoint",server)</script></body></html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
6
+ <title>Panoramax Photo Viewer</title>
7
+ <style>
8
+ #viewer {
9
+ position: relative;
10
+ width: 95%;
11
+ margin: 2.5%;
12
+ height: 400px;
13
+ }
14
+ #viewer.fullpage {
15
+ position: fixed;
16
+ top: 0;
17
+ bottom: 0;
18
+ left: 0;
19
+ right: 0;
20
+ height: unset;
21
+ width: unset;
22
+ margin: 0;
23
+ }
24
+ </style>
25
+
26
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/maplibre-gl@5.21.1/dist/maplibre-gl.css" />
27
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core@5.14.1/index.css" />
28
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/virtual-tour-plugin@5.14.1/index.css" />
29
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/gallery-plugin@5.14.1/index.css" />
30
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/markers-plugin@5.14.1/index.css" />
31
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fontsource/atkinson-hyperlegible-next/index.css" />
32
+ </head>
33
+ <body>
34
+ <script type="importmap">
35
+ {
36
+ "imports": {
37
+ "@fortawesome/fontawesome-svg-core": "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-svg-core@6.7.2/index.mjs",
38
+ "@fortawesome/free-regular-svg-icons": "https://cdn.jsdelivr.net/npm/@fortawesome/free-regular-svg-icons@6.7.2/index.mjs",
39
+ "@fortawesome/free-solid-svg-icons": "https://cdn.jsdelivr.net/npm/@fortawesome/free-solid-svg-icons@6.7.2/index.mjs",
40
+ "@maplibre/vt-pbf": "https://cdn.jsdelivr.net/npm/@maplibre/vt-pbf@4.3.0/dist/index.es.js",
41
+ "@mapbox/vector-tile": "https://cdn.jsdelivr.net/npm/@mapbox/vector-tile@2.0.4/index.js",
42
+ "@photo-sphere-viewer/core": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core@5.14.1/index.module.js",
43
+ "@photo-sphere-viewer/equirectangular-tiles-adapter": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/equirectangular-tiles-adapter@5.14.1/index.module.js",
44
+ "@photo-sphere-viewer/gallery-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/gallery-plugin@5.14.1/index.module.js",
45
+ "@photo-sphere-viewer/markers-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/markers-plugin@5.14.1/index.module.js",
46
+ "@photo-sphere-viewer/compass-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/compass-plugin@5.14.1/index.module.js",
47
+ "@photo-sphere-viewer/virtual-tour-plugin": "https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/virtual-tour-plugin@5.14.1/index.module.js",
48
+ "geojson-vt": "https://cdn.jsdelivr.net/npm/geojson-vt@4.0.2/src/index.js",
49
+ "iconify-icon": "https://cdn.jsdelivr.net/npm/iconify-icon@3.0.2/dist/iconify-icon.mjs",
50
+ "json5": "https://cdn.jsdelivr.net/npm/json5@2.2.3/dist/index.min.mjs",
51
+ "lit": "https://cdn.jsdelivr.net/npm/lit@3.3.2/index.js",
52
+ "lit/": "https://cdn.jsdelivr.net/npm/lit@3.3.2/",
53
+ "lit-html": "https://cdn.jsdelivr.net/npm/lit-html@3.3.2/lit-html.js",
54
+ "lit-html/": "https://cdn.jsdelivr.net/npm/lit-html@3.3.2/",
55
+ "lit-element/": "https://cdn.jsdelivr.net/npm/lit-element@4.2.2/",
56
+ "maplibre-gl": "https://cdn.jsdelivr.net/npm/maplibre-gl@5.21.1/dist/maplibre-gl.js",
57
+ "pmtiles": "https://cdn.jsdelivr.net/npm/pmtiles@4.4.0/dist/esm/index.js",
58
+ "query-selector-shadow-dom": "https://cdn.jsdelivr.net/npm/query-selector-shadow-dom@1.0.0/dist/querySelectorShadowDom.js",
59
+ "@panoramax/web-viewer": "./src/index.js",
60
+ "@lit/reactive-element": "https://cdn.jsdelivr.net/npm/@lit/reactive-element@2.1.2/reactive-element.js",
61
+ "@mapbox/point-geometry": "https://cdn.jsdelivr.net/npm/@mapbox/point-geometry@1.1.0/index.js",
62
+ "fflate": "https://cdn.jsdelivr.net/npm/fflate@0.8.2/esm/browser.js",
63
+ "pbf": "https://cdn.jsdelivr.net/npm/pbf@4.0.1/index.js",
64
+ "three": "https://cdn.jsdelivr.net/npm/three@0.179.1/build/three.module.js"
65
+ }
66
+ }
67
+ </script>
68
+ <noscript>
69
+ You need to enable JavaScript to run this app.
70
+ </noscript>
71
+
72
+ <pnx-photo-viewer
73
+ id="viewer"
74
+ class="fullpage"
75
+ picture="329af5c6-4761-4a6d-9c1e-674fd6daa8b6"
76
+ ></pnx-photo-viewer>
77
+
78
+ <script type="module" src="./index_photoviewer.js"></script>
79
+ <script src="./servers.js"></script>
80
+ <script>
81
+ var viewer = document.getElementById("viewer");
82
+ viewer.setAttribute("endpoint", server);
83
+ </script>
84
+ </body>
85
+ </html>
package/build/servers.js CHANGED
@@ -1,4 +1,4 @@
1
- var servers = {
1
+ let servers = {
2
2
  meta: "https://explore.panoramax.fr/api",
3
3
  ign: "https://panoramax.ign.fr/api",
4
4
  osmfr: "https://panoramax.openstreetmap.fr/api",
@@ -6,9 +6,8 @@ var servers = {
6
6
  dev: "https://dev.panoramax.xyz/api",
7
7
  cartocite: "https://panoramax.cartocite.fr/api",
8
8
  };
9
- var urlParams = new URLSearchParams(window.location.search);
10
- // eslint-disable-next-line no-unused-vars
11
- var server = servers[urlParams.get("server") || "meta"];
9
+ let urlParams = new URLSearchParams(window.location.search);
10
+ let server = servers[urlParams.get("server") || "meta"];
12
11
  if(!server) {
13
12
  console.error("Unrecognized server: "+urlParams.get("server"));
14
13
  server = servers.meta;
@@ -113,7 +113,7 @@
113
113
  "filter_user": "Utilizador",
114
114
  "filter_user_mypics": "Minhas imagens",
115
115
  "filter_picture": "Tipo de imagem",
116
- "filter_zoom_in": "Amplie o mapa para ver este filtro",
116
+ "filter_zoom_in": "Amplie o mapa para desbloquear",
117
117
  "picture_all": "Todas",
118
118
  "picture_flat": "Clássica",
119
119
  "picture_360": "360°",
@@ -274,7 +274,12 @@
274
274
  "visibility_logged-only": "Membros",
275
275
  "visibility_title_logged-only": "Somente pessoas com uma conta podem ver esta imagem",
276
276
  "visibility_owner-only": "Oculto",
277
- "visibility_title_owner-only": "Apenas você pode ver esta imagem"
277
+ "visibility_title_owner-only": "Apenas você pode ver esta imagem",
278
+ "filter_locked": "Filtro desativado",
279
+ "map_background_default": "Padrão",
280
+ "map_background_more": "Outros fundos…",
281
+ "filter_source_world": "Mundo inteiro",
282
+ "filter_source_local": "Este servidor"
278
283
  },
279
284
  "maplibre": {
280
285
  "GeolocateControl.LocationNotAvailable": "Localização não disponível",
@@ -1,4 +1,4 @@
1
- import { isNullId } from "./utils";
1
+ import { isNullId } from "./utils.js";
2
2
 
3
3
  /**
4
4
  * API contains various utility functions to communicate with Panoramax/STAC API
@@ -16,7 +16,7 @@ import { isNullId } from "./utils";
16
16
  export default class API extends EventTarget {
17
17
  constructor(endpoint, options = {}) {
18
18
  super();
19
-
19
+
20
20
  if(endpoint === null || endpoint === undefined || typeof endpoint !== "string") {
21
21
  const e = new Error("endpoint parameter is empty or not a valid string");
22
22
  this.dispatchEvent(new CustomEvent("broken", {detail: {error: e}}));
@@ -84,10 +84,10 @@ export default class API extends EventTarget {
84
84
  * @reject {string} Error message
85
85
  */
86
86
  onceReady() {
87
- if(this._isReady == -1) {
87
+ if(this._isReady === -1) {
88
88
  return Promise.reject("Viewer failed to communicate with API");
89
89
  }
90
- else if(this._isReady == 1) {
90
+ else if(this._isReady === 1) {
91
91
  return Promise.resolve("API is ready");
92
92
  }
93
93
  else {
@@ -101,7 +101,7 @@ export default class API extends EventTarget {
101
101
  * @returns {boolean} True if the API is ready, false otherwise.
102
102
  */
103
103
  isReady() {
104
- return this._isReady == 1;
104
+ return this._isReady === 1;
105
105
  }
106
106
 
107
107
  /**
@@ -233,7 +233,7 @@ export default class API extends EventTarget {
233
233
 
234
234
  supportedLinks.forEach(sl => {
235
235
  // Find link in landing
236
- const ll = landing.links.find(ll => ll.rel == sl.rel && ll.type == sl.type);
236
+ const ll = landing.links.find(ll => ll.rel === sl.rel && ll.type === sl.type);
237
237
 
238
238
  // No link found
239
239
  if(!ll) {
@@ -313,7 +313,7 @@ export default class API extends EventTarget {
313
313
  return (url) => {
314
314
  // As MapLibre will use this function for all its calls
315
315
  // We must make sure fetch options are sent only for
316
- // the STAC API calls, particularly the tiles endpoint
316
+ // The STAC API calls, particularly the tiles endpoint
317
317
  if(url.startsWith(this._endpoint)) {
318
318
  if(Object.keys(fetchOpts).length > 0) {
319
319
  return {
@@ -375,7 +375,7 @@ export default class API extends EventTarget {
375
375
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
376
376
  try {
377
377
  API.isIdValid(seqId);
378
- return fetch(
378
+ return await fetch(
379
379
  next || `${this._endpoints.collections}/${seqId}/items${limit ? "?limit="+limit : ""}`,
380
380
  this._getFetchOptions(true)
381
381
  )
@@ -392,7 +392,7 @@ export default class API extends EventTarget {
392
392
  });
393
393
  }
394
394
  catch(e) {
395
- return Promise.reject(e);
395
+ return await Promise.reject(e);
396
396
  }
397
397
  }
398
398
 
@@ -406,7 +406,7 @@ export default class API extends EventTarget {
406
406
  * @param {string} [seqId] The sequence ID to filter on (by default, no filter)
407
407
  * @returns {string} The corresponding URL
408
408
  */
409
- getPicturesAroundCoordinatesUrl(lat, lon, factor = 0.0005, limit, seqId) {
409
+ getPicturesAroundCoordinatesUrl(lat, lon, factor = 0.0005, limit = null, seqId = null) {
410
410
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
411
411
 
412
412
  if(isNaN(parseFloat(lat)) || isNaN(parseFloat(lon))) {
@@ -466,10 +466,10 @@ export default class API extends EventTarget {
466
466
 
467
467
  let visualFallback = null;
468
468
  for(let a of Object.values(picture.assets)) {
469
- if(a.roles.includes("thumbnail") && a.type == "image/jpeg" && API.isValidHttpUrl(a.href)) {
469
+ if(a.roles.includes("thumbnail") && a.type === "image/jpeg" && API.isValidHttpUrl(a.href)) {
470
470
  return this.cleanResourceURL(a.href);
471
471
  }
472
- else if(a.roles.includes("visual") && a.type == "image/jpeg" && API.isValidHttpUrl(a.href)) {
472
+ else if(a.roles.includes("visual") && a.type === "image/jpeg" && API.isValidHttpUrl(a.href)) {
473
473
  visualFallback = this.cleanResourceURL(a.href);
474
474
  }
475
475
  }
@@ -507,7 +507,7 @@ export default class API extends EventTarget {
507
507
  return fetch(url, this._getFetchOptions())
508
508
  .then(res => res.json())
509
509
  .then(res => {
510
- if(!Array.isArray(res.features) || res.features.length == 0) {
510
+ if(!Array.isArray(res.features) || res.features.length === 0) {
511
511
  return null;
512
512
  }
513
513
 
@@ -526,7 +526,7 @@ export default class API extends EventTarget {
526
526
  */
527
527
  getPictureThumbnailURL(picId, seqId) {
528
528
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
529
-
529
+
530
530
  if(!picId) { return Promise.resolve(null); }
531
531
 
532
532
  // Look for a dedicated endpoint in API
@@ -547,7 +547,7 @@ export default class API extends EventTarget {
547
547
  return fetch(`${this._endpoints.search}?ids=${picId}`, this._getFetchOptions())
548
548
  .then(res => res.json())
549
549
  .then(res => {
550
- if(!res || !Array.isArray(res.features) || res.features.length == 0) { return null; }
550
+ if(!res || !Array.isArray(res.features) || res.features.length === 0) { return null; }
551
551
  return this.findThumbnailInPictureFeature(res.features.pop());
552
552
  });
553
553
  }
@@ -561,7 +561,7 @@ export default class API extends EventTarget {
561
561
  */
562
562
  getRSSURL(bbox) {
563
563
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
564
-
564
+
565
565
  if(this._endpoints.rss) {
566
566
  let url = this._endpoints.rss;
567
567
  if(bbox) {
@@ -676,7 +676,7 @@ export default class API extends EventTarget {
676
676
  try {
677
677
  txt = JSON.parse(txt)["message"];
678
678
  }
679
- catch(e) {} // eslint-disable-line no-empty
679
+ catch(e) {}
680
680
  return Promise.reject(txt);
681
681
  }
682
682
  return res.json();
@@ -693,12 +693,12 @@ export default class API extends EventTarget {
693
693
  */
694
694
  sendPictureSemantics(picMeta, semanticsDiff) {
695
695
  // Fake send version
696
- // const newMeta = Object.assign({}, picMeta);
697
- // newMeta.properties.semantics = newMeta.properties.semantics.concat(semanticsDiff).filter(t => (
698
- // t.action != "delete"
696
+ // Const newMeta = Object.assign({}, picMeta);
697
+ // NewMeta.properties.semantics = newMeta.properties.semantics.concat(semanticsDiff).filter(t => (
698
+ // T.action != "delete"
699
699
  // && !semanticsDiff.find(t2 => t.key == t2.key && t.value == t2.value && t2.action == "delete")
700
700
  // ));
701
- // return Promise.resolve(newMeta);
701
+ // Return Promise.resolve(newMeta);
702
702
 
703
703
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
704
704
  if(!picMeta?.sequence?.id || !picMeta?.id) { throw new Error("Missing IDs from picture"); }
@@ -715,7 +715,7 @@ export default class API extends EventTarget {
715
715
  body: JSON.stringify({ semantics: semanticsDiff }),
716
716
  headers: { "Content-Type": "application/json" },
717
717
  };
718
-
718
+
719
719
  return fetch(picLink, opts)
720
720
  .then(async res => {
721
721
  if(res.status >= 400) {
@@ -723,7 +723,7 @@ export default class API extends EventTarget {
723
723
  try {
724
724
  txt = JSON.parse(txt)["message"];
725
725
  }
726
- catch(e) {} // eslint-disable-line no-empty
726
+ catch(e) {}
727
727
  return Promise.reject(txt);
728
728
  }
729
729
  return res.json();
@@ -741,7 +741,7 @@ export default class API extends EventTarget {
741
741
  */
742
742
  createPictureAnnotation(picMeta, shape, semanticsDiff) {
743
743
  // Fake send version
744
- // return Promise.resolve({
744
+ // Return Promise.resolve({
745
745
  // "id": "fe298d59-a9c6-4680-8e76-6efe82d97f48",
746
746
  // "semantics": semanticsDiff,
747
747
  // "shape": { "type": "Polygon", "coordinates": [[
@@ -771,7 +771,7 @@ export default class API extends EventTarget {
771
771
  }),
772
772
  headers: { "Content-Type": "application/json" },
773
773
  };
774
-
774
+
775
775
  return fetch(picLink, opts)
776
776
  .then(async res => {
777
777
  if(res.status >= 400) {
@@ -779,7 +779,7 @@ export default class API extends EventTarget {
779
779
  try {
780
780
  txt = JSON.parse(txt)["message"];
781
781
  }
782
- catch(e) {} // eslint-disable-line no-empty
782
+ catch(e) {}
783
783
  return Promise.reject(txt);
784
784
  }
785
785
  return res.json();
@@ -796,7 +796,7 @@ export default class API extends EventTarget {
796
796
  */
797
797
  editPictureAnnotation(annotationId, semanticsDiff) {
798
798
  // Fake send version
799
- // return Promise.resolve({
799
+ // Return Promise.resolve({
800
800
  // "id": annotationId,
801
801
  // "semantics": semanticsDiff,
802
802
  // "shape": {
@@ -814,7 +814,7 @@ export default class API extends EventTarget {
814
814
  body: JSON.stringify({ semantics: semanticsDiff }),
815
815
  headers: { "Content-Type": "application/json" },
816
816
  };
817
-
817
+
818
818
  return fetch(annotLink, opts)
819
819
  .then(async res => {
820
820
  if(res.status >= 400) {
@@ -822,7 +822,7 @@ export default class API extends EventTarget {
822
822
  try {
823
823
  txt = JSON.parse(txt)["message"];
824
824
  }
825
- catch(e) {} // eslint-disable-line no-empty
825
+ catch(e) {}
826
826
  return Promise.reject(txt);
827
827
  }
828
828
  return res.json();
@@ -838,8 +838,8 @@ export default class API extends EventTarget {
838
838
  */
839
839
  deletePictureAnnotation(annotationId) {
840
840
  // Fake send version
841
- // console.log("Delete", annotationId);
842
- // return Promise.resolve(true);
841
+ // Console.log("Delete", annotationId);
842
+ // Return Promise.resolve(true);
843
843
 
844
844
  if(!this.isReady()) { throw new Error("API is not ready to use"); }
845
845
  let annotLink = `${this._endpoint}/annotations/${annotationId}`;
@@ -848,7 +848,7 @@ export default class API extends EventTarget {
848
848
  ...this._getFetchOptions(),
849
849
  method: "DELETE",
850
850
  };
851
-
851
+
852
852
  return fetch(annotLink, opts)
853
853
  .then(async res => {
854
854
  if(res.status >= 400) {
@@ -856,7 +856,7 @@ export default class API extends EventTarget {
856
856
  try {
857
857
  txt = JSON.parse(txt)["message"];
858
858
  }
859
- catch(e) {} // eslint-disable-line no-empty
859
+ catch(e) {}
860
860
  return Promise.reject(txt);
861
861
  }
862
862
  return true;