Available types for text fields 
=================================



## Table of contents

1. [Available types for text fields](#available-types-for-text-fields)
    + [string](#string)
    + [text](#text)
    + [date](#date)
    + [nat](#nat)
    + [int](#int)
    + [decimal](#decimal)
    + [direction](#direction)
    + [wikidata](#wikidata)
    + [pnat](#pnat)
    + [float](#float)
    + [pfloat](#pfloat)
    + [email](#email)
    + [url](#url)
    + [phone](#phone)
    + [opening_hours](#opening_hours)
    + [color](#color)



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



### date 



A date with date picker



### nat 



A positive number or zero



### int 



A number



### decimal 



A geographical length 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
removePostfixes | remove these snippets of text from the end of the passed string to search

 

### 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": [
                "street",
                "boulevard",
                "path",
                "square",
                "plaza",
            ]
        }
    ]
}
```



### 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](https://github.com/pietervdvn/MapComplete/blob/develop/UI/Input/ValidatedTextField.ts)