forked from MapComplete/MapComplete
		
	Small css tweaks, fix layer filtering
This commit is contained in:
		
							parent
							
								
									52f1d5511d
								
							
						
					
					
						commit
						ddea3d2fc1
					
				
					 4 changed files with 25 additions and 14 deletions
				
			
		|  | @ -32,15 +32,15 @@ export default class FilteringFeatureSource implements FeatureSource { | ||||||
|                 if (layer === undefined) { |                 if (layer === undefined) { | ||||||
|                     throw "No layer found with id " + layerId; |                     throw "No layer found with id " + layerId; | ||||||
|                 } |                 } | ||||||
|                 if(layer.isDisplayed.data && (layer.layerDef.minzoom <= location.data.zoom)){ |                 if (FilteringFeatureSource.showLayer(layer, location)) { | ||||||
|                     return true; |                     return true; | ||||||
|                 } |                 } | ||||||
|                 // Does it match any other layer?
 |                 // Does it match any other layer?
 | ||||||
|                 for (const toCheck of layers) { |                 for (const toCheck of layers) { | ||||||
|                     if(!toCheck.isDisplayed.data){ |                     if (!FilteringFeatureSource.showLayer(toCheck, location)) { | ||||||
|                         continue; |                         continue; | ||||||
|                     } |                     } | ||||||
|                     if(toCheck.layerDef.overpassTags.matchesProperties(f.feature.properties)){ |                     if (toCheck.layerDef.overpassTags.matchesProperties(f.feature.properties)) { | ||||||
|                         return true; |                         return true; | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  | @ -54,15 +54,16 @@ export default class FilteringFeatureSource implements FeatureSource { | ||||||
|             layerDict[layer.layerDef.id] = layer; |             layerDict[layer.layerDef.id] = layer; | ||||||
|         } |         } | ||||||
|         upstream.features.addCallback(() => { |         upstream.features.addCallback(() => { | ||||||
|             update()}); |             update() | ||||||
|  |         }); | ||||||
|         location.map(l => { |         location.map(l => { | ||||||
|             // We want something that is stable for the shown layers
 |             // We want something that is stable for the shown layers
 | ||||||
|             const displayedLayerIndexes = []; |             const displayedLayerIndexes = []; | ||||||
|             for (let i = 0; i < layers.length; i++) { |             for (let i = 0; i < layers.length; i++) { | ||||||
|                 if(l.zoom < layers[i].layerDef.minzoom){ |                 if (l.zoom < layers[i].layerDef.minzoom) { | ||||||
|                     continue; |                     continue; | ||||||
|                 } |                 } | ||||||
|                 if(!layers[i].isDisplayed.data){ |                 if (!layers[i].isDisplayed.data) { | ||||||
|                     continue; |                     continue; | ||||||
|                 } |                 } | ||||||
|                 displayedLayerIndexes.push(i); |                 displayedLayerIndexes.push(i); | ||||||
|  | @ -70,10 +71,16 @@ export default class FilteringFeatureSource implements FeatureSource { | ||||||
|             return displayedLayerIndexes.join(",") |             return displayedLayerIndexes.join(",") | ||||||
|         }, layers.map(l => l.isDisplayed)) |         }, layers.map(l => l.isDisplayed)) | ||||||
|             .addCallback(() => { |             .addCallback(() => { | ||||||
|             update();}); |                 update(); | ||||||
|  |             }); | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 
 |     private static showLayer(layer: { | ||||||
|  |         isDisplayed: UIEventSource<boolean>, | ||||||
|  |         layerDef: LayerConfig | ||||||
|  |     }, location: UIEventSource<Loc>) { | ||||||
|  |         return layer.isDisplayed.data && (layer.layerDef.minzoom <= location.data.zoom) | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | @ -43,10 +43,13 @@ export default class LayerSelection extends UIElement { | ||||||
|                 } |                 } | ||||||
|                 return "" |                 return "" | ||||||
|             })) |             })) | ||||||
|             const style = "display:flex;align-items:center;flex-wrap:wrap;" |             const style = "display:flex;align-items:center;" | ||||||
|  |             const styleWhole = "display:flex; flex-wrap: wrap" | ||||||
|             this._checkboxes.push(new CheckBox( |             this._checkboxes.push(new CheckBox( | ||||||
|                 new Combine([icon, name, zoomStatus]).SetStyle(style), |                 new Combine([new Combine([icon, name]).SetStyle(style), zoomStatus]) | ||||||
|                 new Combine([iconUnselected, "<del>", name, "</del>", zoomStatus]).SetStyle(style), |                     .SetStyle(styleWhole), | ||||||
|  |                 new Combine([new Combine([iconUnselected, "<del>", name, "</del>"]).SetStyle(style), zoomStatus]) | ||||||
|  |                     .SetStyle(styleWhole), | ||||||
|                 layer.isDisplayed) |                 layer.isDisplayed) | ||||||
|                 .SetStyle("margin:0.3em;") |                 .SetStyle("margin:0.3em;") | ||||||
|             ); |             ); | ||||||
|  |  | ||||||
|  | @ -28,7 +28,7 @@ | ||||||
|     box-shadow: 0 10px 10px -10px var(--shadow-color); |     box-shadow: 0 10px 10px -10px var(--shadow-color); | ||||||
|     display: flex; |     display: flex; | ||||||
|     justify-content: space-between; |     justify-content: space-between; | ||||||
|     max-width: 95vw; |     width: 100%; | ||||||
|     overflow-x: hidden; |     overflow-x: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -68,7 +68,7 @@ | ||||||
|     max-height: 75vh; |     max-height: 75vh; | ||||||
|     overflow-y: auto; |     overflow-y: auto; | ||||||
|     padding-top: 1em; |     padding-top: 1em; | ||||||
|     max-width: 95vw; |     width:100%; | ||||||
|     overflow-x: hidden; |     overflow-x: hidden; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -103,6 +103,7 @@ a { | ||||||
|     position: relative; |     position: relative; | ||||||
|     width: 2em; |     width: 2em; | ||||||
|     height: 2em; |     height: 2em; | ||||||
|  |     flex-shrink: 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .single-layer-selection-toggle img { | .single-layer-selection-toggle img { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue