ogm-viewer 0.3.0 → 0.5.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.
- package/dist/cjs/{index-CVTUnaNg.js → index-mu9UK_Fb.js} +66 -3
- package/dist/cjs/{lerc-TQEssgMv.js → lerc-Df0hDWkS.js} +7 -7
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-ifPxRNEo.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-DMEfXquS.js} +13843 -6976
- package/dist/cjs/ogm-alerts_11.cjs.entry.js +18 -0
- package/dist/cjs/ogm-viewer.cjs.js +2 -2
- package/dist/collection/assets/icons/exclamation-triangle-fill.svg +3 -0
- package/dist/collection/assets/webawesome/styles/color/palettes/base.css +44 -0
- package/dist/collection/assets/webawesome/styles/color/palettes/bright.css +145 -0
- package/dist/collection/assets/webawesome/styles/color/palettes/default.css +146 -0
- package/dist/collection/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
- package/dist/collection/assets/webawesome/styles/color/variants/brand.css +162 -0
- package/dist/collection/assets/webawesome/styles/color/variants/danger.css +162 -0
- package/dist/collection/assets/webawesome/styles/color/variants/neutral.css +162 -0
- package/dist/collection/assets/webawesome/styles/color/variants/success.css +162 -0
- package/dist/collection/assets/webawesome/styles/color/variants/warning.css +162 -0
- package/dist/collection/assets/webawesome/styles/color/variants.css +5 -0
- package/dist/collection/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
- package/dist/collection/assets/webawesome/styles/component/form-control.styles.ts +43 -0
- package/dist/collection/assets/webawesome/styles/component/host.styles.d.ts +2 -0
- package/dist/collection/assets/webawesome/styles/component/host.styles.ts +18 -0
- package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
- package/dist/collection/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
- package/dist/collection/assets/webawesome/styles/component/size.styles.d.ts +2 -0
- package/dist/collection/assets/webawesome/styles/component/size.styles.ts +26 -0
- package/dist/collection/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
- package/dist/collection/assets/webawesome/styles/component/variants.styles.ts +69 -0
- package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
- package/dist/collection/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
- package/dist/collection/assets/webawesome/styles/layers.css +21 -0
- package/dist/collection/assets/webawesome/styles/native.css +1439 -0
- package/dist/collection/assets/webawesome/styles/themes/awesome.css +614 -0
- package/dist/collection/assets/webawesome/styles/themes/default.css +373 -0
- package/dist/collection/assets/webawesome/styles/themes/shoelace.css +648 -0
- package/dist/collection/assets/webawesome/styles/utilities/align-items.css +44 -0
- package/dist/collection/assets/webawesome/styles/utilities/border-radius.css +20 -0
- package/dist/collection/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
- package/dist/collection/assets/webawesome/styles/utilities/fouce.css +17 -0
- package/dist/collection/assets/webawesome/styles/utilities/gap.css +56 -0
- package/dist/collection/assets/webawesome/styles/utilities/justify-content.css +32 -0
- package/dist/collection/assets/webawesome/styles/utilities/layout.css +159 -0
- package/dist/collection/assets/webawesome/styles/utilities/placeholder.css +9 -0
- package/dist/collection/assets/webawesome/styles/utilities/prose.css +161 -0
- package/dist/collection/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
- package/dist/collection/assets/webawesome/styles/utilities/size.css +21 -0
- package/dist/collection/assets/webawesome/styles/utilities/text.css +262 -0
- package/dist/collection/assets/webawesome/styles/utilities/variants.css +62 -0
- package/dist/collection/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
- package/dist/collection/assets/webawesome/styles/utilities.css +17 -0
- package/dist/collection/assets/webawesome/styles/webawesome.css +11 -0
- package/dist/collection/collection-manifest.json +4 -0
- package/dist/collection/components/ogm-alerts/ogm-alerts.css +51 -0
- package/dist/collection/components/ogm-alerts/ogm-alerts.js +71 -0
- package/dist/collection/components/ogm-alerts/ogm-alerts.test.js +26 -0
- package/dist/collection/components/ogm-attributes/ogm-attributes.css +68 -0
- package/dist/collection/components/ogm-attributes/ogm-attributes.js +112 -0
- package/dist/collection/components/ogm-image/ogm-image.css +1 -1
- package/dist/collection/components/ogm-image/ogm-image.js +70 -20
- package/dist/collection/components/ogm-map/ogm-map.css +43 -44
- package/dist/collection/components/ogm-map/ogm-map.js +229 -91
- package/dist/collection/components/ogm-menubar/ogm-menubar.css +16 -14
- package/dist/collection/components/ogm-menubar/ogm-menubar.js +3 -5
- package/dist/collection/components/ogm-menubar/ogm-menubar.test.js +28 -3
- package/dist/collection/components/ogm-metadata/ogm-metadata.css +6 -492
- package/dist/collection/components/ogm-metadata/ogm-metadata.js +3 -5
- package/dist/collection/components/ogm-metadata/ogm-metadata.test.js +1 -1
- package/dist/collection/components/ogm-preview/ogm-preview.css +16 -0
- package/dist/collection/components/ogm-preview/ogm-preview.js +144 -0
- package/dist/collection/components/ogm-preview/ogm-preview.test.js +37 -0
- package/dist/collection/components/ogm-previews/ogm-previews.css +45 -0
- package/dist/collection/components/ogm-previews/ogm-previews.js +162 -0
- package/dist/collection/components/ogm-previews/ogm-previews.test.js +83 -0
- package/dist/collection/components/ogm-settings/ogm-settings.js +7 -9
- package/dist/collection/components/ogm-sidebar/ogm-sidebar.css +50 -503
- package/dist/collection/components/ogm-sidebar/ogm-sidebar.js +8 -12
- package/dist/collection/components/ogm-viewer/ogm-viewer.css +4 -974
- package/dist/collection/components/ogm-viewer/ogm-viewer.js +69 -32
- package/dist/collection/lib/errors.js +137 -0
- package/dist/collection/lib/errors.test.js +96 -0
- package/dist/collection/lib/previewers/cog-deck.js +14 -9
- package/dist/collection/lib/previewers/cog.js +3 -3
- package/dist/collection/lib/previewers/geojson.js +3 -2
- package/dist/collection/lib/previewers/maplibre.js +9 -15
- package/dist/collection/lib/previewers/pmtiles-raster.js +1 -1
- package/dist/collection/lib/previewers/pmtiles-vector.js +7 -1
- package/dist/collection/lib/previewers/raster.js +1 -1
- package/dist/collection/lib/previewers/vector.js +65 -30
- package/dist/collection/lib/previewers/wms.js +1 -1
- package/dist/collection/lib/record.js +1 -1
- package/dist/collection/lib/record.test.js +1 -1
- package/dist/collection/lib/references.js +0 -65
- package/dist/collection/lib/references.test.js +0 -150
- package/dist/collection/lib/sources/cog.js +5 -2
- package/dist/collection/lib/sources/geojson.js +9 -2
- package/dist/collection/lib/sources/iiif-manifest.js +54 -0
- package/dist/collection/lib/sources/iiif-manifest.test.js +110 -0
- package/dist/collection/lib/sources/iiif.js +11 -0
- package/dist/collection/lib/sources/maplibre.js +8 -0
- package/dist/collection/lib/sources/openindexmap.js +3 -0
- package/dist/collection/lib/sources/pmtiles.js +10 -4
- package/dist/collection/lib/sources/raster.js +3 -3
- package/dist/collection/lib/sources/source.js +26 -7
- package/dist/collection/lib/sources/tilejson.js +7 -1
- package/dist/collection/lib/sources/tms.js +3 -0
- package/dist/collection/lib/sources/vector.js +3 -3
- package/dist/collection/lib/sources/wms.js +6 -11
- package/dist/collection/lib/sources/xyz.js +3 -0
- package/dist/collection/lib/themes/maplibre.js +46 -0
- package/dist/collection/lib/themes/theme.js +23 -0
- package/dist/esm/{index-BdFT_kJa.js → index-DTLAlWKQ.js} +66 -3
- package/dist/esm/{lerc-DFDScDrO.js → lerc-CB_Jcu33.js} +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-r5w_49n3.js → ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js} +13840 -6977
- package/dist/esm/ogm-alerts_11.entry.js +2 -0
- package/dist/esm/ogm-viewer.js +3 -3
- package/dist/ogm-viewer/assets/icons/exclamation-triangle-fill.svg +3 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/base.css +44 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/bright.css +145 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/default.css +146 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/palettes/shoelace.css +146 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants/brand.css +162 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants/danger.css +162 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants/neutral.css +162 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants/success.css +162 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants/warning.css +162 -0
- package/dist/ogm-viewer/assets/webawesome/styles/color/variants.css +5 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.d.ts +2 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/form-control.styles.ts +43 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.d.ts +2 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/host.styles.ts +18 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.d.ts +19 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/segmented-field.styles.ts +92 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.d.ts +2 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/size.styles.ts +26 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.d.ts +2 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/variants.styles.ts +69 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.d.ts +2 -0
- package/dist/ogm-viewer/assets/webawesome/styles/component/visually-hidden.styles.ts +19 -0
- package/dist/ogm-viewer/assets/webawesome/styles/layers.css +21 -0
- package/dist/ogm-viewer/assets/webawesome/styles/native.css +1439 -0
- package/dist/ogm-viewer/assets/webawesome/styles/themes/awesome.css +614 -0
- package/dist/ogm-viewer/assets/webawesome/styles/themes/default.css +373 -0
- package/dist/ogm-viewer/assets/webawesome/styles/themes/shoelace.css +648 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/align-items.css +44 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/border-radius.css +20 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/flex-wrap.css +16 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/fouce.css +17 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/gap.css +56 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/justify-content.css +32 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/layout.css +159 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/placeholder.css +9 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/prose.css +161 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/scroll-lock.css +20 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/size.css +21 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/text.css +262 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/variants.css +62 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities/visually-hidden.css +17 -0
- package/dist/ogm-viewer/assets/webawesome/styles/utilities.css +17 -0
- package/dist/ogm-viewer/assets/webawesome/styles/webawesome.css +11 -0
- package/dist/ogm-viewer/ogm-viewer.esm.js +1 -1
- package/dist/ogm-viewer/p-7936ccc9.entry.js +1 -0
- package/dist/ogm-viewer/p-CWtUrqsM.js +2822 -0
- package/dist/ogm-viewer/p-DTLAlWKQ.js +2 -0
- package/dist/ogm-viewer/{p-BeA3REDA.js → p-DqRDI3AC.js} +1 -1
- package/dist/types/components/ogm-alerts/ogm-alerts.d.ts +6 -0
- package/dist/types/components/ogm-alerts/ogm-alerts.test.d.ts +1 -0
- package/dist/types/components/ogm-attributes/ogm-attributes.d.ts +10 -0
- package/dist/types/components/ogm-image/ogm-image.d.ts +8 -3
- package/dist/types/components/ogm-map/ogm-map.d.ts +38 -14
- package/dist/types/components/ogm-menubar/ogm-menubar.d.ts +1 -1
- package/dist/types/components/ogm-metadata/ogm-metadata.d.ts +1 -1
- package/dist/types/components/ogm-preview/ogm-preview.d.ts +13 -0
- package/dist/types/components/ogm-preview/ogm-preview.test.d.ts +1 -0
- package/dist/types/components/ogm-previews/ogm-previews.d.ts +12 -0
- package/dist/types/components/ogm-previews/ogm-previews.test.d.ts +1 -0
- package/dist/types/components/ogm-settings/ogm-settings.d.ts +2 -2
- package/dist/types/components/ogm-sidebar/ogm-sidebar.d.ts +1 -1
- package/dist/types/components/ogm-viewer/ogm-viewer.d.ts +17 -14
- package/dist/types/components.d.ts +122 -18
- package/dist/types/lib/errors.d.ts +13 -0
- package/dist/types/lib/errors.test.d.ts +1 -0
- package/dist/types/lib/previewers/cog-deck.d.ts +7 -3
- package/dist/types/lib/previewers/cog.d.ts +2 -2
- package/dist/types/lib/previewers/maplibre.d.ts +7 -9
- package/dist/types/lib/previewers/pmtiles-vector.d.ts +1 -0
- package/dist/types/lib/previewers/vector.d.ts +3 -15
- package/dist/types/lib/record.d.ts +1 -1
- package/dist/types/lib/references.d.ts +0 -8
- package/dist/types/lib/sources/cog.d.ts +3 -2
- package/dist/types/lib/sources/geojson.d.ts +3 -2
- package/dist/types/lib/sources/iiif-manifest.d.ts +12 -0
- package/dist/types/lib/sources/iiif-manifest.test.d.ts +1 -0
- package/dist/types/lib/sources/iiif.d.ts +5 -0
- package/dist/types/lib/sources/maplibre.d.ts +7 -0
- package/dist/types/lib/sources/openindexmap.d.ts +1 -0
- package/dist/types/lib/sources/pmtiles.d.ts +6 -4
- package/dist/types/lib/sources/raster.d.ts +3 -3
- package/dist/types/lib/sources/source.d.ts +7 -7
- package/dist/types/lib/sources/tilejson.d.ts +3 -2
- package/dist/types/lib/sources/tms.d.ts +1 -0
- package/dist/types/lib/sources/vector.d.ts +4 -5
- package/dist/types/lib/sources/wms.d.ts +4 -3
- package/dist/types/lib/sources/xyz.d.ts +1 -0
- package/dist/types/lib/themes/maplibre.d.ts +27 -0
- package/dist/types/lib/themes/theme.d.ts +7 -0
- package/package.json +3 -2
- package/dist/cjs/ogm-image_7.cjs.entry.js +0 -14
- package/dist/collection/lib/previewers/index.js +0 -36
- package/dist/collection/lib/sources/index.js +0 -29
- package/dist/esm/ogm-image_7.entry.js +0 -2
- package/dist/ogm-viewer/p-0b81e024.entry.js +0 -1
- package/dist/ogm-viewer/p-33R3d9fV.js +0 -1950
- package/dist/ogm-viewer/p-BdFT_kJa.js +0 -2
- package/dist/types/lib/previewers/index.d.ts +0 -3
- package/dist/types/lib/sources/index.d.ts +0 -3
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Source from "./source";
|
|
2
|
+
// A source of IIIF image URL(s) to be previewed
|
|
3
|
+
export default class IIIFSource extends Source {
|
|
4
|
+
label() {
|
|
5
|
+
return 'IIIF Image';
|
|
6
|
+
}
|
|
7
|
+
// By default, assume we have a IIIF image URL and just return it
|
|
8
|
+
async getIIIFImageUrls() {
|
|
9
|
+
return [this.url];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Source from "./source";
|
|
2
|
+
// A source of mapped vector or raster data, accessed remotely
|
|
3
|
+
export default class MapLibreSource extends Source {
|
|
4
|
+
// URL used to generate a MapLibre source when adding to map
|
|
5
|
+
getMapLibreSourceUrl() {
|
|
6
|
+
return this.url;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
@@ -9,10 +9,13 @@ export default class PMTilesSource extends Source {
|
|
|
9
9
|
metadata;
|
|
10
10
|
header;
|
|
11
11
|
// Store a reference so we can open the archive for metadata inspection
|
|
12
|
-
constructor(id, url) {
|
|
13
|
-
super(id, url);
|
|
12
|
+
constructor(id, url, bounds) {
|
|
13
|
+
super(id, url, bounds);
|
|
14
14
|
this.archive = new PMTiles(url);
|
|
15
15
|
}
|
|
16
|
+
label() {
|
|
17
|
+
return 'PMTiles';
|
|
18
|
+
}
|
|
16
19
|
// Fetch and memoize PMTiles metadata
|
|
17
20
|
async getMetadata() {
|
|
18
21
|
if (!this.metadata) {
|
|
@@ -32,7 +35,10 @@ export default class PMTilesSource extends Source {
|
|
|
32
35
|
const header = await this.getHeader();
|
|
33
36
|
return header.tileType === TileType.Mvt || header.tileType === TileType.Mlt;
|
|
34
37
|
}
|
|
38
|
+
// Used to zoom the map to the data once loaded
|
|
35
39
|
async getBounds() {
|
|
40
|
+
if (this.bounds)
|
|
41
|
+
return this.bounds;
|
|
36
42
|
const header = await this.getHeader();
|
|
37
43
|
return [
|
|
38
44
|
[header.minLon, header.minLat],
|
|
@@ -57,7 +63,7 @@ export default class PMTilesSource extends Source {
|
|
|
57
63
|
return undefined;
|
|
58
64
|
}
|
|
59
65
|
// Appends the pmtiles:// protocol; must be registered first to work
|
|
60
|
-
|
|
66
|
+
getMapLibreSourceUrl() {
|
|
61
67
|
return `pmtiles://${this.url}`;
|
|
62
68
|
}
|
|
63
69
|
// Raster PMTiles have no specific scheme identifier for MapLibre
|
|
@@ -68,7 +74,7 @@ export default class PMTilesSource extends Source {
|
|
|
68
74
|
getTileSize() {
|
|
69
75
|
return undefined;
|
|
70
76
|
}
|
|
71
|
-
async
|
|
77
|
+
async getMapLibreSourceType() {
|
|
72
78
|
if (await this.isVector())
|
|
73
79
|
return 'vector';
|
|
74
80
|
return 'raster';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MapLibreSource from "./maplibre";
|
|
2
2
|
// Tiled raster data, accessed remotely
|
|
3
|
-
export default class RasterSource extends
|
|
3
|
+
export default class RasterSource extends MapLibreSource {
|
|
4
4
|
async isVector() {
|
|
5
5
|
return false;
|
|
6
6
|
}
|
|
7
7
|
getTileSize() {
|
|
8
8
|
return 256;
|
|
9
9
|
}
|
|
10
|
-
async
|
|
10
|
+
async getMapLibreSourceType() {
|
|
11
11
|
return 'raster';
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -1,20 +1,39 @@
|
|
|
1
|
-
// A source of
|
|
1
|
+
// A source of previewable data at a URL
|
|
2
2
|
export default class Source {
|
|
3
3
|
// URL to the remote data source
|
|
4
4
|
url;
|
|
5
|
-
//
|
|
5
|
+
// Explicitly provided bounds for the source, if any
|
|
6
|
+
bounds;
|
|
7
|
+
// Unique ID for this source
|
|
6
8
|
id;
|
|
7
9
|
// Store the source URL
|
|
8
|
-
constructor(id, url) {
|
|
10
|
+
constructor(id, url, bounds) {
|
|
9
11
|
this.id = id;
|
|
10
12
|
this.url = url;
|
|
13
|
+
this.bounds = bounds;
|
|
14
|
+
}
|
|
15
|
+
// Used to label the tabs for switching between sources, e.g.
|
|
16
|
+
label() {
|
|
17
|
+
return this.constructor.name;
|
|
11
18
|
}
|
|
12
19
|
// Check that the URL is valid and accessible
|
|
13
20
|
async test() {
|
|
14
|
-
|
|
21
|
+
try {
|
|
22
|
+
const response = await fetch(this.url, {
|
|
23
|
+
method: 'HEAD',
|
|
24
|
+
signal: AbortSignal.timeout(8000),
|
|
25
|
+
});
|
|
26
|
+
return response.ok;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
console.error(`Error checking source URL ${this.url}:`, error);
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
15
32
|
}
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
33
|
+
// Async because subclasses may do operations to calculate it
|
|
34
|
+
async getBounds() {
|
|
35
|
+
if (this.bounds)
|
|
36
|
+
return this.bounds;
|
|
37
|
+
return undefined;
|
|
19
38
|
}
|
|
20
39
|
}
|
|
@@ -3,6 +3,9 @@ import Source from "./source";
|
|
|
3
3
|
export default class TileJSONSource extends Source {
|
|
4
4
|
// Metadata parsed from TileJSON document
|
|
5
5
|
metadata;
|
|
6
|
+
label() {
|
|
7
|
+
return 'TileJSON';
|
|
8
|
+
}
|
|
6
9
|
// Fetch and memoize metadata
|
|
7
10
|
async getMetadata() {
|
|
8
11
|
if (!this.metadata) {
|
|
@@ -18,7 +21,10 @@ export default class TileJSONSource extends Source {
|
|
|
18
21
|
const pathname = new URL(template).pathname;
|
|
19
22
|
return pathname.endsWith('.pbf') || pathname.endsWith('.mvt') || pathname.endsWith('.mlt');
|
|
20
23
|
}
|
|
24
|
+
// Used to zoom the map to the data once loaded
|
|
21
25
|
async getBounds() {
|
|
26
|
+
if (this.bounds)
|
|
27
|
+
return this.bounds;
|
|
22
28
|
const metadata = await this.getMetadata();
|
|
23
29
|
return [
|
|
24
30
|
[metadata.bounds[0], metadata.bounds[1]],
|
|
@@ -37,7 +43,7 @@ export default class TileJSONSource extends Source {
|
|
|
37
43
|
return 'mlt';
|
|
38
44
|
return 'mvt';
|
|
39
45
|
}
|
|
40
|
-
async
|
|
46
|
+
async getMapLibreSourceType() {
|
|
41
47
|
if (await this.isVector())
|
|
42
48
|
return 'vector';
|
|
43
49
|
return 'raster';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MapLibreSource from "./maplibre";
|
|
2
2
|
// A source of vector data, accessed remotely
|
|
3
|
-
export default class VectorSource extends
|
|
3
|
+
export default class VectorSource extends MapLibreSource {
|
|
4
4
|
async isVector() {
|
|
5
5
|
return true;
|
|
6
6
|
}
|
|
7
|
-
async
|
|
7
|
+
async getMapLibreSourceType() {
|
|
8
8
|
return 'vector';
|
|
9
9
|
}
|
|
10
10
|
}
|
|
@@ -13,14 +13,17 @@ export default class WmsSource extends RasterSource {
|
|
|
13
13
|
options;
|
|
14
14
|
// Memoized metadata via GetCapabilities request
|
|
15
15
|
metadata;
|
|
16
|
-
constructor(id, url, options) {
|
|
17
|
-
super(id, url);
|
|
16
|
+
constructor(id, url, options, bounds) {
|
|
17
|
+
super(id, url, bounds);
|
|
18
18
|
this.options = { ...defaultOptions, ...options };
|
|
19
19
|
// Assume we're using one layer with the given ID if no layer IDs are provided
|
|
20
20
|
if (!this.options.layerIds || this.options.layerIds.length === 0) {
|
|
21
21
|
this.options.layerIds = [id];
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
+
label() {
|
|
25
|
+
return 'Web Map Service (WMS)';
|
|
26
|
+
}
|
|
24
27
|
// Fetch and memoize WMS GetCapabilities XML document
|
|
25
28
|
async getMetadata() {
|
|
26
29
|
if (!this.metadata) {
|
|
@@ -30,15 +33,7 @@ export default class WmsSource extends RasterSource {
|
|
|
30
33
|
}
|
|
31
34
|
return this.metadata;
|
|
32
35
|
}
|
|
33
|
-
|
|
34
|
-
// TODO: use getCapabilities to get the bounding box of the layer(s) and return that
|
|
35
|
-
async getBounds() {
|
|
36
|
-
return [
|
|
37
|
-
[-180, -90],
|
|
38
|
-
[180, 90],
|
|
39
|
-
];
|
|
40
|
-
}
|
|
41
|
-
getSourceUrl() {
|
|
36
|
+
getMapLibreSourceUrl() {
|
|
42
37
|
return this.tilesUrl;
|
|
43
38
|
}
|
|
44
39
|
// WMS has no specific scheme identifier for MapLibre
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import Theme from "./theme";
|
|
2
|
+
// URLs to MapLibre style documents for basemaps
|
|
3
|
+
export const darkBasemapStyle = 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json';
|
|
4
|
+
export const lightBasemapStyle = 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json';
|
|
5
|
+
// Style properties common to all MapLibre-based previewers
|
|
6
|
+
export default class MapLibreTheme extends Theme {
|
|
7
|
+
getStyle() {
|
|
8
|
+
return {
|
|
9
|
+
padding: this.readCssProperty('--wa-space-xl'),
|
|
10
|
+
opacity: 0.8,
|
|
11
|
+
fillColor: this.dualCssColors('--wa-color-blue-50', '--wa-color-blue-80'),
|
|
12
|
+
fillHighlightColor: this.dualCssColors('--wa-color-cyan-60', '--wa-color-cyan-80'),
|
|
13
|
+
fillSelectedColor: this.dualCssColors('--wa-color-green-50', '--wa-color-green-80'),
|
|
14
|
+
fillInvalidColor: this.dualCssColors('--wa-color-yellow-50', '--wa-color-yellow-80'),
|
|
15
|
+
strokeColor: this.dualCssColors('--wa-color-blue-80', '--wa-color-blue-50'),
|
|
16
|
+
strokeHighlightColor: this.dualCssColors('--wa-color-cyan-80', '--wa-color-cyan-60'),
|
|
17
|
+
strokeSelectedColor: this.dualCssColors('--wa-color-green-80', '--wa-color-green-50'),
|
|
18
|
+
strokeInvalidColor: this.dualCssColors('--wa-color-yellow-80', '--wa-color-yellow-50'),
|
|
19
|
+
textColor: this.readCssProperty('--wa-color-text-normal'),
|
|
20
|
+
textFont: this.readCssProperty('--wa-font-family-body'),
|
|
21
|
+
textSize: 12,
|
|
22
|
+
fillOpacity: 0.5,
|
|
23
|
+
fillHighlightOpacity: 0.8,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
// Get the appropriate basemap style URL based on dark mode
|
|
27
|
+
getBaseMapStyle() {
|
|
28
|
+
return this.darkMode() ? darkBasemapStyle : lightBasemapStyle;
|
|
29
|
+
}
|
|
30
|
+
// If dark mode, use the first CSS color, otherwise use the second CSS color
|
|
31
|
+
dualCssColors(darkColor, lightColor) {
|
|
32
|
+
return this.darkMode() ? this.readCssProperty(darkColor) : this.readCssProperty(lightColor);
|
|
33
|
+
}
|
|
34
|
+
// Atmosphere style for globe
|
|
35
|
+
getSkyStyle() {
|
|
36
|
+
return {
|
|
37
|
+
'sky-color': '#199EF3',
|
|
38
|
+
'sky-horizon-blend': 0.5,
|
|
39
|
+
'horizon-color': '#ffffff',
|
|
40
|
+
'horizon-fog-blend': 0.5,
|
|
41
|
+
'fog-color': '#0000ff',
|
|
42
|
+
'fog-ground-blend': 0.5,
|
|
43
|
+
'atmosphere-blend': ['interpolate', ['linear'], ['zoom'], 0, 1, 10, 1, 12, 0],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Extracts style values from the DOM/CSS for use in previewers
|
|
2
|
+
export default class Theme {
|
|
3
|
+
element;
|
|
4
|
+
// Store a reference to DOM element so we can use it to inspect styles
|
|
5
|
+
constructor(element) {
|
|
6
|
+
this.element = element;
|
|
7
|
+
}
|
|
8
|
+
// Check if we're in dark mode
|
|
9
|
+
darkMode() {
|
|
10
|
+
return this.readCssProperty('color-scheme') === 'dark';
|
|
11
|
+
}
|
|
12
|
+
// Web Awesome's palette tokens are documented inline (e.g. "#0a3a1d /* oklch(...) */").
|
|
13
|
+
// Browsers are supposed to strip CSS comments before exposing a custom property's computed
|
|
14
|
+
// value, but Safari has a bug where the comment survives, which MapLibre then rejects as an
|
|
15
|
+
// invalid color. Strip it defensively here so we don't depend on browser-specific behavior.
|
|
16
|
+
readCssProperty = (property) => {
|
|
17
|
+
return window
|
|
18
|
+
.getComputedStyle(this.element)
|
|
19
|
+
.getPropertyValue(property)
|
|
20
|
+
.replace(/\/\*.*?\*\//g, '')
|
|
21
|
+
.trim();
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -413,6 +413,13 @@ var h = (nodeName, vnodeData, ...children) => {
|
|
|
413
413
|
}
|
|
414
414
|
}
|
|
415
415
|
}
|
|
416
|
+
if (typeof nodeName === "function") {
|
|
417
|
+
return nodeName(
|
|
418
|
+
vnodeData === null ? {} : vnodeData,
|
|
419
|
+
vNodeChildren,
|
|
420
|
+
vdomFnUtils
|
|
421
|
+
);
|
|
422
|
+
}
|
|
416
423
|
const vnode = newVNode(nodeName, null);
|
|
417
424
|
vnode.$attrs$ = vnodeData;
|
|
418
425
|
if (vNodeChildren.length > 0) {
|
|
@@ -442,6 +449,36 @@ var newVNode = (tag, text) => {
|
|
|
442
449
|
};
|
|
443
450
|
var Host = {};
|
|
444
451
|
var isHost = (node) => node && node.$tag$ === Host;
|
|
452
|
+
var vdomFnUtils = {
|
|
453
|
+
forEach: (children, cb) => children.map(convertToPublic).forEach(cb),
|
|
454
|
+
map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate)
|
|
455
|
+
};
|
|
456
|
+
var convertToPublic = (node) => ({
|
|
457
|
+
vattrs: node.$attrs$,
|
|
458
|
+
vchildren: node.$children$,
|
|
459
|
+
vkey: node.$key$,
|
|
460
|
+
vname: node.$name$,
|
|
461
|
+
vtag: node.$tag$,
|
|
462
|
+
vtext: node.$text$
|
|
463
|
+
});
|
|
464
|
+
var convertToPrivate = (node) => {
|
|
465
|
+
if (typeof node.vtag === "function") {
|
|
466
|
+
const vnodeData = { ...node.vattrs };
|
|
467
|
+
if (node.vkey) {
|
|
468
|
+
vnodeData.key = node.vkey;
|
|
469
|
+
}
|
|
470
|
+
if (node.vname) {
|
|
471
|
+
vnodeData.name = node.vname;
|
|
472
|
+
}
|
|
473
|
+
return h(node.vtag, vnodeData, ...node.vchildren || []);
|
|
474
|
+
}
|
|
475
|
+
const vnode = newVNode(node.vtag, node.vtext);
|
|
476
|
+
vnode.$attrs$ = node.vattrs;
|
|
477
|
+
vnode.$children$ = node.vchildren;
|
|
478
|
+
vnode.$key$ = node.vkey;
|
|
479
|
+
vnode.$name$ = node.vname;
|
|
480
|
+
return vnode;
|
|
481
|
+
};
|
|
445
482
|
|
|
446
483
|
// src/runtime/normalize-watchers.ts
|
|
447
484
|
var normalizeWatchers = (raw) => {
|
|
@@ -515,7 +552,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
515
552
|
return;
|
|
516
553
|
}
|
|
517
554
|
let isProp = isMemberInElement(elm, memberName);
|
|
518
|
-
memberName.toLowerCase();
|
|
555
|
+
let ln = memberName.toLowerCase();
|
|
519
556
|
if (memberName === "class") {
|
|
520
557
|
const classList = elm.classList;
|
|
521
558
|
const oldClasses = parseClassList(oldValue);
|
|
@@ -524,7 +561,25 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
524
561
|
classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
|
|
525
562
|
classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
|
|
526
563
|
}
|
|
527
|
-
} else if (memberName === "key") ; else if (memberName[0] === "
|
|
564
|
+
} else if (memberName === "key") ; else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
|
|
565
|
+
if (memberName[2] === "-") {
|
|
566
|
+
memberName = memberName.slice(3);
|
|
567
|
+
} else if (isMemberInElement(win, ln)) {
|
|
568
|
+
memberName = ln.slice(2);
|
|
569
|
+
} else {
|
|
570
|
+
memberName = ln[2] + memberName.slice(3);
|
|
571
|
+
}
|
|
572
|
+
if (oldValue || newValue) {
|
|
573
|
+
const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
|
|
574
|
+
memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
|
|
575
|
+
if (oldValue) {
|
|
576
|
+
plt.rel(elm, memberName, oldValue, capture);
|
|
577
|
+
}
|
|
578
|
+
if (newValue) {
|
|
579
|
+
plt.ael(elm, memberName, newValue, capture);
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
} else if (memberName[0] === "a" && memberName.startsWith("attr:")) {
|
|
528
583
|
const propName = memberName.slice(5);
|
|
529
584
|
let attrName;
|
|
530
585
|
{
|
|
@@ -599,6 +654,8 @@ var parseClassList = (value) => {
|
|
|
599
654
|
}
|
|
600
655
|
return value.split(parseClassListRegex);
|
|
601
656
|
};
|
|
657
|
+
var CAPTURE_EVENT_SUFFIX = "Capture";
|
|
658
|
+
var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
|
|
602
659
|
|
|
603
660
|
// src/runtime/vdom/update-element.ts
|
|
604
661
|
var updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {
|
|
@@ -1540,7 +1597,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
1540
1597
|
var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
|
|
1541
1598
|
if (listeners && win.document) {
|
|
1542
1599
|
listeners.map(([flags, name, method]) => {
|
|
1543
|
-
const target = elm;
|
|
1600
|
+
const target = getHostListenerTarget(win.document, elm, flags) ;
|
|
1544
1601
|
const handler = hostListenerProxy(hostRef, method);
|
|
1545
1602
|
const opts = hostListenerOpts(flags);
|
|
1546
1603
|
plt.ael(target, name, handler, opts);
|
|
@@ -1562,6 +1619,12 @@ var hostListenerProxy = (hostRef, methodName) => (ev) => {
|
|
|
1562
1619
|
consoleError(e, hostRef.$hostElement$);
|
|
1563
1620
|
}
|
|
1564
1621
|
};
|
|
1622
|
+
var getHostListenerTarget = (doc, elm, flags) => {
|
|
1623
|
+
if (flags & 16 /* TargetBody */) {
|
|
1624
|
+
return doc.body;
|
|
1625
|
+
}
|
|
1626
|
+
return elm;
|
|
1627
|
+
};
|
|
1565
1628
|
var hostListenerOpts = (flags) => supportsListenerOptions ? {
|
|
1566
1629
|
passive: (flags & 1 /* Passive */) !== 0,
|
|
1567
1630
|
capture: (flags & 2 /* Capture */) !== 0
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as inflate_1 } from './pako.esm-KbdoS3Oq.js';
|
|
2
|
-
import { g as getDefaultExportFromCjs, L as LercAddCompression, a as LercParameters } from './ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-settings.ogm-sidebar.ogm-viewer-
|
|
2
|
+
import { g as getDefaultExportFromCjs, L as LercAddCompression, a as LercParameters } from './ogm-alerts.ogm-attributes.ogm-image.ogm-map.ogm-menubar.ogm-metadata.ogm-preview.ogm-previews.ogm-settings.ogm-sidebar.ogm-viewer-Dlc6USWB.js';
|
|
3
3
|
import { B as BaseDecoder } from './basedecoder-BK531nfi.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-DTLAlWKQ.js';
|
|
5
5
|
|
|
6
6
|
var LercDecode = {exports: {}};
|
|
7
7
|
|
package/dist/esm/loader.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { b as bootstrapLazy } from './index-DTLAlWKQ.js';
|
|
2
|
+
export { s as setNonce } from './index-DTLAlWKQ.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["ogm-
|
|
8
|
+
return bootstrapLazy([["ogm-alerts_11",[[513,"ogm-viewer",{"recordUrl":[1,"record-url"],"theme":[1],"record":[32],"error":[32],"previewOpacity":[32],"sidebarOpen":[32],"loading":[32],"loadRecord":[64]},[[0,"sidebarToggled","toggleSidebar"],[0,"opacityChange","adjustPreviewOpacity"],[0,"mapLoading","setLoadingStarted"],[0,"imageLoading","setLoadingStarted"],[0,"mapIdle","setLoadingFinished"],[0,"imageLoaded","setLoadingFinished"]],{"recordUrl":[{"updateRecord":0}],"record":[{"resetLoading":0}]}],[513,"ogm-previews",{"theme":[1],"record":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"sources":[32]},null,{"record":[{"getSources":0}]}],[513,"ogm-sidebar",{"record":[16],"theme":[1],"open":[4]}],[513,"ogm-menubar",{"record":[16],"theme":[1],"loading":[4]}],[513,"ogm-preview",{"theme":[1],"source":[16],"previewOpacity":[2,"preview-opacity"],"sidebarPadding":[2,"sidebar-padding"],"error":[32]},[[0,"previewError","handlePreviewError"]],{"source":[{"resetError":0}]}],[513,"ogm-metadata",{"record":[16],"theme":[1],"fieldNames":[16],"filteredRecord":[32]}],[513,"ogm-settings",{"record":[16]},[[0,"input","handleOpacityChange"]]],[513,"ogm-map",{"source":[16],"theme":[1],"padding":[2],"easeMapTo":[64]},[[16,"featureSelected","handleFeatureSelected"]],{"source":[{"previewSource":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-alerts",{"theme":[1],"error":[16]}],[513,"ogm-image",{"source":[16],"theme":[1],"padding":[2]},null,{"source":[{"onSourceChange":0}],"padding":[{"onPaddingChange":0}]}],[513,"ogm-attributes",{"features":[16],"currentIndex":[32]},null,{"features":[{"onFeaturesChange":0}],"currentIndex":[{"onCurrentIndexChange":0}]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|