@eeacms/volto-arcgis-block 0.1.227 → 0.1.228
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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. Dates are d
|
|
|
4
4
|
|
|
5
5
|
Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
|
|
6
6
|
|
|
7
|
+
### [0.1.228](https://github.com/eea/volto-arcgis-block/compare/0.1.227...0.1.228) - 31 October 2023
|
|
8
|
+
|
|
7
9
|
### [0.1.227](https://github.com/eea/volto-arcgis-block/compare/0.1.226...0.1.227) - 30 October 2023
|
|
8
10
|
|
|
9
11
|
#### :hammer_and_wrench: Others
|
package/package.json
CHANGED
|
@@ -223,6 +223,55 @@ class LegendWidget extends React.Component {
|
|
|
223
223
|
});
|
|
224
224
|
}
|
|
225
225
|
|
|
226
|
+
/**
|
|
227
|
+
* Method that returns true or false if session storage has any visible active layer
|
|
228
|
+
*/
|
|
229
|
+
enabledVisilelayers() {
|
|
230
|
+
let enabledVisilelayers = false;
|
|
231
|
+
let visiblelayersFromStorage = JSON.parse(sessionStorage.visibleLayers);
|
|
232
|
+
let visibleLayerKeys = Object.keys(visiblelayersFromStorage);
|
|
233
|
+
for (let i = 0; i < visibleLayerKeys.length; i++) {
|
|
234
|
+
let currentLayer = visibleLayerKeys[i];
|
|
235
|
+
if (visiblelayersFromStorage[currentLayer][1] === 'eye')
|
|
236
|
+
enabledVisilelayers = true;
|
|
237
|
+
}
|
|
238
|
+
return enabledVisilelayers;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Method to handle "No legend" message visibility
|
|
243
|
+
*/
|
|
244
|
+
handleNoLegendMessage() {
|
|
245
|
+
const noLegendMessage = document.querySelectorAll(
|
|
246
|
+
'.esri-legend__message',
|
|
247
|
+
)[0];
|
|
248
|
+
if (sessionStorage.checkedLayers && sessionStorage.checkedLayers === '[]') {
|
|
249
|
+
// show no legend message
|
|
250
|
+
if (noLegendMessage) {
|
|
251
|
+
noLegendMessage.style.display = 'block';
|
|
252
|
+
}
|
|
253
|
+
} else if (
|
|
254
|
+
sessionStorage.visibleLayers &&
|
|
255
|
+
(this.enabledVisilelayers() || sessionStorage.visibleLayers === '{}')
|
|
256
|
+
) {
|
|
257
|
+
// hide no legend message
|
|
258
|
+
if (noLegendMessage) {
|
|
259
|
+
noLegendMessage.style.display = 'none';
|
|
260
|
+
}
|
|
261
|
+
} else if (noLegendMessage) {
|
|
262
|
+
if (
|
|
263
|
+
sessionStorage.checkedLayers &&
|
|
264
|
+
sessionStorage.checkedLayers === '[]'
|
|
265
|
+
) {
|
|
266
|
+
noLegendMessage.style.display = 'block';
|
|
267
|
+
} else if (sessionStorage.visibleLayers && !this.enabledVisilelayers()) {
|
|
268
|
+
noLegendMessage.style.display = 'block';
|
|
269
|
+
} else {
|
|
270
|
+
noLegendMessage.style.display = 'none';
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
226
275
|
componentDidUpdate(prevState, prevProps) {
|
|
227
276
|
if (prevState.loading !== this.state.loading) {
|
|
228
277
|
if (this.state.loading === true) {
|
|
@@ -234,6 +283,7 @@ class LegendWidget extends React.Component {
|
|
|
234
283
|
this.setState({ loading: false });
|
|
235
284
|
}, 2000);
|
|
236
285
|
}
|
|
286
|
+
this.handleNoLegendMessage();
|
|
237
287
|
}
|
|
238
288
|
}
|
|
239
289
|
|
|
@@ -2037,7 +2037,8 @@ class MenuWidget extends React.Component {
|
|
|
2037
2037
|
this.addCustomItemToLegend(layer);
|
|
2038
2038
|
} else {
|
|
2039
2039
|
// show existing one
|
|
2040
|
-
existingItem.
|
|
2040
|
+
if (!existingItem.innerText.includes('undefined'))
|
|
2041
|
+
existingItem.style.display = 'block';
|
|
2041
2042
|
}
|
|
2042
2043
|
} else {
|
|
2043
2044
|
// hide legend item
|
|
@@ -2045,6 +2046,13 @@ class MenuWidget extends React.Component {
|
|
|
2045
2046
|
existingItem.style.display = 'none';
|
|
2046
2047
|
}
|
|
2047
2048
|
}
|
|
2049
|
+
// hide no legend message
|
|
2050
|
+
const noLegendMessage = document.querySelectorAll(
|
|
2051
|
+
'.esri-legend__message',
|
|
2052
|
+
)[0];
|
|
2053
|
+
if (noLegendMessage) {
|
|
2054
|
+
noLegendMessage.style.display = 'none';
|
|
2055
|
+
}
|
|
2048
2056
|
}
|
|
2049
2057
|
|
|
2050
2058
|
addCustomItemToLegend(layer) {
|
|
@@ -2053,14 +2061,15 @@ class MenuWidget extends React.Component {
|
|
|
2053
2061
|
let childDiv = legendDiv.firstChild;
|
|
2054
2062
|
|
|
2055
2063
|
// create legend element
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
+
if (layer.LayerTitle !== undefined) {
|
|
2065
|
+
let legendItem = this.createStaticLegendImageNode(
|
|
2066
|
+
layer.id,
|
|
2067
|
+
layer.LayerTitle,
|
|
2068
|
+
layer.StaticImageLegend,
|
|
2069
|
+
);
|
|
2070
|
+
// append to Legend widet
|
|
2071
|
+
childDiv.appendChild(legendItem);
|
|
2072
|
+
}
|
|
2064
2073
|
|
|
2065
2074
|
// hide no legend message
|
|
2066
2075
|
const noLegendMessage = document.querySelectorAll(
|
|
@@ -3007,10 +3016,6 @@ class MenuWidget extends React.Component {
|
|
|
3007
3016
|
} else if (layers.length > 0) {
|
|
3008
3017
|
document.querySelector('.info-container').style.display = 'flex';
|
|
3009
3018
|
}
|
|
3010
|
-
if (!sessionStorage.getItem('hotspotFilterApplied')) {
|
|
3011
|
-
this.props.mapViewer.closeActiveWidget();
|
|
3012
|
-
}
|
|
3013
|
-
this.renderHotspot();
|
|
3014
3019
|
}
|
|
3015
3020
|
|
|
3016
3021
|
getLayerTitle(layer) {
|
|
@@ -3219,12 +3224,6 @@ class MenuWidget extends React.Component {
|
|
|
3219
3224
|
this.visibleLayers[elem.id] = ['fas', 'eye'];
|
|
3220
3225
|
}
|
|
3221
3226
|
|
|
3222
|
-
this.saveVisibility();
|
|
3223
|
-
this.activeLayersJSON[elem.id] = this.addActiveLayer(elem, 0);
|
|
3224
|
-
this.layersReorder();
|
|
3225
|
-
this.saveLayerOrder();
|
|
3226
|
-
this.checkInfoWidget();
|
|
3227
|
-
this.setState({});
|
|
3228
3227
|
if (this.productId.includes('333e4100b79045daa0ff16466ac83b7f')) {
|
|
3229
3228
|
// global dynamic land cover
|
|
3230
3229
|
if (this.visibleLayers[elem.id][1] === 'eye-slash') {
|
|
@@ -3242,6 +3241,13 @@ class MenuWidget extends React.Component {
|
|
|
3242
3241
|
}
|
|
3243
3242
|
}
|
|
3244
3243
|
}
|
|
3244
|
+
this.saveVisibility();
|
|
3245
|
+
this.activeLayersJSON[elem.id] = this.addActiveLayer(elem, 0);
|
|
3246
|
+
this.layersReorder();
|
|
3247
|
+
this.saveLayerOrder();
|
|
3248
|
+
this.checkInfoWidget();
|
|
3249
|
+
this.toggleCustomLegendItem(this.layers[elem.id]);
|
|
3250
|
+
this.setState({});
|
|
3245
3251
|
}
|
|
3246
3252
|
|
|
3247
3253
|
componentDidUpdate(prevState, prevProps) {
|