@panoramax/web-viewer 3.2.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/.gitlab-ci.yml +13 -6
  2. package/CHANGELOG.md +49 -1
  3. package/CODE_OF_CONDUCT.md +1 -1
  4. package/README.md +1 -1
  5. package/build/editor.html +10 -1
  6. package/build/index.css +12 -12
  7. package/build/index.css.map +1 -1
  8. package/build/index.html +1 -1
  9. package/build/index.js +2126 -14
  10. package/build/index.js.map +1 -1
  11. package/build/map.html +1 -1
  12. package/build/photo.html +1 -0
  13. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff +0 -0
  14. package/build/static/media/atkinson-hyperlegible-next-latin-400-normal..woff2 +0 -0
  15. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff +0 -0
  16. package/build/static/media/atkinson-hyperlegible-next-latin-ext-400-normal..woff2 +0 -0
  17. package/build/viewer.html +12 -1
  18. package/build/widgets.html +1 -0
  19. package/config/jest/mocks.js +201 -0
  20. package/config/paths.js +2 -0
  21. package/config/webpack.config.js +52 -0
  22. package/docs/03_URL_settings.md +14 -16
  23. package/docs/05_Compatibility.md +59 -76
  24. package/docs/09_Develop.md +46 -11
  25. package/docs/90_Releases.md +2 -2
  26. package/docs/images/class_diagram.drawio +60 -45
  27. package/docs/images/class_diagram.jpg +0 -0
  28. package/docs/images/screenshot.jpg +0 -0
  29. package/docs/index.md +135 -0
  30. package/docs/reference/components/core/Basic.md +196 -0
  31. package/docs/reference/components/core/CoverageMap.md +210 -0
  32. package/docs/reference/components/core/Editor.md +224 -0
  33. package/docs/reference/components/core/PhotoViewer.md +307 -0
  34. package/docs/reference/components/core/Viewer.md +350 -0
  35. package/docs/reference/components/layout/BottomDrawer.md +35 -0
  36. package/docs/reference/components/layout/CorneredGrid.md +29 -0
  37. package/docs/reference/components/layout/Mini.md +45 -0
  38. package/docs/reference/components/layout/Tabs.md +45 -0
  39. package/docs/reference/components/menus/MapBackground.md +32 -0
  40. package/docs/reference/components/menus/MapFilters.md +15 -0
  41. package/docs/reference/components/menus/MapLayers.md +15 -0
  42. package/docs/reference/components/menus/MapLegend.md +15 -0
  43. package/docs/reference/components/menus/PictureLegend.md +16 -0
  44. package/docs/reference/components/menus/PictureMetadata.md +15 -0
  45. package/docs/reference/components/menus/PlayerOptions.md +15 -0
  46. package/docs/reference/components/menus/QualityScoreDoc.md +15 -0
  47. package/docs/reference/components/menus/ReportForm.md +15 -0
  48. package/docs/reference/components/menus/ShareMenu.md +15 -0
  49. package/docs/reference/components/ui/Button.md +40 -0
  50. package/docs/reference/components/ui/ButtonGroup.md +36 -0
  51. package/docs/reference/components/ui/CopyButton.md +38 -0
  52. package/docs/reference/components/ui/Grade.md +32 -0
  53. package/docs/reference/components/ui/LinkButton.md +45 -0
  54. package/docs/reference/components/ui/ListGroup.md +22 -0
  55. package/docs/reference/components/ui/Loader.md +56 -0
  56. package/docs/reference/components/ui/Map.md +239 -0
  57. package/docs/reference/components/ui/MapMore.md +256 -0
  58. package/docs/reference/components/ui/Photo.md +385 -0
  59. package/docs/reference/components/ui/Popup.md +56 -0
  60. package/docs/reference/components/ui/ProgressBar.md +32 -0
  61. package/docs/reference/components/ui/QualityScore.md +45 -0
  62. package/docs/reference/components/ui/SearchBar.md +63 -0
  63. package/docs/reference/components/ui/TogglableGroup.md +39 -0
  64. package/docs/reference/components/ui/widgets/GeoSearch.md +32 -0
  65. package/docs/reference/components/ui/widgets/Legend.md +49 -0
  66. package/docs/reference/components/ui/widgets/MapFiltersButton.md +33 -0
  67. package/docs/reference/components/ui/widgets/MapLayersButton.md +15 -0
  68. package/docs/reference/components/ui/widgets/OSMEditors.md +15 -0
  69. package/docs/reference/components/ui/widgets/PictureLegendActions.md +32 -0
  70. package/docs/reference/components/ui/widgets/Player.md +33 -0
  71. package/docs/reference/components/ui/widgets/Zoom.md +15 -0
  72. package/docs/reference/utils/API.md +334 -0
  73. package/docs/reference/utils/InitParameters.md +68 -0
  74. package/docs/reference/utils/URLHandler.md +107 -0
  75. package/docs/reference.md +79 -0
  76. package/docs/shortcuts.md +11 -0
  77. package/docs/tutorials/aerial_imagery.md +19 -0
  78. package/docs/tutorials/authentication.md +10 -0
  79. package/docs/tutorials/custom_widgets.md +59 -0
  80. package/docs/tutorials/map_style.md +39 -0
  81. package/docs/tutorials/migrate_v4.md +153 -0
  82. package/docs/tutorials/synced_coverage.md +43 -0
  83. package/mkdocs.yml +66 -5
  84. package/package.json +22 -17
  85. package/public/editor.html +21 -29
  86. package/public/index.html +17 -12
  87. package/public/map.html +19 -18
  88. package/public/photo.html +55 -0
  89. package/public/viewer.html +22 -26
  90. package/public/widgets.html +306 -0
  91. package/scripts/doc.js +79 -0
  92. package/src/components/core/Basic.css +48 -0
  93. package/src/components/core/Basic.js +349 -0
  94. package/src/components/core/CoverageMap.css +9 -0
  95. package/src/components/core/CoverageMap.js +139 -0
  96. package/src/components/core/Editor.css +23 -0
  97. package/src/components/core/Editor.js +390 -0
  98. package/src/components/core/PhotoViewer.css +48 -0
  99. package/src/components/core/PhotoViewer.js +499 -0
  100. package/src/components/core/Viewer.css +98 -0
  101. package/src/components/core/Viewer.js +564 -0
  102. package/src/components/core/index.js +12 -0
  103. package/src/components/index.js +13 -0
  104. package/src/components/layout/BottomDrawer.js +257 -0
  105. package/src/components/layout/CorneredGrid.js +112 -0
  106. package/src/components/layout/Mini.js +117 -0
  107. package/src/components/layout/Tabs.js +133 -0
  108. package/src/components/layout/index.js +9 -0
  109. package/src/components/menus/MapBackground.js +106 -0
  110. package/src/components/menus/MapFilters.js +400 -0
  111. package/src/components/menus/MapLayers.js +143 -0
  112. package/src/components/menus/MapLegend.js +34 -0
  113. package/src/components/menus/PictureLegend.js +253 -0
  114. package/src/components/menus/PictureMetadata.js +317 -0
  115. package/src/components/menus/PlayerOptions.js +95 -0
  116. package/src/components/menus/QualityScoreDoc.js +36 -0
  117. package/src/components/menus/ReportForm.js +133 -0
  118. package/src/components/menus/Share.js +100 -0
  119. package/src/components/menus/index.js +15 -0
  120. package/src/components/styles.js +383 -0
  121. package/src/components/ui/Button.js +77 -0
  122. package/src/components/ui/ButtonGroup.css +57 -0
  123. package/src/components/ui/ButtonGroup.js +68 -0
  124. package/src/components/ui/CopyButton.js +106 -0
  125. package/src/components/ui/Grade.js +54 -0
  126. package/src/components/ui/LinkButton.js +67 -0
  127. package/src/components/ui/ListGroup.js +66 -0
  128. package/src/components/ui/Loader.js +203 -0
  129. package/src/components/{Map.css → ui/Map.css} +5 -17
  130. package/src/components/{Map.js → ui/Map.js} +148 -156
  131. package/src/components/ui/MapMore.js +324 -0
  132. package/src/components/{Photo.css → ui/Photo.css} +6 -6
  133. package/src/components/{Photo.js → ui/Photo.js} +313 -101
  134. package/src/components/ui/Popup.js +145 -0
  135. package/src/components/ui/ProgressBar.js +104 -0
  136. package/src/components/ui/QualityScore.js +147 -0
  137. package/src/components/ui/SearchBar.js +367 -0
  138. package/src/components/ui/TogglableGroup.js +157 -0
  139. package/src/components/ui/index.js +22 -0
  140. package/src/components/ui/widgets/GeoSearch.css +21 -0
  141. package/src/components/ui/widgets/GeoSearch.js +139 -0
  142. package/src/components/ui/widgets/Legend.js +113 -0
  143. package/src/components/ui/widgets/MapFiltersButton.js +104 -0
  144. package/src/components/ui/widgets/MapLayersButton.js +79 -0
  145. package/src/components/ui/widgets/OSMEditors.js +155 -0
  146. package/src/components/ui/widgets/PictureLegendActions.js +117 -0
  147. package/src/components/ui/widgets/Player.css +7 -0
  148. package/src/components/ui/widgets/Player.js +151 -0
  149. package/src/components/ui/widgets/Zoom.js +82 -0
  150. package/src/components/ui/widgets/index.js +13 -0
  151. package/src/img/loader_base.jpg +0 -0
  152. package/src/img/panoramax.svg +13 -0
  153. package/src/img/switch_big.svg +20 -10
  154. package/src/index.js +7 -9
  155. package/src/translations/br.json +1 -0
  156. package/src/translations/da.json +38 -15
  157. package/src/translations/de.json +5 -3
  158. package/src/translations/en.json +35 -15
  159. package/src/translations/eo.json +38 -15
  160. package/src/translations/es.json +1 -1
  161. package/src/translations/fr.json +36 -16
  162. package/src/translations/hu.json +1 -1
  163. package/src/translations/it.json +39 -16
  164. package/src/translations/ja.json +182 -1
  165. package/src/translations/nl.json +106 -6
  166. package/src/translations/pl.json +1 -1
  167. package/src/translations/sv.json +182 -0
  168. package/src/translations/zh_Hant.json +35 -14
  169. package/src/utils/API.js +109 -49
  170. package/src/utils/InitParameters.js +388 -0
  171. package/src/utils/PhotoAdapter.js +1 -0
  172. package/src/utils/URLHandler.js +362 -0
  173. package/src/utils/geocoder.js +152 -0
  174. package/src/utils/{I18n.js → i18n.js} +7 -3
  175. package/src/utils/index.js +11 -0
  176. package/src/utils/{Map.js → map.js} +256 -77
  177. package/src/utils/picture.js +442 -0
  178. package/src/utils/utils.js +324 -0
  179. package/src/utils/widgets.js +55 -0
  180. package/tests/components/core/Basic.test.js +121 -0
  181. package/tests/components/core/BasicMock.js +25 -0
  182. package/tests/components/core/CoverageMap.test.js +20 -0
  183. package/tests/components/core/Editor.test.js +20 -0
  184. package/tests/components/core/PhotoViewer.test.js +57 -0
  185. package/tests/components/core/Viewer.test.js +84 -0
  186. package/tests/components/core/__snapshots__/PhotoViewer.test.js.snap +73 -0
  187. package/tests/components/core/__snapshots__/Viewer.test.js.snap +145 -0
  188. package/tests/components/ui/CopyButton.test.js +52 -0
  189. package/tests/components/ui/Loader.test.js +55 -0
  190. package/tests/components/{Map.test.js → ui/Map.test.js} +73 -61
  191. package/tests/components/{Photo.test.js → ui/Photo.test.js} +97 -63
  192. package/tests/components/ui/Popup.test.js +26 -0
  193. package/tests/components/ui/QualityScore.test.js +18 -0
  194. package/tests/components/ui/SearchBar.test.js +110 -0
  195. package/tests/components/ui/__snapshots__/CopyButton.test.js.snap +33 -0
  196. package/tests/components/ui/__snapshots__/Loader.test.js.snap +56 -0
  197. package/tests/components/{__snapshots__ → ui/__snapshots__}/Map.test.js.snap +11 -38
  198. package/tests/components/{__snapshots__ → ui/__snapshots__}/Photo.test.js.snap +70 -6
  199. package/tests/components/ui/__snapshots__/Popup.test.js.snap +29 -0
  200. package/tests/components/ui/__snapshots__/QualityScore.test.js.snap +11 -0
  201. package/tests/components/ui/__snapshots__/SearchBar.test.js.snap +65 -0
  202. package/tests/utils/API.test.js +83 -83
  203. package/tests/utils/InitParameters.test.js +499 -0
  204. package/tests/utils/URLHandler.test.js +401 -0
  205. package/tests/utils/__snapshots__/API.test.js.snap +10 -0
  206. package/tests/utils/__snapshots__/URLHandler.test.js.snap +21 -0
  207. package/tests/utils/__snapshots__/{Map.test.js.snap → geocoder.test.js.snap} +1 -1
  208. package/tests/utils/__snapshots__/map.test.js.snap +11 -0
  209. package/tests/utils/__snapshots__/picture.test.js.snap +327 -0
  210. package/tests/utils/__snapshots__/widgets.test.js.snap +19 -0
  211. package/tests/utils/geocoder.test.js +37 -0
  212. package/tests/utils/{I18n.test.js → i18n.test.js} +8 -8
  213. package/tests/utils/map.test.js +126 -0
  214. package/tests/utils/picture.test.js +745 -0
  215. package/tests/utils/utils.test.js +288 -0
  216. package/tests/utils/widgets.test.js +31 -0
  217. package/docs/01_Start.md +0 -149
  218. package/docs/02_Usage.md +0 -831
  219. package/docs/04_Advanced_examples.md +0 -216
  220. package/src/Editor.css +0 -37
  221. package/src/Editor.js +0 -361
  222. package/src/StandaloneMap.js +0 -114
  223. package/src/Viewer.css +0 -203
  224. package/src/Viewer.js +0 -1246
  225. package/src/components/CoreView.css +0 -70
  226. package/src/components/CoreView.js +0 -175
  227. package/src/components/Loader.css +0 -74
  228. package/src/components/Loader.js +0 -120
  229. package/src/img/loader_hd.jpg +0 -0
  230. package/src/utils/Exif.js +0 -193
  231. package/src/utils/Utils.js +0 -631
  232. package/src/utils/Widgets.js +0 -562
  233. package/src/viewer/URLHash.js +0 -469
  234. package/src/viewer/Widgets.css +0 -880
  235. package/src/viewer/Widgets.js +0 -1470
  236. package/tests/Editor.test.js +0 -126
  237. package/tests/StandaloneMap.test.js +0 -45
  238. package/tests/Viewer.test.js +0 -366
  239. package/tests/__snapshots__/Editor.test.js.snap +0 -298
  240. package/tests/__snapshots__/StandaloneMap.test.js.snap +0 -30
  241. package/tests/__snapshots__/Viewer.test.js.snap +0 -195
  242. package/tests/components/CoreView.test.js +0 -92
  243. package/tests/components/Loader.test.js +0 -38
  244. package/tests/components/__snapshots__/Loader.test.js.snap +0 -15
  245. package/tests/utils/Exif.test.js +0 -124
  246. package/tests/utils/Map.test.js +0 -113
  247. package/tests/utils/Utils.test.js +0 -300
  248. package/tests/utils/Widgets.test.js +0 -107
  249. package/tests/utils/__snapshots__/Exif.test.js.snap +0 -43
  250. package/tests/utils/__snapshots__/Utils.test.js.snap +0 -41
  251. package/tests/utils/__snapshots__/Widgets.test.js.snap +0 -44
  252. package/tests/viewer/URLHash.test.js +0 -559
  253. package/tests/viewer/Widgets.test.js +0 -127
  254. package/tests/viewer/__snapshots__/URLHash.test.js.snap +0 -108
  255. package/tests/viewer/__snapshots__/Widgets.test.js.snap +0 -403
@@ -1,114 +0,0 @@
1
- import CoreView from "./components/CoreView";
2
- import Map from "./components/Map";
3
- import { getUserLayerId } from "./utils/Map";
4
- import { NavigationControl } from "!maplibre-gl"; // DO NOT REMOVE THE "!": bundled builds breaks otherwise !!!
5
-
6
- /**
7
- * The standalone map viewer allows to see STAC pictures data as a map.
8
- * It only embeds a map (no 360° pictures viewer) with a minimal picture preview (thumbnail).
9
- *
10
- * Note that you can use any of the [CoreView](#CoreView) class functions as well.
11
- *
12
- * @param {string|Element} container The DOM element to create viewer into
13
- * @param {string} endpoint URL to API to use (must be a [STAC API](https://github.com/radiantearth/stac-api-spec/blob/main/overview.md))
14
- * @param {object} [options] Map options. Various settings can be passed, either the ones defined here, or any of [MapLibre GL settings](https://maplibre.org/maplibre-gl-js-docs/api/map/#map-parameters).
15
- * @param {string} [options.selectedSequence] The ID of sequence to highlight on load (defaults to none)
16
- * @param {string} [options.selectedPicture] The ID of picture to highlight on load (defaults to none)
17
- * @param {object} [options.fetchOptions=null] 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))
18
- * @param {number} [options.minZoom=0] The minimum zoom level of the map (0-24).
19
- * @param {number} [options.maxZoom=24] The maximum zoom level of the map (0-24).
20
- * @param {string|object} [options.style] 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.
21
- * @param {external:maplibre-gl.LngLatLike} [options.center=[0, 0]] The initial geographical centerpoint of the map. If `center` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `[0, 0]` Note: MapLibre GL uses longitude, latitude coordinate order (as opposed to latitude, longitude) to match GeoJSON.
22
- * @param {number} [options.zoom=0] The initial zoom level of the map. If `zoom` is not specified in the constructor options, MapLibre GL JS will look for it in the map's style object. If it is not specified in the style, either, it will default to `0`.
23
- * @param {external:maplibre-gl.LngLatBoundsLike} [options.bounds] The initial bounds of the map. If `bounds` is specified, it overrides `center` and `zoom` constructor options.
24
- * @param {string[]} [options.users] The IDs of users whom data should appear on map (defaults to all)
25
- *
26
- * @property {Map} map The map widget
27
- */
28
- class StandaloneMap extends CoreView {
29
- constructor(container, endpoint, options = {}) {
30
- super(container, endpoint, options);
31
-
32
- this.mapContainer = document.createElement("div");
33
- this.container.appendChild(this.mapContainer);
34
-
35
- // Init API
36
- this._api.onceReady().then(() => this._initMap());
37
-
38
- // Events handlers
39
- this.addEventListener("map:picture-click", e => this.select(e.detail.seqId, e.detail.picId));
40
- this.addEventListener("map:sequence-click", e => this.select(e.detail.seqId));
41
- this.addEventListener("select", this._onSelect.bind(this));
42
- }
43
-
44
- getClassName() {
45
- return "Map";
46
- }
47
-
48
- /**
49
- * Ends all form of life in this object.
50
- *
51
- * This is useful for Single Page Applications (SPA), to remove various event listeners.
52
- */
53
- destroy() {
54
- super.destroy();
55
-
56
- // Delete sub-components
57
- this.map.destroy();
58
- delete this.map;
59
-
60
- // Clean-up DOM
61
- this.mapContainer.remove();
62
- this.container.innerHTML = "";
63
- this.container.classList.remove(...[...this.container.classList].filter(c => c.startsWith("gvs")));
64
- }
65
-
66
- /**
67
- * Creates map object
68
- * @private
69
- */
70
- _initMap() {
71
- this._options.hash = true;
72
-
73
- // Override to avoid display of pictures symbols
74
- class MyMap extends Map {
75
- _getLayerStyleProperties(layer) {
76
- if(layer === "pictures_symbols") {
77
- return { layout: { visibility: "none" } };
78
- }
79
- else {
80
- return super._getLayerStyleProperties(layer);
81
- }
82
- }
83
- }
84
-
85
- this.map = new MyMap(this, this.mapContainer, this._options);
86
- this.map.addControl(new NavigationControl({ showCompass: false }));
87
- this.map.waitForEnoughMapLoaded().then(() => {
88
- this.map.reloadLayersStyles();
89
- this._loader.dismiss();
90
- });
91
- }
92
-
93
- /**
94
- * Select event handler
95
- * @private
96
- * @param {object} e Event details
97
- */
98
- _onSelect(e) {
99
- // Move thumbnail to match selected element
100
- if(e.detail.picId || e.detail.seqId) {
101
- const layer = e.detail.picId ? "pictures" : "sequences";
102
- const features = this.map.queryRenderedFeatures({
103
- layers: [...this.map._userLayers].map(l => getUserLayerId(l, layer)),
104
- filter: ["==", ["get", "id"], e.detail.picId || e.detail.seqId]
105
- });
106
-
107
- if(features.length >= 0 && features[0] != null) {
108
- this.map._attachPreviewToPictures({ features }, layer);
109
- }
110
- }
111
- }
112
- }
113
-
114
- export default StandaloneMap;
package/src/Viewer.css DELETED
@@ -1,203 +0,0 @@
1
- /*
2
- * Sizing of elements
3
- */
4
-
5
- /* Focused element */
6
- .gvs-viewer .gvs-main
7
- {
8
- position: relative;
9
- width: 100%;
10
- height: 100%;
11
- z-index: 0;
12
- }
13
-
14
- .gvs-viewer .gvs-main {
15
- display: flex;
16
- flex-direction: column;
17
- }
18
-
19
- /* Non-focused element */
20
- .gvs-viewer .gvs-mini
21
- {
22
- position: absolute;
23
- top: unset;
24
- bottom: 10px;
25
- left: 10px;
26
- height: 30%;
27
- min-height: 232px;
28
- aspect-ratio: 1 / 1;
29
- z-index: 1;
30
- }
31
-
32
- .gvs.gvs-viewer:not(.gvs-has-mini) .gvs-mini,
33
- .gvs.gvs-viewer.gvs-mini-hidden .gvs-mini {
34
- display: none;
35
- }
36
-
37
- @container (max-width: 576px) { /* Special rule for small containers */
38
- .gvs-viewer .gvs-mini {
39
- max-width: 166px;
40
- max-height: 110px;
41
- min-height: unset;
42
- width: 50%;
43
- height: 30%;
44
- }
45
- }
46
-
47
- .gvs-viewer .gvs-map.maplibregl-map {
48
- position: absolute;
49
- top: 0;
50
- right: 0;
51
- left: 0;
52
- bottom: 0;
53
- }
54
-
55
- /* PSV fulfilling its parent */
56
- .gvs-viewer .gvs-psv,
57
- .gvs-viewer .gvs-popup {
58
- position: absolute;
59
- top: 0;
60
- right: 0;
61
- left: 0;
62
- bottom: 0;
63
- }
64
-
65
-
66
- /*
67
- * Styling
68
- */
69
-
70
-
71
- /* Non-focused element */
72
- .gvs-viewer .gvs-mini,
73
- .gvs-viewer .gvs-mini .psv-container,
74
- .gvs-viewer .gvs-mini .gvs-map
75
- {
76
- border-radius: 10px;
77
- }
78
-
79
- /* PSV under widgets */
80
- .gvs-viewer .psv-container {
81
- z-index: 0;
82
- }
83
-
84
- /* No PSV loader */
85
- .gvs-viewer .psv-loader {
86
- display: none;
87
- }
88
-
89
- /* Overlay under navbar */
90
- .gvs-viewer .psv-overlay {
91
- z-index: 89;
92
- }
93
-
94
- /* Popup */
95
- .gvs-viewer .gvs-popup {
96
- display: flex;
97
- justify-content: center;
98
- align-items: center;
99
- transition: opacity 0.1s;
100
- z-index: 10;
101
- visibility: visible;
102
- opacity: 1;
103
- }
104
-
105
- .gvs-viewer .gvs-popup.gvs-hidden {
106
- display: flex !important;
107
- opacity: 0;
108
- visibility: hidden;
109
- }
110
-
111
- .gvs-viewer .gvs-popup-backdrop {
112
- position: absolute;
113
- background: rgba(0, 0, 0, 0.85);
114
- top: 0;
115
- bottom: 0;
116
- right: 0;
117
- left: 0;
118
- z-index: 10;
119
- }
120
-
121
- .gvs-viewer .gvs-popup div.gvs-widget-bg {
122
- max-width: 90%;
123
- max-height: 90%;
124
- position: absolute;
125
- padding: 15px;
126
- z-index: 10;
127
- border-radius: 25px;
128
- overflow-y: auto;
129
- }
130
-
131
- .gvs-viewer #gvs-popup-btn-close {
132
- position: absolute;
133
- top: 15px;
134
- right: 15px;
135
- width: 24px;
136
- min-width: unset;
137
- height: 24px;
138
- border-radius: 12px;
139
- }
140
-
141
- .gvs-viewer .gvs-popup table {
142
- border-collapse: collapse;
143
- font-size: 0.9rem;
144
- width: 100%;
145
- }
146
-
147
- .gvs-viewer .gvs-popup thead {
148
- background-color: var(--blue-pale);
149
- }
150
-
151
- .gvs-viewer .gvs-popup th[scope="row"] {
152
- text-align: left;
153
- }
154
-
155
- .gvs-viewer .gvs-popup th, .gvs-popup td {
156
- border: 1px solid var(--grey-semi-dark);
157
- padding: 8px 10px;
158
- max-width: 600px;
159
- }
160
-
161
- .gvs-viewer .gvs-popup .gvs-table-light th[scope="row"] {
162
- width: 30%;
163
- }
164
-
165
- .gvs-viewer .gvs-popup .gvs-table-light th,
166
- .gvs-viewer .gvs-popup .gvs-table-light td {
167
- border: none;
168
- padding: 5px 10px;
169
- text-align: left;
170
- }
171
-
172
- .gvs-viewer .gvs-popup .gvs-table-light .gvs-td-with-id {
173
- display: flex;
174
- justify-content: space-between;
175
- align-items: center;
176
- }
177
-
178
- .gvs-viewer .gvs-popup table:not(.gvs-table-light) td:last-of-type {
179
- text-align: center;
180
- }
181
-
182
- .gvs-viewer .gvs-popup table:not(.gvs-table-light) tbody > tr:nth-of-type(even) {
183
- background-color: var(--grey);
184
- }
185
-
186
- .gvs-viewer .gvs-popup details summary {
187
- font-size: 1.0em;
188
- line-height: 1.0em;
189
- font-weight: 500;
190
- margin: 15px 0;
191
- cursor: pointer;
192
- }
193
-
194
- .gvs-viewer .gvs-popup details summary svg {
195
- height: 18px;
196
- vertical-align: sub;
197
- margin-right: 2px;
198
- }
199
-
200
- .gvs-viewer .gvs-metadata-actions {
201
- justify-content: center;
202
- font-size: 0.9rem;
203
- }