forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			25 lines
		
	
	
	
		
			892 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
	
		
			892 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import FeatureSource from "./FeatureSource";
							 | 
						||
| 
								 | 
							
								import {UIEventSource} from "../UIEventSource";
							 | 
						||
| 
								 | 
							
								import LayerConfig from "../../Customizations/JSON/LayerConfig";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default class ZoomRespectingFeatureSource implements FeatureSource{
							 | 
						||
| 
								 | 
							
								   public readonly features: UIEventSource<{ feature: any; freshness: Date }[]>;
							 | 
						||
| 
								 | 
							
								   public readonly name: string;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								   constructor(layerConfig: LayerConfig, location: UIEventSource<{zoom: number}>, upstream: FeatureSource) {
							 | 
						||
| 
								 | 
							
								       this.name = "zoomrespecting("+upstream.name+")"
							 | 
						||
| 
								 | 
							
								       const empty = []
							 | 
						||
| 
								 | 
							
								       this.features = upstream.features.map(
							 | 
						||
| 
								 | 
							
								           features => {
							 | 
						||
| 
								 | 
							
								               const z = location.data.zoom
							 | 
						||
| 
								 | 
							
								             
							 | 
						||
| 
								 | 
							
								               if(layerConfig.minzoom < z || layerConfig.maxzoom > z){
							 | 
						||
| 
								 | 
							
								                   return empty
							 | 
						||
| 
								 | 
							
								               }
							 | 
						||
| 
								 | 
							
								               
							 | 
						||
| 
								 | 
							
								               
							 | 
						||
| 
								 | 
							
								               return features
							 | 
						||
| 
								 | 
							
								           },[location]
							 | 
						||
| 
								 | 
							
								       )
							 | 
						||
| 
								 | 
							
								   }
							 | 
						||
| 
								 | 
							
								}
							 |