forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			No EOL
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			No EOL
		
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {LayerDefinition} from "../LayerDefinition";
 | 
						|
import {QuestionDefinition} from "../../Logic/Question";
 | 
						|
import {Tag} from "../../Logic/TagsFilter";
 | 
						|
import L from "leaflet";
 | 
						|
 | 
						|
export class Artwork extends LayerDefinition {
 | 
						|
 | 
						|
    constructor() {
 | 
						|
        super();
 | 
						|
 | 
						|
        this.name = "artwork";
 | 
						|
        this.newElementTags = [new Tag("tourism", "artwork")];
 | 
						|
        this.icon = "./assets/statue.svg";
 | 
						|
        this.overpassFilter = new Tag("tourism", "artwork");
 | 
						|
        this.minzoom = 13;
 | 
						|
        this.questions = [
 | 
						|
            QuestionDefinition.radioAndTextQuestion("What kind of artwork is this?", 10, "artwork_type",
 | 
						|
                [
 | 
						|
                    {text: "A statue", value: "statue"},
 | 
						|
                    {text: "A bust (thus a statue, but only of the head and shoulders)", value: "bust"},
 | 
						|
                    {text: "A sculpture", value: "sculpture"},
 | 
						|
                    {text: "A mural painting", value: "mural"},
 | 
						|
                    {text: "A painting", value: "painting"},
 | 
						|
                    {text: "A graffiti", value: "graffiti"},
 | 
						|
                    {text: "A relief", value: "relief"},
 | 
						|
                    {text: "An installation", value: "installation"}]),
 | 
						|
            QuestionDefinition.textQuestion("Whom or what is depicted in this statue?", "subject", 20).addUnrequiredTag("subject:wikidata","*"),
 | 
						|
            QuestionDefinition.textQuestion("Is there an inscription on this artwork?", "inscription", 16),
 | 
						|
            QuestionDefinition.textQuestion("What is the name of this artwork? If there is no explicit name, skip the question", "name", 15),
 | 
						|
 | 
						|
 | 
						|
        ];
 | 
						|
 | 
						|
        this.style = function (tags) {
 | 
						|
            return {
 | 
						|
                icon: new L.icon({
 | 
						|
                    iconUrl: "assets/statue.svg",
 | 
						|
                    iconSize: [40, 40],
 | 
						|
                    text: "hi"
 | 
						|
                }),
 | 
						|
                color: "#0000ff"
 | 
						|
            };
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        this.elementsToShow = [
 | 
						|
 | 
						|
 | 
						|
            new TagMappingOptions(
 | 
						|
                {
 | 
						|
                    key: "name",
 | 
						|
                    template: "<h2>Artwork '{name}'</h2>",
 | 
						|
                    missing: "Artwork"
 | 
						|
                }),
 | 
						|
            new TagMappingOptions({
 | 
						|
                key: "artwork_type",
 | 
						|
                template: "This artwork is a {artwork_type}"
 | 
						|
            }),
 | 
						|
            new TagMappingOptions({
 | 
						|
                key: "artist_name",
 | 
						|
                template: "This artwork was made by {artist_name}"
 | 
						|
            }),
 | 
						|
            new TagMappingOptions({
 | 
						|
                key: "subject",
 | 
						|
                template: "This artwork depicts {subject}"
 | 
						|
            }),
 | 
						|
            
 | 
						|
            new TagMappingOptions({
 | 
						|
                key: "subject:wikidata",
 | 
						|
                template: "<a href='https://www.wikidata.org/wiki/{subject:wikidata}' target='_blank'>See more data about the subject</a>"
 | 
						|
            }),
 | 
						|
 | 
						|
            new TagMappingOptions({
 | 
						|
                key: "website",
 | 
						|
                template: "<a href='{website}' target='_blank'>Website of the statue</a>"
 | 
						|
            }),
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
            new TagMappingOptions({key: "image", template: "<img class='popupImg' alt='image' src='{image}' />"})
 | 
						|
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
} |