diff --git a/UI/Studio/EditLayer.svelte b/UI/Studio/EditLayer.svelte
index 305698cd71..45de9a90cd 100644
--- a/UI/Studio/EditLayer.svelte
+++ b/UI/Studio/EditLayer.svelte
@@ -51,7 +51,7 @@
Information panel (questions and answers)
-
+
diff --git a/UI/Studio/SchemaBasedField.svelte b/UI/Studio/SchemaBasedField.svelte
index add9af8c3c..9ff6c30d92 100644
--- a/UI/Studio/SchemaBasedField.svelte
+++ b/UI/Studio/SchemaBasedField.svelte
@@ -41,7 +41,7 @@
}]
}
- if (schema.type === "boolean" || (Array.isArray(schema.type) && schema.type.some(t => t["type"] === "boolean") >= 0)) {
+ if (schema.type === "boolean" || (Array.isArray(schema.type) && schema.type.some(t => t["type"] === "boolean"))) {
configJson.mappings = configJson.mappings ?? []
configJson.mappings.push(
{
diff --git a/assets/layerconfigmeta.json b/assets/layerconfigmeta.json
index 38bc54aaa5..d25f3f0f24 100644
--- a/assets/layerconfigmeta.json
+++ b/assets/layerconfigmeta.json
@@ -387,11 +387,173 @@
],
"required": false,
"hints": {
- "group": "infobox"
+ "types": "Use a dynamic tagRendering ; use a fixed value",
+ "typesdefault": "0",
+ "group": "title",
+ "question": "What title should be shown on the infobox?"
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -408,26 +570,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "title",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "title",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"title",
@@ -893,26 +1035,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "titleIcons",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "titleIcons",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"titleIcons",
@@ -1376,7 +1498,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -1394,28 +1675,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "icon",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "icon",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -1891,7 +2150,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -1910,30 +2328,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "iconBadges",
- "then",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "iconBadges",
- "then",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -2379,7 +2773,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -2397,28 +2950,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "iconSize",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "iconSize",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -2849,7 +3380,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -2867,28 +3557,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "anchor",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "anchor",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -3317,7 +3985,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -3335,28 +4162,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "rotation",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "rotation",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -3785,7 +4590,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -3803,28 +4767,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "label",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "label",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -4253,7 +5195,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -4271,28 +5372,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "css",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "css",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -4721,7 +5800,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -4739,28 +5977,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "cssClasses",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "cssClasses",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -5189,7 +6405,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -5207,28 +6582,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "labelCss",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "labelCss",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -5657,7 +7010,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -5675,28 +7187,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "labelCssClasses",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "labelCssClasses",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -6125,7 +7615,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"enum": [
@@ -6147,28 +7796,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "pitchAlignment",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "pitchAlignment",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -6597,7 +8224,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"enum": [
@@ -6619,28 +8405,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "rotationAlignment",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "rotationAlignment",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -7078,7 +8842,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -7096,28 +9019,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "color",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "color",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -7546,7 +9447,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": [
@@ -7567,28 +9627,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "width",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "width",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -8017,7 +10055,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -8035,28 +10232,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "dashArray",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "dashArray",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -8485,7 +10660,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -8503,28 +10837,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "lineCap",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "lineCap",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -8953,7 +11265,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -8971,28 +11442,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "fillColor",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "fillColor",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -9421,7 +11870,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "number"
@@ -9439,28 +12047,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "offset",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "offset",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -9922,7 +12508,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -9941,30 +12686,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "icon",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "icon",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -10460,7 +13181,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -10480,32 +13360,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "iconBadges",
- "then",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "iconBadges",
- "then",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -10969,7 +13823,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -10988,30 +14001,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "iconSize",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "iconSize",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -11460,7 +14449,166 @@
},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -11479,30 +14627,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "anchor",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "anchor",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -11949,7 +15073,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -11968,30 +15251,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "rotation",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "rotation",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -12438,7 +15697,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -12457,30 +15875,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "label",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "label",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -12927,7 +16321,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -12946,30 +16499,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "css",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "css",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -13416,7 +16945,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -13435,30 +17123,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "cssClasses",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "cssClasses",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -13905,7 +17569,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -13924,30 +17747,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "labelCss",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "labelCss",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -14394,7 +18193,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -14413,30 +18371,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "labelCssClasses",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "labelCssClasses",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -14883,7 +18817,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"enum": [
@@ -14906,30 +18999,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "pitchAlignment",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "pitchAlignment",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -15376,7 +19445,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"enum": [
@@ -15399,30 +19627,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "rotationAlignment",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "rotationAlignment",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -15879,7 +20083,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -15898,30 +20261,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "color",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "color",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -16368,7 +20707,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": [
@@ -16390,30 +20888,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "width",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "width",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -16860,7 +21334,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -16879,30 +21512,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "dashArray",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "dashArray",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -17349,7 +21958,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -17368,30 +22136,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "lineCap",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "lineCap",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -17838,7 +22582,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -17857,30 +22760,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "fillColor",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "fillColor",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -18327,7 +23206,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "number"
@@ -18346,30 +23384,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "offset",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "offset",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -18826,7 +23840,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": "string"
@@ -18845,30 +24018,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "color",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "color",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -19315,7 +24464,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)",
+ "type": "string"
+ }
+ },
+ "required": [
+ "path"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "if",
+ "then"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false
},
{
"type": [
@@ -19337,30 +24645,6 @@
"type": "object",
"description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one"
},
- {
- "path": [
- "mapRendering",
- "renderings",
- "width",
- "id"
- ],
- "required": false,
- "hints": {},
- "type": "string",
- "description": "The id of the tagrendering, should be an unique string.\nUsed to keep the translations in sync. Only used in the tagRenderings-array of a layerConfig, not requered otherwise.\n\nUse 'questions' to trigger the question box of this group (if a group is defined)"
- },
- {
- "path": [
- "mapRendering",
- "renderings",
- "width",
- "labels"
- ],
- "required": false,
- "hints": {},
- "type": "array",
- "description": "A list of labels. These are strings that are used for various purposes, e.g. to filter them away"
- },
{
"path": [
"mapRendering",
@@ -19807,7 +25091,166 @@
"hints": {},
"type": [
{
- "$ref": "#/definitions/TagRenderingConfigJson"
+ "description": "A TagRenderingConfigJson is a single piece of code which converts one ore more tags into a HTML-snippet.\nFor an _editable_ tagRendering, use 'QuestionableTagRenderingConfigJson' instead, which extends this one",
+ "type": "object",
+ "properties": {
+ "classes": {
+ "description": "A list of css-classes to apply to the entire tagRendering if the answer is known (not applied on the question).\nThis is only for advanced users",
+ "anyOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "description": {
+ "description": "A human-readable text explaining what this tagRendering does.\nMostly used for the shared tagrenderings",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "render": {
+ "description": "Renders this value. Note that \"{key}\"-parts are substituted by the corresponding values of the element.\nIf neither 'textFieldQuestion' nor 'mappings' are defined, this text is simply shown as default value.\n\nNote that this is a HTML-interpreted value, so you can add links as e.g. '{website}' or include images such as `This is of type A
`\ntype: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "special": {
+ "allOf": [
+ {
+ "$ref": "#/definitions/Record>"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "special"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "condition": {
+ "description": "Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.\n\nThis is useful to ask a follow-up question.\nFor example, within toilets, asking _where_ the diaper changing table is is only useful _if_ there is one.\nThis can be done by adding `\"condition\": \"changing_table=yes\"`\n\nA full example would be:\n```json\n {\n \"question\": \"Where is the changing table located?\",\n \"render\": \"The changing table is located at {changing_table:location}\",\n \"condition\": \"changing_table=yes\",\n \"freeform\": {\n \"key\": \"changing_table:location\",\n \"inline\": true\n },\n \"mappings\": [\n {\n \"then\": \"The changing table is in the toilet for women.\",\n \"if\": \"changing_table:location=female_toilet\"\n },\n {\n \"then\": \"The changing table is in the toilet for men.\",\n \"if\": \"changing_table:location=male_toilet\"\n },\n {\n \"if\": \"changing_table:location=wheelchair_toilet\",\n \"then\": \"The changing table is in the toilet for wheelchair users.\",\n },\n {\n \"if\": \"changing_table:location=dedicated_room\",\n \"then\": \"The changing table is in a dedicated room. \",\n }\n ],\n \"id\": \"toilet-changing_table:location\"\n },\n```",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "metacondition": {
+ "description": "If set, this tag will be evaluated agains the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options.\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/{and:TagConfigJson[];}"
+ },
+ {
+ "$ref": "#/definitions/{or:TagConfigJson[];}"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "freeform": {
+ "description": "Allow freeform text input from the user",
+ "type": "object",
+ "properties": {
+ "key": {
+ "description": "If this key is present, then 'render' is used to display the value.\nIf this is undefined, the rendering is _always_ shown",
+ "type": "string"
+ }
+ },
+ "required": [
+ "key"
+ ]
+ },
+ "mappings": {
+ "description": "Allows fixed-tag inputs, shown either as radiobuttons or as checkboxes",
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "if": {
+ "$ref": "#/definitions/TagConfigJson",
+ "description": "If this condition is met, then the text under `then` will be shown.\nIf no value matches, and the user selects this mapping as an option, then these tags will be uploaded to OSM.\n\nFor example: {'if': 'diet:vegetarion=yes', 'then':'A vegetarian option is offered here'}\n\nThis can be an substituting-tag as well, e.g. {'if': 'addr:street:={_calculated_nearby_streetname}', 'then': '{_calculated_nearby_streetname}'}"
+ },
+ "then": {
+ "description": "If the condition `if` is met, the text `then` will be rendered.\nIf not known yet, the user will be presented with `then` as an option\nType: rendered",
+ "anyOf": [
+ {
+ "$ref": "#/definitions/Record"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "icon": {
+ "description": "An icon supporting this mapping; typically shown pretty small\nType: icon",
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "path": {
+ "description": "The path to the icon\nType: icon",
+ "type": "string"
+ },
+ "class": {
+ "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-