forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			No EOL
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {Tag, TagsFilter} from "../Logic/TagsFilter";
 | 
						|
import {UIElement} from "../UI/UIElement";
 | 
						|
import {Basemap} from "../Logic/Basemap";
 | 
						|
import {ElementStorage} from "../Logic/ElementStorage";
 | 
						|
import {UIEventSource} from "../UI/UIEventSource";
 | 
						|
import {FilteredLayer} from "../Logic/FilteredLayer";
 | 
						|
import {Changes} from "../Logic/Changes";
 | 
						|
import {UserDetails} from "../Logic/OsmConnection";
 | 
						|
import {TagRenderingOptions} from "./TagRendering";
 | 
						|
 | 
						|
export class LayerDefinition {
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * This name is shown in the 'add XXX button'
 | 
						|
     */
 | 
						|
    name: string;
 | 
						|
    newElementTags: Tag[]
 | 
						|
    icon: string;
 | 
						|
    minzoom: number;
 | 
						|
    overpassFilter: TagsFilter;
 | 
						|
 | 
						|
    /**
 | 
						|
     * This UIElement is rendered as title element in the popup
 | 
						|
     */
 | 
						|
    title: TagRenderingOptions;
 | 
						|
    /**
 | 
						|
     * These are the questions/shown attributes in the popup
 | 
						|
     */
 | 
						|
    elementsToShow: TagRenderingOptions[];
 | 
						|
 | 
						|
    style: (tags: any) => { color: string, icon: any };
 | 
						|
 | 
						|
    /**
 | 
						|
     * If an object of the next layer is contained for this many percent in this feature, it is eaten and not shown
 | 
						|
     */
 | 
						|
    maxAllowedOverlapPercentage: number = undefined;
 | 
						|
 | 
						|
 | 
						|
    asLayer(basemap: Basemap, allElements: ElementStorage, changes: Changes, userDetails: UIEventSource<UserDetails>, selectedElement: UIEventSource<any>,
 | 
						|
            showOnPopup: (tags: UIEventSource<(any)>) => UIElement):
 | 
						|
        FilteredLayer {
 | 
						|
        return new FilteredLayer(
 | 
						|
            this.name,
 | 
						|
            basemap, allElements, changes,
 | 
						|
            this.overpassFilter,
 | 
						|
            this.maxAllowedOverlapPercentage,
 | 
						|
            this.style,
 | 
						|
            selectedElement,
 | 
						|
            showOnPopup);
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
} |