| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | import {LayerDefinition} from "../LayerDefinition"; | 
					
						
							| 
									
										
										
										
											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-07-26 02:01:34 +02:00
										 |  |  | import Translations from "../../UI/i18n/Translations"; | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  | import T from "../../UI/i18n/Translation"; | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class Bookcases extends LayerDefinition { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							|  |  |  |         super(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         this.name = "boekenkast"; | 
					
						
							| 
									
										
										
										
											2020-07-29 18:35:46 +02:00
										 |  |  |         this.presets = [{ | 
					
						
							|  |  |  |             tags: [new Tag("amenity", "public_bookcase")], | 
					
						
							|  |  |  |             description: "Add a new bookcase here", | 
					
						
							|  |  |  |             title: Translations.t.bookcases.bookcase, | 
					
						
							|  |  |  |             icon: "/assets/bookcase.svg" | 
					
						
							|  |  |  |         }]; | 
					
						
							| 
									
										
										
										
											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-27 01:19:38 +02:00
										 |  |  |         const Tr = Translations.t; | 
					
						
							|  |  |  |         const Trq = Tr.bookcases.questions; | 
					
						
							| 
									
										
										
										
											2020-07-26 02:01:34 +02:00
										 |  |  |         this.title = new NameInline(Translations.t.bookcases.bookcase); | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |         this.elementsToShow = [ | 
					
						
							| 
									
										
										
										
											2020-07-20 09:57:19 +02:00
										 |  |  |             new ImageCarouselWithUploadConstructor(), | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             new TagRenderingOptions({ | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                 question: Trq.hasName, | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                 freeform: { | 
					
						
							|  |  |  |                     key: "name", | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                     template: "$$$", | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                     renderTemplate: "", // We don't actually render it, only ask
 | 
					
						
							|  |  |  |                     placeholder: "", | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                     extraTags: new Tag("noname", "") | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                 }, | 
					
						
							|  |  |  |                 mappings: [ | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                     {k: new Tag("noname", "yes"), txt: Trq.noname}, | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |                 ] | 
					
						
							|  |  |  |             }), | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |             new TagRenderingOptions( | 
					
						
							|  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                     question: Trq.capacity, | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |                     freeform: { | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                         renderTemplate: Trq.capacityRender, | 
					
						
							|  |  |  |                         template: Trq.capacityInput, | 
					
						
							| 
									
										
										
										
											2020-07-08 16:07:16 +02:00
										 |  |  |                         key: "capacity", | 
					
						
							|  |  |  |                         placeholder: "aantal" | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2020-07-08 17:09:12 +02:00
										 |  |  |             ), | 
					
						
							|  |  |  |             new TagRenderingOptions({ | 
					
						
							| 
									
										
										
										
											2020-07-27 01:19:38 +02:00
										 |  |  |                 question: Trq.bookkinds, | 
					
						
							| 
									
										
										
										
											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: { | 
					
						
							| 
									
										
										
										
											2020-07-23 12:03:44 +02:00
										 |  |  |                     key: "operator", | 
					
						
							| 
									
										
										
										
											2020-07-12 23:19:05 +02:00
										 |  |  |                     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: [ | 
					
						
							| 
									
										
										
										
											2020-07-23 12:03:44 +02:00
										 |  |  |                     {k: new And([new  Tag("brand",""), new Tag("nobrand","yes"), new Tag("ref", "")]), | 
					
						
							|  |  |  |                         txt: "Maakt geen deel uit van een netwerk"} | 
					
						
							| 
									
										
										
										
											2020-07-20 21:03:55 +02:00
										 |  |  |                 ] | 
					
						
							| 
									
										
										
										
											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 { | 
					
						
							| 
									
										
										
										
											2020-07-26 02:01:34 +02:00
										 |  |  |                 icon: { | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  |                     iconUrl: "assets/bookcase.svg", | 
					
						
							| 
									
										
										
										
											2020-07-26 02:01:34 +02:00
										 |  |  |                     iconSize: [40, 40], | 
					
						
							| 
									
										
										
										
											2020-07-26 23:28:31 +02:00
										 |  |  |                     iconAnchor: [20,20], | 
					
						
							|  |  |  |                     popupAnchor: [0, -15] | 
					
						
							| 
									
										
										
										
											2020-07-26 02:01:34 +02:00
										 |  |  |                 }, | 
					
						
							| 
									
										
										
										
											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
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |