forked from MapComplete/MapComplete
		
	Docs: add source where URL-parameters are defined
This commit is contained in:
		
							parent
							
								
									bbccecae4b
								
							
						
					
					
						commit
						9dc3a239f6
					
				
					 4 changed files with 953 additions and 55 deletions
				
			
		|  | @ -1,16 +1,759 @@ | |||
| [//]: # (WARNING: this file is automatically generated. Please find the sources at the bottom and edit those sources) | ||||
| 
 | ||||
|  Builtin questions  | ||||
| =================== | ||||
|  questions  | ||||
| =========== | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Special library layer which does not need a '.questions'-prefix before being imported | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The following items can be easily reused in your layers | ||||
| 
 | ||||
| ## Table of contents | ||||
| 
 | ||||
| 1. [Builtin questions](#builtin-questions) | ||||
| 1. [questions](#questions) | ||||
|   - [Basic tags for this layer](#basic-tags-for-this-layer) | ||||
|   - [Supported attributes](#supported-attributes) | ||||
|     + [questions](#questions) | ||||
|     + [images](#images) | ||||
|     + [mapillary](#mapillary) | ||||
|     + [export_as_gpx](#export_as_gpx) | ||||
|     + [export_as_geojson](#export_as_geojson) | ||||
|     + [wikipedia](#wikipedia) | ||||
|     + [reviews](#reviews) | ||||
|     + [minimap](#minimap) | ||||
|     + [phone](#phone) | ||||
|     + [osmlink](#osmlink) | ||||
|     + [email](#email) | ||||
|     + [website](#website) | ||||
|     + [wheelchair-access](#wheelchair-access) | ||||
|     + [dog-access](#dog-access) | ||||
|     + [description](#description) | ||||
|     + [opening_hours](#opening_hours) | ||||
|     + [opening_hours_24_7](#opening_hours_24_7) | ||||
|     + [opening_hours_by_appointment](#opening_hours_by_appointment) | ||||
|     + [service:electricity](#serviceelectricity) | ||||
|     + [payment-options](#payment-options) | ||||
|     + [payment-options-split](#payment-options-split) | ||||
|     + [payment-options-advanced](#payment-options-advanced) | ||||
|     + [denominations-coins](#denominations-coins) | ||||
|     + [denominations-notes](#denominations-notes) | ||||
|     + [last_edit](#last_edit) | ||||
|     + [all_tags](#all_tags) | ||||
|     + [just_created](#just_created) | ||||
|     + [multilevels](#multilevels) | ||||
|     + [level](#level) | ||||
|     + [smoking](#smoking) | ||||
|     + [induction-loop](#induction-loop) | ||||
|     + [internet](#internet) | ||||
|     + [internet-fee](#internet-fee) | ||||
|     + [internet-ssid](#internet-ssid) | ||||
|     + [luminous_or_lit](#luminous_or_lit) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - This layer is shown at zoomlevel **0** and higher | ||||
|   - Elements don't have a title set and cannot be toggled nor will they show up in the dashboard. If you import this layer in your theme, override `title` to make this toggleable. | ||||
|   - Not visible in the layer selection by default. If you want to make this layer toggable, override `name` | ||||
|   - Not rendered on the map by default. If you want to rendering this on the map, override `mapRenderings` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  Basic tags for this layer  | ||||
| --------------------------- | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Elements must have the all of following tags to be shown on this layer: | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  Supported attributes  | ||||
| ---------------------- | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Warning:  | ||||
| 
 | ||||
| this quick overview is incomplete | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| attribute | type | values which are supported by this layer | ||||
| ----------- | ------ | ------------------------------------------ | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/wikidata#values) [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/phone#values) [phone](https://wiki.openstreetmap.org/wiki/Key:phone) | [phone](../SpecialInputElements.md#phone) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/id#values) [id](https://wiki.openstreetmap.org/wiki/Key:id) | Multiple choice |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/email#values) [email](https://wiki.openstreetmap.org/wiki/Key:email) | [email](../SpecialInputElements.md#email) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/website#values) [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/dog#values) [dog](https://wiki.openstreetmap.org/wiki/Key:dog) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dno) [leashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dleashed) [unleashed](https://wiki.openstreetmap.org/wiki/Tag:dog%3Dunleashed) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/description#values) [description](https://wiki.openstreetmap.org/wiki/Key:description) | [string](../SpecialInputElements.md#string) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | [24/7](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D24/7) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/opening_hours#values) [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours) | [opening_hours](../SpecialInputElements.md#opening_hours) | ["by appointment"](https://wiki.openstreetmap.org/wiki/Tag:opening_hours%3D"by appointment") | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/service:electricity#values) [service:electricity](https://wiki.openstreetmap.org/wiki/Key:service:electricity) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dlimited) [ask](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dask) [no](https://wiki.openstreetmap.org/wiki/Tag:service:electricity%3Dno) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/payment:coins:denominations#values) [payment:coins:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:coins:denominations) | Multiple choice | [0.01 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.01 EUR) [0.02 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.02 EUR) [0.05 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.05 EUR) [0.10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.10 EUR) [0.20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.20 EUR) [0.50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D0.50 EUR) [1 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D1 EUR) [2 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:coins:denominations%3D2 EUR) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/payment:notes:denominations#values) [payment:notes:denominations](https://wiki.openstreetmap.org/wiki/Key:payment:notes:denominations) | Multiple choice | [5 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D5 EUR) [10 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D10 EUR) [20 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D20 EUR) [50 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D50 EUR) [100 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D100 EUR) [200 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D200 EUR) [500 EUR](https://wiki.openstreetmap.org/wiki/Tag:payment:notes:denominations%3D500 EUR) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/id#values) [id](https://wiki.openstreetmap.org/wiki/Key:id) | Multiple choice |  | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [string](../SpecialInputElements.md#string) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/level#values) [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/smoking#values) [smoking](https://wiki.openstreetmap.org/wiki/Key:smoking) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Dno) [outside](https://wiki.openstreetmap.org/wiki/Tag:smoking%3Doutside) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/hearing_loop#values) [hearing_loop](https://wiki.openstreetmap.org/wiki/Key:hearing_loop) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dno) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access#values) [internet_access](https://wiki.openstreetmap.org/wiki/Key:internet_access) | Multiple choice | [wlan](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwlan) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dno) [terminal](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dterminal) [wired](https://wiki.openstreetmap.org/wiki/Tag:internet_access%3Dwired) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access:fee#values) [internet_access:fee](https://wiki.openstreetmap.org/wiki/Key:internet_access:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dno) [customers](https://wiki.openstreetmap.org/wiki/Tag:internet_access:fee%3Dcustomers) | ||||
| [<img src='https://mapcomplete.osm.be/assets/svg/statistics.svg' height='18px'>](https://taginfo.openstreetmap.org/keys/internet_access:ssid#values) [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid) | [string](../SpecialInputElements.md#string) | [Telekom](https://wiki.openstreetmap.org/wiki/Tag:internet_access:ssid%3DTelekom) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### questions  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Show the questions block at this location | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### images  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### mapillary  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a button to open Mapillary on this location | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### export_as_gpx  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a button to export this feature as GPX. Especially useful for route relations | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### export_as_geojson  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a button to export this feature as geojson. Especially useful for debugging or using this in other programs | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### wikipedia  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor | ||||
| 
 | ||||
| The question is  *What is the corresponding Wikidata entity?* | ||||
| 
 | ||||
| This rendering asks information about the property  [wikidata](https://wiki.openstreetmap.org/wiki/Key:wikidata)  | ||||
| 
 | ||||
| This is rendered with  `{wikipedia():max-height:25rem}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *{wikipedia():max-height:25rem}*  corresponds with  `wikipedia~.+` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *No Wikipedia page has been linked yet*  corresponds with  `` | ||||
|   - This option cannot be chosen as answer | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### reviews  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows the reviews module (including the possibility to leave a review) | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### minimap  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a small map with the feature. Added by default to every popup | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### phone  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What is the phone number of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [phone](https://wiki.openstreetmap.org/wiki/Key:phone)  | ||||
| 
 | ||||
| This is rendered with  `<a href='tel:{phone}'>{phone}</a>` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *<a href='tel:{contact:phone}'>{contact:phone}</a>*  corresponds with  `contact:phone~.+` | ||||
|   - This option cannot be chosen as answer | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering has labels  `contact` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### osmlink  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *<span class='alert'>Uploading...</alert>*  corresponds with  `id~^(=-)$` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### email  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What is the email address of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [email](https://wiki.openstreetmap.org/wiki/Key:email)  | ||||
| 
 | ||||
| This is rendered with  `<a href='mailto:{email}' target='_blank'>{email}</a>` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *<a href='mailto:{contact:email}' target='_blank'>{contact:email}</a>*  corresponds with  `contact:email~.+` | ||||
|   - This option cannot be chosen as answer | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering has labels  `contact` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### website  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What is the website of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [website](https://wiki.openstreetmap.org/wiki/Key:website)  | ||||
| 
 | ||||
| This is rendered with  `<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *<a href='{contact:website}' rel='nofollow noopener noreferrer' target='_blank'>{contact:website}</a>*  corresponds with  `contact:website~.+` | ||||
|   - This option cannot be chosen as answer | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering has labels  `contact` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### wheelchair-access  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Is this place accessible with a wheelchair?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *This place is specially adapted for wheelchair users*  corresponds with  `wheelchair=designated` | ||||
|   - *This place is easily reachable with a wheelchair*  corresponds with  `wheelchair=yes` | ||||
|   - *It is possible to reach this place in a wheelchair, but it is not easy*  corresponds with  `wheelchair=limited` | ||||
|   - *This place is not reachable with a wheelchair*  corresponds with  `wheelchair=no` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### dog-access  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Are dogs allowed in this business?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Dogs are allowed*  corresponds with  `dog=yes` | ||||
|   - *Dogs are <b>not</b> allowed*  corresponds with  `dog=no` | ||||
|   - *Dogs are allowed, but they have to be leashed*  corresponds with  `dog=leashed` | ||||
|   - *Dogs are allowed and can run around freely*  corresponds with  `dog=unleashed` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### description  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Is there still some relevant info that the previous questions did not cover? Feel free to add it here.* | ||||
| 
 | ||||
| This rendering asks information about the property  [description](https://wiki.openstreetmap.org/wiki/Key:description)  | ||||
| 
 | ||||
| This is rendered with  `{description}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### opening_hours  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What are the opening hours of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)  | ||||
| 
 | ||||
| This is rendered with  `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### opening_hours_24_7  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What are the opening hours of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)  | ||||
| 
 | ||||
| This is rendered with  `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *24/7 opened (including holidays)*  corresponds with  `opening_hours=24/7` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### opening_hours_by_appointment  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What are the opening hours of {title()}?* | ||||
| 
 | ||||
| This rendering asks information about the property  [opening_hours](https://wiki.openstreetmap.org/wiki/Key:opening_hours)  | ||||
| 
 | ||||
| This is rendered with  `<h3>Opening hours</h3>{opening_hours_table(opening_hours)}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Only by appointment*  corresponds with  `opening_hours="by appointment"` | ||||
|   - *Only by appointment*  corresponds with  `opening_hours~^("by appointment"|by appointment)$` | ||||
|   - This option cannot be chosen as answer | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### service:electricity  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Does this amenity have electrical outlets, available to customers when they are inside?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *There are plenty of domestic sockets available to customers seated indoors, where they can charge their electronics*  corresponds with  `service:electricity=yes` | ||||
|   - *There are a few domestic sockets available to customers seated indoors, where they can charge their electronics*  corresponds with  `service:electricity=limited` | ||||
|   - *There are no sockets available indoors to customers, but charging might be possible if the staff is asked*  corresponds with  `service:electricity=ask` | ||||
|   - *There are a no domestic sockets available to customers seated indoors*  corresponds with  `service:electricity=no` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### payment-options  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Which methods of payment are accepted here?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Cash is accepted here*  corresponds with  `payment:cash=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cash' target='_blank'>payment:cash</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cash%3Dno' target='_blank'>no</a> | ||||
|   - *Payment cards are accepted here*  corresponds with  `payment:cards=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cards' target='_blank'>payment:cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cards%3Dno' target='_blank'>no</a> | ||||
|   - *Payment by QR-code is possible here*  corresponds with  `payment:qr_code=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### payment-options-split  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Which methods of payment are accepted here?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Cash is accepted here*  corresponds with  `payment:cash=yes` | ||||
|   - This option cannot be chosen as answer | ||||
|   - Unselecting this answer will add  | ||||
|   - *Payment cards are accepted here*  corresponds with  `payment:cards=yes` | ||||
|   - This option cannot be chosen as answer | ||||
|   - Unselecting this answer will add  | ||||
|   - *Payment by QR-code is possible here*  corresponds with  `payment:qr_code=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a> | ||||
|   - *Coins are accepted here*  corresponds with  `payment:coins=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:coins' target='_blank'>payment:coins</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:coins%3Dno' target='_blank'>no</a> | ||||
|   - *Bank notes are accepted here*  corresponds with  `payment:notes=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:notes' target='_blank'>payment:notes</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:notes%3Dno' target='_blank'>no</a> | ||||
|   - *Debit cards are accepted here*  corresponds with  `payment:debit_cards=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:debit_cards' target='_blank'>payment:debit_cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:debit_cards%3Dno' target='_blank'>no</a> | ||||
|   - *Credit cards are accepted here*  corresponds with  `payment:credit_cards=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:credit_cards' target='_blank'>payment:credit_cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:credit_cards%3Dno' target='_blank'>no</a> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### payment-options-advanced  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Which methods of payment are accepted here?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Cash is accepted here*  corresponds with  `payment:cash=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cash' target='_blank'>payment:cash</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cash%3Dno' target='_blank'>no</a> | ||||
|   - *Payment cards are accepted here*  corresponds with  `payment:cards=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:cards' target='_blank'>payment:cards</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:cards%3Dno' target='_blank'>no</a> | ||||
|   - *Payment by QR-code is possible here*  corresponds with  `payment:qr_code=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:qr_code' target='_blank'>payment:qr_code</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:qr_code%3Dno' target='_blank'>no</a> | ||||
|   - *Payment is done using a dedicated app*  corresponds with  `payment:app=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:app' target='_blank'>payment:app</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:app%3Dno' target='_blank'>no</a> | ||||
|   - *Payment is done using a membership card*  corresponds with  `payment:membership_card=yes` | ||||
|   - Unselecting this answer will add <a href='https://wiki.openstreetmap.org/wiki/Key:payment:membership_card' target='_blank'>payment:membership_card</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:payment:membership_card%3Dno' target='_blank'>no</a> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### denominations-coins  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What coins can you use to pay here?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *1 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.01 EUR` | ||||
|   - *2 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.02 EUR` | ||||
|   - *5 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.05 EUR` | ||||
|   - *10 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.10 EUR` | ||||
|   - *20 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.20 EUR` | ||||
|   - *50 cent coins are accepted*  corresponds with  `payment:coins:denominations=0.50 EUR` | ||||
|   - *1 euro coins are accepted*  corresponds with  `payment:coins:denominations=1 EUR` | ||||
|   - *2 euro coins are accepted*  corresponds with  `payment:coins:denominations=2 EUR` | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `payment:coins=yes|payment:cash=yes&_currency=EUR` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### denominations-notes  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *what notes can you use to pay here?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *5 euro notes are accepted*  corresponds with  `payment:notes:denominations=5 EUR` | ||||
|   - *10 euro notes are accepted*  corresponds with  `payment:notes:denominations=10 EUR` | ||||
|   - *20 euro notes are accepted*  corresponds with  `payment:notes:denominations=20 EUR` | ||||
|   - *50 euro notes are accepted*  corresponds with  `payment:notes:denominations=50 EUR` | ||||
|   - *100 euro notes are accepted*  corresponds with  `payment:notes:denominations=100 EUR` | ||||
|   - *200 euro notes are accepted*  corresponds with  `payment:notes:denominations=200 EUR` | ||||
|   - *500 euro notes are accepted*  corresponds with  `payment:notes:denominations=500 EUR` | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `payment:notes=yes|payment:cash=yes&_currency=EUR` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### last_edit  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Gives some metainfo about the last edit and who did edit it - rendering only | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `_last_edit:contributor~.+&_last_edit:changeset~.+` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### all_tags  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| Shows a table with all the tags of the feature | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### just_created  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| This element shows a 'thank you' that the contributor has recently created this element | ||||
| 
 | ||||
| This tagrendering has no question and is thus read-only | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *You just created this element! Thanks for sharing this info with the world and helping people worldwide.*  corresponds with  `id~.+` | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `_backend~.+&_last_edit:passed_time<300&|_version_number=1` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### multilevels  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What levels does this elevator go to?* | ||||
| 
 | ||||
| This rendering asks information about the property  [level](https://wiki.openstreetmap.org/wiki/Key:level)  | ||||
| 
 | ||||
| This is rendered with  `This elevator goes to floors {level}` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Located underground*  corresponds with  `location=underground` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *Located on the ground floor*  corresponds with  `level=0` | ||||
|   - *Located on the ground floor*  corresponds with  `` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *Located on the first floor*  corresponds with  `level=1` | ||||
|   - *Located on the first basement level*  corresponds with  `level=-1` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### level  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *On what level is this feature located?* | ||||
| 
 | ||||
| This rendering asks information about the property  [level](https://wiki.openstreetmap.org/wiki/Key:level)  | ||||
| 
 | ||||
| This is rendered with  `Located on the {level}th floor` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Located underground*  corresponds with  `location=underground` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *Located on the ground floor*  corresponds with  `level=0` | ||||
|   - *Located on the ground floor*  corresponds with  `` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *Located on the first floor*  corresponds with  `level=1` | ||||
|   - *Located on the first basement level*  corresponds with  `level=-1` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### smoking  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Is smoking allowed at {title()}?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Smoking is <b>allowed</b>*  corresponds with  `smoking=yes` | ||||
|   - *Smoking is <b>not allowed</b>*  corresponds with  `smoking=no` | ||||
|   - *Smoking is <b>allowed outside</b>.*  corresponds with  `smoking=outside` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### induction-loop  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| An accessibility feature: induction loops are for hard-hearing persons which have an FM-receiver. | ||||
| 
 | ||||
| The question is  *Does this place have an audio induction loop for people with reduced hearing?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *This place has an audio induction loop*  corresponds with  `hearing_loop=yes` | ||||
|   - *This place <b>does not</b> have an audio induction loop*  corresponds with  `hearing_loop=no` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### internet  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Does this place offer internet access?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *This place offers wireless internet access*  corresponds with  `internet_access=wlan` | ||||
|   - *This place <b>does not</b> offer internet access*  corresponds with  `internet_access=no` | ||||
|   - *This place offers internet access*  corresponds with  `internet_access=yes` | ||||
|   - This option cannot be chosen as answer | ||||
|   - *This place offers internet access via a terminal or computer*  corresponds with  `internet_access=terminal` | ||||
|   - *This place offers wired internet access*  corresponds with  `internet_access=wired` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### internet-fee  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Is there a fee for internet access?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *There is a fee for the internet access at this place*  corresponds with  `internet_access:fee=yes` | ||||
|   - *Internet access is free at this place*  corresponds with  `internet_access:fee=no` | ||||
|   - *Internet access is free at this place, for customers only*  corresponds with  `internet_access:fee=customers` | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `internet_access!=no&internet_access~.+` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### internet-ssid  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *What is the network name for the wireless internet access?* | ||||
| 
 | ||||
| This rendering asks information about the property  [internet_access:ssid](https://wiki.openstreetmap.org/wiki/Key:internet_access:ssid)  | ||||
| 
 | ||||
| This is rendered with  `The network name is <b>{internet_access:ssid}</b>` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *Telekom*  corresponds with  `internet_access:ssid=Telekom` | ||||
| 
 | ||||
| 
 | ||||
| This tagrendering is only visible in the popup if the following condition is met: `internet_access=wlan` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### luminous_or_lit  | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| The question is  *Is this object lit or does it emit light?* | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|   - *This object both emits light and is lighted by an external light source*  corresponds with  `lit=yes&luminous=yes` | ||||
|   - *This object emits light*  corresponds with  `luminous=yes` | ||||
|   - *This object is lit externally, e.g. by a spotlight or other lights*  corresponds with  `lit=yes` | ||||
|   - *This object does not emit light and is not lighted by externally*  corresponds with  `lit=no&luminous=no` | ||||
|   | ||||
| 
 | ||||
| This document is autogenerated from [src/Customizations/SharedTagRenderings.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/Customizations/SharedTagRenderings.ts), [assets/layers/questions/questions.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/questions/questions.json) | ||||
| This document is autogenerated from [assets/layers/questions/questions.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/layers/questions/questions.json) | ||||
|  |  | |||
|  | @ -77,174 +77,274 @@ The user display language is determined in the following order: | |||
| Note that this URL-parameter is not added to the URL-bar by default. | ||||
| Note that the _loading_ screen will always use the navigator language. | ||||
| 
 | ||||
| Translations are never complete. If a translation in a certain language is missing, English is used as fallback. No default value set | ||||
| Translations are never complete. If a translation in a certain language is missing, English is used as fallback. | ||||
| 
 | ||||
| This documentation is defined in the source code at [Locale.ts](/UI/i18n/Locale.ts#L35) | ||||
| 
 | ||||
|  No default value set | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-translation-mode  | ||||
| --------------------- | ||||
| 
 | ||||
|  If set, will show a translation button next to every string. The default value is _false_ | ||||
|  If set, will show a translation button next to every string. | ||||
| 
 | ||||
| This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66) | ||||
| 
 | ||||
|  The default value is _false_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  backend  | ||||
| --------- | ||||
| 
 | ||||
|  The OSM backend to use - can be used to redirect mapcomplete to the testing backend when using 'osm-test' The default value is _osm_ | ||||
|  The OSM backend to use - can be used to redirect mapcomplete to the testing backend when using 'osm-test' | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L29) | ||||
| 
 | ||||
|  The default value is _osm_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fake-user  | ||||
| ----------- | ||||
| 
 | ||||
|  If true, 'dryrun' mode is activated and a fake user account is loaded The default value is _false_ | ||||
|  If true, 'dryrun' mode is activated and a fake user account is loaded | ||||
| 
 | ||||
| This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66) | ||||
| 
 | ||||
|  The default value is _false_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-userbadge  | ||||
| -------------- | ||||
| 
 | ||||
|  Disables/Enables the user information pill (userbadge) at the top left. Disabling this disables logging in and thus disables editing all together, effectively putting MapComplete into read-only mode. The default value is _true_ | ||||
|  Disables/Enables the user information pill (userbadge) at the top left. Disabling this disables logging in and thus disables editing all together, effectively putting MapComplete into read-only mode. | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-search  | ||||
| ----------- | ||||
| 
 | ||||
|  Disables/Enables the search bar The default value is _true_ | ||||
|  Disables/Enables the search bar | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-background  | ||||
| --------------- | ||||
| 
 | ||||
|  Disables/Enables the background layer control The default value is _true_ | ||||
|  Disables/Enables the background layer control | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-filter  | ||||
| ----------- | ||||
| 
 | ||||
|  Disables/Enables the filter view The default value is _true_ | ||||
|  Disables/Enables the filter view | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-add-new  | ||||
| ------------ | ||||
| 
 | ||||
|  Disables/Enables the 'add new feature'-popup. (A theme without presets might not have it in the first place) The default value is _true_ | ||||
|  Disables/Enables the 'add new feature'-popup. (A theme without presets might not have it in the first place) | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-welcome-message  | ||||
| -------------------- | ||||
| 
 | ||||
|  Disables/enables the help menu or welcome message The default value is _true_ | ||||
|  Disables/enables the help menu or welcome message | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-community-index  | ||||
| -------------------- | ||||
| 
 | ||||
|  Disables/enables the button to get in touch with the community The default value is _true_ | ||||
|  Disables/enables the button to get in touch with the community | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-iframe-popout  | ||||
| ------------------ | ||||
| 
 | ||||
|  Disables/Enables the extraLink button. By default, if in iframe mode and the welcome message is hidden, a popout button to the full mapcomplete instance is shown instead (unless disabled with this switch or another extraLink button is enabled) The default value is _true_ | ||||
|  Disables/Enables the extraLink button. By default, if in iframe mode and the welcome message is hidden, a popout button to the full mapcomplete instance is shown instead (unless disabled with this switch or another extraLink button is enabled) | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-more-quests  | ||||
| ---------------- | ||||
| 
 | ||||
|  Disables/Enables the 'More Quests'-tab in the welcome message The default value is _true_ | ||||
|  Disables/Enables the 'More Quests'-tab in the welcome message | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-share-screen  | ||||
| ----------------- | ||||
| 
 | ||||
|  Disables/Enables the 'Share-screen'-tab in the welcome message The default value is _true_ | ||||
|  Disables/Enables the 'Share-screen'-tab in the welcome message | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-geolocation  | ||||
| ---------------- | ||||
| 
 | ||||
|  Disables/Enables the geolocation button The default value is _true_ | ||||
|  Disables/Enables the geolocation button | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-all-questions  | ||||
| ------------------ | ||||
| 
 | ||||
|  Always show all questions The default value is _false_ | ||||
|  Always show all questions | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _false_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  fs-export  | ||||
| ----------- | ||||
| 
 | ||||
|  Enable the export as GeoJSON and CSV button The default value is _true_ | ||||
|  Enable the export as GeoJSON and CSV button | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L13) | ||||
| 
 | ||||
|  The default value is _true_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  test  | ||||
| ------ | ||||
| 
 | ||||
|  If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org The default value is _false_ | ||||
|  If true, 'dryrun' mode is activated. The app will behave as normal, except that changes to OSM will be printed onto the console instead of actually uploaded to osm.org | ||||
| 
 | ||||
| This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66) | ||||
| 
 | ||||
|  The default value is _false_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  debug  | ||||
| ------- | ||||
| 
 | ||||
|  If true, shows some extra debugging help such as all the available tags on every object The default value is _false_ | ||||
|  If true, shows some extra debugging help such as all the available tags on every object | ||||
| 
 | ||||
| This documentation is defined in the source code at [QueryParameters.ts](/Logic/Web/QueryParameters.ts#L66) | ||||
| 
 | ||||
|  The default value is _false_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  overpassUrl  | ||||
| ------------- | ||||
| 
 | ||||
|  Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter The default value is _https://overpass-api.de/api/interpreter,https://overpass.kumi.systems/api/interpreter,https://overpass.openstreetmap.ru/cgi/interpreter_ | ||||
|  Point mapcomplete to a different overpass-instance. Example: https://overpass-api.de/api/interpreter | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L165) | ||||
| 
 | ||||
|  The default value is _https://overpass-api.de/api/interpreter,https://overpass.kumi.systems/api/interpreter,https://overpass.openstreetmap.ru/cgi/interpreter_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  overpassTimeout  | ||||
| ----------------- | ||||
| 
 | ||||
|  Set a different timeout (in seconds) for queries in overpass The default value is _30_ | ||||
|  Set a different timeout (in seconds) for queries in overpass | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L176) | ||||
| 
 | ||||
|  The default value is _30_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  overpassMaxZoom  | ||||
| ----------------- | ||||
| 
 | ||||
|   point to switch between OSM-api and overpass The default value is _16_ | ||||
|   point to switch between OSM-api and overpass | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L184) | ||||
| 
 | ||||
|  The default value is _16_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  osmApiTileSize  | ||||
| ---------------- | ||||
| 
 | ||||
|  Tilesize when the OSM-API is used to fetch data within a BBOX The default value is _17_ | ||||
|  Tilesize when the OSM-API is used to fetch data within a BBOX | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L192) | ||||
| 
 | ||||
|  The default value is _17_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  background  | ||||
| ------------ | ||||
| 
 | ||||
|  The id of the background layer to start with The default value is _osm_ | ||||
|  The id of the background layer to start with | ||||
| 
 | ||||
| This documentation is defined in the source code at [FeatureSwitchState.ts](/Logic/State/FeatureSwitchState.ts#L205) | ||||
| 
 | ||||
|  The default value is _osm_ | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  layer-<layer-id>  | ||||
| ------------------------ | ||||
| 
 | ||||
|  Wether or not the layer with id <layer-id> is shown The default value is _true_  | ||||
|  Wether or not the layer with id <layer-id> is shown | ||||
| 
 | ||||
| This documentation is defined in the source code at [QueryParameterDocumentation.ts](/UI/QueryParameterDocumentation.ts#L52) | ||||
| 
 | ||||
|  The default value is _true_  | ||||
| 
 | ||||
| This document is autogenerated from [src/Logic/Web/QueryParameters.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/Logic/Web/QueryParameters.ts), [src/UI/QueryParameterDocumentation.ts](https://github.com/pietervdvn/MapComplete/blob/develop/src/UI/QueryParameterDocumentation.ts) | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| import { UIEventSource } from "../UIEventSource" | ||||
| import Hash from "./Hash" | ||||
| import { Utils } from "../../Utils" | ||||
| import doc = Mocha.reporters.doc | ||||
| 
 | ||||
| export class QueryParameters { | ||||
|     static defaults: Record<string, string> = {} | ||||
|  | @ -21,6 +22,19 @@ export class QueryParameters { | |||
|         if (!this.initialized) { | ||||
|             this.init() | ||||
|         } | ||||
| 
 | ||||
|         if (Utils.runningFromConsole) { | ||||
|             const location = Utils.getLocationInCode(-1) | ||||
| 
 | ||||
|             documentation += | ||||
|                 "\n\nThis documentation is defined in the source code at [" + | ||||
|                 location.filename + | ||||
|                 "](" + | ||||
|                 location.markdownLocation + | ||||
|                 ")" + | ||||
|                 "\n\n" | ||||
|         } | ||||
| 
 | ||||
|         QueryParameters.documentation.set(key, documentation) | ||||
|         if (deflt !== undefined) { | ||||
|             QueryParameters.defaults[key] = deflt | ||||
|  | @ -131,5 +145,4 @@ export class QueryParameters { | |||
|         QueryParameters._wasInitialized.clear() | ||||
|         QueryParameters.order = [] | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
							
								
								
									
										90
									
								
								src/Utils.ts
									
										
									
									
									
								
							
							
						
						
									
										90
									
								
								src/Utils.ts
									
										
									
									
									
								
							|  | @ -1,5 +1,5 @@ | |||
| import colors from "./assets/colors.json" | ||||
| import {HTMLElement} from "node-html-parser" | ||||
| import { HTMLElement } from "node-html-parser" | ||||
| 
 | ||||
| export class Utils { | ||||
|     /** | ||||
|  | @ -459,7 +459,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
| 
 | ||||
|         let match = txt.match(regex) | ||||
| 
 | ||||
|         if(!match){ | ||||
|         if (!match) { | ||||
|             return txt | ||||
|         } | ||||
|         let result = "" | ||||
|  | @ -502,7 +502,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
| 
 | ||||
|             result += normal + v | ||||
|             match = leftover.match(regex) | ||||
|             if(!match){ | ||||
|             if (!match) { | ||||
|                 result += leftover | ||||
|             } | ||||
|         } | ||||
|  | @ -699,10 +699,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|             if (Array.isArray(leaf)) { | ||||
|                 for (let i = 0; i < (<any[]>leaf).length; i++) { | ||||
|                     const l = (<any[]>leaf)[i] | ||||
|                     collectedList.push({leaf: l, path: [...travelledPath, "" + i]}) | ||||
|                     collectedList.push({ leaf: l, path: [...travelledPath, "" + i] }) | ||||
|                 } | ||||
|             } else { | ||||
|                 collectedList.push({leaf, path: travelledPath}) | ||||
|                 collectedList.push({ leaf, path: travelledPath }) | ||||
|             } | ||||
|             return collectedList | ||||
|         } | ||||
|  | @ -780,7 +780,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|             }) | ||||
|         } | ||||
| 
 | ||||
|         const cp = {...json} | ||||
|         const cp = { ...json } | ||||
|         for (const key in json) { | ||||
|             cp[key] = Utils.WalkJson(json[key], f, isLeaf, [...path, key]) | ||||
|         } | ||||
|  | @ -910,11 +910,11 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|             const xhr = new XMLHttpRequest() | ||||
|             xhr.onload = () => { | ||||
|                 if (xhr.status == 200) { | ||||
|                     resolve({content: xhr.response}) | ||||
|                     resolve({ content: xhr.response }) | ||||
|                 } else if (xhr.status === 302) { | ||||
|                     resolve({redirect: xhr.getResponseHeader("location")}) | ||||
|                     resolve({ redirect: xhr.getResponseHeader("location") }) | ||||
|                 } else if (xhr.status === 509 || xhr.status === 429) { | ||||
|                     resolve({error: "rate limited", url, statuscode: xhr.status}) | ||||
|                     resolve({ error: "rate limited", url, statuscode: xhr.status }) | ||||
|                 } else { | ||||
|                     resolve({ | ||||
|                         error: "other error: " + xhr.statusText, | ||||
|  | @ -984,10 +984,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|         } | ||||
|         const promise = | ||||
|             /*NO AWAIT as we work with the promise directly */ Utils.downloadJsonAdvanced( | ||||
|             url, | ||||
|             headers | ||||
|         ) | ||||
|         Utils._download_cache.set(url, {promise, timestamp: new Date().getTime()}) | ||||
|                 url, | ||||
|                 headers | ||||
|             ) | ||||
|         Utils._download_cache.set(url, { promise, timestamp: new Date().getTime() }) | ||||
|         return await promise | ||||
|     } | ||||
| 
 | ||||
|  | @ -1006,11 +1006,11 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|         const injected = Utils.injectedDownloads[url] | ||||
|         if (injected !== undefined) { | ||||
|             console.log("Using injected resource for test for URL", url) | ||||
|             return new Promise((resolve, _) => resolve({content: injected})) | ||||
|             return new Promise((resolve, _) => resolve({ content: injected })) | ||||
|         } | ||||
|         const result = await Utils.downloadAdvanced( | ||||
|             url, | ||||
|             Utils.Merge({accept: "application/json"}, headers ?? {}) | ||||
|             Utils.Merge({ accept: "application/json" }, headers ?? {}) | ||||
|         ) | ||||
|         if (result["error"] !== undefined) { | ||||
|             return <{ error: string; url: string; statuscode?: number }>result | ||||
|  | @ -1018,12 +1018,12 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|         const data = result["content"] | ||||
|         try { | ||||
|             if (typeof data === "string") { | ||||
|                 return {content: JSON.parse(data)} | ||||
|                 return { content: JSON.parse(data) } | ||||
|             } | ||||
|             return {content: data} | ||||
|             return { content: data } | ||||
|         } catch (e) { | ||||
|             console.error("Could not parse ", data, "due to", e, "\n", e.stack) | ||||
|             return {error: "malformed", url} | ||||
|             return { error: "malformed", url } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|  | @ -1047,7 +1047,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|         const element = document.createElement("a") | ||||
|         let file | ||||
|         if (typeof contents === "string") { | ||||
|             file = new Blob([contents], {type: options?.mimetype ?? "text/plain"}) | ||||
|             file = new Blob([contents], { type: options?.mimetype ?? "text/plain" }) | ||||
|         } else { | ||||
|             file = contents | ||||
|         } | ||||
|  | @ -1318,7 +1318,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|             if (match == undefined) { | ||||
|                 return undefined | ||||
|             } | ||||
|             return {r: Number(match[1]), g: Number(match[2]), b: Number(match[3])} | ||||
|             return { r: Number(match[1]), g: Number(match[2]), b: Number(match[3]) } | ||||
|         } | ||||
| 
 | ||||
|         if (!hex.startsWith("#")) { | ||||
|  | @ -1378,7 +1378,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|         if (inView) { | ||||
|             return | ||||
|         } | ||||
|         element.scrollIntoView({behavior: "smooth", block: "nearest"}) | ||||
|         element.scrollIntoView({ behavior: "smooth", block: "nearest" }) | ||||
|     } | ||||
| 
 | ||||
|     public static findParentWithScrolling(element: HTMLBaseElement): HTMLBaseElement { | ||||
|  | @ -1470,18 +1470,60 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be | |||
|             const postParts = prepart.split("}") | ||||
|             if (postParts.length === 1) { | ||||
|                 // This was a normal part
 | ||||
|                 spec.push({message: postParts[0]}) | ||||
|                 spec.push({ message: postParts[0] }) | ||||
|             } else { | ||||
|                 const [subs, message] = postParts | ||||
|                 spec.push({subs}) | ||||
|                 spec.push({ subs }) | ||||
|                 if (message !== "") { | ||||
|                     spec.push({message}) | ||||
|                     spec.push({ message }) | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return spec | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Returns the file and line number of the code calling this | ||||
|      */ | ||||
|     public static getLocationInCode(offset: number = 0): { | ||||
|         path: string | ||||
|         line: number | ||||
|         column: number | ||||
|         markdownLocation: string | ||||
|         filename: string | ||||
|         functionName: string | ||||
|     } { | ||||
|         const error = new Error("No error") | ||||
|         const stack = error.stack.split("\n") | ||||
|         stack.shift() // Remove "Error: No error"
 | ||||
|         const regex = /at (.*) \(([a-zA-Z0-9/.]+):([0-9]+):([0-9]+)\)/ | ||||
|         const stackItem = stack[Math.abs(offset) + 1] | ||||
|         console.log("Matching", stackItem, "with", regex, "gave", stackItem.match(regex)) | ||||
| 
 | ||||
|         let functionName: string | ||||
|         let path: string | ||||
|         let line: string | ||||
|         let column: string | ||||
|         let _: string | ||||
|         const matchWithFuncName = stackItem.match(regex) | ||||
|         if (matchWithFuncName) { | ||||
|             ;[_, functionName, path, line, column] = matchWithFuncName | ||||
|         } else { | ||||
|             let regexNoFuncName: RegExp = new RegExp("at ([a-zA-Z0-9/.]+):([0-9]+):([0-9]+)") | ||||
|             ;[_, path, line, column] = stackItem.match(regexNoFuncName) | ||||
|         } | ||||
| 
 | ||||
|         const markdownLocation = path.substring(path.indexOf("MapComplete/src") + 15) + "#L" + line | ||||
|         return { | ||||
|             path, | ||||
|             functionName, | ||||
|             line: Number(line), | ||||
|             column: Number(column), | ||||
|             markdownLocation, | ||||
|             filename: path.substring(path.lastIndexOf("/") + 1), | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private static colorDiff( | ||||
|         c0: { r: number; g: number; b: number }, | ||||
|         c1: { r: number; g: number; b: number } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue