@geospatial-sdk/legend 0.0.5-dev.40 → 0.0.5-dev.42

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.
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { removeSearchParams, } from "@geospatial-sdk/core";
11
2
  import { WmtsEndpoint } from "@camptocamp/ogc-client";
12
3
  /**
@@ -48,17 +39,15 @@ function createWmsLegendUrl(layer, options = {}) {
48
39
  * @param layer - The MapContextLayer to create a legend URL for
49
40
  * @returns A URL for the WMTS legend graphic or null if not available
50
41
  */
51
- function createWmtsLegendUrl(layer) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const endpoint = yield new WmtsEndpoint(layer.url).isReady();
54
- const layerByName = endpoint.getLayerByName(layer.name);
55
- if (layerByName.styles &&
56
- layerByName.styles.length > 0 &&
57
- layerByName.styles[0].legendUrl) {
58
- return layerByName.styles[0].legendUrl;
59
- }
60
- return null;
61
- });
42
+ async function createWmtsLegendUrl(layer) {
43
+ const endpoint = await new WmtsEndpoint(layer.url).isReady();
44
+ const layerByName = endpoint.getLayerByName(layer.name);
45
+ if (layerByName.styles &&
46
+ layerByName.styles.length > 0 &&
47
+ layerByName.styles[0].legendUrl) {
48
+ return layerByName.styles[0].legendUrl;
49
+ }
50
+ return null;
62
51
  }
63
52
  /**
64
53
  * Creates a legend from a layer.
@@ -67,63 +56,61 @@ function createWmtsLegendUrl(layer) {
67
56
  * @param {LegendOptions} [options] - The options to create the legend.
68
57
  * @returns {Promise<HTMLElement | null>} A promise that resolves to the legend element or `null` if the legend could not be created.
69
58
  */
70
- export function createLegendFromLayer(layer, options = {}) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- if ((layer.type !== "wms" && layer.type !== "wmts") ||
73
- !layer.url ||
74
- !layer.name) {
75
- console.error("Invalid layer for legend creation");
76
- return null;
59
+ export async function createLegendFromLayer(layer, options = {}) {
60
+ if ((layer.type !== "wms" && layer.type !== "wmts") ||
61
+ !layer.url ||
62
+ !layer.name) {
63
+ console.error("Invalid layer for legend creation");
64
+ return null;
65
+ }
66
+ // Create a container for the legend
67
+ const legendDiv = document.createElement("div");
68
+ legendDiv.id = "legend";
69
+ legendDiv.setAttribute("role", "region");
70
+ legendDiv.setAttribute("aria-label", "Map Layer Legend");
71
+ legendDiv.classList.add("geosdk--legend-container");
72
+ const layerDiv = document.createElement("div");
73
+ layerDiv.classList.add("geosdk--legend-layer");
74
+ const layerTitle = document.createElement("h4");
75
+ layerTitle.textContent = layer.name;
76
+ layerTitle.classList.add("geosdk--legend-layer-label");
77
+ layerDiv.appendChild(layerTitle);
78
+ const img = document.createElement("img");
79
+ img.alt = `Legend for ${layer.name}`;
80
+ img.classList.add("geosdk--legend-layer-image");
81
+ // Error handling for failed image loading
82
+ img.onerror = (e) => {
83
+ console.warn(`Failed to load legend for layer: ${layer.name}`, e);
84
+ const errorMessage = document.createElement("span");
85
+ errorMessage.textContent = `Legend not available for ${layer.name}`;
86
+ layerDiv.replaceChild(errorMessage, img);
87
+ };
88
+ try {
89
+ let legendUrl = null;
90
+ // Determine legend URL based on layer type
91
+ if (layer.type === "wms") {
92
+ legendUrl = createWmsLegendUrl(layer, options).toString();
77
93
  }
78
- // Create a container for the legend
79
- const legendDiv = document.createElement("div");
80
- legendDiv.id = "legend";
81
- legendDiv.setAttribute("role", "region");
82
- legendDiv.setAttribute("aria-label", "Map Layer Legend");
83
- legendDiv.classList.add("geosdk--legend-container");
84
- const layerDiv = document.createElement("div");
85
- layerDiv.classList.add("geosdk--legend-layer");
86
- const layerTitle = document.createElement("h4");
87
- layerTitle.textContent = layer.name;
88
- layerTitle.classList.add("geosdk--legend-layer-label");
89
- layerDiv.appendChild(layerTitle);
90
- const img = document.createElement("img");
91
- img.alt = `Legend for ${layer.name}`;
92
- img.classList.add("geosdk--legend-layer-image");
93
- // Error handling for failed image loading
94
- img.onerror = (e) => {
95
- console.warn(`Failed to load legend for layer: ${layer.name}`, e);
96
- const errorMessage = document.createElement("span");
97
- errorMessage.textContent = `Legend not available for ${layer.name}`;
98
- layerDiv.replaceChild(errorMessage, img);
99
- };
100
- try {
101
- let legendUrl = null;
102
- // Determine legend URL based on layer type
103
- if (layer.type === "wms") {
104
- legendUrl = createWmsLegendUrl(layer, options).toString();
105
- }
106
- else if (layer.type === "wmts") {
107
- legendUrl = yield createWmtsLegendUrl(layer);
108
- }
109
- // If legend URL is available, set the image source
110
- if (legendUrl) {
111
- img.src = legendUrl;
112
- layerDiv.appendChild(img);
113
- }
114
- else {
115
- const errorMessage = document.createElement("span");
116
- errorMessage.textContent = `Legend not available for ${layer.name}`;
117
- layerDiv.appendChild(errorMessage);
118
- }
94
+ else if (layer.type === "wmts") {
95
+ legendUrl = await createWmtsLegendUrl(layer);
96
+ }
97
+ // If legend URL is available, set the image source
98
+ if (legendUrl) {
99
+ img.src = legendUrl;
100
+ layerDiv.appendChild(img);
119
101
  }
120
- catch (error) {
121
- console.error(`Error creating legend for layer ${layer.name}:`, error);
102
+ else {
122
103
  const errorMessage = document.createElement("span");
123
- errorMessage.textContent = `Error loading legend for ${layer.name}`;
104
+ errorMessage.textContent = `Legend not available for ${layer.name}`;
124
105
  layerDiv.appendChild(errorMessage);
125
106
  }
126
- legendDiv.appendChild(layerDiv);
127
- return legendDiv;
128
- });
107
+ }
108
+ catch (error) {
109
+ console.error(`Error creating legend for layer ${layer.name}:`, error);
110
+ const errorMessage = document.createElement("span");
111
+ errorMessage.textContent = `Error loading legend for ${layer.name}`;
112
+ layerDiv.appendChild(errorMessage);
113
+ }
114
+ legendDiv.appendChild(layerDiv);
115
+ return legendDiv;
129
116
  }
@@ -1,2 +1,2 @@
1
- export { createLegendFromLayer } from "./from-layer";
1
+ export { createLegendFromLayer } from "./from-layer.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/create-legend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/create-legend/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- export { createLegendFromLayer } from "./from-layer";
1
+ export { createLegendFromLayer } from "./from-layer.js";
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./create-legend";
1
+ export * from "./create-legend/index.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export * from "./create-legend";
1
+ export * from "./create-legend/index.js";
@@ -1 +1 @@
1
- export { createLegendFromLayer } from "./from-layer";
1
+ export { createLegendFromLayer } from "./from-layer.js";
package/lib/index.ts CHANGED
@@ -1 +1 @@
1
- export * from "./create-legend";
1
+ export * from "./create-legend/index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geospatial-sdk/legend",
3
- "version": "0.0.5-dev.40+17bad88",
3
+ "version": "0.0.5-dev.42+baa75c1",
4
4
  "description": "Get legend graphic from the map-context",
5
5
  "keywords": [
6
6
  "legend"
@@ -30,10 +30,10 @@
30
30
  "build": "tsc"
31
31
  },
32
32
  "devDependencies": {
33
- "@geospatial-sdk/core": "^0.0.5-dev.40+17bad88"
33
+ "@geospatial-sdk/core": "^0.0.5-dev.42+baa75c1"
34
34
  },
35
35
  "bugs": {
36
36
  "url": "https://github.com/camptocamp/geospatial-sdk/issues"
37
37
  },
38
- "gitHead": "17bad885319e693911c2219422bfe3fca4437fa2"
38
+ "gitHead": "baa75c1fed77ed160f6a2d94bfeb5358cc91d63a"
39
39
  }