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);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								}
							 |