| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | import {LayerDefinition} from "../LayerDefinition"; | 
					
						
							|  |  |  | import L from "leaflet"; | 
					
						
							| 
									
										
										
										
											2020-07-20 18:24:00 +02:00
										 |  |  | import {And, Or, Tag} from "../../Logic/TagsFilter"; | 
					
						
							| 
									
										
										
										
											2020-07-05 18:59:47 +02:00
										 |  |  | import {TagRenderingOptions} from "../TagRendering"; | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  | import {NameInline} from "../Questions/NameInline"; | 
					
						
							| 
									
										
										
										
											2020-07-20 09:57:19 +02:00
										 |  |  | import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class Bookcases extends LayerDefinition { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  |         super(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.name = "boekenkast"; | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |         this.newElementTags = [new Tag("amenity", "public_bookcase")]; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  |         this.icon = "./assets/bookcase.svg"; | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |         this.overpassFilter = new Tag("amenity", "public_bookcase"); | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |         this.minzoom = 11; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |         this.title = new NameInline("ruilboekenkastje"); | 
					
						
							|  |  |  |         this.elementsToShow = [ | 
					
						
							| 
									
										
										
										
											2020-07-20 09:57:19 +02:00
										 |  |  |             new ImageCarouselWithUploadConstructor(), | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Heeft dit boekenruilkastje een naam?", | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "name", | 
					
						
							|  |  |  |                     template: "De naam is $$$", | 
					
						
							|  |  |  |                     renderTemplate: "", // We don't actually render it, only ask
 | 
					
						
							|  |  |  |                     placeholder: "", | 
					
						
							|  |  |  |                     extraTags: new Tag("noname","") | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new Tag("noname", "yes"), txt: "Neen, er is geen naam aangeduid op het boekenruilkastje"}, | 
					
						
							|  |  |  |                 ] | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |             new TagRenderingOptions( | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     question: "Hoeveel boeken passen in dit boekenruilkastje?", | 
					
						
							|  |  |  |                     freeform: { | 
					
						
							|  |  |  |                         renderTemplate: "Er passen {capacity} boeken in dit boekenruilkastje", | 
					
						
							|  |  |  |                         template:  "Er passen $$$ boeken in dit boekenruilkastje", | 
					
						
							|  |  |  |                         key: "capacity", | 
					
						
							|  |  |  |                         placeholder: "aantal" | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             ), | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Wat voor soort boeken heeft dit boekenruilkastje?", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new Tag("books", "children"), txt: "Voornamelijk kinderboeken"}, | 
					
						
							|  |  |  |                     {k: new Tag("books", "adults"), txt: "Voornamelijk boeken voor volwassenen"}, | 
					
						
							|  |  |  |                     {k: new Tag("books", "children;adults"), txt: "Zowel kinderboeken als boeken voor volwassenen"} | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                 ], | 
					
						
							|  |  |  |             }), | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Staat dit boekenruilkastje binnen of buiten?", | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new Tag("indoor", "yes"), txt: "Dit boekenruilkastje staat binnen"}, | 
					
						
							|  |  |  |                     {k: new Tag("indoor", "no"), txt: "Dit boekenruilkastje staat buiten"}, | 
					
						
							|  |  |  |                     {k: new Tag("indoor", ""), txt: "Dit boekenruilkastje staat buiten"} | 
					
						
							|  |  |  |                 ] | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Is dit boekenruilkastje vrij toegankelijk?", | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new Tag("access", "yes"), txt: "Ja, vrij toegankelijk"}, | 
					
						
							|  |  |  |                     {k: new Tag("access", "customers"), txt: "Enkel voor klanten"}, | 
					
						
							|  |  |  |                 ] | 
					
						
							|  |  |  |             }).OnlyShowIf(new Tag("indoor", "yes")), | 
					
						
							| 
									
										
										
										
											2020-07-13 14:14:00 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Wie (welke organisatie) beheert dit boekenruilkastje?", | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "opeartor", | 
					
						
							|  |  |  |                     renderTemplate: "Dit boekenruilkastje wordt beheerd door {operator}", | 
					
						
							|  |  |  |                     template: "Dit boekenruilkastje wordt beheerd door $$$" | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Zijn er openingsuren voor dit boekenruilkastje?", | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new Tag("opening_hours", "24/7"), txt: "Dag en nacht toegankelijk"}, | 
					
						
							|  |  |  |                     {k: new Tag("opening_hours", ""), txt: "Dag en nacht toegankelijk"}, | 
					
						
							|  |  |  |                     {k: new Tag("opening_hours", "sunrise-sunset"), txt: "Van zonsopgang tot zonsondergang"}, | 
					
						
							|  |  |  |                 ], | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "opening_hours", | 
					
						
							|  |  |  |                     renderTemplate: "De openingsuren zijn {opening_hours}", | 
					
						
							|  |  |  |                     template: "De openingsuren zijn $$$" | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }),  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Is dit boekenruilkastje deel van een netwerk?", | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "brand", | 
					
						
							|  |  |  |                     renderTemplate: "Deel van het netwerk {brand}", | 
					
						
							|  |  |  |                     template: "Deel van het netwerk $$$" | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 mappings: [{ | 
					
						
							|  |  |  |                     k: new And([new Tag("brand", "Little Free Library"), new Tag("nobrand", "")]), | 
					
						
							|  |  |  |                     txt: "Little Free Library" | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         k: new And([new Tag("brand", ""), new Tag("nobrand", "yes")]), | 
					
						
							|  |  |  |                         txt: "Maakt geen deel uit van een groter netwerk" | 
					
						
							|  |  |  |                     }] | 
					
						
							| 
									
										
										
										
											2020-07-13 15:09:29 +02:00
										 |  |  |             }).OnlyShowIf(new Or([ | 
					
						
							|  |  |  |                 new Tag("ref", ""), | 
					
						
							|  |  |  |                 new And([new Tag("ref","*"), new Tag("brand","")]) | 
					
						
							|  |  |  |             ])), | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							| 
									
										
										
										
											2020-07-13 15:09:29 +02:00
										 |  |  |                 question: "Wat is het referentienummer van dit boekenruilkastje?", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "ref", | 
					
						
							| 
									
										
										
										
											2020-07-13 15:09:29 +02:00
										 |  |  |                     template: "Het referentienummer is $$$", | 
					
						
							| 
									
										
										
										
											2020-07-13 14:14:00 +02:00
										 |  |  |                     renderTemplate: "Gekend als {brand} <b>{ref}</b>" | 
					
						
							| 
									
										
										
										
											2020-07-20 21:03:55 +02:00
										 |  |  |                 }, | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							|  |  |  |                     {k: new And([new  Tag("brand",""), new Tag("nobrand","yes"), new Tag("ref", "")]), txt: "Maakt geen deel uit van een groter netwerk"} | 
					
						
							|  |  |  |                 ] | 
					
						
							| 
									
										
										
										
											2020-07-13 15:09:29 +02:00
										 |  |  |             }).OnlyShowIf(new Tag("brand","*")), | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Wanneer werd dit boekenruilkastje geinstalleerd?", | 
					
						
							|  |  |  |                 priority: -1, | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                     key: "start_date", | 
					
						
							|  |  |  |                     renderTemplate: "Geplaatst op {start_date}", | 
					
						
							|  |  |  |                     template: "Geplaatst op $$$" | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }), | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 question: "Is er een website waar we er meer informatie is over dit boekenruilkastje?", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "website", | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                     renderTemplate: "<a href='{website}' target='_blank'>Meer informatie over dit boekenruilkastje</a>", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                     template: "$$$", | 
					
						
							|  |  |  |                     placeholder: "website" | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             }), | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							|  |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "description", | 
					
						
							| 
									
										
										
										
											2020-07-13 16:18:04 +02:00
										 |  |  |                     renderTemplate: "<b>Beschrijving door de uitbater:</b><br>{description}", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                     template: "$$$", | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.style = function (tags) { | 
					
						
							|  |  |  |             return { | 
					
						
							|  |  |  |                 icon: new L.icon({ | 
					
						
							|  |  |  |                     iconUrl: "assets/bookcase.svg", | 
					
						
							|  |  |  |                     iconSize: [40, 40] | 
					
						
							| 
									
										
										
										
											2020-07-05 18:59:47 +02:00
										 |  |  |                 }), | 
					
						
							|  |  |  |                 color: "#0000ff" | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  |             }; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |    | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |