@panoramax/web-viewer 3.2.3-develop-f219e404 → 3.2.3-develop-6257391e
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.
- package/.gitlab-ci.yml +3 -0
- package/CHANGELOG.md +19 -0
- package/CODE_OF_CONDUCT.md +1 -1
- package/README.md +1 -1
- package/build/editor.html +10 -1
- package/build/index.css +2 -2
- package/build/index.css.map +1 -1
- package/build/index.html +1 -1
- package/build/index.js +1682 -5
- package/build/index.js.map +1 -1
- package/build/map.html +1 -1
- package/build/viewer.html +10 -1
- package/build/widgets.html +1 -0
- package/config/jest/mocks.js +172 -0
- package/config/paths.js +1 -0
- package/config/webpack.config.js +26 -0
- package/docs/03_URL_settings.md +3 -11
- package/docs/05_Compatibility.md +59 -76
- package/docs/09_Develop.md +30 -11
- package/docs/90_Releases.md +2 -2
- package/docs/images/class_diagram.drawio +28 -28
- package/docs/images/class_diagram.jpg +0 -0
- package/docs/index.md +112 -0
- package/docs/reference/components/core/Basic.md +153 -0
- package/docs/reference/components/core/CoverageMap.md +160 -0
- package/docs/reference/components/core/Editor.md +172 -0
- package/docs/reference/components/core/Viewer.md +288 -0
- package/docs/reference/components/layout/CorneredGrid.md +29 -0
- package/docs/reference/components/layout/Mini.md +45 -0
- package/docs/reference/components/menus/MapBackground.md +32 -0
- package/docs/reference/components/menus/MapFilters.md +15 -0
- package/docs/reference/components/menus/MapLayers.md +15 -0
- package/docs/reference/components/menus/MapLegend.md +15 -0
- package/docs/reference/components/menus/PictureLegend.md +15 -0
- package/docs/reference/components/menus/PictureMetadata.md +15 -0
- package/docs/reference/components/menus/PlayerOptions.md +15 -0
- package/docs/reference/components/menus/QualityScoreDoc.md +15 -0
- package/docs/reference/components/menus/ReportForm.md +15 -0
- package/docs/reference/components/menus/ShareMenu.md +15 -0
- package/docs/reference/components/ui/Button.md +39 -0
- package/docs/reference/components/ui/ButtonGroup.md +36 -0
- package/docs/reference/components/ui/CopyButton.md +35 -0
- package/docs/reference/components/ui/Grade.md +32 -0
- package/docs/reference/components/ui/LinkButton.md +44 -0
- package/docs/reference/components/ui/Loader.md +54 -0
- package/docs/reference/components/ui/Map.md +214 -0
- package/docs/reference/components/ui/MapMore.md +233 -0
- package/docs/reference/components/ui/Photo.md +369 -0
- package/docs/reference/components/ui/Popup.md +56 -0
- package/docs/reference/components/ui/QualityScore.md +45 -0
- package/docs/reference/components/ui/SearchBar.md +63 -0
- package/docs/reference/components/ui/TogglableGroup.md +39 -0
- package/docs/reference/components/ui/widgets/GeoSearch.md +32 -0
- package/docs/reference/components/ui/widgets/Legend.md +32 -0
- package/docs/reference/components/ui/widgets/MapFiltersButton.md +33 -0
- package/docs/reference/components/ui/widgets/MapLayersButton.md +15 -0
- package/docs/reference/components/ui/widgets/Player.md +32 -0
- package/docs/reference/components/ui/widgets/Share.md +15 -0
- package/docs/reference/components/ui/widgets/Zoom.md +15 -0
- package/docs/reference/utils/API.md +311 -0
- package/docs/reference/utils/InitParameters.md +67 -0
- package/docs/reference/utils/URLHandler.md +102 -0
- package/docs/reference.md +73 -0
- package/docs/shortcuts.md +11 -0
- package/docs/tutorials/aerial_imagery.md +19 -0
- package/docs/tutorials/authentication.md +10 -0
- package/docs/tutorials/custom_widgets.md +64 -0
- package/docs/tutorials/map_style.md +27 -0
- package/docs/tutorials/migrate_v4.md +122 -0
- package/docs/tutorials/synced_coverage.md +42 -0
- package/mkdocs.yml +60 -5
- package/package.json +10 -7
- package/public/editor.html +21 -29
- package/public/index.html +3 -3
- package/public/map.html +19 -18
- package/public/viewer.html +18 -24
- package/public/widgets.html +265 -0
- package/scripts/doc.js +77 -0
- package/src/components/core/Basic.css +44 -0
- package/src/components/core/Basic.js +258 -0
- package/src/components/core/CoverageMap.css +9 -0
- package/src/components/core/CoverageMap.js +105 -0
- package/src/components/core/Editor.css +23 -0
- package/src/components/core/Editor.js +354 -0
- package/src/components/core/Viewer.css +109 -0
- package/src/components/core/Viewer.js +707 -0
- package/src/components/core/index.js +11 -0
- package/src/components/index.js +13 -0
- package/src/components/layout/CorneredGrid.js +109 -0
- package/src/components/layout/Mini.js +117 -0
- package/src/components/layout/index.js +7 -0
- package/src/components/menus/MapBackground.js +106 -0
- package/src/components/menus/MapFilters.js +386 -0
- package/src/components/menus/MapLayers.js +143 -0
- package/src/components/menus/MapLegend.js +54 -0
- package/src/components/menus/PictureLegend.js +103 -0
- package/src/components/menus/PictureMetadata.js +188 -0
- package/src/components/menus/PlayerOptions.js +96 -0
- package/src/components/menus/QualityScoreDoc.js +36 -0
- package/src/components/menus/ReportForm.js +133 -0
- package/src/components/menus/Share.js +228 -0
- package/src/components/menus/index.js +15 -0
- package/src/components/styles.js +365 -0
- package/src/components/ui/Button.js +75 -0
- package/src/components/ui/ButtonGroup.css +49 -0
- package/src/components/ui/ButtonGroup.js +68 -0
- package/src/components/ui/CopyButton.js +71 -0
- package/src/components/ui/Grade.js +54 -0
- package/src/components/ui/LinkButton.js +68 -0
- package/src/components/ui/Loader.js +188 -0
- package/src/components/{Map.css → ui/Map.css} +5 -17
- package/src/components/{Map.js → ui/Map.js} +114 -138
- package/src/components/ui/MapMore.js +324 -0
- package/src/components/{Photo.css → ui/Photo.css} +6 -6
- package/src/components/{Photo.js → ui/Photo.js} +279 -90
- package/src/components/ui/Popup.js +145 -0
- package/src/components/ui/QualityScore.js +152 -0
- package/src/components/ui/SearchBar.js +363 -0
- package/src/components/ui/TogglableGroup.js +162 -0
- package/src/components/ui/index.js +20 -0
- package/src/components/ui/widgets/GeoSearch.css +21 -0
- package/src/components/ui/widgets/GeoSearch.js +139 -0
- package/src/components/ui/widgets/Legend.js +51 -0
- package/src/components/ui/widgets/MapFiltersButton.js +104 -0
- package/src/components/ui/widgets/MapLayersButton.js +79 -0
- package/src/components/ui/widgets/Player.css +7 -0
- package/src/components/ui/widgets/Player.js +148 -0
- package/src/components/ui/widgets/Share.js +30 -0
- package/src/components/ui/widgets/Zoom.js +82 -0
- package/src/components/ui/widgets/index.js +12 -0
- package/src/img/panoramax.svg +13 -0
- package/src/img/switch_big.svg +20 -10
- package/src/index.js +6 -9
- package/src/translations/da.json +1 -1
- package/src/translations/de.json +1 -1
- package/src/translations/en.json +5 -3
- package/src/translations/eo.json +1 -1
- package/src/translations/es.json +1 -1
- package/src/translations/fr.json +5 -3
- package/src/translations/hu.json +1 -1
- package/src/translations/it.json +1 -1
- package/src/translations/ja.json +1 -1
- package/src/translations/nl.json +1 -1
- package/src/translations/pl.json +1 -1
- package/src/translations/sv.json +33 -3
- package/src/translations/zh_Hant.json +1 -1
- package/src/utils/API.js +74 -42
- package/src/utils/InitParameters.js +354 -0
- package/src/utils/URLHandler.js +364 -0
- package/src/utils/geocoder.js +116 -0
- package/src/utils/{I18n.js → i18n.js} +3 -1
- package/src/utils/index.js +11 -0
- package/src/utils/{Map.js → map.js} +216 -80
- package/src/utils/picture.js +433 -0
- package/src/utils/utils.js +315 -0
- package/src/utils/widgets.js +93 -0
- package/tests/components/ui/CopyButton.test.js +52 -0
- package/tests/components/ui/Loader.test.js +54 -0
- package/tests/components/{Map.test.js → ui/Map.test.js} +19 -61
- package/tests/components/{Photo.test.js → ui/Photo.test.js} +89 -57
- package/tests/components/ui/Popup.test.js +24 -0
- package/tests/components/ui/QualityScore.test.js +17 -0
- package/tests/components/ui/SearchBar.test.js +107 -0
- package/tests/components/ui/__snapshots__/CopyButton.test.js.snap +34 -0
- package/tests/components/ui/__snapshots__/Loader.test.js.snap +56 -0
- package/tests/components/{__snapshots__ → ui/__snapshots__}/Map.test.js.snap +11 -38
- package/tests/components/{__snapshots__ → ui/__snapshots__}/Photo.test.js.snap +57 -4
- package/tests/components/ui/__snapshots__/Popup.test.js.snap +29 -0
- package/tests/components/ui/__snapshots__/QualityScore.test.js.snap +11 -0
- package/tests/components/ui/__snapshots__/SearchBar.test.js.snap +65 -0
- package/tests/utils/API.test.js +1 -14
- package/tests/utils/InitParameters.test.js +485 -0
- package/tests/utils/URLHandler.test.js +350 -0
- package/tests/utils/__snapshots__/URLHandler.test.js.snap +21 -0
- package/tests/utils/__snapshots__/picture.test.js.snap +315 -0
- package/tests/utils/__snapshots__/widgets.test.js.snap +19 -0
- package/tests/utils/geocoder.test.js +37 -0
- package/tests/utils/{I18n.test.js → i18n.test.js} +1 -1
- package/tests/utils/map.test.js +67 -0
- package/tests/utils/picture.test.js +745 -0
- package/tests/utils/utils.test.js +288 -0
- package/tests/utils/widgets.test.js +90 -0
- package/docs/01_Start.md +0 -149
- package/docs/02_Usage.md +0 -831
- package/docs/04_Advanced_examples.md +0 -216
- package/src/Editor.css +0 -37
- package/src/Editor.js +0 -361
- package/src/StandaloneMap.js +0 -114
- package/src/Viewer.css +0 -203
- package/src/Viewer.js +0 -1246
- package/src/components/CoreView.css +0 -70
- package/src/components/CoreView.js +0 -175
- package/src/components/Loader.css +0 -74
- package/src/components/Loader.js +0 -120
- package/src/utils/Exif.js +0 -193
- package/src/utils/Utils.js +0 -631
- package/src/utils/Widgets.js +0 -562
- package/src/viewer/URLHash.js +0 -469
- package/src/viewer/Widgets.css +0 -880
- package/src/viewer/Widgets.js +0 -1470
- package/tests/Editor.test.js +0 -126
- package/tests/StandaloneMap.test.js +0 -45
- package/tests/Viewer.test.js +0 -366
- package/tests/__snapshots__/Editor.test.js.snap +0 -298
- package/tests/__snapshots__/StandaloneMap.test.js.snap +0 -30
- package/tests/__snapshots__/Viewer.test.js.snap +0 -195
- package/tests/components/CoreView.test.js +0 -92
- package/tests/components/Loader.test.js +0 -38
- package/tests/components/__snapshots__/Loader.test.js.snap +0 -15
- package/tests/utils/Exif.test.js +0 -124
- package/tests/utils/Map.test.js +0 -113
- package/tests/utils/Utils.test.js +0 -300
- package/tests/utils/Widgets.test.js +0 -107
- package/tests/utils/__snapshots__/Exif.test.js.snap +0 -43
- package/tests/utils/__snapshots__/Utils.test.js.snap +0 -41
- package/tests/utils/__snapshots__/Widgets.test.js.snap +0 -44
- package/tests/viewer/URLHash.test.js +0 -559
- package/tests/viewer/Widgets.test.js +0 -127
- package/tests/viewer/__snapshots__/URLHash.test.js.snap +0 -108
- package/tests/viewer/__snapshots__/Widgets.test.js.snap +0 -403
- /package/tests/utils/__snapshots__/{Map.test.js.snap → geocoder.test.js.snap} +0 -0
|
@@ -1,94 +1,94 @@
|
|
|
1
|
-
<mxfile host="app.diagrams.net" modified="
|
|
1
|
+
<mxfile host="app.diagrams.net" modified="2025-03-17T12:37:16.267Z" agent="Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0" etag="SUUWP6lveJk2cUhdSDGS" version="24.1.0" type="device">
|
|
2
2
|
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
|
3
|
-
<mxGraphModel dx="
|
|
3
|
+
<mxGraphModel dx="890" dy="496" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
|
4
4
|
<root>
|
|
5
5
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
|
|
6
6
|
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
|
|
7
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-1" value="
|
|
7
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-1" value="Basic" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
8
8
|
<mxGeometry x="20" y="40" width="160" height="34" as="geometry" />
|
|
9
9
|
</mxCell>
|
|
10
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
10
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-3" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-1" vertex="1">
|
|
11
11
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
12
12
|
</mxCell>
|
|
13
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-9" value="Viewer" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;"
|
|
13
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-9" value="Viewer" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
14
14
|
<mxGeometry x="20" y="160" width="160" height="34" as="geometry" />
|
|
15
15
|
</mxCell>
|
|
16
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-10" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
16
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-10" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-9" vertex="1">
|
|
17
17
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
18
18
|
</mxCell>
|
|
19
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-11" value="
|
|
19
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-11" value="CoverageMap" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
20
20
|
<mxGeometry x="200" y="160" width="160" height="34" as="geometry" />
|
|
21
21
|
</mxCell>
|
|
22
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
22
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-11" vertex="1">
|
|
23
23
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
24
24
|
</mxCell>
|
|
25
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-13" value="Editor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;"
|
|
25
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-13" value="Editor" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
26
26
|
<mxGeometry x="380" y="160" width="160" height="34" as="geometry" />
|
|
27
27
|
</mxCell>
|
|
28
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-14" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
28
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-14" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-13" vertex="1">
|
|
29
29
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
30
30
|
</mxCell>
|
|
31
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-15" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;"
|
|
31
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-15" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-9" target="-sBJLWWXFzCuZ66xZKHM-1" edge="1">
|
|
32
32
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
33
33
|
<mxPoint x="310" y="260" as="sourcePoint" />
|
|
34
34
|
<mxPoint x="470" y="260" as="targetPoint" />
|
|
35
35
|
</mxGeometry>
|
|
36
36
|
</mxCell>
|
|
37
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-17" value="" style="endArrow=none;html=1;rounded=0;"
|
|
37
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-17" value="" style="endArrow=none;html=1;rounded=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" edge="1">
|
|
38
38
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
39
39
|
<mxPoint x="100" y="140" as="sourcePoint" />
|
|
40
40
|
<mxPoint x="460" y="140" as="targetPoint" />
|
|
41
41
|
</mxGeometry>
|
|
42
42
|
</mxCell>
|
|
43
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;"
|
|
43
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-11" edge="1">
|
|
44
44
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
45
45
|
<mxPoint x="370" y="290" as="sourcePoint" />
|
|
46
46
|
<mxPoint x="280" y="140" as="targetPoint" />
|
|
47
47
|
</mxGeometry>
|
|
48
48
|
</mxCell>
|
|
49
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-20" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;"
|
|
49
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-20" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-13" edge="1">
|
|
50
50
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
51
51
|
<mxPoint x="290" y="170" as="sourcePoint" />
|
|
52
52
|
<mxPoint x="460" y="140" as="targetPoint" />
|
|
53
53
|
</mxGeometry>
|
|
54
54
|
</mxCell>
|
|
55
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-22" value="
|
|
55
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-22" value="components.core" style="swimlane;whiteSpace=wrap;html=1;startSize=23;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
56
56
|
<mxGeometry x="10" y="10" width="540" height="200" as="geometry" />
|
|
57
57
|
</mxCell>
|
|
58
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-23" value="
|
|
58
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-23" value="components.ui" style="swimlane;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
59
59
|
<mxGeometry x="10" y="230" width="540" height="90" as="geometry" />
|
|
60
60
|
</mxCell>
|
|
61
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-26" value="Photo" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;"
|
|
61
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-26" value="Photo" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="-sBJLWWXFzCuZ66xZKHM-23" vertex="1">
|
|
62
62
|
<mxGeometry x="10" y="40" width="160" height="34" as="geometry" />
|
|
63
63
|
</mxCell>
|
|
64
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-27" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
64
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-27" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-26" vertex="1">
|
|
65
65
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
66
66
|
</mxCell>
|
|
67
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-28" value="Loader" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;"
|
|
67
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-28" value="Loader" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="-sBJLWWXFzCuZ66xZKHM-23" vertex="1">
|
|
68
68
|
<mxGeometry x="370" y="40" width="160" height="34" as="geometry" />
|
|
69
69
|
</mxCell>
|
|
70
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-29" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
70
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-29" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-28" vertex="1">
|
|
71
71
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
72
72
|
</mxCell>
|
|
73
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-24" value="Map" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;"
|
|
73
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-24" value="Map" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="-sBJLWWXFzCuZ66xZKHM-23" vertex="1">
|
|
74
74
|
<mxGeometry x="190" y="40" width="160" height="34" as="geometry" />
|
|
75
75
|
</mxCell>
|
|
76
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-25" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;"
|
|
76
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-25" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="-sBJLWWXFzCuZ66xZKHM-24" vertex="1">
|
|
77
77
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
78
78
|
</mxCell>
|
|
79
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-30" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;"
|
|
79
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-30" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-9" target="-sBJLWWXFzCuZ66xZKHM-24" edge="1">
|
|
80
80
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
81
81
|
<mxPoint x="370" y="300" as="sourcePoint" />
|
|
82
82
|
<mxPoint x="234" y="272" as="targetPoint" />
|
|
83
83
|
</mxGeometry>
|
|
84
84
|
</mxCell>
|
|
85
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-31" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.506;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;"
|
|
85
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-31" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.506;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-10" target="-sBJLWWXFzCuZ66xZKHM-26" edge="1">
|
|
86
86
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
87
87
|
<mxPoint x="370" y="300" as="sourcePoint" />
|
|
88
88
|
<mxPoint x="530" y="300" as="targetPoint" />
|
|
89
89
|
</mxGeometry>
|
|
90
90
|
</mxCell>
|
|
91
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-32" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;"
|
|
91
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-32" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-1" target="-sBJLWWXFzCuZ66xZKHM-28" edge="1">
|
|
92
92
|
<mxGeometry x="0.3304" width="160" relative="1" as="geometry">
|
|
93
93
|
<mxPoint x="111" y="204" as="sourcePoint" />
|
|
94
94
|
<mxPoint x="290" y="280" as="targetPoint" />
|
|
@@ -99,20 +99,20 @@
|
|
|
99
99
|
<mxPoint as="offset" />
|
|
100
100
|
</mxGeometry>
|
|
101
101
|
</mxCell>
|
|
102
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-38" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;"
|
|
102
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-38" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-13" target="-sBJLWWXFzCuZ66xZKHM-24" edge="1">
|
|
103
103
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
104
104
|
<mxPoint x="320" y="390" as="sourcePoint" />
|
|
105
105
|
<mxPoint x="480" y="390" as="targetPoint" />
|
|
106
106
|
</mxGeometry>
|
|
107
107
|
</mxCell>
|
|
108
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-39" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;"
|
|
108
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-39" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-11" target="-sBJLWWXFzCuZ66xZKHM-24" edge="1">
|
|
109
109
|
<mxGeometry x="-0.5789" width="160" relative="1" as="geometry">
|
|
110
110
|
<mxPoint x="210" y="360" as="sourcePoint" />
|
|
111
111
|
<mxPoint x="240" y="270" as="targetPoint" />
|
|
112
112
|
<mxPoint as="offset" />
|
|
113
113
|
</mxGeometry>
|
|
114
114
|
</mxCell>
|
|
115
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-41" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;"
|
|
115
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-41" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-13" target="-sBJLWWXFzCuZ66xZKHM-26" edge="1">
|
|
116
116
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
117
117
|
<mxPoint x="150" y="370" as="sourcePoint" />
|
|
118
118
|
<mxPoint x="310" y="370" as="targetPoint" />
|
|
Binary file
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Web viewer documentation
|
|
2
|
+
|
|
3
|
+
Welcome to Panoramax __Web Viewer__ documentation ! It will help you through all phases of setup, run and develop on Panoramax JS pictures viewer.
|
|
4
|
+
|
|
5
|
+

|
|
6
|
+
|
|
7
|
+
!!! note
|
|
8
|
+
|
|
9
|
+
If at some point you're lost or need help, you can contact us through [issues](https://gitlab.com/panoramax/clients/web-viewer/-/issues) or by [email](mailto:panoramax@panoramax.fr).
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
Many options are available for installing the viewer.
|
|
14
|
+
|
|
15
|
+
=== ":simple-npm: NPM"
|
|
16
|
+
|
|
17
|
+
Panoramax viewer is available on NPM as [@panoramax/web-viewer](https://www.npmjs.com/package/@panoramax/web-viewer) package.
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install @panoramax/web-viewer
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
If you want the latest version (corresponding to the `develop` git branch), you can use the `develop` NPM dist-tag:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install @panoramax/web-viewer@develop
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
=== ":material-web: Hosted"
|
|
30
|
+
|
|
31
|
+
You can rely on various providers offering hosted NPM packages, for example JSDelivr.
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
<!-- You may use another version than 4.0.0, just change the release in URL -->
|
|
35
|
+
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/@panoramax/web-viewer@4.0.0/build/index.css" />
|
|
36
|
+
<script src="https://cdn.jsdelivr.net/npm/@panoramax/web-viewer@4.0.0/build/index.js"></script>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
=== ":material-code-tags: Source code"
|
|
40
|
+
|
|
41
|
+
You can install and use Panoramax web client based on code provided in this repository.
|
|
42
|
+
|
|
43
|
+
This library relies on any recent __Node.js__ version, which should be installed on your computer. Then, you can build the library using these commands:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
git clone https://gitlab.com/panoramax/clients/web-viewer.git
|
|
47
|
+
cd web-viewer/
|
|
48
|
+
npm install
|
|
49
|
+
npm build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
## Basic usage
|
|
54
|
+
|
|
55
|
+
First, you need to import Panoramax code:
|
|
56
|
+
|
|
57
|
+
=== ":fontawesome-brands-js: Old-school JS"
|
|
58
|
+
|
|
59
|
+
Make sure to have both JS and CSS code available in your HTML `head` part:
|
|
60
|
+
|
|
61
|
+
```html
|
|
62
|
+
<!-- Change the actual path depending of where you installed the library -->
|
|
63
|
+
<link rel="stylesheet" type="text/css" href="web-viewer/build/index.css" />
|
|
64
|
+
<script src="web-viewer/build/index.js"></script>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
=== ":fontawesome-brands-node-js: New-style JS"
|
|
68
|
+
|
|
69
|
+
Make sure to import both JS and CSS in your code:
|
|
70
|
+
|
|
71
|
+
```js
|
|
72
|
+
import Panoramax from '@panoramax/web-viewer';
|
|
73
|
+
import '@panoramax/web-viewer/build/index.css';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Once ready, you can create for example a viewer. We use web components to do so, you can create it in HTML or in other web components:
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<pnx-viewer
|
|
80
|
+
endpoint="https://api.panoramax.xyz/api"
|
|
81
|
+
/>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
[Many options are available to configure it finely](./reference/components/core/Viewer.md).
|
|
85
|
+
|
|
86
|
+
Beyond classic viewer, other widgets are available and [can be tested online](https://viewer.geovisio.fr/).
|
|
87
|
+
|
|
88
|
+
__Coverage map__
|
|
89
|
+
|
|
90
|
+
A simple map for showing Panoramax data availability.
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<pnx-coverage-map
|
|
94
|
+
endpoint="https://api.panoramax.xyz/api"
|
|
95
|
+
/>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
[Many options are available as well](./reference/components/core/CoverageMap.md).
|
|
99
|
+
|
|
100
|
+
__Editor__
|
|
101
|
+
|
|
102
|
+
A map and photo viewer, focused on a single sequence, for previewing edits made to it.
|
|
103
|
+
|
|
104
|
+
```html
|
|
105
|
+
<pnx-editor
|
|
106
|
+
endpoint="https://panoramax.openstreetmap.fr/api"
|
|
107
|
+
sequence="id-to-an-existing-sequence"
|
|
108
|
+
picture="id-to-a-picture-in-this-sequence"
|
|
109
|
+
/>
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
[Many options are available as well](./reference/components/core/Editor.md).
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
<a name="Panoramax.components.core.Basic"></a>
|
|
2
|
+
|
|
3
|
+
## Panoramax.components.core.Basic ⇐ <code>[lit.LitElement](https://lit.dev/docs/api/LitElement/)</code>
|
|
4
|
+
**Kind**: static class of <code>Panoramax.components.core</code>
|
|
5
|
+
**Extends**: <code>[lit.LitElement](https://lit.dev/docs/api/LitElement/)</code>
|
|
6
|
+
**Emits**: [<code>select</code>](#Panoramax.components.core.Basic+event_select), [<code>ready</code>](#Panoramax.components.core.Basic+event_ready), [<code>broken</code>](#Panoramax.components.core.Basic+event_broken), [<code>menu-opened</code>](#Panoramax.components.core.Basic+event_menu-opened)
|
|
7
|
+
**Properties**
|
|
8
|
+
|
|
9
|
+
| Name | Type | Description |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| loader | [<code>Loader</code>](../ui/Loader.md/#Panoramax.components.ui.Loader) | The loader screen |
|
|
12
|
+
| api | [<code>API</code>](../../utils/API.md/#Panoramax.utils.API) | The API manager |
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
* [.Basic](#Panoramax.components.core.Basic) ⇐ <code>[lit.LitElement](https://lit.dev/docs/api/LitElement/)</code>
|
|
16
|
+
* [new Basic()](#new_Panoramax.components.core.Basic_new)
|
|
17
|
+
* [.properties](#Panoramax.components.core.Basic+properties) : <code>Object</code>
|
|
18
|
+
* [.onceReady()](#Panoramax.components.core.Basic+onceReady) ⇒ <code>Promise</code>
|
|
19
|
+
* [.onceAPIReady()](#Panoramax.components.core.Basic+onceAPIReady) ⇒ <code>Promise</code>
|
|
20
|
+
* [.getClassName()](#Panoramax.components.core.Basic+getClassName) ⇒ <code>string</code>
|
|
21
|
+
* [.select([seqId], [picId], [force])](#Panoramax.components.core.Basic+select)
|
|
22
|
+
* [.isWidthSmall()](#Panoramax.components.core.Basic+isWidthSmall) ⇒ <code>boolean</code>
|
|
23
|
+
* [.isHeightSmall()](#Panoramax.components.core.Basic+isHeightSmall) ⇒ <code>boolean</code>
|
|
24
|
+
* ["menu-opened"](#Panoramax.components.core.Basic+event_menu-opened)
|
|
25
|
+
* ["select"](#Panoramax.components.core.Basic+event_select)
|
|
26
|
+
* ["ready"](#Panoramax.components.core.Basic+event_ready)
|
|
27
|
+
* ["broken"](#Panoramax.components.core.Basic+event_broken)
|
|
28
|
+
|
|
29
|
+
<a name="new_Panoramax.components.core.Basic_new"></a>
|
|
30
|
+
|
|
31
|
+
### new Basic()
|
|
32
|
+
Basic core component is a basic container for common functions through all core components.
|
|
33
|
+
It is not intended to be used directly, it's only to be extended by other core components.
|
|
34
|
+
|
|
35
|
+
<a name="Panoramax.components.core.Basic+properties"></a>
|
|
36
|
+
|
|
37
|
+
### basic.properties : <code>Object</code>
|
|
38
|
+
Component properties.
|
|
39
|
+
|
|
40
|
+
**Kind**: instance mixin of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
41
|
+
**Properties**
|
|
42
|
+
|
|
43
|
+
| Name | Type | Default | Description |
|
|
44
|
+
| --- | --- | --- | --- |
|
|
45
|
+
| [picture] | <code>string</code> | | The picture ID to display |
|
|
46
|
+
| [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
|
|
47
|
+
| [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
|
|
48
|
+
| [users] | <code>Array.<string></code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
|
|
49
|
+
| [style] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
|
|
50
|
+
| [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
|
|
51
|
+
| endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
|
|
52
|
+
|
|
53
|
+
<a name="Panoramax.components.core.Basic+onceReady"></a>
|
|
54
|
+
|
|
55
|
+
### basic.onceReady() ⇒ <code>Promise</code>
|
|
56
|
+
Waits for component to have its first loading done.
|
|
57
|
+
|
|
58
|
+
Each inheriting class must override this method.
|
|
59
|
+
|
|
60
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
61
|
+
**Fulfil**: <code>null</code> When initialization is complete.
|
|
62
|
+
**Reject**: <code>string</code> Error message
|
|
63
|
+
<a name="Panoramax.components.core.Basic+onceAPIReady"></a>
|
|
64
|
+
|
|
65
|
+
### basic.onceAPIReady() ⇒ <code>Promise</code>
|
|
66
|
+
Waits for initial API setup.
|
|
67
|
+
|
|
68
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
69
|
+
**Fulfil**: <code>null</code> When API is ready.
|
|
70
|
+
**Reject**: <code>string</code> Error message
|
|
71
|
+
<a name="Panoramax.components.core.Basic+getClassName"></a>
|
|
72
|
+
|
|
73
|
+
### basic.getClassName() ⇒ <code>string</code>
|
|
74
|
+
This allows to retrieve an always correct class name.
|
|
75
|
+
This is crap, but avoids issues with Webpack & so on.
|
|
76
|
+
|
|
77
|
+
Each inheriting class must override this method.
|
|
78
|
+
|
|
79
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
80
|
+
**Returns**: <code>string</code> - The class name (for example "Basic")
|
|
81
|
+
<a name="Panoramax.components.core.Basic+select"></a>
|
|
82
|
+
|
|
83
|
+
### basic.select([seqId], [picId], [force])
|
|
84
|
+
Change the currently picture and/or sequence.
|
|
85
|
+
Calling the method without parameters unselects.
|
|
86
|
+
|
|
87
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
88
|
+
|
|
89
|
+
| Param | Type | Default | Description |
|
|
90
|
+
| --- | --- | --- | --- |
|
|
91
|
+
| [seqId] | <code>string</code> | <code>null</code> | The sequence UUID |
|
|
92
|
+
| [picId] | <code>string</code> | <code>null</code> | The picture UUID |
|
|
93
|
+
| [force] | <code>boolean</code> | <code>false</code> | Force select even if already selected |
|
|
94
|
+
|
|
95
|
+
<a name="Panoramax.components.core.Basic+isWidthSmall"></a>
|
|
96
|
+
|
|
97
|
+
### basic.isWidthSmall() ⇒ <code>boolean</code>
|
|
98
|
+
Is the view running in a small container (small embed or smartphone)
|
|
99
|
+
|
|
100
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
101
|
+
**Returns**: <code>boolean</code> - True if container is small
|
|
102
|
+
<a name="Panoramax.components.core.Basic+isHeightSmall"></a>
|
|
103
|
+
|
|
104
|
+
### basic.isHeightSmall() ⇒ <code>boolean</code>
|
|
105
|
+
Is the view running in a small-height container (small embed or smartphone)
|
|
106
|
+
|
|
107
|
+
**Kind**: instance method of [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
108
|
+
**Returns**: <code>boolean</code> - True if container height is small
|
|
109
|
+
<a name="Panoramax.components.core.Basic+event_menu-opened"></a>
|
|
110
|
+
|
|
111
|
+
### "menu-opened"
|
|
112
|
+
Event for overlaying menu opening
|
|
113
|
+
|
|
114
|
+
**Kind**: event emitted by [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
115
|
+
**Properties**
|
|
116
|
+
|
|
117
|
+
| Name | Type | Description |
|
|
118
|
+
| --- | --- | --- |
|
|
119
|
+
| detail.menu | <code>Element</code> | The opened menu |
|
|
120
|
+
|
|
121
|
+
<a name="Panoramax.components.core.Basic+event_select"></a>
|
|
122
|
+
|
|
123
|
+
### "select"
|
|
124
|
+
Event for sequence/picture selection
|
|
125
|
+
|
|
126
|
+
**Kind**: event emitted by [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
127
|
+
**Properties**
|
|
128
|
+
|
|
129
|
+
| Name | Type | Description |
|
|
130
|
+
| --- | --- | --- |
|
|
131
|
+
| detail.seqId | <code>string</code> | The selected sequence ID |
|
|
132
|
+
| detail.picId | <code>string</code> | The selected picture ID (or null if not a precise picture clicked) |
|
|
133
|
+
| [detail.prevSeqId] | <code>string</code> | The previously selected sequence ID (or null if none) |
|
|
134
|
+
| [detail.prevPicId] | <code>string</code> | The previously selected picture ID (or null if none) |
|
|
135
|
+
|
|
136
|
+
<a name="Panoramax.components.core.Basic+event_ready"></a>
|
|
137
|
+
|
|
138
|
+
### "ready"
|
|
139
|
+
Event for component being ready to use (API loaded)
|
|
140
|
+
|
|
141
|
+
**Kind**: event emitted by [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
142
|
+
<a name="Panoramax.components.core.Basic+event_broken"></a>
|
|
143
|
+
|
|
144
|
+
### "broken"
|
|
145
|
+
Event for viewer failing to initially load
|
|
146
|
+
|
|
147
|
+
**Kind**: event emitted by [<code>Basic</code>](#Panoramax.components.core.Basic)
|
|
148
|
+
**Properties**
|
|
149
|
+
|
|
150
|
+
| Name | Type | Description |
|
|
151
|
+
| --- | --- | --- |
|
|
152
|
+
| detail.error | <code>string</code> | The user-friendly error message to display |
|
|
153
|
+
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<a name="Panoramax.components.core.CoverageMap"></a>
|
|
2
|
+
|
|
3
|
+
## Panoramax.components.core.CoverageMap ⇐ [<code>Basic</code>](Basic.md/#Panoramax.components.core.Basic)
|
|
4
|
+
**Kind**: static class of <code>Panoramax.components.core</code>
|
|
5
|
+
**Extends**: [<code>Basic</code>](Basic.md/#Panoramax.components.core.Basic)
|
|
6
|
+
**Emits**: [<code>select</code>](Basic.md/#Panoramax.components.core.Basic+event_select), [<code>ready</code>](Basic.md/#Panoramax.components.core.Basic+event_ready), [<code>broken</code>](Basic.md/#Panoramax.components.core.Basic+event_broken)
|
|
7
|
+
**Element**: pnx-coverage-map
|
|
8
|
+
**Properties**
|
|
9
|
+
|
|
10
|
+
| Name | Type | Description |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| loader | [<code>Loader</code>](../ui/Loader.md/#Panoramax.components.ui.Loader) | The loader screen |
|
|
13
|
+
| api | [<code>API</code>](../../utils/API.md/#Panoramax.utils.API) | The API manager |
|
|
14
|
+
| map | [<code>Map</code>](../ui/Map.md/#Panoramax.components.ui.Map) | The MapLibre GL map itself |
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
* [.CoverageMap](#Panoramax.components.core.CoverageMap) ⇐ [<code>Basic</code>](Basic.md/#Panoramax.components.core.Basic)
|
|
18
|
+
* [new CoverageMap()](#new_Panoramax.components.core.CoverageMap_new)
|
|
19
|
+
* [.properties](Basic.md/#Panoramax.components.core.Basic+properties) : <code>Object</code>
|
|
20
|
+
* [.onceReady()](Basic.md/#Panoramax.components.core.Basic+onceReady) ⇒ <code>Promise</code>
|
|
21
|
+
* [.onceAPIReady()](Basic.md/#Panoramax.components.core.Basic+onceAPIReady) ⇒ <code>Promise</code>
|
|
22
|
+
* [.getClassName()](Basic.md/#Panoramax.components.core.Basic+getClassName) ⇒ <code>string</code>
|
|
23
|
+
* [.select([seqId], [picId], [force])](#Panoramax.components.core.Basic+select)
|
|
24
|
+
* [.isWidthSmall()](Basic.md/#Panoramax.components.core.Basic+isWidthSmall) ⇒ <code>boolean</code>
|
|
25
|
+
* [.isHeightSmall()](Basic.md/#Panoramax.components.core.Basic+isHeightSmall) ⇒ <code>boolean</code>
|
|
26
|
+
* ["menu-opened"](Basic.md/#Panoramax.components.core.Basic+event_menu-opened)
|
|
27
|
+
* ["select"](Basic.md/#Panoramax.components.core.Basic+event_select)
|
|
28
|
+
* ["ready"](Basic.md/#Panoramax.components.core.Basic+event_ready)
|
|
29
|
+
* ["broken"](Basic.md/#Panoramax.components.core.Basic+event_broken)
|
|
30
|
+
|
|
31
|
+
<a name="new_Panoramax.components.core.CoverageMap_new"></a>
|
|
32
|
+
|
|
33
|
+
### new CoverageMap()
|
|
34
|
+
Coverage Map is a basic map showing Panoramax coverage.
|
|
35
|
+
|
|
36
|
+
**Example**
|
|
37
|
+
```html
|
|
38
|
+
<pnx-coverage-map
|
|
39
|
+
endpoint="https://panoramax.openstreetmap.fr/"
|
|
40
|
+
/>
|
|
41
|
+
```
|
|
42
|
+
<a name="Panoramax.components.core.Basic+properties"></a>
|
|
43
|
+
|
|
44
|
+
### coverageMap.properties : <code>Object</code>
|
|
45
|
+
Component properties.
|
|
46
|
+
|
|
47
|
+
**Kind**: instance mixin of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
48
|
+
**Properties**
|
|
49
|
+
|
|
50
|
+
| Name | Type | Default | Description |
|
|
51
|
+
| --- | --- | --- | --- |
|
|
52
|
+
| [picture] | <code>string</code> | | The picture ID to display |
|
|
53
|
+
| [sequence] | <code>string</code> | | The sequence ID of the picture displayed |
|
|
54
|
+
| [fetchOptions] | <code>object</code> | | Set custom options for fetch calls made against API ([same syntax as fetch options parameter](https://developer.mozilla.org/en-US/docs/Web/API/fetch#parameters)) |
|
|
55
|
+
| [users] | <code>Array.<string></code> | <code>[geovisio]</code> | List of users IDs to use for map display (defaults to general map, identified as "geovisio") |
|
|
56
|
+
| [style] | <code>string</code> \| <code>object</code> | | The map's MapLibre style. This can be an a JSON object conforming to the schema described in the [MapLibre Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), or a URL string pointing to one. Defaults to OSM vector tiles. |
|
|
57
|
+
| [lang] | <code>string</code> | | To override language used for labels. Defaults to using user's preferred languages. |
|
|
58
|
+
| endpoint | <code>string</code> | | URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md)) |
|
|
59
|
+
|
|
60
|
+
<a name="Panoramax.components.core.Basic+onceReady"></a>
|
|
61
|
+
|
|
62
|
+
### coverageMap.onceReady() ⇒ <code>Promise</code>
|
|
63
|
+
Waits for component to have its first loading done.
|
|
64
|
+
|
|
65
|
+
Each inheriting class must override this method.
|
|
66
|
+
|
|
67
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
68
|
+
**Fulfil**: <code>null</code> When initialization is complete.
|
|
69
|
+
**Reject**: <code>string</code> Error message
|
|
70
|
+
<a name="Panoramax.components.core.Basic+onceAPIReady"></a>
|
|
71
|
+
|
|
72
|
+
### coverageMap.onceAPIReady() ⇒ <code>Promise</code>
|
|
73
|
+
Waits for initial API setup.
|
|
74
|
+
|
|
75
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
76
|
+
**Fulfil**: <code>null</code> When API is ready.
|
|
77
|
+
**Reject**: <code>string</code> Error message
|
|
78
|
+
<a name="Panoramax.components.core.Basic+getClassName"></a>
|
|
79
|
+
|
|
80
|
+
### coverageMap.getClassName() ⇒ <code>string</code>
|
|
81
|
+
This allows to retrieve an always correct class name.
|
|
82
|
+
This is crap, but avoids issues with Webpack & so on.
|
|
83
|
+
|
|
84
|
+
Each inheriting class must override this method.
|
|
85
|
+
|
|
86
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
87
|
+
**Returns**: <code>string</code> - The class name (for example "Basic")
|
|
88
|
+
<a name="Panoramax.components.core.Basic+select"></a>
|
|
89
|
+
|
|
90
|
+
### coverageMap.select([seqId], [picId], [force])
|
|
91
|
+
Change the currently picture and/or sequence.
|
|
92
|
+
Calling the method without parameters unselects.
|
|
93
|
+
|
|
94
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
95
|
+
|
|
96
|
+
| Param | Type | Default | Description |
|
|
97
|
+
| --- | --- | --- | --- |
|
|
98
|
+
| [seqId] | <code>string</code> | <code>null</code> | The sequence UUID |
|
|
99
|
+
| [picId] | <code>string</code> | <code>null</code> | The picture UUID |
|
|
100
|
+
| [force] | <code>boolean</code> | <code>false</code> | Force select even if already selected |
|
|
101
|
+
|
|
102
|
+
<a name="Panoramax.components.core.Basic+isWidthSmall"></a>
|
|
103
|
+
|
|
104
|
+
### coverageMap.isWidthSmall() ⇒ <code>boolean</code>
|
|
105
|
+
Is the view running in a small container (small embed or smartphone)
|
|
106
|
+
|
|
107
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
108
|
+
**Returns**: <code>boolean</code> - True if container is small
|
|
109
|
+
<a name="Panoramax.components.core.Basic+isHeightSmall"></a>
|
|
110
|
+
|
|
111
|
+
### coverageMap.isHeightSmall() ⇒ <code>boolean</code>
|
|
112
|
+
Is the view running in a small-height container (small embed or smartphone)
|
|
113
|
+
|
|
114
|
+
**Kind**: instance method of [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
115
|
+
**Returns**: <code>boolean</code> - True if container height is small
|
|
116
|
+
<a name="Panoramax.components.core.Basic+event_menu-opened"></a>
|
|
117
|
+
|
|
118
|
+
### "menu-opened"
|
|
119
|
+
Event for overlaying menu opening
|
|
120
|
+
|
|
121
|
+
**Kind**: event emitted by [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
122
|
+
**Properties**
|
|
123
|
+
|
|
124
|
+
| Name | Type | Description |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| detail.menu | <code>Element</code> | The opened menu |
|
|
127
|
+
|
|
128
|
+
<a name="Panoramax.components.core.Basic+event_select"></a>
|
|
129
|
+
|
|
130
|
+
### "select"
|
|
131
|
+
Event for sequence/picture selection
|
|
132
|
+
|
|
133
|
+
**Kind**: event emitted by [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
134
|
+
**Properties**
|
|
135
|
+
|
|
136
|
+
| Name | Type | Description |
|
|
137
|
+
| --- | --- | --- |
|
|
138
|
+
| detail.seqId | <code>string</code> | The selected sequence ID |
|
|
139
|
+
| detail.picId | <code>string</code> | The selected picture ID (or null if not a precise picture clicked) |
|
|
140
|
+
| [detail.prevSeqId] | <code>string</code> | The previously selected sequence ID (or null if none) |
|
|
141
|
+
| [detail.prevPicId] | <code>string</code> | The previously selected picture ID (or null if none) |
|
|
142
|
+
|
|
143
|
+
<a name="Panoramax.components.core.Basic+event_ready"></a>
|
|
144
|
+
|
|
145
|
+
### "ready"
|
|
146
|
+
Event for component being ready to use (API loaded)
|
|
147
|
+
|
|
148
|
+
**Kind**: event emitted by [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
149
|
+
<a name="Panoramax.components.core.Basic+event_broken"></a>
|
|
150
|
+
|
|
151
|
+
### "broken"
|
|
152
|
+
Event for viewer failing to initially load
|
|
153
|
+
|
|
154
|
+
**Kind**: event emitted by [<code>CoverageMap</code>](#Panoramax.components.core.CoverageMap)
|
|
155
|
+
**Properties**
|
|
156
|
+
|
|
157
|
+
| Name | Type | Description |
|
|
158
|
+
| --- | --- | --- |
|
|
159
|
+
| detail.error | <code>string</code> | The user-friendly error message to display |
|
|
160
|
+
|