diff options
-rw-r--r-- | main.js | 69 |
1 files changed, 24 insertions, 45 deletions
@@ -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); |