forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			88 lines
		
	
	
		
			No EOL
		
	
	
		
			3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			No EOL
		
	
	
		
			3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import {LayerDefinition} from "../LayerDefinition";
 | |
| import {Tag} from "../../Logic/TagsFilter";
 | |
| import L from "leaflet";
 | |
| import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload";
 | |
| import Translations from "../../UI/i18n/Translations";
 | |
| import Website from "../Questions/Website";
 | |
| import FixedText from "../Questions/FixedText";
 | |
| import {TagRenderingOptions} from "../TagRenderingOptions";
 | |
| 
 | |
| export class Artwork extends LayerDefinition {
 | |
| 
 | |
|     constructor() {
 | |
|         super("artwork");
 | |
|         this.name = "artwork";
 | |
|         const t = Translations.t.artwork;
 | |
|         this.title = t.title;
 | |
|         const tag = new Tag("tourism", "artwork");
 | |
|         this.presets = [
 | |
|             {
 | |
|                 title: this.title,
 | |
|                 tags: [tag]
 | |
|             }
 | |
|         ];
 | |
|         this.icon = "./assets/statue.svg";
 | |
|         this.overpassFilter = tag;
 | |
|         this.minzoom = 13;
 | |
| 
 | |
| 
 | |
|         const to = Translations.t.artwork.type;
 | |
|         const artworkType = new TagRenderingOptions({
 | |
|             priority: 5,
 | |
|             question: to.question,
 | |
|             freeform: {
 | |
|                 key: "artwork_type",
 | |
|                 extraTags: new Tag("fixme", "Freeform artwork_type= tag used: possibly a wrong value"),
 | |
|                 template: to.template.txt,
 | |
|                 renderTemplate: to.render.txt,
 | |
|                 placeholder: Translations.t.cyclofix.freeFormPlaceholder,
 | |
|             },
 | |
|             mappings: [
 | |
|                 {k: new Tag("artwork_type", "architecture"), txt: to.architecture},
 | |
|                 {k: new Tag("artwork_type", "mural"), txt: to.mural},
 | |
|                 {k: new Tag("artwork_type", "painting"), txt: to.painting},
 | |
|                 {k: new Tag("artwork_type", "sculpture"), txt: to.sculpture},
 | |
|                 {k: new Tag("artwork_type", "statue"), txt: to.statue},
 | |
|                 {k: new Tag("artwork_type", "bust"), txt: to.bust},
 | |
|                 {k: new Tag("artwork_type", "stone"), txt: to.stone},
 | |
|                 {k: new Tag("artwork_type", "installation"), txt: to.installation},
 | |
|                 {k: new Tag("artwork_type", "graffiti"), txt: to.graffiti},
 | |
|                 {k: new Tag("artwork_type", "relief"), txt: to.relief},
 | |
|                 {k: new Tag("artwork_type", "azulejo"), txt: to.azulejo},
 | |
|                 {k: new Tag("artwork_type", "tilework"), txt: to.tilework}
 | |
|             ]
 | |
|         });
 | |
| 
 | |
| 
 | |
|         const artistQuestion = new TagRenderingOptions({
 | |
|             question: t.artist.question,
 | |
|             freeform: {
 | |
|                 key: "artist_name",
 | |
|                 template: "$$$",
 | |
|                 renderTemplate: "{artist_name}"
 | |
|             }
 | |
|         });
 | |
| 
 | |
|         this.elementsToShow = [
 | |
| 
 | |
|             new ImageCarouselWithUploadConstructor(),
 | |
|             artworkType,
 | |
|             artistQuestion,
 | |
|             new Website(t.title)
 | |
|         ];
 | |
| 
 | |
| 
 | |
|         this.style = function (tags) {
 | |
|             return {
 | |
|                 icon: {
 | |
|                     iconUrl: "./assets/statue.svg",
 | |
|                     iconSize: [40, 40],
 | |
|                 },
 | |
|                 color: "#0000ff"
 | |
|             };
 | |
| 
 | |
|         }
 | |
|     }
 | |
| 
 | |
| 
 | |
| } |