forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			30 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import FeatureSource from "./FeatureSource"; | ||
|  | import {UIEventSource} from "../UIEventSource"; | ||
|  | import State from "../../State"; | ||
|  | import Hash from "../Web/Hash"; | ||
|  | import MetaTagging from "../MetaTagging"; | ||
|  | 
 | ||
|  | export default class MetaTaggingFeatureSource implements FeatureSource { | ||
|  |     features: UIEventSource<{ feature: any; freshness: Date }[]> = new UIEventSource<{feature: any; freshness: Date}[]>(undefined); | ||
|  |      | ||
|  |     constructor(source: FeatureSource) { | ||
|  |         const self = this; | ||
|  |         source.features.addCallbackAndRun((featuresFreshness: { feature: any, freshness: Date }[]) => { | ||
|  |                 if (featuresFreshness === undefined) { | ||
|  |                     return; | ||
|  |                 } | ||
|  |                 featuresFreshness.forEach(featureFresh => { | ||
|  |                     const feature = featureFresh.feature; | ||
|  |                     State.state.allElements.addOrGetElement(feature); | ||
|  | 
 | ||
|  |                     if (Hash.hash.data === feature.properties.id) { | ||
|  |                         State.state.selectedElement.setData(feature); | ||
|  |                     } | ||
|  |                 }) | ||
|  | 
 | ||
|  |                 MetaTagging.addMetatags(featuresFreshness, State.state.layoutToUse.data.layers); | ||
|  |                 self.features.setData(featuresFreshness); | ||
|  |         }); | ||
|  |     } | ||
|  |      | ||
|  | } |