mapcomplete/Docs/SpecialInputElements.md

4.9 KiB

Available types for text fields

Table of contents

  1. Available types for text fields

The listed types here trigger a special input element. Use them in tagrendering.freeform.type of your tagrendering to activate them

string

A simple piece of text

text

A longer piece of text. Uses an textArea instead of a textField

date

A date with date picker

nat

A positive number or zero

int

A number

distance

A geographical distance in meters (rounded at two points). Will give an extra minimap with a measurement tool. Arguments: [ zoomlevel, preferredBackgroundMapType (comma separated) ], e.g. `["21", "map,photo"]

direction

A geographical direction, in degrees. 0° is north, 90° is east, ... Will return a value between 0 (incl) and 360 (excl)

wikidata

A wikidata identifier, e.g. Q42.

Helper arguments

name doc
key the value of this tag will initialize search (default: name)
options A JSON-object of type { removePrefixes: string[], removePostfixes: string[] }.
subarg | doc
removePrefixes remove these snippets of text from the start of the passed string to search. This is either a list OR a hash of languages to a list. The individual strings are interpreted as case ignoring regexes
removePostfixes remove these snippets of text from the end of the passed string to search. This is either a list OR a hash of languages to a list. The individual strings are interpreted as case ignoring regexes.
instanceOf A list of Q-identifier which indicates that the search results must be an entity of this type, e.g. Q5 for humans
notInstanceof A list of Q-identifiers which indicates that the search results must not be an entity of this type, e.g. Q79007 to filter away all streets from the search results

Example usage

The following is the 'freeform'-part of a layer config which will trigger a search for the wikidata item corresponding with the name of the selected feature. It will also remove '-street', '-square', ... if found at the end of the name

"freeform": {
    "key": "name:etymology:wikidata",
    "type": "wikidata",
    "helperArgs": [
        "name",
        {
            "removePostfixes": {"en": [
                "street",
                "boulevard",
                "path",
                "square",
                "plaza",
            ],
             "nl": ["straat","plein","pad","weg",laan"],
             "fr":["route (de|de la|de l'| de le)"]
             },

            "#": "Remove streets and parks from the search results:"
             "notInstanceOf": ["Q79007","Q22698"]
        }

    ]
}

Another example is to search for species and trees:

 "freeform": {
        "key": "species:wikidata",
        "type": "wikidata",
        "helperArgs": [
          "species",
          {
          "instanceOf": [10884, 16521]
        }]
      }

pnat

A strict positive number

float

A decimal

pfloat

A positive decimal (inclusive zero)

email

An email adress

url

The validatedTextField will format URLs to always be valid and have a https://-header (even though the 'https'-part will be hidden from the user

phone

A phone number

opening_hours

Has extra elements to easily input when a POI is opened.

Helper arguments

name doc
options A JSON-object of type { prefix: string, postfix: string }.
subarg | doc
prefix Piece of text that will always be added to the front of the generated opening hours. If the OSM-data does not start with this, it will fail to parse.
postfix Piece of text that will always be added to the end of the generated opening hours

Example usage

To add a conditional (based on time) access restriction:


"freeform": {
    "key": "access:conditional",
    "type": "opening_hours",
    "helperArgs": [
        {
          "prefix":"no @ (",
          "postfix":")"
        }
    ]
}

Don't forget to pass the prefix and postfix in the rendering as well: {opening_hours_table(opening_hours,yes @ &LPARENS, &RPARENS )

color

Shows a color picker

This document is autogenerated from UI/Input/ValidatedTextField.ts