aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.js69
1 files changed, 24 insertions, 45 deletions
diff --git a/main.js b/main.js
index 333a1d3..88ac070 100644
--- a/main.js
+++ b/main.js
@@ -350,11 +350,8 @@ if (window.location === window.parent.location) {
control.addEventListener('enterfullscreen', function() {
featureOverlayLayer.setVisible(false);
- const popover = Popover.getInstance(popup);
- if (popover !== null) {
- /* dispose popover as entering fullscreen messes up its position */
- popover.dispose();
- }
+ /* dispose popover as entering fullscreen messes up its position */
+ Popover.getInstance(popup)?.dispose();
const btn = control.element.getElementsByTagName('button')[0];
btn.classList.replace(classInactive, classActive);
@@ -369,11 +366,8 @@ if (window.location === window.parent.location) {
})
control.addEventListener('leavefullscreen', function() {
featureOverlayLayer.setVisible(false);
- const popover = Popover.getInstance(popup);
- if (popover !== null) {
- /* dispose popover as is might overflow the viewport */
- popover.dispose();
- }
+ /* dispose popover as is might overflow the viewport */
+ Popover.getInstance(popup)?.dispose();
const btn = control.element.getElementsByTagName('button')[0];
btn.classList.replace(classActive, classInactive);
@@ -510,7 +504,7 @@ if (window.location === window.parent.location) {
infoMetadataAccordions.forEach((x) => x.element.replaceChildren());
modal.show();
Promise.allSettled(Object.entries(mapLayers).map(function([grp,lyr]) {
- if (lyr != null && lyr.getSource() instanceof VectorTile) {
+ if (lyr?.getSource() instanceof VectorTile) {
const url = lyr.getSource().getUrls()[0];
if (url == null || url.length <= 16 || url.substr(url.length - 16) !== '/{z}/{x}/{y}.pbf') {
return new Promise(() => { throw new Error(`Invalid URL ${url}`); });
@@ -574,11 +568,11 @@ if (window.location === window.parent.location) {
x.items.forEach(function([groupname, layername]) {
/* for each source file associated with the accordion header, show copyright, license and timing information */
const layer_group = metadata[groupname];
- if (layer_group == null || layer_group.layers == null || layer_group.source_files == null) {
+ if (layer_group?.layers == null || layer_group?.source_files == null) {
return;
}
const def = layer_group.layers[layername];
- if (def == null || def.source_files == null) {
+ if (def?.source_files == null) {
return;
}
def.source_files.forEach(function(source_file) {
@@ -677,10 +671,7 @@ container.setAttribute('aria-hidden', 'false');
view.on('change', function(event) {
featureOverlayLayer.setVisible(false);
- const popover = Popover.getInstance(popup);
- if (popover !== null) {
- popover.dispose();
- }
+ Popover.getInstance(popup)?.dispose();
const coordinates = view.getCenter();
const searchParams = new URLSearchParams(location.hash.substring(1));
@@ -4686,11 +4677,8 @@ const infoMetadataAccordions = [];
}
Object.entries(result).forEach(function([lyr, visible]) {
- const v = mapLayers[lyr];
- if (v != null) {
- //console.log(lyr, visible);
- v.setVisible(visible);
- }
+ //console.log(lyr, visible);
+ mapLayers[lyr]?.setVisible(visible);
});
const btn = document.getElementById('map-legend-button');
if (Object.values(styles).some((v) => v !== null)) {
@@ -4702,17 +4690,14 @@ const infoMetadataAccordions = [];
const onClickFunction = function(layerList, event) {
featureOverlayLayer.setVisible(false);
featureOverlayLayer.changed();
- const popover = Popover.getInstance(popup);
- if (popover !== null) {
- popover.dispose();
- }
+ Popover.getInstance(popup)?.dispose();
+
const searchParams = new URLSearchParams(location.hash.substring(1));
let layersParams = searchParams.get('layers') || '';
layersParams = layersParams.match(/^\s*$/) ? [] : layersParams.split(' ');
if (event.target.checked) {
layerList.forEach(function(lyr) {
- const l = mapLayers[lyr.split('.', 1)[0]];
- if (l == null) {
+ if (mapLayers[lyr.split('.', 1)[0]] == null) {
return; /* keep unexisting layers (eg WebGL layers on a system without WebGL support) unselectable */
}
styles[lyr] = layers[lyr].style;
@@ -5029,7 +5014,7 @@ const infoMetadataAccordions = [];
};
const onClickPageChange = function(event, offset) {
const btn = event.target;
- if (btn.classList.contains('disabled') || popover === null || popover.tip === null) {
+ if (btn.classList.contains('disabled') || popover?.tip == null) {
return;
}
if (overlayAttrIdx + offset < 0 || overlayAttrIdx + offset > overlayAttributes.length - 1) {
@@ -5077,7 +5062,7 @@ const infoMetadataAccordions = [];
const btnExpandTitle2 = 'Förminska';
btnExpand.setAttribute('aria-label', btnExpand.title);
btnExpand.onclick = function(event) {
- if (popover === null || popover.tip === null) {
+ if (popover?.tip == null) {
return;
}
if (!popover.tip.classList.contains('popover-maximized')) {
@@ -5102,9 +5087,7 @@ const infoMetadataAccordions = [];
btnClose.onclick = function(event) {
featureOverlayLayer.setVisible(false);
featureOverlayLayer.changed();
- if (popover !== null) {
- popover.dispose();
- }
+ popover?.dispose();
};
header.appendChild(btnPrev);
@@ -5220,7 +5203,7 @@ const infoMetadataAccordions = [];
btnNext.classList.add('d-none', 'disabled');
/* never start in maximized mode */
- if (popover !== null && popover.tip !== null) {
+ if (popover?.tip != null) {
popover.tip.classList.remove('popover-maximized');
}
btnExpand.classList.replace('popover-button-reduce', 'popover-button-expand');
@@ -5232,11 +5215,11 @@ const infoMetadataAccordions = [];
const layerGroup = layer.get('layerGroup');
const layerName = feature.getProperties().layer;
const def = layers[layerGroup + '.' + layerName];
- if (def !== undefined && def.popover !== undefined) {
+ if (def?.popover != null) {
/* skip layers which didn't opt-in for popover */
if (!fetch_body.length) {
document.body.classList.add('inprogress');
- if (popover !== null && popover.tip !== null) {
+ if (popover?.tip != null) {
popover.tip.classList.add('inprogress');
}
}
@@ -5256,10 +5239,8 @@ const infoMetadataAccordions = [];
});
if (fetch_body.length === 0) {
- if (popover !== null) {
- /* dispose pre-detached popover */
- popover.dispose();
- }
+ /* dispose pre-detached popover */
+ popover?.dispose();
return;
}
@@ -5283,10 +5264,8 @@ const infoMetadataAccordions = [];
* decoded JSON response would need to be reordered to match fetch_body */
overlayAttributes = data
if (overlayAttributes.length === 0) {
- if (popover !== null) {
- /* dispose pre-detached popover */
- popover.dispose();
- }
+ /* dispose pre-detached popover */
+ popover?.dispose();
return;
}
@@ -5297,7 +5276,7 @@ const infoMetadataAccordions = [];
btnPrev.classList.remove('d-none');
pageNode.classList.remove('d-none');
}
- if (popover === null || popover.tip === null) {
+ if (popover?.tip == null) {
/* create a new popover (we're not already showing one in detached mode) */
pageNum.innerHTML = (overlayAttrIdx + 1).toString();
popupOverlay.setPosition(event.coordinate);