chore: automated housekeeping...

This commit is contained in:
Pieter Vander Vennet 2025-05-04 03:01:20 +02:00
parent 7324f71ee3
commit dfbdadc174
10 changed files with 110 additions and 107 deletions

View file

@ -76,7 +76,7 @@ This is a special layer - data is not sourced from OpenStreetMap
- [seating](#seating) - [seating](#seating)
- [maxstay](#maxstay) - [maxstay](#maxstay)
- [name](#name) - [name](#name)
3. [Filters](#filters) - [has_toilets](#has_toilets)
## Supported attributes ## Supported attributes
@ -119,64 +119,66 @@ This is a special layer - data is not sourced from OpenStreetMap
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/indoor#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/indoor/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [indoor](https://wiki.openstreetmap.org/wiki/Key:indoor) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno) | | <a target="_blank" href='https://taginfo.openstreetmap.org/keys/indoor#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/indoor/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [indoor](https://wiki.openstreetmap.org/wiki/Key:indoor) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:indoor%3Dno) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/maxstay#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/maxstay/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay) | [pfloat](../SpecialInputElements.md#pfloat) | [unlimited](https://wiki.openstreetmap.org/wiki/Tag:maxstay%3Dunlimited) | | <a target="_blank" href='https://taginfo.openstreetmap.org/keys/maxstay#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/maxstay/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay) | [pfloat](../SpecialInputElements.md#pfloat) | [unlimited](https://wiki.openstreetmap.org/wiki/Tag:maxstay%3Dunlimited) |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/name#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/name/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | | <a target="_blank" href='https://taginfo.openstreetmap.org/keys/name#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/name/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | |
| <a target="_blank" href='https://taginfo.openstreetmap.org/keys/toilets#values'><img src='https://mapcomplete.org/assets/svg/search.svg' height='18px'></a> <a target="_blank" href='https://taghistory.raifer.tech/?#***/toilets/'><img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'></a> [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dseparate) |
## Featureview elements and TagRenderings ## Featureview elements and TagRenderings
| id | question | labels | freeform key | | id | question | labels | freeform key |
-----|-----|-----|----- | -----|-----|-----|----- |
| [questions](#questions) | _{questions()}_ | | _Multiple choice only_ | | [questions](#questions) <br/> _(Original in [questions](./BuiltinQuestions.md#questions))_ | _{questions()}_ | | _Multiple choice only_ |
| [images](#images) | _{image_carousel()}{image_upload()}_ | | _Multiple choice only_ | | [images](#images) <br/> _(Original in [questions](./BuiltinQuestions.md#images))_ | _{image_carousel()}{image_upload()}_ | | _Multiple choice only_ |
| [images_no_blur](#images_no_blur) | _{image_carousel()}{image_upload(,,,true)}_ | | _Multiple choice only_ | | [images_no_blur](#images_no_blur) <br/> _(Original in [questions](./BuiltinQuestions.md#images_no_blur))_ | _{image_carousel()}{image_upload(,,,true)}_ | | _Multiple choice only_ |
| [mapillary](#mapillary) | _{mapillary_link()}_ | | _Multiple choice only_ | | [mapillary](#mapillary) <br/> _(Original in [questions](./BuiltinQuestions.md#mapillary))_ | _{mapillary_link()}_ | | _Multiple choice only_ |
| [export_as_gpx](#export_as_gpx) | _{export_as_gpx()}_ | | _Multiple choice only_ | | [export_as_gpx](#export_as_gpx) <br/> _(Original in [questions](./BuiltinQuestions.md#export_as_gpx))_ | _{export_as_gpx()}_ | | _Multiple choice only_ |
| [export_as_geojson](#export_as_geojson) | _{export_as_geojson()}_ | | _Multiple choice only_ | | [export_as_geojson](#export_as_geojson) <br/> _(Original in [questions](./BuiltinQuestions.md#export_as_geojson))_ | _{export_as_geojson()}_ | | _Multiple choice only_ |
| [wikipedia](#wikipedia) | What is the corresponding Wikidata entity?<br/>_{wikipedia():max-height:25rem}_<br/>2 options | | *[wikidata](https://wiki.osm.org/wiki/Key:wikidata)* ([wikidata](../SpecialInputElements.md#wikidata)) | | [wikipedia](#wikipedia) <br/> _(Original in [questions](./BuiltinQuestions.md#wikipedia))_ | What is the corresponding Wikidata entity?<br/>_{wikipedia():max-height:25rem}_<br/>2 options | | *[wikidata](https://wiki.osm.org/wiki/Key:wikidata)* ([wikidata](../SpecialInputElements.md#wikidata)) |
| [reviews](#reviews) | _{create_review()}{list_reviews()}_ | | _Multiple choice only_ | | [reviews](#reviews) <br/> _(Original in [questions](./BuiltinQuestions.md#reviews))_ | _{create_review()}{list_reviews()}_ | | _Multiple choice only_ |
| [phone](#phone) | What is the phone number of ?<br/>_{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}_<br/>1 options | contact | *[phone](https://wiki.osm.org/wiki/Key:phone)* ([phone](../SpecialInputElements.md#phone)) | | [phone](#phone) <br/> _(Original in [questions](./BuiltinQuestions.md#phone))_ | What is the phone number of ?<br/>_{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}_<br/>1 options | contact | *[phone](https://wiki.osm.org/wiki/Key:phone)* ([phone](../SpecialInputElements.md#phone)) |
| [mastodon](#mastodon) | What is the Mastodon-handle of ?<br/>_{fediverse_link(contact:mastodon)}_ | | *[contact:mastodon](https://wiki.osm.org/wiki/Key:contact:mastodon)* ([fediverse](../SpecialInputElements.md#fediverse)) | | [mastodon](#mastodon) <br/> _(Original in [questions](./BuiltinQuestions.md#mastodon))_ | What is the Mastodon-handle of ?<br/>_{fediverse_link(contact:mastodon)}_ | | *[contact:mastodon](https://wiki.osm.org/wiki/Key:contact:mastodon)* ([fediverse](../SpecialInputElements.md#fediverse)) |
| [facebook](#facebook) | What is the facebook page of of ?<br/>_{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}<div class='subtle text-sm'>Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives</div>_ | | *[contact:facebook](https://wiki.osm.org/wiki/Key:contact:facebook)* ([url](../SpecialInputElements.md#url)) | | [facebook](#facebook) <br/> _(Original in [questions](./BuiltinQuestions.md#facebook))_ | What is the facebook page of of ?<br/>_{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}<div class='subtle text-sm'>Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives</div>_ | | *[contact:facebook](https://wiki.osm.org/wiki/Key:contact:facebook)* ([url](../SpecialInputElements.md#url)) |
| [osmlink](#osmlink) | _<a href='https://openstreetmap.org/{id}' target='_blank' rel='noopener'F><img src='./assets/svg/osm-logo-us.svg'/></a>_<br/>1 options | | _Multiple choice only_ | | [osmlink](#osmlink) <br/> _(Original in [questions](./BuiltinQuestions.md#osmlink))_ | _<a href='https://openstreetmap.org/{id}' target='_blank' rel='noopener'F><img src='./assets/svg/osm-logo-us.svg'/></a>_<br/>1 options | | _Multiple choice only_ |
| [email](#email) | What is the email address of ?<br/>_<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>_<br/>2 options | contact | *[email](https://wiki.osm.org/wiki/Key:email)* ([email](../SpecialInputElements.md#email)) | | [email](#email) <br/> _(Original in [questions](./BuiltinQuestions.md#email))_ | What is the email address of ?<br/>_<a href='mailto:{email}' target='_blank' rel='noopener'>{email}</a>_<br/>2 options | contact | *[email](https://wiki.osm.org/wiki/Key:email)* ([email](../SpecialInputElements.md#email)) |
| [website](#website) | What is the website of ?<br/>_<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>_<br/>1 options | contact | *[website](https://wiki.osm.org/wiki/Key:website)* ([url](../SpecialInputElements.md#url)) | | [website](#website) <br/> _(Original in [questions](./BuiltinQuestions.md#website))_ | What is the website of ?<br/>_<a href='{website}' rel='nofollow noopener noreferrer' target='_blank'>{website}</a>_<br/>1 options | contact | *[website](https://wiki.osm.org/wiki/Key:website)* ([url](../SpecialInputElements.md#url)) |
| [wheelchair-access](#wheelchair-access) | Is this place accessible with a wheelchair?<br/>4 options | | _Multiple choice only_ | | [wheelchair-access](#wheelchair-access) <br/> _(Original in [questions](./BuiltinQuestions.md#wheelchair-access))_ | Is this place accessible with a wheelchair?<br/>4 options | | _Multiple choice only_ |
| [dog-access](#dog-access) | Are dogs allowed in this business?<br/>5 options | | _Multiple choice only_ | | [dog-access](#dog-access) <br/> _(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?<br/>5 options | | _Multiple choice only_ |
| [description](#description) | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.<br/>_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [description](#description) <br/> _(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.<br/>_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) |
| [opening_hours](#opening_hours) | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>1 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | | [opening_hours](#opening_hours) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>1 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) |
| [opening_hours_24_7](#opening_hours_24_7) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>2 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | | [opening_hours_24_7](#opening_hours_24_7) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours_24_7))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>2 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) |
| [opening_hours_24_7_default](#opening_hours_24_7_default) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours_24_7))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>2 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | | [opening_hours_24_7_default](#opening_hours_24_7_default) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours_24_7_default))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>2 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) |
| [opening_hours_by_appointment](#opening_hours_by_appointment) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>3 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | | [opening_hours_by_appointment](#opening_hours_by_appointment) <br/> _(Original in [questions](./BuiltinQuestions.md#opening_hours_by_appointment))_ | What are the opening hours of ?<br/>_<h3>Opening hours</h3>{opening_hours_table(opening_hours)}_<br/>3 options | | *[opening_hours](https://wiki.osm.org/wiki/Key:opening_hours)* ([opening_hours](../SpecialInputElements.md#opening_hours)) |
| [service:electricity](#service:electricity) | Does this amenity have electrical outlets, available to customers when they are inside?<br/>4 options | | _Multiple choice only_ | | [service:electricity](#service:electricity) <br/> _(Original in [questions](./BuiltinQuestions.md#service:electricity))_ | Does this amenity have electrical outlets, available to customers when they are inside?<br/>4 options | | _Multiple choice only_ |
| [payment-options](#payment-options) | Which methods of payment are accepted here?<br/>3 options | | _Multiple choice only_ | | [payment-options](#payment-options) <br/> _(Original in [questions](./BuiltinQuestions.md#payment-options))_ | Which methods of payment are accepted here?<br/>3 options | | _Multiple choice only_ |
| [payment-options-split](#payment-options-split) <br/> _(Original in [questions](./BuiltinQuestions.md#payment-options))_ | Which methods of payment are accepted here?<br/>7 options | | _Multiple choice only_ | | [payment-options-split](#payment-options-split) <br/> _(Original in [questions](./BuiltinQuestions.md#payment-options-split))_ | Which methods of payment are accepted here?<br/>7 options | | _Multiple choice only_ |
| [payment-options-advanced](#payment-options-advanced) <br/> _(Original in [questions](./BuiltinQuestions.md#payment-options))_ | Which methods of payment are accepted here?<br/>5 options | | _Multiple choice only_ | | [payment-options-advanced](#payment-options-advanced) <br/> _(Original in [questions](./BuiltinQuestions.md#payment-options-advanced))_ | Which methods of payment are accepted here?<br/>5 options | | _Multiple choice only_ |
| [denominations-coins](#denominations-coins) | What coins can you use to pay here?<br/>15 options | | _Multiple choice only_ | | [denominations-coins](#denominations-coins) <br/> _(Original in [questions](./BuiltinQuestions.md#denominations-coins))_ | What coins can you use to pay here?<br/>15 options | | _Multiple choice only_ |
| [denominations-notes](#denominations-notes) | what notes can you use to pay here?<br/>13 options | | _Multiple choice only_ | | [denominations-notes](#denominations-notes) <br/> _(Original in [questions](./BuiltinQuestions.md#denominations-notes))_ | what notes can you use to pay here?<br/>13 options | | _Multiple choice only_ |
| [all_tags](#all_tags) | _{all_tags()}_ | | _Multiple choice only_ | | [all_tags](#all_tags) <br/> _(Original in [questions](./BuiltinQuestions.md#all_tags))_ | _{all_tags()}_ | | _Multiple choice only_ |
| [multilevels](#multilevels) <br/> _(Original in [questions](./BuiltinQuestions.md#single_level))_ | What levels does this elevator go to?<br/>_This elevator goes to floors {level}_<br/>5 options | | *[level](https://wiki.osm.org/wiki/Key:level)* ([string](../SpecialInputElements.md#string)) | | [multilevels](#multilevels) <br/> _(Original in [questions](./BuiltinQuestions.md#multilevels))_ | What levels does this elevator go to?<br/>_This elevator goes to floors {level}_<br/>5 options | | *[level](https://wiki.osm.org/wiki/Key:level)* ([string](../SpecialInputElements.md#string)) |
| [repeated](#repeated) | _Multiple, identical objects can be found on floors {repeat_on}._ | level | _Multiple choice only_ | | [repeated](#repeated) <br/> _(Original in [questions](./BuiltinQuestions.md#repeated))_ | _Multiple, identical objects can be found on floors {repeat_on}._ | level | _Multiple choice only_ |
| [single_level](#single_level) | On what level is this feature located?<br/>_Located on the {level}th floor_<br/>5 options | level | *[level](https://wiki.osm.org/wiki/Key:level)* ([float](../SpecialInputElements.md#float)) | | [single_level](#single_level) <br/> _(Original in [questions](./BuiltinQuestions.md#single_level))_ | On what level is this feature located?<br/>_Located on the {level}th floor_<br/>5 options | level | *[level](https://wiki.osm.org/wiki/Key:level)* ([float](../SpecialInputElements.md#float)) |
| [smoking](#smoking) | Is smoking allowed at ?<br/>3 options | | _Multiple choice only_ | | [smoking](#smoking) <br/> _(Original in [questions](./BuiltinQuestions.md#smoking))_ | Is smoking allowed at ?<br/>3 options | | _Multiple choice only_ |
| [induction-loop](#induction-loop) | Does this place have an audio induction loop for people with reduced hearing?<br/>2 options | | _Multiple choice only_ | | [induction-loop](#induction-loop) <br/> _(Original in [questions](./BuiltinQuestions.md#induction-loop))_ | Does this place have an audio induction loop for people with reduced hearing?<br/>2 options | | _Multiple choice only_ |
| [internet](#internet) | Does this place offer internet access?<br/>6 options | internet-all | _Multiple choice only_ | | [internet](#internet) <br/> _(Original in [questions](./BuiltinQuestions.md#internet))_ | Does this place offer internet access?<br/>6 options | internet-all | _Multiple choice only_ |
| [internet-fee](#internet-fee) | Is there a fee for internet access?<br/>3 options | internet-all | _Multiple choice only_ | | [internet-fee](#internet-fee) <br/> _(Original in [questions](./BuiltinQuestions.md#internet-fee))_ | Is there a fee for internet access?<br/>3 options | internet-all | _Multiple choice only_ |
| [internet-ssid](#internet-ssid) | What is the network name for the wireless internet access?<br/>_The network name is <b>{internet_access:ssid}</b>_<br/>1 options | internet-all | *[internet_access:ssid](https://wiki.osm.org/wiki/Key:internet_access:ssid)* ([string](../SpecialInputElements.md#string)) | | [internet-ssid](#internet-ssid) <br/> _(Original in [questions](./BuiltinQuestions.md#internet-ssid))_ | What is the network name for the wireless internet access?<br/>_The network name is <b>{internet_access:ssid}</b>_<br/>1 options | internet-all | *[internet_access:ssid](https://wiki.osm.org/wiki/Key:internet_access:ssid)* ([string](../SpecialInputElements.md#string)) |
| [luminous_or_lit](#luminous_or_lit) | Is this object lit or does it emit light?<br/>4 options | | _Multiple choice only_ | | [luminous_or_lit](#luminous_or_lit) <br/> _(Original in [questions](./BuiltinQuestions.md#luminous_or_lit))_ | Is this object lit or does it emit light?<br/>4 options | | _Multiple choice only_ |
| [survey_date](#survey_date) | When was this object last surveyed?<br/>_This object was last surveyed on <b>{survey:date}</b>_<br/>1 options | | *[survey:date](https://wiki.osm.org/wiki/Key:survey:date)* ([date](../SpecialInputElements.md#date)) | | [survey_date](#survey_date) <br/> _(Original in [questions](./BuiltinQuestions.md#survey_date))_ | When was this object last surveyed?<br/>_This object was last surveyed on <b>{survey:date}</b>_<br/>1 options | | *[survey:date](https://wiki.osm.org/wiki/Key:survey:date)* ([date](../SpecialInputElements.md#date)) |
| [check_date](#check_date) | When was this object last checked?<br/>_This object was last checked on <b>{check_date}</b>_<br/>1 options | | *[check_date](https://wiki.osm.org/wiki/Key:check_date)* ([date](../SpecialInputElements.md#date)) | | [check_date](#check_date) <br/> _(Original in [questions](./BuiltinQuestions.md#check_date))_ | When was this object last checked?<br/>_This object was last checked on <b>{check_date}</b>_<br/>1 options | | *[check_date](https://wiki.osm.org/wiki/Key:check_date)* ([date](../SpecialInputElements.md#date)) |
| [sugar_free](#sugar_free) | Does this shop have a sugar free offering?<br/>4 options | diets | _Multiple choice only_ | | [sugar_free](#sugar_free) <br/> _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?<br/>4 options | diets | _Multiple choice only_ |
| [lactose_free](#lactose_free) | Does have a lactose-free offering?<br/>4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free) <br/> _(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?<br/>4 options | diets | _Multiple choice only_ |
| [gluten_free](#gluten_free) | Does this shop have a gluten free offering?<br/>4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free) <br/> _(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?<br/>4 options | diets | _Multiple choice only_ |
| [vegan](#vegan) | Does this place offer a vegan option?<br/>4 options | diets | _Multiple choice only_ | | [vegan](#vegan) <br/> _(Original in [questions](./BuiltinQuestions.md#vegan))_ | Does this place offer a vegan option?<br/>4 options | diets | _Multiple choice only_ |
| [lod](#lod) | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | | [lod](#lod) <br/> _(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ |
| [split_button](#split_button) | _{split_button()}_ | | _Multiple choice only_ | | [split_button](#split_button) <br/> _(Original in [questions](./BuiltinQuestions.md#split_button))_ | _{split_button()}_ | | _Multiple choice only_ |
| [seasonal](#seasonal) | Is available all around the year?<br/>3 options | | _Multiple choice only_ | | [seasonal](#seasonal) <br/> _(Original in [questions](./BuiltinQuestions.md#seasonal))_ | Is available all around the year?<br/>3 options | | _Multiple choice only_ |
| [shower](#shower) | Does this facility offer showers?<br/>4 options | | _Multiple choice only_ | | [shower](#shower) <br/> _(Original in [questions](./BuiltinQuestions.md#shower))_ | Does this facility offer showers?<br/>4 options | | _Multiple choice only_ |
| [preset_description](#preset_description) | _{preset_description()}_ | | _Multiple choice only_ | | [preset_description](#preset_description) <br/> _(Original in [questions](./BuiltinQuestions.md#preset_description))_ | _{preset_description()}_ | | _Multiple choice only_ |
| [brand](#brand) | Is part of a bigger brand?<br/>_Part of {brand}_<br/>1 options | | *[brand](https://wiki.osm.org/wiki/Key:brand)* ([string](../SpecialInputElements.md#string)) | | [brand](#brand) <br/> _(Original in [questions](./BuiltinQuestions.md#brand))_ | Is part of a bigger brand?<br/>_Part of {brand}_<br/>1 options | | *[brand](https://wiki.osm.org/wiki/Key:brand)* ([string](../SpecialInputElements.md#string)) |
| [indoor](#indoor) | Is this object located indoors?<br/>2 options | | _Multiple choice only_ | | [indoor](#indoor) <br/> _(Original in [questions](./BuiltinQuestions.md#indoor))_ | Is this object located indoors?<br/>2 options | | _Multiple choice only_ |
| [seating](#seating) | What kind of seating does have?<br/>2 options | | _Multiple choice only_ | | [seating](#seating) <br/> _(Original in [questions](./BuiltinQuestions.md#seating))_ | What kind of seating does have?<br/>2 options | | _Multiple choice only_ |
| [maxstay](#maxstay) | What is the maximum amount of time one is allowed to stay here?<br/>_One can stay at most <b>{canonical(maxstay)}</b>_<br/>1 options | | *[maxstay](https://wiki.osm.org/wiki/Key:maxstay)* ([pfloat](../SpecialInputElements.md#pfloat)) | | [maxstay](#maxstay) <br/> _(Original in [questions](./BuiltinQuestions.md#maxstay))_ | What is the maximum amount of time one is allowed to stay here?<br/>_One can stay at most <b>{canonical(maxstay)}</b>_<br/>1 options | | *[maxstay](https://wiki.osm.org/wiki/Key:maxstay)* ([pfloat](../SpecialInputElements.md#pfloat)) |
| [name](#name) | What is the name of this place?<br/>_<b>{name}</b>_ | | *[name](https://wiki.osm.org/wiki/Key:name)* ([string](../SpecialInputElements.md#string)) | | [name](#name) <br/> _(Original in [questions](./BuiltinQuestions.md#name))_ | What is the name of this place?<br/>_<b>{name}</b>_ | | *[name](https://wiki.osm.org/wiki/Key:name)* ([string](../SpecialInputElements.md#string)) |
| [has_toilets](#has_toilets) <br/> _(Original in [questions](./BuiltinQuestions.md#has_toilets))_ | Has toilets?<br/>3 options | | _Multiple choice only_ |
### questions ### questions
Show the questions block at this location Show the questions block at this location
@ -213,7 +215,7 @@ Shows a wikipedia box with the corresponding wikipedia article; the wikidata-ite
The question is `What is the corresponding Wikidata entity?` The question is `What is the corresponding Wikidata entity?`
*{wikipedia():max-height:25rem}* is shown if `wikidata` is set *{wikipedia():max-height:25rem}* is shown if `wikidata` is set
- *No Wikipedia page has been linked yet* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_
- *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_
### reviews ### reviews
@ -636,41 +638,13 @@ The question is `What is the maximum amount of time one is allowed to stay here?
The question is `What is the name of this place?` The question is `What is the name of this place?`
*<b>{name}</b>* is shown if `name` is set *<b>{name}</b>* is shown if `name` is set
## Filters ### has_toilets
| id | question | osmTags | The question is `Has {title()} toilets?`
-----|-----|----- |
| dogs.0 | *No preference towards dogs* (default) | |
| dogs.1 | Dogs allowed | dog=unleashed | dog=yes |
| dogs.2 | No dogs allowed | dog=no |
| id | question | osmTags | - *Has toilets* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:toilets' target='_blank'>toilets</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes' target='_blank'>yes</a>
-----|-----|----- | - *Has no toilets* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:toilets' target='_blank'>toilets</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno' target='_blank'>no</a>
| open_now.0 | Now open | _isOpen=yes | - *The toilets are marked separately on the map* is shown if with <a href='https://wiki.openstreetmap.org/wiki/Key:toilets' target='_blank'>toilets</a>=<a href='https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dseparate' target='_blank'>separate</a>
| id | question | osmTags |
-----|-----|----- |
| accepts_cash.0 | Accepts cash | payment:cash=yes |
| id | question | osmTags |
-----|-----|----- |
| accepts_cards.0 | Accepts payment cards | payment:cards=yes |
| id | question | osmTags |
-----|-----|----- |
| has_internet.0 | Offers internet | internet_access=wlan | internet_access=yes | internet_access=wired |
| id | question | osmTags |
-----|-----|----- |
| sugar_free.0 | Has a sugar-free offering | diet:sugar_free=yes | diet:sugar_free=only | diet:sugar_free=limited |
| id | question | osmTags |
-----|-----|----- |
| lactose_free.0 | Has a lactose free offering | diet:lactose_free=yes | diet:lactose_free=only | diet:lactose_free=limited |
| id | question | osmTags |
-----|-----|----- |
| gluten_free.0 | Has a gluten free offering | diet:gluten_free=yes | diet:gluten_free=only | diet:gluten_free=limited |

View file

@ -419,7 +419,7 @@ The default value is _false_
The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics'
This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L451) This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L452)
The default value is _map_ The default value is _map_

View file

@ -11,7 +11,7 @@ import themeOverview from "../src/assets/generated/theme_overview.json"
import ThemeConfig from "../src/Models/ThemeConfig/ThemeConfig" import ThemeConfig from "../src/Models/ThemeConfig/ThemeConfig"
import bookcases from "../public/assets/generated/themes/bookcases.json" import bookcases from "../public/assets/generated/themes/bookcases.json"
import fakedom from "fake-dom" import fakedom from "fake-dom"
import unit from "../src/assets/generated/layers/unit.json" import unit from "../public/assets/generated/layers/unit.json"
import Hotkeys from "../src/UI/Base/Hotkeys" import Hotkeys from "../src/UI/Base/Hotkeys"
import { QueryParameters } from "../src/Logic/Web/QueryParameters" import { QueryParameters } from "../src/Logic/Web/QueryParameters"
import Constants from "../src/Models/Constants" import Constants from "../src/Models/Constants"
@ -20,7 +20,7 @@ import DependencyCalculator from "../src/Models/ThemeConfig/DependencyCalculator
import { AllSharedLayers } from "../src/Customizations/AllSharedLayers" import { AllSharedLayers } from "../src/Customizations/AllSharedLayers"
import ThemeViewState from "../src/Models/ThemeViewState" import ThemeViewState from "../src/Models/ThemeViewState"
import Validators from "../src/UI/InputElement/Validators" import Validators from "../src/UI/InputElement/Validators"
import questions from "../src/assets/generated/layers/questions.json" import questions from "../public/assets/generated/layers/questions.json"
import { LayerConfigJson } from "../src/Models/ThemeConfig/Json/LayerConfigJson" import { LayerConfigJson } from "../src/Models/ThemeConfig/Json/LayerConfigJson"
import { Utils } from "../src/Utils" import { Utils } from "../src/Utils"
import { TagUtils } from "../src/Logic/Tags/TagUtils" import { TagUtils } from "../src/Logic/Tags/TagUtils"
@ -32,6 +32,7 @@ import { parse as parse_html } from "node-html-parser"
import { AvailableRasterLayers } from "../src/Models/RasterLayers" import { AvailableRasterLayers } from "../src/Models/RasterLayers"
import { ImmutableStore } from "../src/Logic/UIEventSource" import { ImmutableStore } from "../src/Logic/UIEventSource"
import * as unitUsage from "../Docs/Schemas/UnitConfigJson.schema.json" import * as unitUsage from "../Docs/Schemas/UnitConfigJson.schema.json"
import { ThemeConfigJson } from "../src/Models/ThemeConfig/Json/ThemeConfigJson"
/** /**
* Converts a markdown-file into a .json file, which a walkthrough/slideshow element can use * Converts a markdown-file into a .json file, which a walkthrough/slideshow element can use
@ -261,14 +262,17 @@ export class GenerateDocs extends Script {
} }
private generateHotkeyDocs() { private generateHotkeyDocs() {
new ThemeViewState(new ThemeConfig(<any>bookcases), new ImmutableStore(new Set())) new ThemeViewState(
new ThemeConfig(<ThemeConfigJson>(<unknown>bookcases)),
new ImmutableStore(new Set())
)
this.WriteMarkdownFile("./Docs/Hotkeys.md", Hotkeys.generateDocumentation(), [ this.WriteMarkdownFile("./Docs/Hotkeys.md", Hotkeys.generateDocumentation(), [
"src/UI/Base/Hotkeys.ts", "src/UI/Base/Hotkeys.ts",
]) ])
} }
private generateBuiltinUnits() { private generateBuiltinUnits() {
const layer = new LayerConfig(<LayerConfigJson>unit, "units", true) const layer = new LayerConfig(<LayerConfigJson>(<unknown>unit), "units", true)
const els: string[] = [ const els: string[] = [
"# Units", "# Units",
"## How to use", "## How to use",
@ -462,7 +466,11 @@ export class GenerateDocs extends Script {
} }
private generateBuiltinQuestions() { private generateBuiltinQuestions() {
const qLayer = new LayerConfig(<LayerConfigJson>questions, "questions.json", true) const qLayer = new LayerConfig(
<LayerConfigJson>(<unknown>questions),
"questions.json",
true
)
this.WriteMarkdownFile( this.WriteMarkdownFile(
"./Docs/BuiltinQuestions.md", "./Docs/BuiltinQuestions.md",
qLayer.generateDocumentation([], new Map(), []), qLayer.generateDocumentation([], new Map(), []),

View file

@ -14,7 +14,6 @@ import {
} from "geojson" } from "geojson"
import { Tiles } from "../Models/TileRange" import { Tiles } from "../Models/TileRange"
import { Utils } from "../Utils" import { Utils } from "../Utils"
;("use strict") ;("use strict")
export class GeoOperations { export class GeoOperations {

View file

@ -18,7 +18,7 @@ import { Store, UIEventSource } from "../../Logic/UIEventSource"
import NearbyFeatureSource from "../../Logic/FeatureSource/Sources/NearbyFeatureSource" import NearbyFeatureSource from "../../Logic/FeatureSource/Sources/NearbyFeatureSource"
import { import {
SummaryTileSource, SummaryTileSource,
SummaryTileSourceRewriter SummaryTileSourceRewriter,
} from "../../Logic/FeatureSource/TiledFeatureSource/SummaryTileSource" } from "../../Logic/FeatureSource/TiledFeatureSource/SummaryTileSource"
import { ShowDataLayerOptions } from "../../UI/Map/ShowDataLayerOptions" import { ShowDataLayerOptions } from "../../UI/Map/ShowDataLayerOptions"
@ -121,7 +121,7 @@ export class WithSpecialLayers extends WithChangesState {
new ShowDataLayer(this.map, { new ShowDataLayer(this.map, {
features: source, features: source,
layer: new LayerConfig(<LayerConfigJson><unknown>summaryLayer, "summaryLayer"), layer: new LayerConfig(<LayerConfigJson>(<unknown>summaryLayer), "summaryLayer"),
// doShowLayer: this.mapProperties.zoom.map((z) => z < maxzoom), // doShowLayer: this.mapProperties.zoom.map((z) => z < maxzoom),
selectedElement: this.selectedElement, selectedElement: this.selectedElement,
}) })
@ -147,7 +147,7 @@ export class WithSpecialLayers extends WithChangesState {
private drawLastClick() { private drawLastClick() {
const source = this.lastClickObject const source = this.lastClickObject
const lastClickLayerConfig = new LayerConfig( const lastClickLayerConfig = new LayerConfig(
<LayerConfigJson><unknown>last_click_layerconfig, <LayerConfigJson>(<unknown>last_click_layerconfig),
"last_click" "last_click"
) )
const lastClickFiltered = const lastClickFiltered =
@ -185,7 +185,9 @@ export class WithSpecialLayers extends WithChangesState {
const src = new StaticFeatureSource( const src = new StaticFeatureSource(
this.selectedElement.map((f) => (f === undefined ? [] : [f])) this.selectedElement.map((f) => (f === undefined ? [] : [f]))
) )
ShowDataLayer.showMultipleLayers(this.map, src, this.theme.layers, { prefix: "selected_element_" }) ShowDataLayer.showMultipleLayers(this.map, src, this.theme.layers, {
prefix: "selected_element_",
})
} }
private drawSpecialLayers() { private drawSpecialLayers() {

View file

@ -551,7 +551,7 @@ export default class ShowDataLayer {
options: ShowDataLayerOptions & { options: ShowDataLayerOptions & {
layer: LayerConfig layer: LayerConfig
drawMarkers?: true | boolean drawMarkers?: true | boolean
drawLines?: true | boolean, drawLines?: true | boolean
} }
) { ) {
this._options = options this._options = options
@ -627,7 +627,15 @@ export default class ShowDataLayer {
} }
private initDrawFeatures(map: MlMap) { private initDrawFeatures(map: MlMap) {
const { features, doShowLayer, fetchStore, selectedElement, layer, drawLines, drawMarkers } = this._options const {
features,
doShowLayer,
fetchStore,
selectedElement,
layer,
drawLines,
drawMarkers,
} = this._options
let onClick = this._options.onClick let onClick = this._options.onClick
if (!onClick && selectedElement && layer.title !== undefined) { if (!onClick && selectedElement && layer.title !== undefined) {
onClick = (feature: Feature) => { onClick = (feature: Feature) => {
@ -640,7 +648,11 @@ export default class ShowDataLayer {
const l = new LineRenderingLayer( const l = new LineRenderingLayer(
map, map,
features, features,
"mapcomplete_" + (this._options.prefix ?? "") + layer.id + "_linerendering_" + i, "mapcomplete_" +
(this._options.prefix ?? "") +
layer.id +
"_linerendering_" +
i,
lineRenderingConfig, lineRenderingConfig,
doShowLayer, doShowLayer,
fetchStore, fetchStore,

View file

@ -14,7 +14,7 @@
</script> </script>
{#if tags?.length > 0} {#if tags?.length > 0}
<div class="flex gap-x-4 flex-wrap"> <div class="flex flex-wrap gap-x-4">
{#each tags as tag} {#each tags as tag}
<div class="break-words" style="word-break: break-word"> <div class="break-words" style="word-break: break-word">
{#if tag["value"] === ""} {#if tag["value"] === ""}

View file

@ -84,8 +84,11 @@
</DotMenu> </DotMenu>
</div> </div>
{#each $recentlySeen as entry (entry)} {#each $recentlySeen as entry (entry)}
<GeocodeResultSvelte {entry} {state} <GeocodeResultSvelte
on:select={(select) => state.searchState.applyGeocodeResult(select.detail)} /> {entry}
{state}
on:select={(select) => state.searchState.applyGeocodeResult(select.detail)}
/>
{/each} {/each}
</SidebarUnit> </SidebarUnit>
{/if} {/if}

View file

@ -1,7 +1,12 @@
import { ConfigMeta } from "./configMeta" import { ConfigMeta } from "./configMeta"
import { Store, UIEventSource } from "../../Logic/UIEventSource" import { Store, UIEventSource } from "../../Logic/UIEventSource"
import { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson" import { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson"
import { Conversion, ConversionMessage, DesugaringContext, Pipe } from "../../Models/ThemeConfig/Conversion/Conversion" import {
Conversion,
ConversionMessage,
DesugaringContext,
Pipe,
} from "../../Models/ThemeConfig/Conversion/Conversion"
import { PrepareLayer } from "../../Models/ThemeConfig/Conversion/PrepareLayer" import { PrepareLayer } from "../../Models/ThemeConfig/Conversion/PrepareLayer"
import { PrevalidateTheme, ValidateLayer } from "../../Models/ThemeConfig/Conversion/Validation" import { PrevalidateTheme, ValidateLayer } from "../../Models/ThemeConfig/Conversion/Validation"
import { AllSharedLayers } from "../../Customizations/AllSharedLayers" import { AllSharedLayers } from "../../Customizations/AllSharedLayers"

View file

@ -1,7 +1,7 @@
{ {
"contributors": [ "contributors": [
{ {
"commits": 9687, "commits": 9694,
"contributor": "Pieter Vander Vennet" "contributor": "Pieter Vander Vennet"
}, },
{ {