@panoramax/web-viewer 3.2.3 → 4.0.0-develop-9f9cf858
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 +13 -6
- package/CHANGELOG.md +56 -1
- package/CODE_OF_CONDUCT.md +1 -1
- package/README.md +1 -1
- package/build/editor.html +10 -1
- package/build/index.css +12 -12
- package/build/index.css.map +1 -1
- package/build/index.html +1 -1
- package/build/index.js +2126 -14
- package/build/index.js.map +1 -1
- package/build/map.html +1 -1
- package/build/photo.html +1 -0
- package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff +0 -0
- package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff2 +0 -0
- package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff +0 -0
- package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff2 +0 -0
- package/build/viewer.html +12 -1
- package/build/widgets.html +1 -0
- package/config/jest/mocks.js +201 -0
- package/config/paths.js +2 -0
- package/config/webpack.config.js +52 -0
- package/docs/03_URL_settings.md +14 -16
- package/docs/05_Compatibility.md +59 -76
- package/docs/09_Develop.md +46 -11
- package/docs/90_Releases.md +2 -2
- package/docs/images/class_diagram.drawio +60 -45
- package/docs/images/class_diagram.jpg +0 -0
- package/docs/images/screenshot.jpg +0 -0
- package/docs/index.md +135 -0
- package/docs/reference/components/core/Basic.md +196 -0
- package/docs/reference/components/core/CoverageMap.md +210 -0
- package/docs/reference/components/core/Editor.md +224 -0
- package/docs/reference/components/core/PhotoViewer.md +307 -0
- package/docs/reference/components/core/Viewer.md +350 -0
- package/docs/reference/components/layout/BottomDrawer.md +35 -0
- package/docs/reference/components/layout/CorneredGrid.md +29 -0
- package/docs/reference/components/layout/Mini.md +45 -0
- package/docs/reference/components/layout/Tabs.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 +16 -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 +40 -0
- package/docs/reference/components/ui/ButtonGroup.md +36 -0
- package/docs/reference/components/ui/CopyButton.md +38 -0
- package/docs/reference/components/ui/Grade.md +32 -0
- package/docs/reference/components/ui/LinkButton.md +45 -0
- package/docs/reference/components/ui/ListGroup.md +22 -0
- package/docs/reference/components/ui/Loader.md +56 -0
- package/docs/reference/components/ui/Map.md +239 -0
- package/docs/reference/components/ui/MapMore.md +256 -0
- package/docs/reference/components/ui/Photo.md +385 -0
- package/docs/reference/components/ui/Popup.md +56 -0
- package/docs/reference/components/ui/ProgressBar.md +32 -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 +49 -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/OSMEditors.md +15 -0
- package/docs/reference/components/ui/widgets/PictureLegendActions.md +32 -0
- package/docs/reference/components/ui/widgets/Player.md +33 -0
- package/docs/reference/components/ui/widgets/Zoom.md +15 -0
- package/docs/reference/utils/API.md +334 -0
- package/docs/reference/utils/InitParameters.md +68 -0
- package/docs/reference/utils/URLHandler.md +107 -0
- package/docs/reference.md +79 -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 +59 -0
- package/docs/tutorials/map_style.md +39 -0
- package/docs/tutorials/migrate_v4.md +153 -0
- package/docs/tutorials/synced_coverage.md +43 -0
- package/mkdocs.yml +66 -5
- package/package.json +22 -17
- package/public/editor.html +21 -29
- package/public/index.html +17 -12
- package/public/map.html +19 -18
- package/public/photo.html +55 -0
- package/public/viewer.html +22 -26
- package/public/widgets.html +306 -0
- package/scripts/doc.js +79 -0
- package/src/components/core/Basic.css +48 -0
- package/src/components/core/Basic.js +349 -0
- package/src/components/core/CoverageMap.css +9 -0
- package/src/components/core/CoverageMap.js +139 -0
- package/src/components/core/Editor.css +23 -0
- package/src/components/core/Editor.js +390 -0
- package/src/components/core/PhotoViewer.css +48 -0
- package/src/components/core/PhotoViewer.js +499 -0
- package/src/components/core/Viewer.css +98 -0
- package/src/components/core/Viewer.js +564 -0
- package/src/components/core/index.js +12 -0
- package/src/components/index.js +13 -0
- package/src/components/layout/BottomDrawer.js +257 -0
- package/src/components/layout/CorneredGrid.js +112 -0
- package/src/components/layout/Mini.js +117 -0
- package/src/components/layout/Tabs.js +133 -0
- package/src/components/layout/index.js +9 -0
- package/src/components/menus/MapBackground.js +106 -0
- package/src/components/menus/MapFilters.js +400 -0
- package/src/components/menus/MapLayers.js +143 -0
- package/src/components/menus/MapLegend.js +34 -0
- package/src/components/menus/PictureLegend.js +257 -0
- package/src/components/menus/PictureMetadata.js +317 -0
- package/src/components/menus/PlayerOptions.js +95 -0
- package/src/components/menus/QualityScoreDoc.js +36 -0
- package/src/components/menus/ReportForm.js +133 -0
- package/src/components/menus/Share.js +100 -0
- package/src/components/menus/index.js +15 -0
- package/src/components/styles.js +383 -0
- package/src/components/ui/Button.js +77 -0
- package/src/components/ui/ButtonGroup.css +57 -0
- package/src/components/ui/ButtonGroup.js +68 -0
- package/src/components/ui/CopyButton.js +106 -0
- package/src/components/ui/Grade.js +54 -0
- package/src/components/ui/LinkButton.js +67 -0
- package/src/components/ui/ListGroup.js +66 -0
- package/src/components/ui/Loader.js +203 -0
- package/src/components/{Map.css → ui/Map.css} +5 -17
- package/src/components/{Map.js → ui/Map.js} +148 -156
- 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} +313 -101
- package/src/components/ui/Popup.js +145 -0
- package/src/components/ui/ProgressBar.js +104 -0
- package/src/components/ui/QualityScore.js +147 -0
- package/src/components/ui/SearchBar.js +367 -0
- package/src/components/ui/TogglableGroup.js +157 -0
- package/src/components/ui/index.js +22 -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 +113 -0
- package/src/components/ui/widgets/MapFiltersButton.js +104 -0
- package/src/components/ui/widgets/MapLayersButton.js +79 -0
- package/src/components/ui/widgets/OSMEditors.js +155 -0
- package/src/components/ui/widgets/PictureLegendActions.js +117 -0
- package/src/components/ui/widgets/Player.css +7 -0
- package/src/components/ui/widgets/Player.js +151 -0
- package/src/components/ui/widgets/Zoom.js +82 -0
- package/src/components/ui/widgets/index.js +13 -0
- package/src/img/loader_base.jpg +0 -0
- package/src/img/panoramax.svg +13 -0
- package/src/img/switch_big.svg +20 -10
- package/src/index.js +7 -9
- package/src/translations/br.json +1 -0
- package/src/translations/da.json +38 -15
- package/src/translations/de.json +5 -3
- package/src/translations/en.json +35 -15
- package/src/translations/eo.json +38 -15
- package/src/translations/es.json +1 -1
- package/src/translations/fr.json +36 -16
- package/src/translations/hu.json +1 -1
- package/src/translations/it.json +39 -16
- package/src/translations/ja.json +182 -1
- package/src/translations/nl.json +106 -6
- package/src/translations/pl.json +1 -1
- package/src/translations/sv.json +182 -0
- package/src/translations/zh_Hant.json +35 -14
- package/src/utils/API.js +109 -49
- package/src/utils/InitParameters.js +388 -0
- package/src/utils/PhotoAdapter.js +1 -0
- package/src/utils/URLHandler.js +362 -0
- package/src/utils/geocoder.js +152 -0
- package/src/utils/{I18n.js → i18n.js} +7 -3
- package/src/utils/index.js +11 -0
- package/src/utils/{Map.js → map.js} +256 -77
- package/src/utils/picture.js +442 -0
- package/src/utils/utils.js +324 -0
- package/src/utils/widgets.js +55 -0
- package/tests/components/core/Basic.test.js +121 -0
- package/tests/components/core/BasicMock.js +25 -0
- package/tests/components/core/CoverageMap.test.js +20 -0
- package/tests/components/core/Editor.test.js +20 -0
- package/tests/components/core/PhotoViewer.test.js +57 -0
- package/tests/components/core/Viewer.test.js +84 -0
- package/tests/components/core/__snapshots__/PhotoViewer.test.js.snap +73 -0
- package/tests/components/core/__snapshots__/Viewer.test.js.snap +145 -0
- package/tests/components/ui/CopyButton.test.js +52 -0
- package/tests/components/ui/Loader.test.js +55 -0
- package/tests/components/{Map.test.js → ui/Map.test.js} +73 -61
- package/tests/components/{Photo.test.js → ui/Photo.test.js} +97 -63
- package/tests/components/ui/Popup.test.js +26 -0
- package/tests/components/ui/QualityScore.test.js +18 -0
- package/tests/components/ui/SearchBar.test.js +110 -0
- package/tests/components/ui/__snapshots__/CopyButton.test.js.snap +33 -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 +70 -6
- 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 +83 -83
- package/tests/utils/InitParameters.test.js +499 -0
- package/tests/utils/URLHandler.test.js +401 -0
- package/tests/utils/__snapshots__/API.test.js.snap +10 -0
- package/tests/utils/__snapshots__/URLHandler.test.js.snap +21 -0
- package/tests/utils/__snapshots__/{Map.test.js.snap → geocoder.test.js.snap} +1 -1
- package/tests/utils/__snapshots__/map.test.js.snap +11 -0
- package/tests/utils/__snapshots__/picture.test.js.snap +327 -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} +8 -8
- package/tests/utils/map.test.js +126 -0
- package/tests/utils/picture.test.js +745 -0
- package/tests/utils/utils.test.js +288 -0
- package/tests/utils/widgets.test.js +31 -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/img/loader_hd.jpg +0 -0
- 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/docs/09_Develop.md
CHANGED
|
@@ -4,24 +4,55 @@ You want to work on our library and offer bug fixes or new features ? That's awe
|
|
|
4
4
|
|
|
5
5
|
Here are some inputs about working with Panoramax web client code.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
!!! note
|
|
8
|
+
|
|
9
|
+
If something seems missing or incomplete, don't hesitate to contact us by [email](mailto:panoramax@panoramax.fr) or using [an issue](https://gitlab.com/panoramax/clients/web-viewer/-/issues). We really want Panoramax to be a collaborative project, so everyone is welcome (see our [code of conduct](https://gitlab.com/panoramax/clients/web-viewer/-/blob/develop/CODE_OF_CONDUCT.md)).
|
|
8
10
|
|
|
9
11
|
## Architecture
|
|
10
12
|
|
|
11
13
|
The current code is split between various elements:
|
|
12
14
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
- __Utils__: utility functions, splitted in various files for clarity
|
|
15
|
+
- __Core components__: a single functional entry, like [Viewer](./reference/components/core/Viewer.md) (map + picture), [Photo Viewer](./reference/components/core/PhotoViewer.md) (picture only), [Coverage Map](./reference/components/core/CoverageMap.md) or [Editor](./reference/components/core/Editor.md). They share parts of code in [Basic](./reference/components/core/Basic.md) class. They specialized the behaviour of components depending on the needs.
|
|
16
|
+
- __UI components, menus & widgets__: reusable web components, like [Map](./reference/components/ui/Map.md), [Photo](./reference/components/ui/Photo.md) or [Loader](./reference/components/ui/Loader.md). They are used in some views depending of the context.
|
|
17
|
+
- __Utils__: utility functions, splitted in various files for clarity.
|
|
16
18
|
|
|
17
19
|

|
|
18
20
|
|
|
19
21
|
The library is relies on various other libraries:
|
|
20
22
|
|
|
23
|
+
- [Lit](https://lit.dev/), for web components management
|
|
21
24
|
- [Photo Sphere Viewer](https://github.com/mistic100/Photo-Sphere-Viewer), for displaying classic and 360° pictures
|
|
22
25
|
- [Maplibre GL JS](https://github.com/maplibre/maplibre-gl-js), for displaying the map which shows sequences and pictures location
|
|
23
26
|
- [JS Library Boilerplate](https://github.com/hodgef/js-library-boilerplate), for having a ready-to-use development toolbox
|
|
24
27
|
|
|
28
|
+
## Good to know
|
|
29
|
+
|
|
30
|
+
### Components `z-index`
|
|
31
|
+
|
|
32
|
+
In order to offer a coherent overlay of widgets, we follow this general `z-index` ordering:
|
|
33
|
+
|
|
34
|
+
| Component type | Z-Index |
|
|
35
|
+
|-----------------------------------|:-------:|
|
|
36
|
+
| MapLibre GL & Photo Sphere Viewer | <= 110 |
|
|
37
|
+
| Widgets / Cornered Grid's corners | 120 |
|
|
38
|
+
| Togglable menus | 130 |
|
|
39
|
+
| Fullscreen loaders & popups | 200 |
|
|
40
|
+
|
|
41
|
+
### Parameters handling
|
|
42
|
+
|
|
43
|
+
!!! note
|
|
44
|
+
|
|
45
|
+
This concerns only __Viewer__ component. Editor & Coverage Map read input parameters only from Web Components attributes.
|
|
46
|
+
|
|
47
|
+
Viewer component can read parameters from 3 different sources:
|
|
48
|
+
|
|
49
|
+
- Web Component __attributes__, passed through DOM
|
|
50
|
+
- Browser __local storage__
|
|
51
|
+
- __URL search__ parameters
|
|
52
|
+
|
|
53
|
+
This allows a flexible way to interact with viewer for users. Prioritization of parameters is managed by [InitParameters class](./reference/utils/InitParameters.md), URL parameters coming first, then local storage, to fallback with Web component attributes (and eventually some hard-coded defaults).
|
|
54
|
+
|
|
55
|
+
This means that, when developing, if you want to check if your attributes are well-defined, you may want to get rid of URL search parameters, as well as remove the `pnx-map-parameters` local storage item. Otherwise, they may not be read as they are lower priority than others.
|
|
25
56
|
|
|
26
57
|
## Testing
|
|
27
58
|
|
|
@@ -37,26 +68,30 @@ If you're working on bug fixes or new features, please __make sure to add approp
|
|
|
37
68
|
|
|
38
69
|
## Documentation
|
|
39
70
|
|
|
40
|
-
|
|
71
|
+
The documentation is a mix of:
|
|
41
72
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
73
|
+
- [JSDoc comments](https://jsdoc.app/about-getting-started) embed directly in source files, and exported in `docs/reference/` folder
|
|
74
|
+
- Higher-level docs as Markdown files, in `docs/` folder.
|
|
44
75
|
|
|
45
|
-
The
|
|
76
|
+
The JSDoc can be exported as Markdown using this command:
|
|
46
77
|
|
|
47
78
|
```bash
|
|
48
79
|
npm run doc
|
|
49
80
|
```
|
|
50
81
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
The broader doc can be served and viewed using [Mkdocs](https://www.mkdocs.org/):
|
|
82
|
+
And all documentation can be previewed or built using [Mkdocs](https://www.mkdocs.org/):
|
|
54
83
|
|
|
55
84
|
```bash
|
|
56
85
|
pip install mkdocs mkdocs-material
|
|
57
86
|
mkdocs serve
|
|
87
|
+
mkdocs build
|
|
58
88
|
```
|
|
59
89
|
|
|
90
|
+
Online versions are available at:
|
|
91
|
+
|
|
92
|
+
- [docs.panoramax.fr](https://docs.panoramax.fr/web-viewer/) for __stable__ version
|
|
93
|
+
- [viewer.geovisio.fr/docs](https://viewer.geovisio.fr/docs/) for __develop__ version
|
|
94
|
+
|
|
60
95
|
## Make a release
|
|
61
96
|
|
|
62
97
|
See [dedicated documentation](./90_Releases.md).
|
package/docs/90_Releases.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Make a release
|
|
2
2
|
|
|
3
|
-
Panoramax
|
|
3
|
+
Panoramax JS uses [semantic versioning](https://semver.org/) for its release numbers.
|
|
4
4
|
|
|
5
5
|
!!! note
|
|
6
6
|
|
|
7
|
-
On
|
|
7
|
+
On versions < 3.0, a strong constraint was put to keep versions in sync between API and Viewer. Each component could have different `PATCH` versions, but compatibility __had to be__ ensured between `MAJOR.MINOR` versions. Since Viewer version >= 3.0, any STAC-compliant API should be supported by Viewer.
|
|
8
8
|
|
|
9
9
|
Run these commands in order to issue a new release:
|
|
10
10
|
|
|
@@ -1,94 +1,102 @@
|
|
|
1
|
-
<mxfile host="app.diagrams.net"
|
|
1
|
+
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:136.0) Gecko/20100101 Firefox/136.0" version="26.1.1">
|
|
2
2
|
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
|
|
3
|
-
<mxGraphModel dx="
|
|
3
|
+
<mxGraphModel dx="983" dy="448" 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="
|
|
14
|
-
<mxGeometry x="20" y="
|
|
13
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-9" value="PhotoViewer" 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
|
+
<mxGeometry x="20" y="148" 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="
|
|
20
|
-
<mxGeometry x="200" y="
|
|
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
|
+
<mxGeometry x="200" y="148" 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;"
|
|
26
|
-
<mxGeometry x="380" y="
|
|
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
|
+
<mxGeometry x="380" y="148" 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
|
-
<mxPoint x="100" y="
|
|
40
|
-
<mxPoint x="460" y="
|
|
39
|
+
<mxPoint x="100" y="128" as="sourcePoint" />
|
|
40
|
+
<mxPoint x="460" y="128" 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
|
-
<mxPoint x="280" y="
|
|
46
|
+
<mxPoint x="280" y="130" 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
|
-
<mxPoint x="460" y="
|
|
52
|
+
<mxPoint x="460" y="130" as="targetPoint" />
|
|
53
53
|
</mxGeometry>
|
|
54
54
|
</mxCell>
|
|
55
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-22" value="
|
|
56
|
-
<mxGeometry x="10" y="10" width="540" height="
|
|
55
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-22" value="components.core" style="swimlane;whiteSpace=wrap;html=1;startSize=23;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
56
|
+
<mxGeometry x="10" y="10" width="540" height="240" as="geometry" />
|
|
57
57
|
</mxCell>
|
|
58
|
-
<mxCell id="-
|
|
59
|
-
<mxGeometry x="
|
|
58
|
+
<mxCell id="l_DTcpemKbOkDnIudQOG-0" 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;" vertex="1" parent="-sBJLWWXFzCuZ66xZKHM-22">
|
|
59
|
+
<mxGeometry x="60" y="200" width="160" height="34" as="geometry" />
|
|
60
60
|
</mxCell>
|
|
61
|
-
<mxCell id="-
|
|
61
|
+
<mxCell id="l_DTcpemKbOkDnIudQOG-1" 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;" vertex="1" parent="l_DTcpemKbOkDnIudQOG-0">
|
|
62
|
+
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
63
|
+
</mxCell>
|
|
64
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-23" value="components.ui" style="swimlane;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
|
|
65
|
+
<mxGeometry x="10" y="271" width="540" height="90" as="geometry" />
|
|
66
|
+
</mxCell>
|
|
67
|
+
<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
68
|
<mxGeometry x="10" y="40" width="160" height="34" as="geometry" />
|
|
63
69
|
</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;"
|
|
70
|
+
<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
71
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
66
72
|
</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;"
|
|
73
|
+
<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
74
|
<mxGeometry x="370" y="40" width="160" height="34" as="geometry" />
|
|
69
75
|
</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;"
|
|
76
|
+
<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
77
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
72
78
|
</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;"
|
|
79
|
+
<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
80
|
<mxGeometry x="190" y="40" width="160" height="34" as="geometry" />
|
|
75
81
|
</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;"
|
|
82
|
+
<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
83
|
<mxGeometry y="26" width="160" height="8" as="geometry" />
|
|
78
84
|
</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;"
|
|
80
|
-
<mxGeometry width="160" relative="1" as="geometry">
|
|
85
|
+
<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="l_DTcpemKbOkDnIudQOG-0" target="-sBJLWWXFzCuZ66xZKHM-24" edge="1">
|
|
86
|
+
<mxGeometry x="0.3561" y="-10" width="160" relative="1" as="geometry">
|
|
81
87
|
<mxPoint x="370" y="300" as="sourcePoint" />
|
|
82
88
|
<mxPoint x="234" y="272" as="targetPoint" />
|
|
89
|
+
<mxPoint as="offset" />
|
|
83
90
|
</mxGeometry>
|
|
84
91
|
</mxCell>
|
|
85
|
-
<mxCell id="-sBJLWWXFzCuZ66xZKHM-31" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;
|
|
86
|
-
<mxGeometry width="160" relative="1" as="geometry">
|
|
87
|
-
<mxPoint x="
|
|
92
|
+
<mxCell id="-sBJLWWXFzCuZ66xZKHM-31" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;rounded=0;entryX=0.123;entryY=0.023;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.114;exitY=0.919;exitDx=0;exitDy=0;exitPerimeter=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="-sBJLWWXFzCuZ66xZKHM-10" target="-sBJLWWXFzCuZ66xZKHM-26" edge="1">
|
|
93
|
+
<mxGeometry x="0.4701" width="160" relative="1" as="geometry">
|
|
94
|
+
<mxPoint x="40" y="200" as="sourcePoint" />
|
|
88
95
|
<mxPoint x="530" y="300" as="targetPoint" />
|
|
96
|
+
<mxPoint as="offset" />
|
|
89
97
|
</mxGeometry>
|
|
90
98
|
</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;"
|
|
99
|
+
<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
100
|
<mxGeometry x="0.3304" width="160" relative="1" as="geometry">
|
|
93
101
|
<mxPoint x="111" y="204" as="sourcePoint" />
|
|
94
102
|
<mxPoint x="290" y="280" as="targetPoint" />
|
|
@@ -99,30 +107,37 @@
|
|
|
99
107
|
<mxPoint as="offset" />
|
|
100
108
|
</mxGeometry>
|
|
101
109
|
</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;"
|
|
103
|
-
<mxGeometry width="160" relative="1" as="geometry">
|
|
110
|
+
<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">
|
|
111
|
+
<mxGeometry x="0.4416" y="4" width="160" relative="1" as="geometry">
|
|
104
112
|
<mxPoint x="320" y="390" as="sourcePoint" />
|
|
105
113
|
<mxPoint x="480" y="390" as="targetPoint" />
|
|
114
|
+
<mxPoint as="offset" />
|
|
106
115
|
</mxGeometry>
|
|
107
116
|
</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;"
|
|
109
|
-
<mxGeometry x="
|
|
117
|
+
<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">
|
|
118
|
+
<mxGeometry x="0.2678" y="6" width="160" relative="1" as="geometry">
|
|
110
119
|
<mxPoint x="210" y="360" as="sourcePoint" />
|
|
111
120
|
<mxPoint x="240" y="270" as="targetPoint" />
|
|
112
121
|
<mxPoint as="offset" />
|
|
113
122
|
</mxGeometry>
|
|
114
123
|
</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;"
|
|
124
|
+
<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
125
|
<mxGeometry width="160" relative="1" as="geometry">
|
|
117
126
|
<mxPoint x="150" y="370" as="sourcePoint" />
|
|
118
127
|
<mxPoint x="310" y="370" as="targetPoint" />
|
|
119
128
|
<Array as="points">
|
|
120
|
-
<mxPoint x="
|
|
121
|
-
<mxPoint x="
|
|
122
|
-
<mxPoint x="190" y="240" />
|
|
129
|
+
<mxPoint x="350" y="260" />
|
|
130
|
+
<mxPoint x="190" y="280" />
|
|
123
131
|
</Array>
|
|
124
132
|
</mxGeometry>
|
|
125
133
|
</mxCell>
|
|
134
|
+
<mxCell id="l_DTcpemKbOkDnIudQOG-4" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;exitX=0.441;exitY=0.022;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="l_DTcpemKbOkDnIudQOG-0">
|
|
135
|
+
<mxGeometry x="-0.2397" y="-30" width="160" relative="1" as="geometry">
|
|
136
|
+
<mxPoint x="110" y="158" as="sourcePoint" />
|
|
137
|
+
<mxPoint x="140" y="182" as="targetPoint" />
|
|
138
|
+
<mxPoint as="offset" />
|
|
139
|
+
</mxGeometry>
|
|
140
|
+
</mxCell>
|
|
126
141
|
</root>
|
|
127
142
|
</mxGraphModel>
|
|
128
143
|
</diagram>
|
|
Binary file
|
|
Binary file
|
package/docs/index.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
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
|
+
You may also add some CSS to make sure your component has proper dimensions:
|
|
87
|
+
|
|
88
|
+
```css
|
|
89
|
+
pnx-viewer {
|
|
90
|
+
width: 300px;
|
|
91
|
+
height: 250px;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Beyond classic viewer, other widgets are available and [can be tested online](https://viewer.geovisio.fr/).
|
|
96
|
+
|
|
97
|
+
__Coverage map__
|
|
98
|
+
|
|
99
|
+
A simple map for showing Panoramax data availability.
|
|
100
|
+
|
|
101
|
+
```html
|
|
102
|
+
<pnx-coverage-map
|
|
103
|
+
endpoint="https://api.panoramax.xyz/api"
|
|
104
|
+
/>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
[Many options are available as well](./reference/components/core/CoverageMap.md).
|
|
108
|
+
|
|
109
|
+
__Photo Viewer__
|
|
110
|
+
|
|
111
|
+
A photo-only viewer, showing one picture at a time, and offering navigation through sequence and nearby pictures.
|
|
112
|
+
|
|
113
|
+
```html
|
|
114
|
+
<pnx-photo-viewer
|
|
115
|
+
endpoint="https://api.panoramax.xyz/api"
|
|
116
|
+
sequence="id-to-an-existing-sequence"
|
|
117
|
+
picture="id-to-a-picture-in-this-sequence"
|
|
118
|
+
/>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
[Many options are available as well](./reference/components/core/PhotoViewer.md).
|
|
122
|
+
|
|
123
|
+
__Editor__
|
|
124
|
+
|
|
125
|
+
A map and photo viewer, focused on a single sequence, for previewing edits made to it.
|
|
126
|
+
|
|
127
|
+
```html
|
|
128
|
+
<pnx-editor
|
|
129
|
+
endpoint="https://panoramax.openstreetmap.fr/api"
|
|
130
|
+
sequence="id-to-an-existing-sequence"
|
|
131
|
+
picture="id-to-a-picture-in-this-sequence"
|
|
132
|
+
/>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
[Many options are available as well](./reference/components/core/Editor.md).
|