diff --git a/.github/actions/setup-and-validate/action.yml b/.github/actions/setup-and-validate/action.yml
index baa0af7a2..651ff087b 100644
--- a/.github/actions/setup-and-validate/action.yml
+++ b/.github/actions/setup-and-validate/action.yml
@@ -6,7 +6,7 @@ runs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: "16"
+ node-version: "20"
cache: "npm"
cache-dependency-path: package-lock.json
diff --git a/.github/workflows/deploy_dev.yml b/.github/workflows/deploy_dev.yml
index 3893cf3ed..d31d8bb89 100644
--- a/.github/workflows/deploy_dev.yml
+++ b/.github/workflows/deploy_dev.yml
@@ -13,7 +13,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: "16"
+ node-version: "20"
cache: "npm"
cache-dependency-path: package-lock.json
diff --git a/.github/workflows/deploy_pietervdvn.yml b/.github/workflows/deploy_pietervdvn.yml
index 817f25606..3a7295b8d 100644
--- a/.github/workflows/deploy_pietervdvn.yml
+++ b/.github/workflows/deploy_pietervdvn.yml
@@ -19,7 +19,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: "16"
+ node-version: "20"
cache: "npm"
cache-dependency-path: package-lock.json
diff --git a/.github/workflows/deploy_prod.yml b/.github/workflows/deploy_prod.yml
index 55e513bc9..1334f196c 100644
--- a/.github/workflows/deploy_prod.yml
+++ b/.github/workflows/deploy_prod.yml
@@ -13,7 +13,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: "16"
+ node-version: "20"
cache: "npm"
cache-dependency-path: package-lock.json
diff --git a/.github/workflows/validate-pr.yml b/.github/workflows/validate-pr.yml
index ebc4d9af8..0edfa8d8f 100644
--- a/.github/workflows/validate-pr.yml
+++ b/.github/workflows/validate-pr.yml
@@ -11,7 +11,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
- node-version: "16"
+ node-version: "20"
cache: "npm"
cache-dependency-path: package-lock.json
diff --git a/.nvmrc b/.nvmrc
index 06e751596..87834047a 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-16.9.1
+20.12.2
diff --git a/Docs/Schemas/LayerConfigJson.schema.json b/Docs/Schemas/LayerConfigJson.schema.json
index 1472d195b..37158fbcd 100644
--- a/Docs/Schemas/LayerConfigJson.schema.json
+++ b/Docs/Schemas/LayerConfigJson.schema.json
@@ -204,7 +204,7 @@
"type": "boolean"
},
"presets": {
- "description": "
\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -379,7 +379,7 @@
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -387,7 +387,7 @@
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
@@ -703,7 +703,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -717,7 +717,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1238,7 +1238,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1386,7 +1386,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1400,7 +1400,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1464,7 +1464,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1612,7 +1612,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1626,7 +1626,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1950,7 +1950,7 @@
],
"additionalProperties": false
},
- "Record": {
+ "Record": {
"type": "object",
"additionalProperties": false
}
diff --git a/Docs/Schemas/LayerConfigJsonJSC.ts b/Docs/Schemas/LayerConfigJsonJSC.ts
index 081005bd0..721c6a983 100644
--- a/Docs/Schemas/LayerConfigJsonJSC.ts
+++ b/Docs/Schemas/LayerConfigJsonJSC.ts
@@ -204,7 +204,7 @@ export default {
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -379,7 +379,7 @@ export default {
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -387,7 +387,7 @@ export default {
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
@@ -696,7 +696,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -710,7 +710,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1225,7 +1225,7 @@ export default {
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1373,7 +1373,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1387,7 +1387,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1450,7 +1450,7 @@ export default {
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1598,7 +1598,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1612,7 +1612,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1930,7 +1930,7 @@ export default {
"applicableUnits"
]
},
- "Record": {
+ "Record": {
"type": "object"
}
},
diff --git a/Docs/Schemas/LayoutConfigJson.schema.json b/Docs/Schemas/LayoutConfigJson.schema.json
index 82f4f8981..a2e1f9dcb 100644
--- a/Docs/Schemas/LayoutConfigJson.schema.json
+++ b/Docs/Schemas/LayoutConfigJson.schema.json
@@ -593,7 +593,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -607,7 +607,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1128,7 +1128,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1276,7 +1276,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1290,7 +1290,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1354,7 +1354,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1502,7 +1502,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1516,7 +1516,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1840,7 +1840,7 @@
],
"additionalProperties": false
},
- "Record": {
+ "Record": {
"type": "object",
"additionalProperties": false
},
@@ -2095,7 +2095,7 @@
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -2270,7 +2270,7 @@
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -2278,7 +2278,7 @@
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
@@ -2514,7 +2514,7 @@
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -2689,7 +2689,7 @@
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -2697,7 +2697,7 @@
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
diff --git a/Docs/Schemas/LayoutConfigJsonJSC.ts b/Docs/Schemas/LayoutConfigJsonJSC.ts
index 8ac0e9f21..5793ddc63 100644
--- a/Docs/Schemas/LayoutConfigJsonJSC.ts
+++ b/Docs/Schemas/LayoutConfigJsonJSC.ts
@@ -586,7 +586,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -600,7 +600,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1115,7 +1115,7 @@ export default {
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1263,7 +1263,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1277,7 +1277,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1340,7 +1340,7 @@ export default {
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1488,7 +1488,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1502,7 +1502,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1820,7 +1820,7 @@ export default {
"applicableUnits"
]
},
- "Record": {
+ "Record": {
"type": "object"
},
"default": {
@@ -2073,7 +2073,7 @@ export default {
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -2248,7 +2248,7 @@ export default {
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -2256,7 +2256,7 @@ export default {
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
@@ -2491,7 +2491,7 @@ export default {
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -2666,7 +2666,7 @@ export default {
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -2674,7 +2674,7 @@ export default {
"$ref": "#/definitions/default_2"
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
diff --git a/Docs/Schemas/LineRenderingConfigJson.schema.json b/Docs/Schemas/LineRenderingConfigJson.schema.json
index 3232cebc8..338fed79b 100644
--- a/Docs/Schemas/LineRenderingConfigJson.schema.json
+++ b/Docs/Schemas/LineRenderingConfigJson.schema.json
@@ -379,7 +379,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -393,7 +393,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/LineRenderingConfigJsonJSC.ts b/Docs/Schemas/LineRenderingConfigJsonJSC.ts
index a2165c728..374781e55 100644
--- a/Docs/Schemas/LineRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/LineRenderingConfigJsonJSC.ts
@@ -372,7 +372,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -386,7 +386,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/MappingConfigJson.schema.json b/Docs/Schemas/MappingConfigJson.schema.json
index 931a2ed1b..1ef79ebef 100644
--- a/Docs/Schemas/MappingConfigJson.schema.json
+++ b/Docs/Schemas/MappingConfigJson.schema.json
@@ -406,7 +406,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -420,7 +420,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/MappingConfigJsonJSC.ts b/Docs/Schemas/MappingConfigJsonJSC.ts
index 9c0562bf5..29d686707 100644
--- a/Docs/Schemas/MappingConfigJsonJSC.ts
+++ b/Docs/Schemas/MappingConfigJsonJSC.ts
@@ -399,7 +399,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -413,7 +413,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/PointRenderingConfigJson.schema.json b/Docs/Schemas/PointRenderingConfigJson.schema.json
index 99cef2514..d2b2ae4f3 100644
--- a/Docs/Schemas/PointRenderingConfigJson.schema.json
+++ b/Docs/Schemas/PointRenderingConfigJson.schema.json
@@ -453,7 +453,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -467,7 +467,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/PointRenderingConfigJsonJSC.ts b/Docs/Schemas/PointRenderingConfigJsonJSC.ts
index ed2cb9819..89d718e49 100644
--- a/Docs/Schemas/PointRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/PointRenderingConfigJsonJSC.ts
@@ -446,7 +446,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -460,7 +460,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/QuestionableTagRenderingConfigJson.schema.json b/Docs/Schemas/QuestionableTagRenderingConfigJson.schema.json
index a138ec607..002a059d4 100644
--- a/Docs/Schemas/QuestionableTagRenderingConfigJson.schema.json
+++ b/Docs/Schemas/QuestionableTagRenderingConfigJson.schema.json
@@ -29,7 +29,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -177,7 +177,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -191,7 +191,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -510,7 +510,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -524,7 +524,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts b/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts
index f49ce9df1..d50adf1fd 100644
--- a/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/QuestionableTagRenderingConfigJsonJSC.ts
@@ -29,7 +29,7 @@ export default {
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -177,7 +177,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -191,7 +191,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -503,7 +503,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -517,7 +517,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/RewritableConfigJson.schema.json b/Docs/Schemas/RewritableConfigJson.schema.json
index c0f490c2d..be0b39d55 100644
--- a/Docs/Schemas/RewritableConfigJson.schema.json
+++ b/Docs/Schemas/RewritableConfigJson.schema.json
@@ -332,7 +332,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -346,7 +346,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/RewritableConfigJsonJSC.ts b/Docs/Schemas/RewritableConfigJsonJSC.ts
index 9329f43ca..9b8fb6924 100644
--- a/Docs/Schemas/RewritableConfigJsonJSC.ts
+++ b/Docs/Schemas/RewritableConfigJsonJSC.ts
@@ -325,7 +325,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -339,7 +339,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/TagRenderingConfigJson.schema.json b/Docs/Schemas/TagRenderingConfigJson.schema.json
index 6e62f8445..d5441f325 100644
--- a/Docs/Schemas/TagRenderingConfigJson.schema.json
+++ b/Docs/Schemas/TagRenderingConfigJson.schema.json
@@ -64,7 +64,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -78,7 +78,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/Schemas/TagRenderingConfigJsonJSC.ts b/Docs/Schemas/TagRenderingConfigJsonJSC.ts
index df1748757..91844a6dc 100644
--- a/Docs/Schemas/TagRenderingConfigJsonJSC.ts
+++ b/Docs/Schemas/TagRenderingConfigJsonJSC.ts
@@ -64,7 +64,7 @@ export default {
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -78,7 +78,7 @@ export default {
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
diff --git a/Docs/ServerConfig/hetzner/Caddyfile b/Docs/ServerConfig/hetzner/Caddyfile
index d1458bfb8..d34713d66 100644
--- a/Docs/ServerConfig/hetzner/Caddyfile
+++ b/Docs/ServerConfig/hetzner/Caddyfile
@@ -46,3 +46,9 @@ mapcomplete.osm.be {
to http://127.0.0.1:1236
}
}
+
+cache.mapcomplete.org {
+ reverse_proxy /summary/* {
+ to http://127.0.0.1:2345
+ }
+}
diff --git a/Docs/ServerConfig/hetzner/hetzner.txt b/Docs/ServerConfig/hetzner/hetzner.txt
index 0dae8e283..4009a6f92 100644
--- a/Docs/ServerConfig/hetzner/hetzner.txt
+++ b/Docs/ServerConfig/hetzner/hetzner.txt
@@ -3,3 +3,10 @@
This server hosts the studio files and is used for expermintal builds.
For used hosts, see the Caddyfile
+
+
+## Cache forwarding
+
+As the ISP of Nerdlab is a bit picky, we use SSH-port-forwarding on the cache server:
+
+`ssh -R 5445:127.0.0.1:5445 hetzner`
diff --git a/Docs/Themes/advertising.md b/Docs/Themes/advertising.md
index 9dc1ff92b..b026342ff 100644
--- a/Docs/Themes/advertising.md
+++ b/Docs/Themes/advertising.md
@@ -13,9 +13,9 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [advertising](../Layers/advertising.md)
- [shelter](../Layers/shelter.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/aed.md b/Docs/Themes/aed.md
index 215ff2c57..05a38e314 100644
--- a/Docs/Themes/aed.md
+++ b/Docs/Themes/aed.md
@@ -13,8 +13,8 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [defibrillator](../Layers/defibrillator.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/artwork.md b/Docs/Themes/artwork.md
index e5ef6e243..3f2315143 100644
--- a/Docs/Themes/artwork.md
+++ b/Docs/Themes/artwork.md
@@ -13,8 +13,8 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [artwork](../Layers/artwork.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/clock.md b/Docs/Themes/clock.md
index 12099b6c6..1f2ac220e 100644
--- a/Docs/Themes/clock.md
+++ b/Docs/Themes/clock.md
@@ -13,8 +13,8 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [clock](../Layers/clock.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/facadegardens.md b/Docs/Themes/facadegardens.md
index 71483bfd3..69ce45f84 100644
--- a/Docs/Themes/facadegardens.md
+++ b/Docs/Themes/facadegardens.md
@@ -13,8 +13,8 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [facadegardens](../Layers/facadegardens.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/ghostsigns.md b/Docs/Themes/ghostsigns.md
index 41bf87a0c..5a83aabd1 100644
--- a/Docs/Themes/ghostsigns.md
+++ b/Docs/Themes/ghostsigns.md
@@ -13,9 +13,9 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [ghostsigns](../Layers/ghostsigns.md)
- [advertising_wall_paintings](../Layers/advertising_wall_paintings.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/grb.md b/Docs/Themes/grb.md
index ef3421b0c..61490a3e1 100644
--- a/Docs/Themes/grb.md
+++ b/Docs/Themes/grb.md
@@ -13,7 +13,6 @@ This theme contains the following layers:
- - [named_streets](../Layers/named_streets.md)
- [osm_buildings_no_points](../Layers/osm_buildings_no_points.md)
- [grb](../Layers/grb.md)
- [service_ways](../Layers/service_ways.md)
@@ -21,6 +20,7 @@ This theme contains the following layers:
- [address](../Layers/address.md)
- [crab_address](../Layers/crab_address.md)
- [current_view](../Layers/current_view.md)
+ - [named_streets](../Layers/named_streets.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/stations.md b/Docs/Themes/stations.md
index fe4bf1cab..bc5ab74d2 100644
--- a/Docs/Themes/stations.md
+++ b/Docs/Themes/stations.md
@@ -13,7 +13,6 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [indoors](../Layers/indoors.md)
- [stairs](../Layers/stairs.md)
- [pedestrian_path](../Layers/pedestrian_path.md)
@@ -36,6 +35,7 @@ This theme contains the following layers:
- [bench](../Layers/bench.md)
- [drinking_water](../Layers/drinking_water.md)
- [departures_board](../Layers/departures_board.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/surveillance.md b/Docs/Themes/surveillance.md
index 183e3818c..a66089d1c 100644
--- a/Docs/Themes/surveillance.md
+++ b/Docs/Themes/surveillance.md
@@ -13,9 +13,9 @@ This theme contains the following layers:
- - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [surveillance_camera](../Layers/surveillance_camera.md)
- [speed_camera](../Layers/speed_camera.md)
+ - [walls_and_buildings](../Layers/walls_and_buildings.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/uk_addresses.md b/Docs/Themes/uk_addresses.md
index a5f8c640f..5ea55353f 100644
--- a/Docs/Themes/uk_addresses.md
+++ b/Docs/Themes/uk_addresses.md
@@ -13,11 +13,11 @@ This theme contains the following layers:
- - [address](../Layers/address.md)
- [raw_inspire_polygons](../Layers/raw_inspire_polygons.md)
- [to_import](../Layers/to_import.md)
- [uk_address](../Layers/uk_address.md)
- [named_streets](../Layers/named_streets.md)
+ - [address](../Layers/address.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/Themes/walls_and_buildings.md b/Docs/Themes/walls_and_buildings.md
index 1ae8b2ac9..f07892f54 100644
--- a/Docs/Themes/walls_and_buildings.md
+++ b/Docs/Themes/walls_and_buildings.md
@@ -13,10 +13,10 @@ This theme contains the following layers:
- - [indoors](../Layers/indoors.md)
- - [pedestrian_path](../Layers/pedestrian_path.md)
- [walls_and_buildings](../Layers/walls_and_buildings.md)
- [entrance](../Layers/entrance.md)
+ - [indoors](../Layers/indoors.md)
+ - [pedestrian_path](../Layers/pedestrian_path.md)
- [selected_element](../Layers/selected_element.md)
- [gps_location](../Layers/gps_location.md)
- [gps_location_history](../Layers/gps_location_history.md)
diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md
index 0b1de325d..423418e30 100644
--- a/Docs/URL_Parameters.md
+++ b/Docs/URL_Parameters.md
@@ -291,7 +291,7 @@ z
The initial/current zoom level
-This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L28)
+This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L34)
The default value is _1_
@@ -300,7 +300,7 @@ lat
The initial/current latitude
-This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L28)
+This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L34)
The default value is _0_
@@ -309,7 +309,7 @@ lon
The initial/current longitude of the app
-This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L28)
+This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L34)
The default value is _0_
diff --git a/assets/layers/bench/bench.json b/assets/layers/bench/bench.json
index 58c29d93d..4fae1136b 100644
--- a/assets/layers/bench/bench.json
+++ b/assets/layers/bench/bench.json
@@ -155,8 +155,8 @@
{
"if": "backrest=yes",
"then": {
- "en": "Does have a backrest",
- "de": "Die Sitzbank hat eine Rückenlehne",
+ "en": "This bench does have a backrest",
+ "de": "Diese Sitzbank hat eine Rückenlehne",
"fr": "Dossier : Oui",
"nl": "Heeft een rugleuning",
"es": "Tiene respaldo",
@@ -186,8 +186,8 @@
"two_sided="
],
"then": {
- "en": "Does not have a backrest",
- "de": "Die Sitzbank hat keine Rückenlehne",
+ "en": "This bench does not have a backrest",
+ "de": "Diese Sitzbank hat keine Rückenlehne",
"fr": "Dossier : Non",
"nl": "Heeft geen rugleuning",
"es": "No tiene respaldo",
@@ -236,8 +236,8 @@
},
{
"render": {
- "en": "{seats} seats",
- "de": "Die Sitzbank hat {seats} Sitzplätze",
+ "en": "This bench has {seats} seats",
+ "de": "Diese Sitzbank hat {seats} Sitzplätze",
"fr": "{seats} places",
"nl": "{seats} zitplaatsen",
"es": "{seats} asientos",
@@ -882,7 +882,7 @@
"bench-questions"
],
"render": {
- "en": "This bench does have the following inscription:{inscription}
",
+ "en": "This bench has the following inscription:{inscription}
",
"nl": "Deze bank heeft een inscriptie: {inscription}
",
"de": "Diese Bank hat folgende Inschrift:{inscription}
",
"fr": "Ce banc a l'inscription suivante :{inscription}
",
@@ -931,7 +931,7 @@
{
"if": "inscription=",
"then": {
- "en": "This bench does (probably) not have an inscription",
+ "en": "This bench (probably) does not not have an inscription",
"nl": "Deze bank heeft (waarschijnlijk) geen inscriptie",
"de": "Diese Bank hat (wahrscheinlich) keine Inschrift",
"fr": "Ce banc n'a (probablement) pas d'inscription",
diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json
index bdc89e1a4..403fe0c6b 100644
--- a/assets/layers/bike_parking/bike_parking.json
+++ b/assets/layers/bike_parking/bike_parking.json
@@ -998,6 +998,16 @@
"weeks",
"months"
]
+ },
+ "charge": {
+ "quantity": "duration",
+ "inverted": true,
+ "denominations": [
+ "days",
+ "weeks",
+ "months",
+ "years"
+ ]
}
}
]
diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json
index 305b2f6bd..dcfaad56b 100644
--- a/assets/layers/charging_station/charging_station.json
+++ b/assets/layers/charging_station/charging_station.json
@@ -5,12 +5,7 @@
"nl": "Oplaadpunten",
"de": "Ladestationen"
},
- "description": {
- "en": "A charging station",
- "nl": "Oplaadpunten",
- "ca": "Una estació de càrrega",
- "de": "Eine Ladestation"
- },
+ "minzoom": 10,
"source": {
"osmTags": {
"and": [
@@ -25,7 +20,6 @@
]
}
},
- "minzoom": 10,
"title": {
"render": {
"en": "Charging station",
@@ -71,103 +65,13 @@
}
]
},
- "pointRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "marker": [
- {
- "icon": "pin",
- "color": "#fff"
- },
- {
- "icon": {
- "render": "./assets/themes/charging_stations/plug.svg",
- "mappings": [
- {
- "if": "bicycle=yes",
- "then": "./assets/themes/charging_stations/bicycle.svg"
- },
- {
- "if": {
- "or": [
- "car=yes",
- "motorcar=yes"
- ]
- },
- "then": "./assets/themes/charging_stations/car.svg"
- }
- ]
- }
- }
- ],
- "iconBadges": [
- {
- "if": {
- "or": [
- "disused:amenity=charging_station",
- "operational_status=broken"
- ]
- },
- "then": "close:#c22;"
- },
- {
- "if": {
- "or": [
- "proposed:amenity=charging_station",
- "planned:amenity=charging_station"
- ]
- },
- "then": "./assets/layers/charging_station/under_construction.svg"
- },
- {
- "if": {
- "and": [
- "bicycle=yes",
- {
- "or": [
- "motorcar=yes",
- "car=yes"
- ]
- }
- ]
- },
- "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
- }
- ],
- "anchor": "bottom",
- "iconSize": "50,50"
- }
- ],
- "lineRendering": [],
- "presets": [
- {
- "tags": [
- "amenity=charging_station",
- "motorcar=no",
- "bicycle=yes"
- ],
- "title": {
- "en": "charging station for electrical bikes",
- "nl": "oplaadpunt voor elektrische fietsen",
- "de": "Ladestation für Elektrofahrräder"
- }
- },
- {
- "tags": [
- "amenity=charging_station",
- "motorcar=yes",
- "bicycle=no"
- ],
- "title": {
- "en": "charging station for cars",
- "nl": "oplaadstation voor elektrische auto's",
- "de": "Ladestation für Autos"
- }
- }
- ],
+ "description": {
+ "en": "A charging station",
+ "nl": "Oplaadpunten",
+ "ca": "Una estació de càrrega",
+ "de": "Eine Ladestation"
+ },
+ "#": "no-question-hint-check",
"tagRenderings": [
"images",
{
@@ -2509,6 +2413,103 @@
}
}
],
+ "lineRendering": [],
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": "pin",
+ "color": "#fff"
+ },
+ {
+ "icon": {
+ "render": "./assets/themes/charging_stations/plug.svg",
+ "mappings": [
+ {
+ "if": "bicycle=yes",
+ "then": "./assets/themes/charging_stations/bicycle.svg"
+ },
+ {
+ "if": {
+ "or": [
+ "car=yes",
+ "motorcar=yes"
+ ]
+ },
+ "then": "./assets/themes/charging_stations/car.svg"
+ }
+ ]
+ }
+ }
+ ],
+ "iconBadges": [
+ {
+ "if": {
+ "or": [
+ "disused:amenity=charging_station",
+ "operational_status=broken"
+ ]
+ },
+ "then": "close:#c22;"
+ },
+ {
+ "if": {
+ "or": [
+ "proposed:amenity=charging_station",
+ "planned:amenity=charging_station"
+ ]
+ },
+ "then": "./assets/layers/charging_station/under_construction.svg"
+ },
+ {
+ "if": {
+ "and": [
+ "bicycle=yes",
+ {
+ "or": [
+ "motorcar=yes",
+ "car=yes"
+ ]
+ }
+ ]
+ },
+ "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
+ }
+ ],
+ "anchor": "bottom",
+ "iconSize": "50,50"
+ }
+ ],
+ "presets": [
+ {
+ "tags": [
+ "amenity=charging_station",
+ "motorcar=no",
+ "bicycle=yes"
+ ],
+ "title": {
+ "en": "charging station for electrical bikes",
+ "nl": "oplaadpunt voor elektrische fietsen",
+ "de": "Ladestation für Elektrofahrräder"
+ }
+ },
+ {
+ "tags": [
+ "amenity=charging_station",
+ "motorcar=yes",
+ "bicycle=no"
+ ],
+ "title": {
+ "en": "charging station for cars",
+ "nl": "oplaadstation voor elektrische auto's",
+ "de": "Ladestation für Autos"
+ }
+ }
+ ],
"filter": [
{
"id": "vehicle-type",
@@ -2714,19 +2715,6 @@
]
}
],
- "deletion": {
- "softDeletionTags": {
- "and": [
- "amenity=",
- "disused:amenity=charging_station"
- ]
- },
- "neededChangesets": 10
- },
- "allowMove": {
- "enableRelocation": false,
- "enableImproveAccuracy": true
- },
"units": [
{
"maxstay": {
@@ -2885,5 +2873,17 @@
}
}
],
- "#": "no-question-hint-check"
-}
+ "allowMove": {
+ "enableRelocation": false,
+ "enableImproveAccuracy": true
+ },
+ "deletion": {
+ "softDeletionTags": {
+ "and": [
+ "amenity=",
+ "disused:amenity=charging_station"
+ ]
+ },
+ "neededChangesets": 10
+ }
+}
\ No newline at end of file
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
index 0edb1fae1..9e119e077 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -3,14 +3,17 @@
"title": {
"en": "Changes made with MapComplete"
},
- "description": {
- "en": "This maps shows all the changes made with MapComplete"
- },
"shortDescription": {
"en": "Shows changes made by MapComplete"
},
+ "description": {
+ "en": "This maps shows all the changes made with MapComplete"
+ },
"icon": "./assets/svg/logo.svg",
"hideFromOverview": true,
+ "startLat": 0,
+ "startLon": 0,
+ "startZoom": 1,
"layers": [
{
"id": "mapcomplete-changes",
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index 3d292c523..3ac952f1a 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -9225,4 +9225,4 @@
"render": "Turbina eòlica"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index 7520ac119..2b5375f36 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -9481,4 +9481,4 @@
"render": "větrná turbína"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/da.json b/langs/layers/da.json
index b02ab560f..d71c798ba 100644
--- a/langs/layers/da.json
+++ b/langs/layers/da.json
@@ -2713,4 +2713,4 @@
"render": "vindmølle"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 516d5f795..d8468deeb 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -845,10 +845,10 @@
"then": "Diese Bank ist zweiseitig und teilt sich die Rückenlehne"
},
"1": {
- "then": "Die Sitzbank hat eine Rückenlehne"
+ "then": "Diese Sitzbank hat eine Rückenlehne"
},
"2": {
- "then": "Die Sitzbank hat keine Rückenlehne"
+ "then": "Diese Sitzbank hat keine Rückenlehne"
}
},
"question": "Hat diese Sitzbank eine Rückenlehne?"
@@ -942,7 +942,7 @@
}
},
"question": "Wie viele Sitzplätze hat diese Bank?",
- "render": "Die Sitzbank hat {seats} Sitzplätze"
+ "render": "Diese Sitzbank hat {seats} Sitzplätze"
},
"bench-survey:date": {
"mappings": {
diff --git a/langs/layers/en.json b/langs/layers/en.json
index b6cc7721d..77d65a394 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -393,27 +393,6 @@
}
},
"question": "What is the purpose of the animal shelter?"
- },
- "boarded_animals": {
- "mappings": {
- "0": {
- "then": "Dogs are kept here"
- },
- "1": {
- "then": "Cats are kept here"
- },
- "2": {
- "then": "Horses are kept here"
- },
- "3": {
- "then": "Birds are kept here"
- },
- "4": {
- "then": "Wild animals are kept here"
- }
- },
- "question": "Which animals are accepted here?",
- "render": "{animal_shelter} is kept here"
}
},
"title": {
@@ -866,10 +845,10 @@
"then": "This bench is two-sided and shares the backrest"
},
"1": {
- "then": "Does have a backrest"
+ "then": "This bench does have a backrest"
},
"2": {
- "then": "Does not have a backrest"
+ "then": "This bench does not have a backrest"
}
},
"question": "Does this bench have a backrest?"
@@ -914,12 +893,12 @@
"then": "This bench does not have an inscription"
},
"1": {
- "then": "This bench does (probably) not have an inscription"
+ "then": "This bench (probably) does not not have an inscription"
}
},
"question": "Does this bench have an inscription?",
"questionHint": "E.g. on a mounted plaque, in the backrest, …",
- "render": "This bench does have the following inscription:{inscription}
"
+ "render": "This bench has the following inscription:{inscription}
"
},
"bench-material": {
"mappings": {
@@ -963,7 +942,7 @@
}
},
"question": "How many seats does this bench have?",
- "render": "{seats} seats"
+ "render": "This bench has {seats} seats"
},
"bench-survey:date": {
"mappings": {
@@ -1511,18 +1490,10 @@
},
"question": "Are these bicycle parkings free to use?"
},
- "maxstay": {
- "question": "What is the maximum allowed parking duration?",
- "questionHint": "If the bicycle is parked for a longer amount, it might be removed by the operator",
- "render": "A bike can be parked here for at most {canonical(maxstay)}"
- },
"operator": {
"question": "Who maintains this bicycle parking?",
"render": "This bicycle parking is maintained by {operator}"
},
- "operator_email": {
- "question": "What is the email address of the operator of this bicycle parking?"
- },
"operator_phone": {
"question": "What is the phone number of the operator of this bicycle parking?",
"questionHint": "One might be able to call this number in case of problems, e.g. to remove unmaintained bicycles"
@@ -2190,9 +2161,6 @@
},
"16": {
"question": "Has a Bosch Active Connect with 5 pins and cable connector"
- },
- "17": {
- "question": "Has a BS1363 (Type G) connector"
}
}
}
@@ -2337,12 +2305,6 @@
},
"31": {
"then": "Bosch Active Connect with 5 pins and cable"
- },
- "32": {
- "then": "BS1363 (Type G)"
- },
- "33": {
- "then": "BS1363 (Type G)"
}
},
"question": "Which charging connections are available here?"
@@ -2577,9 +2539,6 @@
},
"15": {
"2": "Bosch Active Connect with 5 pins and cable"
- },
- "16": {
- "2": "BS1363 (Type G)"
}
}
}
@@ -5154,22 +5113,6 @@
"render": "Restaurant"
}
},
- "food_courts": {
- "description": "Food courts with a variety of food options.",
- "name": "Food Courts",
- "tagRenderings": {
- "name": {
- "freeform": {
- "placeholder": "Name of the food court"
- },
- "question": "What is the name of this food court?",
- "render": "This food court is called {name} ."
- }
- },
- "title": {
- "render": "Food Court"
- }
- },
"ghost_bike": {
"description": "A layer showing memorials for cyclists, killed in road accidents",
"name": "Ghost bikes",
@@ -6682,74 +6625,6 @@
"render": "OSM Community Index"
}
},
- "outdoor_seating": {
- "description": "Outdoor seating areas, usually located near cafes and restaurants.",
- "name": "Outdoor Seating",
- "tagRenderings": {
- "access": {
- "mappings": {
- "0": {
- "then": "Anyone can use this outdoor seating area."
- },
- "1": {
- "then": "Only customers can use this outdoor seating area."
- },
- "2": {
- "then": "This outdoor seating area is private."
- }
- },
- "question": "Who can use this outdoor seating area?"
- },
- "covered": {
- "mappings": {
- "0": {
- "then": "This outdoor seating area is covered."
- },
- "1": {
- "then": "This outdoor seating area is not covered."
- }
- },
- "question": "Is this outdoor seating area covered?"
- },
- "heating": {
- "mappings": {
- "0": {
- "then": "This outdoor seating area is heated."
- },
- "1": {
- "then": "This outdoor seating area is not heated."
- }
- },
- "question": "Is this outdoor seating area heated?"
- },
- "seasonal": {
- "mappings": {
- "0": {
- "then": "This outdoor seating area is available all year round."
- },
- "1": {
- "then": "This outdoor seating area is available in spring."
- },
- "2": {
- "then": "This outdoor seating area is available in summer."
- },
- "3": {
- "then": "This outdoor seating area is available in autumn."
- },
- "4": {
- "then": "This outdoor seating area is available in winter."
- },
- "5": {
- "then": "This outdoor seating area is available in the dry season."
- }
- },
- "question": "Is this outdoor seating area seasonal?"
- }
- },
- "title": {
- "render": "Outdoor Seating area"
- }
- },
"parcel_lockers": {
"description": "Layer showing parcel lockers for collecting and sending parcels.",
"name": "Parcel Lockers",
@@ -9068,10 +8943,6 @@
}
},
"tagRenderings": {
- "camera_direction": {
- "question": "In which geographical direction does this camera film?",
- "render": "Films to a compass heading of {direction}"
- },
"maxspeed": {
"freeform": {
"placeholder": "Maximum speed allowed"
@@ -11395,4 +11266,4 @@
"render": "wind turbine"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/eo.json b/langs/layers/eo.json
index 7d3920b24..04629a910 100644
--- a/langs/layers/eo.json
+++ b/langs/layers/eo.json
@@ -275,4 +275,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/es.json b/langs/layers/es.json
index 6c5ca26d0..05e75c8c9 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -4884,4 +4884,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/eu.json b/langs/layers/eu.json
index 937736949..c647d51b9 100644
--- a/langs/layers/eu.json
+++ b/langs/layers/eu.json
@@ -289,4 +289,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/fi.json b/langs/layers/fi.json
index 6ad318e18..6d5de8f51 100644
--- a/langs/layers/fi.json
+++ b/langs/layers/fi.json
@@ -126,4 +126,4 @@
"render": "Asetukset"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/fil.json b/langs/layers/fil.json
index df662aa44..1468d6cf2 100644
--- a/langs/layers/fil.json
+++ b/langs/layers/fil.json
@@ -135,4 +135,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/gl.json b/langs/layers/gl.json
index f5a502b3d..fa1439a1f 100644
--- a/langs/layers/gl.json
+++ b/langs/layers/gl.json
@@ -394,4 +394,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/he.json b/langs/layers/he.json
index 9f06b9efa..cc53efdde 100644
--- a/langs/layers/he.json
+++ b/langs/layers/he.json
@@ -484,4 +484,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/hu.json b/langs/layers/hu.json
index 7fb5b34de..2e65daab4 100644
--- a/langs/layers/hu.json
+++ b/langs/layers/hu.json
@@ -968,4 +968,4 @@
"render": "szélerőmű"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/id.json b/langs/layers/id.json
index b33cd73a2..60a7484a6 100644
--- a/langs/layers/id.json
+++ b/langs/layers/id.json
@@ -942,4 +942,4 @@
"render": "turbin angin"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/it.json b/langs/layers/it.json
index 830d2d273..c8f1733a0 100644
--- a/langs/layers/it.json
+++ b/langs/layers/it.json
@@ -3102,4 +3102,4 @@
"render": "pala eolica"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/ja.json b/langs/layers/ja.json
index 66ad27974..92c86d2a8 100644
--- a/langs/layers/ja.json
+++ b/langs/layers/ja.json
@@ -642,4 +642,4 @@
"render": "店"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/nb_NO.json b/langs/layers/nb_NO.json
index 1bdf05dd2..7434382ae 100644
--- a/langs/layers/nb_NO.json
+++ b/langs/layers/nb_NO.json
@@ -847,4 +847,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index fa74d157e..094df2bce 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -1227,18 +1227,10 @@
},
"question": "Is deze fietsenstalling gratis te gebruiken?"
},
- "maxstay": {
- "question": "Wat is de toegestane, maximale parkeerduur?",
- "questionHint": "Indien een fiets langer geparkeerd staat, kan deze verwijderd worden door de beheerder",
- "render": "Een fiets mag hier maximaal {canonical(maxstay)} parkeren"
- },
"operator": {
"question": "Wie beheert deze fietsenstalling?",
"render": "Deze fietsenstalling wordt beheerd door {operator}"
},
- "operator_email": {
- "question": "Wat is het emailadres van de beheerder van deze parking?"
- },
"operator_phone": {
"question": "Wat is het telefoonnummer van de operator van deze fietsenstalling?",
"questionHint": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden"
@@ -1882,9 +1874,6 @@
},
"16": {
"question": "Heeft een Bosch Active Connect met 5 pinnen aan een kabel "
- },
- "17": {
- "question": "Heeft een BS1363 (VK 3-pin) "
}
}
}
@@ -2029,12 +2018,6 @@
},
"31": {
"then": "Bosch Active Connect met 5 pinnen aan een kabel"
- },
- "32": {
- "then": "BS1363 (VK 3-pin)"
- },
- "33": {
- "then": "BS1363 (VK 3-pin)"
}
},
"question": "Welke aansluitingen zijn hier beschikbaar?"
@@ -2269,9 +2252,6 @@
},
"15": {
"2": "Bosch Active Connect met 5 pinnen aan een kabel"
- },
- "16": {
- "2": "BS1363 (VK 3-pin)"
}
}
}
@@ -7349,10 +7329,6 @@
}
},
"tagRenderings": {
- "camera_direction": {
- "question": "In welke geografische richting filmt deze camera?",
- "render": "Filmt in kompasrichting {direction}"
- },
"maxspeed": {
"freeform": {
"placeholder": "Maximum toegestane snelheid"
@@ -9433,4 +9409,4 @@
"render": "windturbine"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/pa_PK.json b/langs/layers/pa_PK.json
index 306d966c5..408d9a078 100644
--- a/langs/layers/pa_PK.json
+++ b/langs/layers/pa_PK.json
@@ -293,4 +293,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/pl.json b/langs/layers/pl.json
index 30dba7181..cee7ab5d9 100644
--- a/langs/layers/pl.json
+++ b/langs/layers/pl.json
@@ -2718,4 +2718,4 @@
"render": "turbina wiatrowa"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/pt.json b/langs/layers/pt.json
index d8f2eaf62..b1470c7b3 100644
--- a/langs/layers/pt.json
+++ b/langs/layers/pt.json
@@ -1925,4 +1925,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/pt_BR.json b/langs/layers/pt_BR.json
index 46ea81bdf..0450fe8bb 100644
--- a/langs/layers/pt_BR.json
+++ b/langs/layers/pt_BR.json
@@ -1589,4 +1589,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index 56db3347d..87d62d92b 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -1970,4 +1970,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/sl.json b/langs/layers/sl.json
index 9387209d9..d605a4f22 100644
--- a/langs/layers/sl.json
+++ b/langs/layers/sl.json
@@ -463,4 +463,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/sv.json b/langs/layers/sv.json
index fcace1943..540c65bb3 100644
--- a/langs/layers/sv.json
+++ b/langs/layers/sv.json
@@ -137,4 +137,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/zgh.json b/langs/layers/zgh.json
index 4f6fcb199..7b34b5c4d 100644
--- a/langs/layers/zgh.json
+++ b/langs/layers/zgh.json
@@ -6,4 +6,4 @@
"artwork": {
"description": "ⵢⴰⵜ ⵜⴽⴰⵕⴹⴰ ⵉⵕⵥⵎⵏ ⵅⴼ ⵉⵙⴼⵔⵉⵙⵏ, ⵉⵖⵔⴰⵙⵏ ⴷ ⵜⵡⵓⵔⵉⵡⵉⵏ ⵜⵉⵏⴰⵥⵓⵕⵉⵏ ⵢⴰⴹⵏⵉⵏ ⴳ ⵓⵎⴰⴹⴰⵍ"
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/zh_Hans.json b/langs/layers/zh_Hans.json
index 818a2be18..7e3768356 100644
--- a/langs/layers/zh_Hans.json
+++ b/langs/layers/zh_Hans.json
@@ -627,4 +627,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/layers/zh_Hant.json b/langs/layers/zh_Hant.json
index 20ef18f0f..ccc000508 100644
--- a/langs/layers/zh_Hant.json
+++ b/langs/layers/zh_Hant.json
@@ -856,4 +856,4 @@
"render": "風機"
}
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/ca.json b/langs/themes/ca.json
index a5cdfc921..5d1f6cd2d 100644
--- a/langs/themes/ca.json
+++ b/langs/themes/ca.json
@@ -899,6 +899,33 @@
"onwheels": {
"description": "En aquest mapa, es mostren llocs públics accessibles per a cadira de rodes i es poden afegir fàcilment",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Estadístiques"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Importar"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Afegiu totes les etiquetes suggerides"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -941,33 +968,6 @@
"override": {
"name": "Places d'aparcament per a minusvàlids"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Estadístiques"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Importar"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Afegiu totes les etiquetes suggerides"
- }
- }
- }
- }
- }
}
},
"title": "Sobre rodes"
@@ -1128,10 +1128,6 @@
"stations": {
"description": "Veure, editar i afegir detalls a una estació de tren",
"layers": {
- "3": {
- "description": "Capa que mostra les estacions de tren",
- "name": "Estació de tren"
- },
"16": {
"description": "Pantalles que mostren els trens que sortiran de l'estació",
"name": "Taulers de sortides",
@@ -1163,6 +1159,10 @@
"title": {
"render": "Tauler de sortides"
}
+ },
+ "3": {
+ "description": "Capa que mostra les estacions de tren",
+ "name": "Estació de tren"
}
},
"title": "Estacions de tren"
@@ -1284,4 +1284,4 @@
"shortDescription": "Un mapa amb papereres",
"title": "Papepera"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/cs.json b/langs/themes/cs.json
index 8e4b6f321..15e2afc6b 100644
--- a/langs/themes/cs.json
+++ b/langs/themes/cs.json
@@ -906,6 +906,33 @@
"onwheels": {
"description": "Na této mapě jsou zobrazena veřejně přístupná místa pro vozíčkáře, a lze je také snadno přidat",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistiky"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Dovoz"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Přidat všechny navrhované značky"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -948,33 +975,6 @@
"override": {
"name": "Parkovací místa pro osoby se zdravotním postižením"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistiky"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Dovoz"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Přidat všechny navrhované značky"
- }
- }
- }
- }
- }
}
},
"title": "Na kolečkách"
@@ -1135,10 +1135,6 @@
"stations": {
"description": "Zobrazení, úprava a přidání podrobností o vlakovém nádraží",
"layers": {
- "3": {
- "description": "Vrstva zobrazující vlaková nádraží",
- "name": "Vlaková nádraží"
- },
"16": {
"description": "Zobrazuje vlaky odjíždějící z této stanice",
"name": "Odjezdové tabule",
@@ -1170,6 +1166,10 @@
"title": {
"render": "Odjezdová tabule"
}
+ },
+ "3": {
+ "description": "Vrstva zobrazující vlaková nádraží",
+ "name": "Vlaková nádraží"
}
},
"title": "Vlaková nádraží"
@@ -1306,4 +1306,4 @@
"shortDescription": "Mapa odpadkových košů",
"title": "Odpadkový koš"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/da.json b/langs/themes/da.json
index 12db6a955..e5ea211ee 100644
--- a/langs/themes/da.json
+++ b/langs/themes/da.json
@@ -631,6 +631,33 @@
"onwheels": {
"description": "På dette kort vises steder, der er offentligt tilgængelige for kørestolsbrugere, og de kan nemt tilføjes",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistikker"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Importere"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Tilføj alle de foreslåede tags"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -668,33 +695,6 @@
}
}
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistikker"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Importere"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Tilføj alle de foreslåede tags"
- }
- }
- }
- }
- }
}
}
},
@@ -915,4 +915,4 @@
"shortDescription": "Et kort med affaldskurve",
"title": "Affaldskurv"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/de.json b/langs/themes/de.json
index 197245176..07c3fea2a 100644
--- a/langs/themes/de.json
+++ b/langs/themes/de.json
@@ -975,6 +975,133 @@
},
"title": "Bordsteine und Überwege"
},
+ "mapcomplete-changes": {
+ "description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
+ "layers": {
+ "0": {
+ "description": "Alle MapComplete-Änderungen anzeigen",
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Themenname enthält {search}"
+ }
+ }
+ },
+ "1": {
+ "options": {
+ "0": {
+ "question": "Themename enthält not {search}"
+ }
+ }
+ },
+ "10": {
+ "options": {
+ "0": {
+ "question": "Etymologie-Thema ausschließen"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Erstellt vom Mitwirkenden {search}"
+ }
+ }
+ },
+ "3": {
+ "options": {
+ "0": {
+ "question": "Nicht erstellt von Mitwirkendem {search}"
+ }
+ }
+ },
+ "4": {
+ "options": {
+ "0": {
+ "question": "Erstellt vor {search}"
+ }
+ }
+ },
+ "5": {
+ "options": {
+ "0": {
+ "question": "Erstellt nach {search}"
+ }
+ }
+ },
+ "6": {
+ "options": {
+ "0": {
+ "question": "Benutzersprache (ISO-Code) {search}"
+ }
+ }
+ },
+ "7": {
+ "options": {
+ "0": {
+ "question": "Erstellt mit Host {search}"
+ }
+ }
+ },
+ "8": {
+ "options": {
+ "0": {
+ "question": "Änderungssatz hat mindestens ein Bild hinzugefügt"
+ }
+ }
+ },
+ "9": {
+ "options": {
+ "0": {
+ "question": "GRB-Thema ausschließen"
+ }
+ }
+ }
+ },
+ "name": "Zentrum der Änderungssätze",
+ "tagRenderings": {
+ "contributor": {
+ "question": "Welcher Mitwirkende hat diese Änderung vorgenommen?",
+ "render": "Änderung vorgenommen von {user} "
+ },
+ "host": {
+ "question": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?",
+ "render": "Änderung über {host} "
+ },
+ "locale": {
+ "question": "In welcher Benutzersprache wurde die Änderung vorgenommen?",
+ "render": "Benutzersprache {locale}"
+ },
+ "show_changeset_id": {
+ "render": "Änderungssatz {id} "
+ },
+ "theme-id": {
+ "question": "Welches Thema wurde für die Änderung verwendet?",
+ "render": "Geändert mit Thema {theme} "
+ },
+ "version": {
+ "question": "Mit welcher MapComplete Version wurde die Änderung vorgenommen?",
+ "render": "Erstellt mit {editor}"
+ }
+ },
+ "title": {
+ "render": "Änderungssatz für {theme}"
+ }
+ },
+ "1": {
+ "override": {
+ "tagRenderings+": {
+ "0": {
+ "render": "Weitere Statistiken gibt es hier "
+ }
+ }
+ }
+ }
+ },
+ "shortDescription": "Änderungen von MapComplete anzeigen",
+ "title": "Änderungen mit MapComplete"
+ },
"maproulette": {
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
"title": "MapRoulette-Aufgaben"
@@ -1010,6 +1137,33 @@
"onwheels": {
"description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistik"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Import"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Alle vorgeschlagenen Tags hinzufügen"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -1052,33 +1206,6 @@
"override": {
"name": "Barrierefreie Parkplätze"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistik"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Import"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Alle vorgeschlagenen Tags hinzufügen"
- }
- }
- }
- }
- }
}
},
"title": "Auf Rädern"
@@ -1320,10 +1447,6 @@
"stations": {
"description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen",
"layers": {
- "3": {
- "description": "Ebene mit Bahnhöfen",
- "name": "Bahnhöfe"
- },
"16": {
"description": "Anzeigen der Züge, die von diesem Bahnhof abfahren",
"name": "Abfahrtstafeln",
@@ -1355,6 +1478,10 @@
"title": {
"render": "Abfahrtstafel"
}
+ },
+ "3": {
+ "description": "Ebene mit Bahnhöfen",
+ "name": "Bahnhöfe"
}
},
"title": "Bahnhöfe"
diff --git a/langs/themes/en.json b/langs/themes/en.json
index d37e0a0c4..9fbdf6358 100644
--- a/langs/themes/en.json
+++ b/langs/themes/en.json
@@ -676,7 +676,7 @@
},
"5": {
"override": {
- "=name": "Toursistic places without etymology information"
+ "=name": "Touristic places without etymology information"
}
},
"6": {
@@ -995,6 +995,13 @@
}
}
},
+ "10": {
+ "options": {
+ "0": {
+ "question": "Exclude etymology theme"
+ }
+ }
+ },
"2": {
"options": {
"0": {
@@ -1050,13 +1057,6 @@
"question": "Exclude GRB theme"
}
}
- },
- "10": {
- "options": {
- "0": {
- "question": "Exclude etymology theme"
- }
- }
}
},
"name": "Changeset centers",
@@ -1137,6 +1137,33 @@
"onwheels": {
"description": "On this map, publicly weelchair accessible places are shown and can be easily added",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistics"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Import"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Add all the suggested tags"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -1179,33 +1206,6 @@
"override": {
"name": "Disabled parking spaces"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistics"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Import"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Add all the suggested tags"
- }
- }
- }
- }
- }
}
},
"title": "OnWheels"
@@ -1447,10 +1447,6 @@
"stations": {
"description": "View, edit and add details to a train station",
"layers": {
- "3": {
- "description": "Layer showing train stations",
- "name": "Train Stations"
- },
"16": {
"description": "Displays showing the trains that will leave from this station",
"name": "Departures boards",
@@ -1482,6 +1478,10 @@
"title": {
"render": "Departures board"
}
+ },
+ "3": {
+ "description": "Layer showing train stations",
+ "name": "Train Stations"
}
},
"title": "Train Stations"
@@ -1660,4 +1660,4 @@
"shortDescription": "A map with waste baskets",
"title": "Waste Baskets"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/es.json b/langs/themes/es.json
index 9110808f3..227f94cba 100644
--- a/langs/themes/es.json
+++ b/langs/themes/es.json
@@ -956,6 +956,33 @@
"onwheels": {
"description": "En este mapa se muestran los lugares accesibles al público en silla de ruedas, que pueden añadirse fácilmente",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Estadísticas"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Importar"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Añadir todas las etiquetas sugeridas"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -998,33 +1025,6 @@
"override": {
"name": "Plazas de aparcamiento para discapacitados"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Estadísticas"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Importar"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Añadir todas las etiquetas sugeridas"
- }
- }
- }
- }
- }
}
},
"title": "Sobre ruedas"
@@ -1240,10 +1240,6 @@
"stations": {
"description": "Ver, editar y añadir detalles a una estación de tren",
"layers": {
- "3": {
- "description": "Capa que muestra las estaciones de tren",
- "name": "Estación de Tren"
- },
"16": {
"description": "Pantallas que muestran los trenes que saldrán de esta estación",
"name": "Tableros de salidas",
@@ -1275,6 +1271,10 @@
"title": {
"render": "Tablero de salidas"
}
+ },
+ "3": {
+ "description": "Capa que muestra las estaciones de tren",
+ "name": "Estación de Tren"
}
},
"title": "Estaciones de tren"
@@ -1453,4 +1453,4 @@
"shortDescription": "Un mapa con papeleras",
"title": "Papeleras"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/fr.json b/langs/themes/fr.json
index 958c346ae..e948d8b88 100644
--- a/langs/themes/fr.json
+++ b/langs/themes/fr.json
@@ -93,6 +93,9 @@
"shortDescription": "Carte des bancs",
"title": "Bancs"
},
+ "bicycle_parkings": {
+ "title": "Stationnement vélo"
+ },
"bicycle_rental": {
"description": "Vous trouverez sur cette carte toutes les stations de location de vélo telles qu'elles sont référencées dans OpenStreetMap",
"shortDescription": "Une carte avec des stations et magasins de location de vélos",
@@ -861,6 +864,33 @@
"onwheels": {
"description": "Sur cette carte nous pouvons voir et ajouter les différents endroits publiques accessibles aux chaises roulantes",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistiques"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Importation"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Ajouter tous les attributs suggérés"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -903,33 +933,6 @@
"override": {
"name": "Places de stationnement pour personnes handicapées"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistiques"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Importation"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Ajouter tous les attributs suggérés"
- }
- }
- }
- }
- }
}
},
"title": "OnWheels"
@@ -1090,10 +1093,6 @@
"stations": {
"description": "Voir, modifier et ajouter des détails à une gare ferroviaire",
"layers": {
- "3": {
- "description": "Couche montrant les gares",
- "name": "Gares ferroviaires"
- },
"16": {
"description": "Panneau affichant les trains au départ depuis cette gare",
"name": "Panneaux des départs",
@@ -1125,6 +1124,10 @@
"title": {
"render": "Tableau des départs"
}
+ },
+ "3": {
+ "description": "Couche montrant les gares",
+ "name": "Gares ferroviaires"
}
},
"title": "Gares ferroviaires"
@@ -1246,4 +1249,4 @@
"shortDescription": "Une carte des poubelles",
"title": "Poubelles"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/nb_NO.json b/langs/themes/nb_NO.json
index 859a3bb64..6e6863e81 100644
--- a/langs/themes/nb_NO.json
+++ b/langs/themes/nb_NO.json
@@ -494,19 +494,6 @@
},
"onwheels": {
"layers": {
- "4": {
- "override": {
- "filter": {
- "0": {
- "options": {
- "1": {
- "question": "Uten breddeinfo"
- }
- }
- }
- }
- }
- },
"19": {
"override": {
"=title": {
@@ -533,6 +520,19 @@
}
}
}
+ },
+ "4": {
+ "override": {
+ "filter": {
+ "0": {
+ "options": {
+ "1": {
+ "question": "Uten breddeinfo"
+ }
+ }
+ }
+ }
+ }
}
},
"title": "På hjul"
@@ -626,10 +626,6 @@
},
"stations": {
"layers": {
- "3": {
- "description": "Lag som viser togstasjoner",
- "name": "Togstasjoner"
- },
"16": {
"tagRenderings": {
"type": {
@@ -640,6 +636,10 @@
}
}
}
+ },
+ "3": {
+ "description": "Lag som viser togstasjoner",
+ "name": "Togstasjoner"
}
},
"title": "Togstasjoner"
@@ -735,4 +735,4 @@
"shortDescription": "Oversikt over søppelkurver",
"title": "Søppelkurv"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/nl.json b/langs/themes/nl.json
index c759ba1e3..c6eb5cdde 100644
--- a/langs/themes/nl.json
+++ b/langs/themes/nl.json
@@ -908,6 +908,33 @@
"onwheels": {
"description": "Op deze kaart kan je informatie rond rolstoeltoegankelijkheid zien, zoals toegangsdeuren met hun breedte en drempelhoogte, toiletten met toegankelijkheidsinformatie, recepties maar ook winkels, cafés en restaurants.",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statistieken"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Importeren"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Voeg alle gesuggereerde tags toe"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -950,33 +977,6 @@
"override": {
"name": "Parkeerplaatsen voor personen met een beperking"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statistieken"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Importeren"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Voeg alle gesuggereerde tags toe"
- }
- }
- }
- }
- }
}
},
"title": "OnWheels"
@@ -1183,10 +1183,6 @@
"stations": {
"description": "Bekijk, bewerk en voeg details to aan een treinstation",
"layers": {
- "3": {
- "description": "Laag met treinstations",
- "name": "Treinstations"
- },
"16": {
"description": "Schermen die treinen tonen die van dit station vertrekken",
"name": "Vertrektijdenborden",
@@ -1218,6 +1214,10 @@
"title": {
"render": "Vertrektijdenbord"
}
+ },
+ "3": {
+ "description": "Laag met treinstations",
+ "name": "Treinstations"
}
},
"title": "Treinstations"
@@ -1387,4 +1387,4 @@
"shortDescription": "Een kaart met vuilnisbakken",
"title": "Vuilnisbakken"
}
-}
\ No newline at end of file
+}
diff --git a/langs/themes/pl.json b/langs/themes/pl.json
index d744ef078..24065c794 100644
--- a/langs/themes/pl.json
+++ b/langs/themes/pl.json
@@ -875,6 +875,33 @@
"onwheels": {
"description": "Na tej mapie pokazane są miejsca publicznie dostępne dla wózków inwalidzkich, które można łatwo dodać",
"layers": {
+ "19": {
+ "override": {
+ "=title": {
+ "render": "Statystyki"
+ }
+ }
+ },
+ "20": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Import"
+ }
+ }
+ },
+ "1": {
+ "render": {
+ "special": {
+ "message": "Dodaj wszystkie sugerowane znaczniki"
+ }
+ }
+ }
+ }
+ }
+ },
"4": {
"override": {
"filter": {
@@ -917,33 +944,6 @@
"override": {
"name": "Miejsca parkingowe dla niepełnosprawnych"
}
- },
- "19": {
- "override": {
- "=title": {
- "render": "Statystyki"
- }
- }
- },
- "20": {
- "override": {
- "+tagRenderings": {
- "0": {
- "render": {
- "special": {
- "text": "Import"
- }
- }
- },
- "1": {
- "render": {
- "special": {
- "message": "Dodaj wszystkie sugerowane znaczniki"
- }
- }
- }
- }
- }
}
},
"title": "Na kółkach"
@@ -1104,10 +1104,6 @@
"stations": {
"description": "Przeglądaj, edytuj i dodawaj szczegóły do stacji kolejowej",
"layers": {
- "3": {
- "description": "Warstwa pokazująca stacje kolejowe",
- "name": "Stacje Kolejowe"
- },
"16": {
"description": "Ekrany wyświetlające pokazujące pociągi, które odjadą z tej stacji",
"name": "Tablice odjazdów",
@@ -1139,6 +1135,10 @@
"title": {
"render": "Tablica odjazdów"
}
+ },
+ "3": {
+ "description": "Warstwa pokazująca stacje kolejowe",
+ "name": "Stacje Kolejowe"
}
},
"title": "Stacje Kolejowe"
@@ -1260,4 +1260,4 @@
"shortDescription": "Mapa koszy na śmieci",
"title": "Kosz na śmieci"
}
-}
\ No newline at end of file
+}
diff --git a/package-lock.json b/package-lock.json
index eb8106838..7eacefce5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -55,6 +55,7 @@
"marked": "^12.0.2",
"monaco-editor": "^0.46.0",
"name-suggestion-index": "^6.0.20240422",
+ "npm": "^10.7.0",
"opening_hours": "^3.6.0",
"osm-auth": "^2.2.0",
"osmtogeojson": "^3.0.0-beta.5",
@@ -7825,9 +7826,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001609",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz",
- "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true,
"funding": [
{
@@ -12166,6 +12167,2429 @@
"node": ">=0.10.0"
}
},
+ "node_modules/npm": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-10.7.0.tgz",
+ "integrity": "sha512-FXylyYSXNjgXx3l82BT8RSQvCoGIQ3h8YdRFGKNvo3Pv/bKscK4pdWkx/onwTpHDqGw+oeLf4Rxln9WVyxAxlQ==",
+ "bundleDependencies": [
+ "@isaacs/string-locale-compare",
+ "@npmcli/arborist",
+ "@npmcli/config",
+ "@npmcli/fs",
+ "@npmcli/map-workspaces",
+ "@npmcli/package-json",
+ "@npmcli/promise-spawn",
+ "@npmcli/redact",
+ "@npmcli/run-script",
+ "@sigstore/tuf",
+ "abbrev",
+ "archy",
+ "cacache",
+ "chalk",
+ "ci-info",
+ "cli-columns",
+ "fastest-levenshtein",
+ "fs-minipass",
+ "glob",
+ "graceful-fs",
+ "hosted-git-info",
+ "ini",
+ "init-package-json",
+ "is-cidr",
+ "json-parse-even-better-errors",
+ "libnpmaccess",
+ "libnpmdiff",
+ "libnpmexec",
+ "libnpmfund",
+ "libnpmhook",
+ "libnpmorg",
+ "libnpmpack",
+ "libnpmpublish",
+ "libnpmsearch",
+ "libnpmteam",
+ "libnpmversion",
+ "make-fetch-happen",
+ "minimatch",
+ "minipass",
+ "minipass-pipeline",
+ "ms",
+ "node-gyp",
+ "nopt",
+ "normalize-package-data",
+ "npm-audit-report",
+ "npm-install-checks",
+ "npm-package-arg",
+ "npm-pick-manifest",
+ "npm-profile",
+ "npm-registry-fetch",
+ "npm-user-validate",
+ "p-map",
+ "pacote",
+ "parse-conflict-json",
+ "proc-log",
+ "qrcode-terminal",
+ "read",
+ "semver",
+ "spdx-expression-parse",
+ "ssri",
+ "supports-color",
+ "tar",
+ "text-table",
+ "tiny-relative-date",
+ "treeverse",
+ "validate-npm-package-name",
+ "which",
+ "write-file-atomic"
+ ],
+ "workspaces": [
+ "docs",
+ "smoke-tests",
+ "mock-globals",
+ "mock-registry",
+ "workspaces/*"
+ ],
+ "dependencies": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/config": "^8.0.2",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/map-workspaces": "^3.0.6",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/promise-spawn": "^7.0.1",
+ "@npmcli/redact": "^2.0.0",
+ "@npmcli/run-script": "^8.1.0",
+ "@sigstore/tuf": "^2.3.2",
+ "abbrev": "^2.0.0",
+ "archy": "~1.0.0",
+ "cacache": "^18.0.2",
+ "chalk": "^5.3.0",
+ "ci-info": "^4.0.0",
+ "cli-columns": "^4.0.0",
+ "fastest-levenshtein": "^1.0.16",
+ "fs-minipass": "^3.0.3",
+ "glob": "^10.3.12",
+ "graceful-fs": "^4.2.11",
+ "hosted-git-info": "^7.0.1",
+ "ini": "^4.1.2",
+ "init-package-json": "^6.0.2",
+ "is-cidr": "^5.0.5",
+ "json-parse-even-better-errors": "^3.0.1",
+ "libnpmaccess": "^8.0.1",
+ "libnpmdiff": "^6.0.3",
+ "libnpmexec": "^8.0.0",
+ "libnpmfund": "^5.0.1",
+ "libnpmhook": "^10.0.0",
+ "libnpmorg": "^6.0.1",
+ "libnpmpack": "^7.0.0",
+ "libnpmpublish": "^9.0.2",
+ "libnpmsearch": "^7.0.0",
+ "libnpmteam": "^6.0.0",
+ "libnpmversion": "^6.0.0",
+ "make-fetch-happen": "^13.0.1",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.0.4",
+ "minipass-pipeline": "^1.2.4",
+ "ms": "^2.1.2",
+ "node-gyp": "^10.1.0",
+ "nopt": "^7.2.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-audit-report": "^5.0.0",
+ "npm-install-checks": "^6.3.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-profile": "^9.0.2",
+ "npm-registry-fetch": "^17.0.0",
+ "npm-user-validate": "^2.0.0",
+ "p-map": "^4.0.0",
+ "pacote": "^18.0.3",
+ "parse-conflict-json": "^3.0.1",
+ "proc-log": "^4.2.0",
+ "qrcode-terminal": "^0.12.0",
+ "read": "^3.0.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0",
+ "ssri": "^10.0.5",
+ "supports-color": "^9.4.0",
+ "tar": "^6.2.1",
+ "text-table": "~0.2.0",
+ "tiny-relative-date": "^1.3.0",
+ "treeverse": "^3.0.0",
+ "validate-npm-package-name": "^5.0.0",
+ "which": "^4.0.0",
+ "write-file-atomic": "^5.0.1"
+ },
+ "bin": {
+ "npm": "bin/npm-cli.js",
+ "npx": "bin/npx-cli.js"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/npm/node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/@isaacs/string-locale-compare": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/@npmcli/agent": {
+ "version": "2.2.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/arborist": {
+ "version": "7.5.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/metavuln-calculator": "^7.1.0",
+ "@npmcli/name-from-folder": "^2.0.0",
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/query": "^3.1.0",
+ "@npmcli/redact": "^2.0.0",
+ "@npmcli/run-script": "^8.1.0",
+ "bin-links": "^4.0.1",
+ "cacache": "^18.0.0",
+ "common-ancestor-path": "^1.0.1",
+ "hosted-git-info": "^7.0.1",
+ "json-parse-even-better-errors": "^3.0.0",
+ "json-stringify-nice": "^1.1.4",
+ "minimatch": "^9.0.4",
+ "nopt": "^7.0.0",
+ "npm-install-checks": "^6.2.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^17.0.0",
+ "pacote": "^18.0.1",
+ "parse-conflict-json": "^3.0.0",
+ "proc-log": "^4.2.0",
+ "proggy": "^2.0.0",
+ "promise-all-reject-late": "^1.0.0",
+ "promise-call-limit": "^3.0.1",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "ssri": "^10.0.5",
+ "treeverse": "^3.0.0",
+ "walk-up-path": "^3.0.1"
+ },
+ "bin": {
+ "arborist": "bin/index.js"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/config": {
+ "version": "8.3.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/map-workspaces": "^3.0.2",
+ "ci-info": "^4.0.0",
+ "ini": "^4.1.2",
+ "nopt": "^7.0.0",
+ "proc-log": "^4.2.0",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.5",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/fs": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/git": {
+ "version": "5.0.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/promise-spawn": "^7.0.0",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/installed-package-contents": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-bundled": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "bin": {
+ "installed-package-contents": "bin/index.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/map-workspaces": {
+ "version": "3.0.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/metavuln-calculator": {
+ "version": "7.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cacache": "^18.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "pacote": "^18.0.0",
+ "proc-log": "^4.1.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/name-from-folder": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/node-gyp": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/package-json": {
+ "version": "5.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/promise-spawn": {
+ "version": "7.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/query": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.10"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/redact": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@npmcli/run-script": {
+ "version": "8.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "node-gyp": "^10.0.0",
+ "proc-log": "^4.0.0",
+ "which": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/bundle": {
+ "version": "2.3.1",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/protobuf-specs": "^0.3.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/core": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/protobuf-specs": {
+ "version": "0.3.1",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/sign": {
+ "version": "2.3.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^2.3.0",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.1",
+ "make-fetch-happen": "^13.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/tuf": {
+ "version": "2.3.2",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "tuf-js": "^2.2.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@sigstore/verify": {
+ "version": "1.2.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^2.3.1",
+ "@sigstore/core": "^1.1.0",
+ "@sigstore/protobuf-specs": "^0.3.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@tufjs/canonical-json": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/@tufjs/models": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tufjs/canonical-json": "2.0.0",
+ "minimatch": "^9.0.3"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/abbrev": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/agent-base": {
+ "version": "7.1.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/npm/node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/aproba": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/archy": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/bin-links": {
+ "version": "4.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cmd-shim": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "read-cmd-shim": "^4.0.0",
+ "write-file-atomic": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/builtins": {
+ "version": "5.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/cacache": {
+ "version": "18.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/chalk": {
+ "version": "5.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/chownr": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/ci-info": {
+ "version": "4.0.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/cidr-regex": {
+ "version": "4.0.5",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "ip-regex": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/npm/node_modules/clean-stack": {
+ "version": "2.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/npm/node_modules/cli-columns": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/npm/node_modules/cmd-shim": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/color-convert": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/color-name": {
+ "version": "1.1.4",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/common-ancestor-path": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/npm/node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/npm/node_modules/cssesc": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm/node_modules/debug": {
+ "version": "4.3.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/npm/node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/diff": {
+ "version": "5.2.0",
+ "inBundle": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/npm/node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/encoding": {
+ "version": "0.1.13",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/npm/node_modules/env-paths": {
+ "version": "2.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/npm/node_modules/err-code": {
+ "version": "2.0.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/exponential-backoff": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/npm/node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "node_modules/npm/node_modules/foreground-child": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/fs-minipass": {
+ "version": "3.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/function-bind": {
+ "version": "1.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/npm/node_modules/glob": {
+ "version": "10.3.12",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/hasown": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/npm/node_modules/hosted-git-info": {
+ "version": "7.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^10.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "inBundle": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/npm/node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/npm/node_modules/https-proxy-agent": {
+ "version": "7.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/npm/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm/node_modules/ignore-walk": {
+ "version": "6.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minimatch": "^9.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/npm/node_modules/indent-string": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/ini": {
+ "version": "4.1.2",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/init-package-json": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/package-json": "^5.0.0",
+ "npm-package-arg": "^11.0.0",
+ "promzard": "^1.0.0",
+ "read": "^3.0.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/ip-address": {
+ "version": "9.0.5",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/npm/node_modules/ip-regex": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/is-cidr": {
+ "version": "5.0.5",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "cidr-regex": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/npm/node_modules/is-core-module": {
+ "version": "2.13.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/npm/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/is-lambda": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/isexe": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/jackspeak": {
+ "version": "2.3.6",
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/npm/node_modules/jsbn": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/json-stringify-nice": {
+ "version": "1.1.4",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/jsonparse": {
+ "version": "1.3.1",
+ "engines": [
+ "node >= 0.2.0"
+ ],
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/just-diff": {
+ "version": "6.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/just-diff-apply": {
+ "version": "5.5.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/libnpmaccess": {
+ "version": "8.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmdiff": {
+ "version": "6.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/installed-package-contents": "^2.1.0",
+ "binary-extensions": "^2.3.0",
+ "diff": "^5.1.0",
+ "minimatch": "^9.0.4",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1",
+ "tar": "^6.2.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmexec": {
+ "version": "8.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^8.1.0",
+ "ci-info": "^4.0.0",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1",
+ "proc-log": "^4.2.0",
+ "read": "^3.0.1",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "walk-up-path": "^3.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmfund": {
+ "version": "5.0.9",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^7.2.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmhook": {
+ "version": "10.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmorg": {
+ "version": "6.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmpack": {
+ "version": "7.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^8.1.0",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmpublish": {
+ "version": "9.0.7",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ci-info": "^4.0.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.7",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.5"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmsearch": {
+ "version": "7.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-registry-fetch": "^17.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmteam": {
+ "version": "6.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/libnpmversion": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^5.0.6",
+ "@npmcli/run-script": "^8.1.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/lru-cache": {
+ "version": "10.2.2",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/npm/node_modules/make-fetch-happen": {
+ "version": "13.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/minimatch": {
+ "version": "9.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/minipass": {
+ "version": "7.0.4",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-collect": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-fetch": {
+ "version": "3.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "encoding": "^0.1.13"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-flush": {
+ "version": "1.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-json-stream": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsonparse": "^1.3.1",
+ "minipass": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-json-stream/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-pipeline": {
+ "version": "1.2.4",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-sized": {
+ "version": "1.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/minizlib": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/npm/node_modules/minizlib/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/mkdirp": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/ms": {
+ "version": "2.1.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/mute-stream": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/negotiator": {
+ "version": "0.6.3",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp": {
+ "version": "10.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "env-paths": "^2.2.0",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^13.0.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^4.0.0"
+ },
+ "bin": {
+ "node-gyp": "bin/node-gyp.js"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/node-gyp/node_modules/proc-log": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/nopt": {
+ "version": "7.2.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/normalize-package-data": {
+ "version": "6.0.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-audit-report": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-bundled": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-install-checks": {
+ "version": "6.3.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "semver": "^7.1.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-package-arg": {
+ "version": "11.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-packlist": {
+ "version": "8.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "ignore-walk": "^6.0.4"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-pick-manifest": {
+ "version": "9.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-profile": {
+ "version": "9.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-registry-fetch": {
+ "version": "17.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/redact": "^2.0.0",
+ "make-fetch-happen": "^13.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-json-stream": "^1.0.1",
+ "minizlib": "^2.1.2",
+ "npm-package-arg": "^11.0.0",
+ "proc-log": "^4.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/npm-user-validate": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/p-map": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/pacote": {
+ "version": "18.0.3",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "@npmcli/git": "^5.0.0",
+ "@npmcli/installed-package-contents": "^2.0.1",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "@npmcli/run-script": "^8.0.0",
+ "cacache": "^18.0.0",
+ "fs-minipass": "^3.0.0",
+ "minipass": "^7.0.2",
+ "npm-package-arg": "^11.0.0",
+ "npm-packlist": "^8.0.0",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.0.0",
+ "promise-retry": "^2.0.1",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11"
+ },
+ "bin": {
+ "pacote": "lib/bin.js"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/parse-conflict-json": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "just-diff": "^6.0.0",
+ "just-diff-apply": "^5.2.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/path-key": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/path-scurry": {
+ "version": "1.10.2",
+ "inBundle": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/postcss-selector-parser": {
+ "version": "6.0.16",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/npm/node_modules/proc-log": {
+ "version": "4.2.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/proggy": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/promise-all-reject-late": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/promise-call-limit": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/promise-retry": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/promzard": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "read": "^3.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/qrcode-terminal": {
+ "version": "0.12.0",
+ "inBundle": true,
+ "bin": {
+ "qrcode-terminal": "bin/qrcode-terminal.js"
+ }
+ },
+ "node_modules/npm/node_modules/read": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "mute-stream": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/read-cmd-shim": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/retry": {
+ "version": "0.12.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/npm/node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/npm/node_modules/semver": {
+ "version": "7.6.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/semver/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/shebang-command": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/npm/node_modules/sigstore": {
+ "version": "2.3.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@sigstore/bundle": "^2.3.1",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.1",
+ "@sigstore/sign": "^2.3.0",
+ "@sigstore/tuf": "^2.3.1",
+ "@sigstore/verify": "^1.2.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/smart-buffer": {
+ "version": "4.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/socks": {
+ "version": "2.8.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0",
+ "npm": ">= 3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/socks-proxy-agent": {
+ "version": "8.0.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.1",
+ "debug": "^4.3.4",
+ "socks": "^2.7.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/npm/node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "inBundle": true,
+ "license": "CC-BY-3.0"
+ },
+ "node_modules/npm/node_modules/spdx-expression-parse": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/spdx-license-ids": {
+ "version": "3.0.17",
+ "inBundle": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/npm/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "inBundle": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/npm/node_modules/ssri": {
+ "version": "10.0.5",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.3"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/string-width": {
+ "version": "4.2.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/supports-color": {
+ "version": "9.4.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/tar": {
+ "version": "6.2.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm/node_modules/tar/node_modules/fs-minipass": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": {
+ "version": "3.3.6",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/tar/node_modules/minipass": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm/node_modules/text-table": {
+ "version": "0.2.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/tiny-relative-date": {
+ "version": "1.3.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/treeverse": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/tuf-js": {
+ "version": "2.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@tufjs/models": "2.0.0",
+ "debug": "^4.3.4",
+ "make-fetch-happen": "^13.0.0"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/unique-filename": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/unique-slug": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/validate-npm-package-name": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "builtins": "^5.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/walk-up-path": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/npm/node_modules/which": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/which/node_modules/isexe": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/npm/node_modules/write-file-atomic": {
+ "version": "5.0.1",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm/node_modules/yallist": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
"node_modules/nth-check": {
"version": "2.1.1",
"dev": true,
@@ -22571,9 +24995,9 @@
"version": "2.0.1"
},
"caniuse-lite": {
- "version": "1.0.30001609",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz",
- "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==",
+ "version": "1.0.30001612",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz",
+ "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==",
"dev": true
},
"canonicalize": {
@@ -25334,6 +27758,1558 @@
"normalize-path": {
"version": "3.0.0"
},
+ "npm": {
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/npm/-/npm-10.7.0.tgz",
+ "integrity": "sha512-FXylyYSXNjgXx3l82BT8RSQvCoGIQ3h8YdRFGKNvo3Pv/bKscK4pdWkx/onwTpHDqGw+oeLf4Rxln9WVyxAxlQ==",
+ "requires": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/config": "^8.0.2",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/map-workspaces": "^3.0.6",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/promise-spawn": "^7.0.1",
+ "@npmcli/redact": "^2.0.0",
+ "@npmcli/run-script": "^8.1.0",
+ "@sigstore/tuf": "^2.3.2",
+ "abbrev": "^2.0.0",
+ "archy": "~1.0.0",
+ "cacache": "^18.0.2",
+ "chalk": "^5.3.0",
+ "ci-info": "^4.0.0",
+ "cli-columns": "^4.0.0",
+ "fastest-levenshtein": "^1.0.16",
+ "fs-minipass": "^3.0.3",
+ "glob": "^10.3.12",
+ "graceful-fs": "^4.2.11",
+ "hosted-git-info": "^7.0.1",
+ "ini": "^4.1.2",
+ "init-package-json": "^6.0.2",
+ "is-cidr": "^5.0.5",
+ "json-parse-even-better-errors": "^3.0.1",
+ "libnpmaccess": "^8.0.1",
+ "libnpmdiff": "^6.0.3",
+ "libnpmexec": "^8.0.0",
+ "libnpmfund": "^5.0.1",
+ "libnpmhook": "^10.0.0",
+ "libnpmorg": "^6.0.1",
+ "libnpmpack": "^7.0.0",
+ "libnpmpublish": "^9.0.2",
+ "libnpmsearch": "^7.0.0",
+ "libnpmteam": "^6.0.0",
+ "libnpmversion": "^6.0.0",
+ "make-fetch-happen": "^13.0.1",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.0.4",
+ "minipass-pipeline": "^1.2.4",
+ "ms": "^2.1.2",
+ "node-gyp": "^10.1.0",
+ "nopt": "^7.2.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-audit-report": "^5.0.0",
+ "npm-install-checks": "^6.3.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-profile": "^9.0.2",
+ "npm-registry-fetch": "^17.0.0",
+ "npm-user-validate": "^2.0.0",
+ "p-map": "^4.0.0",
+ "pacote": "^18.0.3",
+ "parse-conflict-json": "^3.0.1",
+ "proc-log": "^4.2.0",
+ "qrcode-terminal": "^0.12.0",
+ "read": "^3.0.1",
+ "semver": "^7.6.0",
+ "spdx-expression-parse": "^4.0.0",
+ "ssri": "^10.0.5",
+ "supports-color": "^9.4.0",
+ "tar": "^6.2.1",
+ "text-table": "~0.2.0",
+ "tiny-relative-date": "^1.3.0",
+ "treeverse": "^3.0.0",
+ "validate-npm-package-name": "^5.0.0",
+ "which": "^4.0.0",
+ "write-file-atomic": "^5.0.1"
+ },
+ "dependencies": {
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "bundled": true,
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "bundled": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "@isaacs/string-locale-compare": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "@npmcli/agent": {
+ "version": "2.2.2",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^7.1.0",
+ "http-proxy-agent": "^7.0.0",
+ "https-proxy-agent": "^7.0.1",
+ "lru-cache": "^10.0.1",
+ "socks-proxy-agent": "^8.0.3"
+ }
+ },
+ "@npmcli/arborist": {
+ "version": "7.5.1",
+ "bundled": true,
+ "requires": {
+ "@isaacs/string-locale-compare": "^1.1.0",
+ "@npmcli/fs": "^3.1.0",
+ "@npmcli/installed-package-contents": "^2.1.0",
+ "@npmcli/map-workspaces": "^3.0.2",
+ "@npmcli/metavuln-calculator": "^7.1.0",
+ "@npmcli/name-from-folder": "^2.0.0",
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/query": "^3.1.0",
+ "@npmcli/redact": "^2.0.0",
+ "@npmcli/run-script": "^8.1.0",
+ "bin-links": "^4.0.1",
+ "cacache": "^18.0.0",
+ "common-ancestor-path": "^1.0.1",
+ "hosted-git-info": "^7.0.1",
+ "json-parse-even-better-errors": "^3.0.0",
+ "json-stringify-nice": "^1.1.4",
+ "minimatch": "^9.0.4",
+ "nopt": "^7.0.0",
+ "npm-install-checks": "^6.2.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^17.0.0",
+ "pacote": "^18.0.1",
+ "parse-conflict-json": "^3.0.0",
+ "proc-log": "^4.2.0",
+ "proggy": "^2.0.0",
+ "promise-all-reject-late": "^1.0.0",
+ "promise-call-limit": "^3.0.1",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "ssri": "^10.0.5",
+ "treeverse": "^3.0.0",
+ "walk-up-path": "^3.0.1"
+ }
+ },
+ "@npmcli/config": {
+ "version": "8.3.1",
+ "bundled": true,
+ "requires": {
+ "@npmcli/map-workspaces": "^3.0.2",
+ "ci-info": "^4.0.0",
+ "ini": "^4.1.2",
+ "nopt": "^7.0.0",
+ "proc-log": "^4.2.0",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.5",
+ "walk-up-path": "^3.0.1"
+ }
+ },
+ "@npmcli/fs": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^7.3.5"
+ }
+ },
+ "@npmcli/git": {
+ "version": "5.0.6",
+ "bundled": true,
+ "requires": {
+ "@npmcli/promise-spawn": "^7.0.0",
+ "lru-cache": "^10.0.1",
+ "npm-pick-manifest": "^9.0.0",
+ "proc-log": "^4.0.0",
+ "promise-inflight": "^1.0.1",
+ "promise-retry": "^2.0.1",
+ "semver": "^7.3.5",
+ "which": "^4.0.0"
+ }
+ },
+ "@npmcli/installed-package-contents": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "npm-bundled": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ }
+ },
+ "@npmcli/map-workspaces": {
+ "version": "3.0.6",
+ "bundled": true,
+ "requires": {
+ "@npmcli/name-from-folder": "^2.0.0",
+ "glob": "^10.2.2",
+ "minimatch": "^9.0.0",
+ "read-package-json-fast": "^3.0.0"
+ }
+ },
+ "@npmcli/metavuln-calculator": {
+ "version": "7.1.0",
+ "bundled": true,
+ "requires": {
+ "cacache": "^18.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "pacote": "^18.0.0",
+ "proc-log": "^4.1.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "@npmcli/name-from-folder": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "@npmcli/node-gyp": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "@npmcli/package-json": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "@npmcli/git": "^5.0.0",
+ "glob": "^10.2.2",
+ "hosted-git-info": "^7.0.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "normalize-package-data": "^6.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.5.3"
+ }
+ },
+ "@npmcli/promise-spawn": {
+ "version": "7.0.1",
+ "bundled": true,
+ "requires": {
+ "which": "^4.0.0"
+ }
+ },
+ "@npmcli/query": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "@npmcli/redact": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "@npmcli/run-script": {
+ "version": "8.1.0",
+ "bundled": true,
+ "requires": {
+ "@npmcli/node-gyp": "^3.0.0",
+ "@npmcli/package-json": "^5.0.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "node-gyp": "^10.0.0",
+ "proc-log": "^4.0.0",
+ "which": "^4.0.0"
+ }
+ },
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "bundled": true,
+ "optional": true
+ },
+ "@sigstore/bundle": {
+ "version": "2.3.1",
+ "bundled": true,
+ "requires": {
+ "@sigstore/protobuf-specs": "^0.3.1"
+ }
+ },
+ "@sigstore/core": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "@sigstore/protobuf-specs": {
+ "version": "0.3.1",
+ "bundled": true
+ },
+ "@sigstore/sign": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "@sigstore/bundle": "^2.3.0",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.1",
+ "make-fetch-happen": "^13.0.0"
+ }
+ },
+ "@sigstore/tuf": {
+ "version": "2.3.2",
+ "bundled": true,
+ "requires": {
+ "@sigstore/protobuf-specs": "^0.3.0",
+ "tuf-js": "^2.2.0"
+ }
+ },
+ "@sigstore/verify": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "@sigstore/bundle": "^2.3.1",
+ "@sigstore/core": "^1.1.0",
+ "@sigstore/protobuf-specs": "^0.3.1"
+ }
+ },
+ "@tufjs/canonical-json": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "@tufjs/models": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "@tufjs/canonical-json": "2.0.0",
+ "minimatch": "^9.0.3"
+ }
+ },
+ "abbrev": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "agent-base": {
+ "version": "7.1.1",
+ "bundled": true,
+ "requires": {
+ "debug": "^4.3.4"
+ }
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "bundled": true
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "bundled": true
+ },
+ "aproba": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "archy": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "bin-links": {
+ "version": "4.0.3",
+ "bundled": true,
+ "requires": {
+ "cmd-shim": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "read-cmd-shim": "^4.0.0",
+ "write-file-atomic": "^5.0.0"
+ }
+ },
+ "binary-extensions": {
+ "version": "2.3.0",
+ "bundled": true
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "builtins": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^7.0.0"
+ }
+ },
+ "cacache": {
+ "version": "18.0.2",
+ "bundled": true,
+ "requires": {
+ "@npmcli/fs": "^3.1.0",
+ "fs-minipass": "^3.0.0",
+ "glob": "^10.2.2",
+ "lru-cache": "^10.0.1",
+ "minipass": "^7.0.3",
+ "minipass-collect": "^2.0.1",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "p-map": "^4.0.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11",
+ "unique-filename": "^3.0.0"
+ }
+ },
+ "chalk": {
+ "version": "5.3.0",
+ "bundled": true
+ },
+ "chownr": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "ci-info": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "cidr-regex": {
+ "version": "4.0.5",
+ "bundled": true,
+ "requires": {
+ "ip-regex": "^5.0.0"
+ }
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "bundled": true
+ },
+ "cli-columns": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "cmd-shim": {
+ "version": "6.0.2",
+ "bundled": true
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "bundled": true
+ },
+ "common-ancestor-path": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "bundled": true,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "bundled": true,
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "bundled": true
+ }
+ }
+ },
+ "diff": {
+ "version": "5.2.0",
+ "bundled": true
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "bundled": true
+ },
+ "encoding": {
+ "version": "0.1.13",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "bundled": true
+ },
+ "err-code": {
+ "version": "2.0.3",
+ "bundled": true
+ },
+ "exponential-backoff": {
+ "version": "3.1.1",
+ "bundled": true
+ },
+ "fastest-levenshtein": {
+ "version": "1.0.16",
+ "bundled": true
+ },
+ "foreground-child": {
+ "version": "3.1.1",
+ "bundled": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "fs-minipass": {
+ "version": "3.0.3",
+ "bundled": true,
+ "requires": {
+ "minipass": "^7.0.3"
+ }
+ },
+ "function-bind": {
+ "version": "1.1.2",
+ "bundled": true
+ },
+ "glob": {
+ "version": "10.3.12",
+ "bundled": true,
+ "requires": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.11",
+ "bundled": true
+ },
+ "hasown": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "function-bind": "^1.1.2"
+ }
+ },
+ "hosted-git-info": {
+ "version": "7.0.1",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^10.0.1"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.1",
+ "bundled": true
+ },
+ "http-proxy-agent": {
+ "version": "7.0.2",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "https-proxy-agent": {
+ "version": "7.0.4",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.6.3",
+ "bundled": true,
+ "optional": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ }
+ },
+ "ignore-walk": {
+ "version": "6.0.4",
+ "bundled": true,
+ "requires": {
+ "minimatch": "^9.0.0"
+ }
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "bundled": true
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "ini": {
+ "version": "4.1.2",
+ "bundled": true
+ },
+ "init-package-json": {
+ "version": "6.0.2",
+ "bundled": true,
+ "requires": {
+ "@npmcli/package-json": "^5.0.0",
+ "npm-package-arg": "^11.0.0",
+ "promzard": "^1.0.0",
+ "read": "^3.0.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4",
+ "validate-npm-package-name": "^5.0.0"
+ }
+ },
+ "ip-address": {
+ "version": "9.0.5",
+ "bundled": true,
+ "requires": {
+ "jsbn": "1.1.0",
+ "sprintf-js": "^1.1.3"
+ }
+ },
+ "ip-regex": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "is-cidr": {
+ "version": "5.0.5",
+ "bundled": true,
+ "requires": {
+ "cidr-regex": "^4.0.4"
+ }
+ },
+ "is-core-module": {
+ "version": "2.13.1",
+ "bundled": true,
+ "requires": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "is-lambda": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "jackspeak": {
+ "version": "2.3.6",
+ "bundled": true,
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "jsbn": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "json-stringify-nice": {
+ "version": "1.1.4",
+ "bundled": true
+ },
+ "jsonparse": {
+ "version": "1.3.1",
+ "bundled": true
+ },
+ "just-diff": {
+ "version": "6.0.2",
+ "bundled": true
+ },
+ "just-diff-apply": {
+ "version": "5.5.0",
+ "bundled": true
+ },
+ "libnpmaccess": {
+ "version": "8.0.5",
+ "bundled": true,
+ "requires": {
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.0"
+ }
+ },
+ "libnpmdiff": {
+ "version": "6.1.1",
+ "bundled": true,
+ "requires": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/installed-package-contents": "^2.1.0",
+ "binary-extensions": "^2.3.0",
+ "diff": "^5.1.0",
+ "minimatch": "^9.0.4",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1",
+ "tar": "^6.2.1"
+ }
+ },
+ "libnpmexec": {
+ "version": "8.1.0",
+ "bundled": true,
+ "requires": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^8.1.0",
+ "ci-info": "^4.0.0",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1",
+ "proc-log": "^4.2.0",
+ "read": "^3.0.1",
+ "read-package-json-fast": "^3.0.2",
+ "semver": "^7.3.7",
+ "walk-up-path": "^3.0.1"
+ }
+ },
+ "libnpmfund": {
+ "version": "5.0.9",
+ "bundled": true,
+ "requires": {
+ "@npmcli/arborist": "^7.2.1"
+ }
+ },
+ "libnpmhook": {
+ "version": "10.0.4",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ }
+ },
+ "libnpmorg": {
+ "version": "6.0.5",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ }
+ },
+ "libnpmpack": {
+ "version": "7.0.1",
+ "bundled": true,
+ "requires": {
+ "@npmcli/arborist": "^7.2.1",
+ "@npmcli/run-script": "^8.1.0",
+ "npm-package-arg": "^11.0.2",
+ "pacote": "^18.0.1"
+ }
+ },
+ "libnpmpublish": {
+ "version": "9.0.7",
+ "bundled": true,
+ "requires": {
+ "ci-info": "^4.0.0",
+ "normalize-package-data": "^6.0.0",
+ "npm-package-arg": "^11.0.2",
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.7",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.5"
+ }
+ },
+ "libnpmsearch": {
+ "version": "7.0.4",
+ "bundled": true,
+ "requires": {
+ "npm-registry-fetch": "^17.0.0"
+ }
+ },
+ "libnpmteam": {
+ "version": "6.0.4",
+ "bundled": true,
+ "requires": {
+ "aproba": "^2.0.0",
+ "npm-registry-fetch": "^17.0.0"
+ }
+ },
+ "libnpmversion": {
+ "version": "6.0.1",
+ "bundled": true,
+ "requires": {
+ "@npmcli/git": "^5.0.6",
+ "@npmcli/run-script": "^8.1.0",
+ "json-parse-even-better-errors": "^3.0.0",
+ "proc-log": "^4.2.0",
+ "semver": "^7.3.7"
+ }
+ },
+ "lru-cache": {
+ "version": "10.2.2",
+ "bundled": true
+ },
+ "make-fetch-happen": {
+ "version": "13.0.1",
+ "bundled": true,
+ "requires": {
+ "@npmcli/agent": "^2.0.0",
+ "cacache": "^18.0.0",
+ "http-cache-semantics": "^4.1.1",
+ "is-lambda": "^1.0.1",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-flush": "^1.0.5",
+ "minipass-pipeline": "^1.2.4",
+ "negotiator": "^0.6.3",
+ "proc-log": "^4.2.0",
+ "promise-retry": "^2.0.1",
+ "ssri": "^10.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.4",
+ "bundled": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "minipass": {
+ "version": "7.0.4",
+ "bundled": true
+ },
+ "minipass-collect": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "minipass": "^7.0.3"
+ }
+ },
+ "minipass-fetch": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "encoding": "^0.1.13",
+ "minipass": "^7.0.3",
+ "minipass-sized": "^1.0.3",
+ "minizlib": "^2.1.2"
+ }
+ },
+ "minipass-flush": {
+ "version": "1.0.5",
+ "bundled": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass-json-stream": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "jsonparse": "^1.3.1",
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass-pipeline": {
+ "version": "1.2.4",
+ "bundled": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass-sized": {
+ "version": "1.0.3",
+ "bundled": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minizlib": {
+ "version": "2.1.2",
+ "bundled": true,
+ "requires": {
+ "minipass": "^3.0.0",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "1.0.4",
+ "bundled": true
+ },
+ "ms": {
+ "version": "2.1.3",
+ "bundled": true
+ },
+ "mute-stream": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "bundled": true
+ },
+ "node-gyp": {
+ "version": "10.1.0",
+ "bundled": true,
+ "requires": {
+ "env-paths": "^2.2.0",
+ "exponential-backoff": "^3.1.1",
+ "glob": "^10.3.10",
+ "graceful-fs": "^4.2.6",
+ "make-fetch-happen": "^13.0.0",
+ "nopt": "^7.0.0",
+ "proc-log": "^3.0.0",
+ "semver": "^7.3.5",
+ "tar": "^6.1.2",
+ "which": "^4.0.0"
+ },
+ "dependencies": {
+ "proc-log": {
+ "version": "3.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "nopt": {
+ "version": "7.2.0",
+ "bundled": true,
+ "requires": {
+ "abbrev": "^2.0.0"
+ }
+ },
+ "normalize-package-data": {
+ "version": "6.0.0",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^7.0.0",
+ "is-core-module": "^2.8.1",
+ "semver": "^7.3.5",
+ "validate-npm-package-license": "^3.0.4"
+ }
+ },
+ "npm-audit-report": {
+ "version": "5.0.0",
+ "bundled": true
+ },
+ "npm-bundled": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "npm-normalize-package-bin": "^3.0.0"
+ }
+ },
+ "npm-install-checks": {
+ "version": "6.3.0",
+ "bundled": true,
+ "requires": {
+ "semver": "^7.1.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "npm-package-arg": {
+ "version": "11.0.2",
+ "bundled": true,
+ "requires": {
+ "hosted-git-info": "^7.0.0",
+ "proc-log": "^4.0.0",
+ "semver": "^7.3.5",
+ "validate-npm-package-name": "^5.0.0"
+ }
+ },
+ "npm-packlist": {
+ "version": "8.0.2",
+ "bundled": true,
+ "requires": {
+ "ignore-walk": "^6.0.4"
+ }
+ },
+ "npm-pick-manifest": {
+ "version": "9.0.0",
+ "bundled": true,
+ "requires": {
+ "npm-install-checks": "^6.0.0",
+ "npm-normalize-package-bin": "^3.0.0",
+ "npm-package-arg": "^11.0.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "npm-profile": {
+ "version": "9.0.2",
+ "bundled": true,
+ "requires": {
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.0.0"
+ }
+ },
+ "npm-registry-fetch": {
+ "version": "17.0.0",
+ "bundled": true,
+ "requires": {
+ "@npmcli/redact": "^2.0.0",
+ "make-fetch-happen": "^13.0.0",
+ "minipass": "^7.0.2",
+ "minipass-fetch": "^3.0.0",
+ "minipass-json-stream": "^1.0.1",
+ "minizlib": "^2.1.2",
+ "npm-package-arg": "^11.0.0",
+ "proc-log": "^4.0.0"
+ }
+ },
+ "npm-user-validate": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "pacote": {
+ "version": "18.0.3",
+ "bundled": true,
+ "requires": {
+ "@npmcli/git": "^5.0.0",
+ "@npmcli/installed-package-contents": "^2.0.1",
+ "@npmcli/package-json": "^5.1.0",
+ "@npmcli/promise-spawn": "^7.0.0",
+ "@npmcli/run-script": "^8.0.0",
+ "cacache": "^18.0.0",
+ "fs-minipass": "^3.0.0",
+ "minipass": "^7.0.2",
+ "npm-package-arg": "^11.0.0",
+ "npm-packlist": "^8.0.0",
+ "npm-pick-manifest": "^9.0.0",
+ "npm-registry-fetch": "^17.0.0",
+ "proc-log": "^4.0.0",
+ "promise-retry": "^2.0.1",
+ "sigstore": "^2.2.0",
+ "ssri": "^10.0.0",
+ "tar": "^6.1.11"
+ }
+ },
+ "parse-conflict-json": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "just-diff": "^6.0.0",
+ "just-diff-apply": "^5.2.0"
+ }
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "bundled": true
+ },
+ "path-scurry": {
+ "version": "1.10.2",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.16",
+ "bundled": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "proc-log": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "proggy": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "promise-all-reject-late": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "promise-call-limit": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "bundled": true
+ },
+ "promise-retry": {
+ "version": "2.0.1",
+ "bundled": true,
+ "requires": {
+ "err-code": "^2.0.2",
+ "retry": "^0.12.0"
+ }
+ },
+ "promzard": {
+ "version": "1.0.1",
+ "bundled": true,
+ "requires": {
+ "read": "^3.0.1"
+ }
+ },
+ "qrcode-terminal": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "read": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "mute-stream": "^1.0.0"
+ }
+ },
+ "read-cmd-shim": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "read-package-json-fast": {
+ "version": "3.0.2",
+ "bundled": true,
+ "requires": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ }
+ },
+ "retry": {
+ "version": "0.12.0",
+ "bundled": true
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "bundled": true,
+ "optional": true
+ },
+ "semver": {
+ "version": "7.6.0",
+ "bundled": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "6.0.0",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "sigstore": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "@sigstore/bundle": "^2.3.1",
+ "@sigstore/core": "^1.0.0",
+ "@sigstore/protobuf-specs": "^0.3.1",
+ "@sigstore/sign": "^2.3.0",
+ "@sigstore/tuf": "^2.3.1",
+ "@sigstore/verify": "^1.2.0"
+ }
+ },
+ "smart-buffer": {
+ "version": "4.2.0",
+ "bundled": true
+ },
+ "socks": {
+ "version": "2.8.3",
+ "bundled": true,
+ "requires": {
+ "ip-address": "^9.0.5",
+ "smart-buffer": "^4.2.0"
+ }
+ },
+ "socks-proxy-agent": {
+ "version": "8.0.3",
+ "bundled": true,
+ "requires": {
+ "agent-base": "^7.1.1",
+ "debug": "^4.3.4",
+ "socks": "^2.7.1"
+ }
+ },
+ "spdx-correct": {
+ "version": "3.2.0",
+ "bundled": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.5.0",
+ "bundled": true
+ },
+ "spdx-expression-parse": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.17",
+ "bundled": true
+ },
+ "sprintf-js": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "ssri": {
+ "version": "10.0.5",
+ "bundled": true,
+ "requires": {
+ "minipass": "^7.0.3"
+ }
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "bundled": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "bundled": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "supports-color": {
+ "version": "9.4.0",
+ "bundled": true
+ },
+ "tar": {
+ "version": "6.2.1",
+ "bundled": true,
+ "requires": {
+ "chownr": "^2.0.0",
+ "fs-minipass": "^2.0.0",
+ "minipass": "^5.0.0",
+ "minizlib": "^2.1.1",
+ "mkdirp": "^1.0.3",
+ "yallist": "^4.0.0"
+ },
+ "dependencies": {
+ "fs-minipass": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "minipass": "^3.0.0"
+ },
+ "dependencies": {
+ "minipass": {
+ "version": "3.3.6",
+ "bundled": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ }
+ }
+ },
+ "minipass": {
+ "version": "5.0.0",
+ "bundled": true
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "bundled": true
+ },
+ "tiny-relative-date": {
+ "version": "1.3.0",
+ "bundled": true
+ },
+ "treeverse": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "tuf-js": {
+ "version": "2.2.0",
+ "bundled": true,
+ "requires": {
+ "@tufjs/models": "2.0.0",
+ "debug": "^4.3.4",
+ "make-fetch-happen": "^13.0.0"
+ }
+ },
+ "unique-filename": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "unique-slug": "^4.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "bundled": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ },
+ "dependencies": {
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "bundled": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ }
+ }
+ },
+ "validate-npm-package-name": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "builtins": "^5.0.0"
+ }
+ },
+ "walk-up-path": {
+ "version": "3.0.1",
+ "bundled": true
+ },
+ "which": {
+ "version": "4.0.0",
+ "bundled": true,
+ "requires": {
+ "isexe": "^3.1.1"
+ },
+ "dependencies": {
+ "isexe": {
+ "version": "3.1.1",
+ "bundled": true
+ }
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "bundled": true
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "bundled": true
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "bundled": true,
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "bundled": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ }
+ }
+ },
+ "write-file-atomic": {
+ "version": "5.0.1",
+ "bundled": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^4.0.1"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "bundled": true
+ }
+ }
+ },
"nth-check": {
"version": "2.1.1",
"dev": true,
diff --git a/package.json b/package.json
index 761cfb80a..fa95fade3 100644
--- a/package.json
+++ b/package.json
@@ -173,6 +173,7 @@
"marked": "^12.0.2",
"monaco-editor": "^0.46.0",
"name-suggestion-index": "^6.0.20240422",
+ "npm": "^10.7.0",
"opening_hours": "^3.6.0",
"osm-auth": "^2.2.0",
"osmtogeojson": "^3.0.0-beta.5",
diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css
index 9c32c095c..e7048a2c5 100644
--- a/public/css/index-tailwind-output.css
+++ b/public/css/index-tailwind-output.css
@@ -31,7 +31,7 @@
::before,
::after {
- --tw-content: "";
+ --tw-content: '';
}
/*
@@ -50,12 +50,10 @@ html {
/* 3 */
tab-size: 4;
/* 3 */
- font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
- "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
- "Segoe UI Symbol", "Noto Color Emoji";
+ font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
/* 4 */
-webkit-font-feature-settings: normal;
- font-feature-settings: normal;
+ font-feature-settings: normal;
/* 5 */
}
@@ -92,7 +90,7 @@ Add the correct text decoration in Chrome, Edge, and Safari.
abbr:where([title]) {
-webkit-text-decoration: underline dotted;
- text-decoration: underline dotted;
+ text-decoration: underline dotted;
}
/*
@@ -136,8 +134,7 @@ code,
kbd,
samp,
pre {
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
- "Courier New", monospace;
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
/* 1 */
font-size: 1em;
/* 2 */
@@ -228,9 +225,9 @@ select {
*/
button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
+[type='button'],
+[type='reset'],
+[type='submit'] {
-webkit-appearance: button;
/* 1 */
background-color: transparent;
@@ -277,7 +274,7 @@ Correct the cursor style of increment and decrement buttons in Safari.
2. Correct the outline style in Safari.
*/
-[type="search"] {
+[type='search'] {
-webkit-appearance: textfield;
/* 1 */
outline-offset: -2px;
@@ -362,8 +359,7 @@ textarea {
2. Set the default placeholder color to the user's configured gray 400 color.
*/
-input::-webkit-input-placeholder,
-textarea::-webkit-input-placeholder {
+input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
opacity: 1;
/* 1 */
color: #9ca3af;
@@ -431,9 +427,7 @@ video {
display: none;
}
-*,
-::before,
-::after {
+*, ::before, ::after {
--tw-border-spacing-x: 0;
--tw-border-spacing-y: 0;
--tw-translate-x: 0;
@@ -443,16 +437,16 @@ video {
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / 0.5);
@@ -460,24 +454,24 @@ video {
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
}
::-webkit-backdrop {
@@ -490,16 +484,16 @@ video {
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / 0.5);
@@ -507,24 +501,24 @@ video {
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
}
::backdrop {
@@ -537,16 +531,16 @@ video {
--tw-skew-y: 0;
--tw-scale-x: 1;
--tw-scale-y: 1;
- --tw-pan-x: ;
- --tw-pan-y: ;
- --tw-pinch-zoom: ;
+ --tw-pan-x: ;
+ --tw-pan-y: ;
+ --tw-pinch-zoom: ;
--tw-scroll-snap-strictness: proximity;
- --tw-ordinal: ;
- --tw-slashed-zero: ;
- --tw-numeric-figure: ;
- --tw-numeric-spacing: ;
- --tw-numeric-fraction: ;
- --tw-ring-inset: ;
+ --tw-ordinal: ;
+ --tw-slashed-zero: ;
+ --tw-numeric-figure: ;
+ --tw-numeric-spacing: ;
+ --tw-numeric-fraction: ;
+ --tw-ring-inset: ;
--tw-ring-offset-width: 0px;
--tw-ring-offset-color: #fff;
--tw-ring-color: rgb(59 130 246 / 0.5);
@@ -554,24 +548,24 @@ video {
--tw-ring-shadow: 0 0 #0000;
--tw-shadow: 0 0 #0000;
--tw-shadow-colored: 0 0 #0000;
- --tw-blur: ;
- --tw-brightness: ;
- --tw-contrast: ;
- --tw-grayscale: ;
- --tw-hue-rotate: ;
- --tw-invert: ;
- --tw-saturate: ;
- --tw-sepia: ;
- --tw-drop-shadow: ;
- --tw-backdrop-blur: ;
- --tw-backdrop-brightness: ;
- --tw-backdrop-contrast: ;
- --tw-backdrop-grayscale: ;
- --tw-backdrop-hue-rotate: ;
- --tw-backdrop-invert: ;
- --tw-backdrop-opacity: ;
- --tw-backdrop-saturate: ;
- --tw-backdrop-sepia: ;
+ --tw-blur: ;
+ --tw-brightness: ;
+ --tw-contrast: ;
+ --tw-grayscale: ;
+ --tw-hue-rotate: ;
+ --tw-invert: ;
+ --tw-saturate: ;
+ --tw-sepia: ;
+ --tw-drop-shadow: ;
+ --tw-backdrop-blur: ;
+ --tw-backdrop-brightness: ;
+ --tw-backdrop-contrast: ;
+ --tw-backdrop-grayscale: ;
+ --tw-backdrop-hue-rotate: ;
+ --tw-backdrop-invert: ;
+ --tw-backdrop-opacity: ;
+ --tw-backdrop-saturate: ;
+ --tw-backdrop-sepia: ;
}
.container {
@@ -787,10 +781,6 @@ video {
float: left;
}
-.m-2 {
- margin: 0.5rem;
-}
-
.m-4 {
margin: 1rem;
}
@@ -807,6 +797,10 @@ video {
margin: 2rem;
}
+.m-2 {
+ margin: 0.5rem;
+}
+
.m-1 {
margin: 0.25rem;
}
@@ -1332,40 +1326,32 @@ video {
}
.transform {
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
- rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
- scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate))
- skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x))
- scaleY(var(--tw-scale-y));
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.\!transform {
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y))
- rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y))
- scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate))
- skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x))
- scaleY(var(--tw-scale-y)) !important;
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
}
@-webkit-keyframes spin {
to {
-webkit-transform: rotate(360deg);
- transform: rotate(360deg);
+ transform: rotate(360deg);
}
}
@keyframes spin {
to {
-webkit-transform: rotate(360deg);
- transform: rotate(360deg);
+ transform: rotate(360deg);
}
}
.animate-spin {
-webkit-animation: spin 1s linear infinite;
- animation: spin 1s linear infinite;
+ animation: spin 1s linear infinite;
}
.cursor-pointer {
@@ -1382,7 +1368,7 @@ video {
.appearance-none {
-webkit-appearance: none;
- appearance: none;
+ appearance: none;
}
.grid-cols-3 {
@@ -1471,17 +1457,17 @@ video {
.gap-x-4 {
-webkit-column-gap: 1rem;
- column-gap: 1rem;
+ column-gap: 1rem;
}
.gap-x-0\.5 {
-webkit-column-gap: 0.125rem;
- column-gap: 0.125rem;
+ column-gap: 0.125rem;
}
.gap-x-0 {
-webkit-column-gap: 0px;
- column-gap: 0px;
+ column-gap: 0px;
}
.gap-y-2 {
@@ -1490,12 +1476,12 @@ video {
.gap-x-1 {
-webkit-column-gap: 0.25rem;
- column-gap: 0.25rem;
+ column-gap: 0.25rem;
}
.gap-x-2 {
-webkit-column-gap: 0.5rem;
- column-gap: 0.5rem;
+ column-gap: 0.5rem;
}
.gap-y-8 {
@@ -2044,44 +2030,37 @@ video {
.ordinal {
--tw-ordinal: ordinal;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.slashed-zero {
--tw-slashed-zero: slashed-zero;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.lining-nums {
--tw-numeric-figure: lining-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.oldstyle-nums {
--tw-numeric-figure: oldstyle-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.proportional-nums {
--tw-numeric-spacing: proportional-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tabular-nums {
--tw-numeric-spacing: tabular-nums;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.diagonal-fractions {
--tw-numeric-fraction: diagonal-fractions;
- font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
- var(--tw-numeric-spacing) var(--tw-numeric-fraction);
+ font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.tracking-tight {
@@ -2140,8 +2119,7 @@ video {
.shadow {
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000),
- var(--tw-shadow);
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
@@ -2154,10 +2132,8 @@ video {
}
.ring {
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width)
- var(--tw-ring-offset-color);
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width))
- var(--tw-ring-color);
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
@@ -2167,137 +2143,89 @@ video {
.blur {
--tw-blur: blur(8px);
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-md {
- --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
- drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-2xl {
--tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow {
--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.grayscale {
--tw-grayscale: grayscale(100%);
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.invert {
--tw-invert: invert(100%);
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.sepia {
--tw-sepia: sepia(100%);
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.\!filter {
- -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
- filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
- var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
+ -webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow) !important;
}
.backdrop-blur {
--tw-backdrop-blur: blur(8px);
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
- var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
- var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
- var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
- var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
- var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-grayscale {
--tw-backdrop-grayscale: grayscale(100%);
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
- var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
- var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
- var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
- var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
- var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-invert {
--tw-backdrop-invert: invert(100%);
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
- var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
- var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
- var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
- var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
- var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-sepia {
--tw-backdrop-sepia: sepia(100%);
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
- var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
- var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
- var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
- var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
- var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-filter {
- -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
- var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
- var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate)
- var(--tw-backdrop-sepia);
- backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast)
- var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert)
- var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
+ backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke,
- opacity, box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke,
- opacity, box-shadow, transform, filter, backdrop-filter;
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke,
- opacity, box-shadow, transform, filter, backdrop-filter, -webkit-transform, -webkit-filter,
- -webkit-backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 150ms;
}
@@ -2428,7 +2356,7 @@ input {
color: var(--foreground-color);
}
-input[type="text"] {
+input[type=text] {
width: 100%;
}
@@ -2451,12 +2379,12 @@ input[type="text"] {
.low-interaction {
background: var(--low-interaction-background);
- color: var(--low-interaction-foreground);
+ color: var(--low-interaction-foreground)
}
.interactive {
background: var(--interactive-background);
- color: var(--interactive-foreground);
+ color: var(--interactive-foreground)
}
.border-interactive {
@@ -2475,8 +2403,7 @@ input[type="text"] {
* This very important section defines what the various input elements look like within the 'low-interaction' and 'interactive'-blocks
*/
-button.small,
-.button.small {
+button.small, .button.small {
line-height: 1rem;
margin: 0;
margin-left: 0.5rem;
@@ -2497,8 +2424,7 @@ button.small,
color: var(--low-interaction-foreground);
}
-button,
-.button {
+button, .button {
align-items: center;
display: inline-flex;
line-height: 1.25rem;
@@ -2521,72 +2447,60 @@ button,
box-shadow: 0 5px 10px #88888888;
}
-button.selected,
-.button.selected {
+button.selected, .button.selected {
background-color: var(--catch-detail-color);
border-color: var(--catch-detail-color);
color: var(--catch-detail-foregroundcolor);
}
-button.selected svg path,
-.button.selected svg path {
+button.selected svg path, .button.selected svg path {
fill: var(--catch-detail-foregroundcolor) !important;
}
-button:not(.no-image-background):not(.soft) svg path,
-.button:not(.no-image-background):not(.soft) svg path {
+button:not(.no-image-background):not(.soft) svg path, .button:not(.no-image-background):not(.soft) svg path {
fill: var(--interactive-foreground) !important;
transition: all 250ms;
}
-.interactive button,
-.interactive .button {
+.interactive button, .interactive .button {
background: var(--interactive-background);
color: var(--interactive-foreground);
}
-button:hover,
-.button:hover {
+button:hover, .button:hover {
background-color: var(--catch-detail-color);
color: var(--catch-detail-foregroundcolor);
border: 2px solid var(--catch-detail-color-contrast);
}
-button:hover:not(.no-image-background) img,
-.button:hover:not(.no-image-background) img {
+button:hover:not(.no-image-background) img, .button:hover:not(.no-image-background) img {
background: var(--low-interaction-background);
border-radius: 100rem;
}
-button:hover:not(.no-image-background) svg path,
-.button:hover:not(.no-image-background) svg path {
+button:hover:not(.no-image-background) svg path, .button:hover:not(.no-image-background) svg path {
fill: var(--catch-detail-foregroundcolor) !important;
}
-button.disabled:hover:not(.no-image-background) svg path,
-.button.disabled:hover:not(.no-image-background) svg path {
+button.disabled:hover:not(.no-image-background) svg path, .button.disabled:hover:not(.no-image-background) svg path {
fill: var(--low-interaction-foreground) !important;
}
-button.primary,
-.button.primary {
+button.primary, .button.primary {
color: var(--button-foreground);
background: var(--button-background);
}
-button.primary:not(.no-image-background) svg path,
-.button.primary:not(.no-image-background) svg path {
+button.primary:not(.no-image-background) svg path, .button.primary:not(.no-image-background) svg path {
fill: var(--button-foreground) !important;
transition: all 250ms;
}
-button.disabled.low-interaction,
-.button.disabled.low-interaction {
+button.disabled.low-interaction, .button.disabled.low-interaction {
background-color: var(--low-interaction-background-50);
}
-button.disabled,
-.button.disabled {
+button.disabled, .button.disabled {
cursor: default;
border: 2px dashed var(--button-background);
background: unset;
@@ -2594,8 +2508,7 @@ button.disabled,
box-shadow: none;
}
-button.disabled:hover,
-.button.disabled:hover {
+button.disabled:hover, .button.disabled:hover {
cursor: default;
border: 2px dashed var(--button-background);
background: unset;
@@ -2609,41 +2522,36 @@ button.link {
}
button.link:hover {
- color: unset;
+ color:unset;
}
-.interactive button.disabled svg path,
-.interactive .button.disabled svg path {
+.interactive button.disabled svg path, .interactive .button.disabled svg path {
fill: var(--interactive-foreground) !important;
}
-.low-interaction button.disabled svg path,
-.low-interaction .button.disabled svg path {
+.low-interaction button.disabled svg path, .low-interaction .button.disabled svg path {
fill: var(--low-interaction-foreground) !important;
}
-.normal-background button.disabled svg path,
-.normal-background .button.disabled svg path {
+.normal-background button.disabled svg path, .normal-background .button.disabled svg path {
fill: var(--foreground-color) !important;
}
.links-w-full a:not(.weblate-link) {
display: flex;
-webkit-column-gap: 0.25rem;
- column-gap: 0.25rem;
+ column-gap: 0.25rem;
padding-left: 0.5rem;
padding-right: 0.5rem;
width: 100%;
}
-button.soft,
-.button.soft {
+button.soft, .button.soft {
border: 2px solid var(--interactive-background);
margin: 0;
}
-button.soft:hover,
-.button.soft:hover {
+button.soft:hover, .button.soft:hover {
background-color: var(--interactive-background);
color: var(--interactive-foreground);
border: 2px solid var(--catch-detail-color-contrast);
@@ -2681,7 +2589,7 @@ select:hover {
border-color: var(--catch-detail-color-contrast);
}
-.neutral-label {
+.neutral-label{
/** This label styles as normal text. It's power comes from the many :not(.neutral-label) entries.
* Placed here for autocompletion
*/
@@ -2709,7 +2617,7 @@ label.button {
label:hover:not(.neutral-label) {
background-color: var(--catch-detail-color);
color: var(--catch-detail-foregroundcolor);
- border: 2px solid var(--interactive-contrast);
+ border: 2px solid var(--interactive-contrast)
}
label:not(.no-image-background):not(.neutral-label) img {
@@ -2813,12 +2721,11 @@ textarea {
.link-underline .subtle a {
-webkit-text-decoration: underline 1px #7193bb88;
- text-decoration: underline 1px #7193bb88;
+ text-decoration: underline 1px #7193bb88;
color: #7193bb;
}
-.literal-code,
-code {
+.literal-code, code {
/* A codeblock */
display: inline-block;
background-color: lightgray;
@@ -2879,7 +2786,7 @@ code {
border: unset;
border-radius: 5rem;
-webkit-backdrop-filter: var(--low-interaction-background);
- backdrop-filter: var(--low-interaction-background);
+ backdrop-filter: var(--low-interaction-background);
}
.no-weblate .weblate-link {
@@ -2888,12 +2795,12 @@ code {
.link-underline a {
-webkit-text-decoration: underline 1px var(--foreground-color);
- text-decoration: underline 1px var(--foreground-color);
+ text-decoration: underline 1px var(--foreground-color);
}
a.link-underline {
-webkit-text-decoration: underline 1px var(--foreground-color);
- text-decoration: underline 1px var(--foreground-color);
+ text-decoration: underline 1px var(--foreground-color);
}
.link-no-underline a {
@@ -2941,30 +2848,30 @@ a.link-underline {
}
svg.apply-fill path {
- fill: var(--svg-color);
+ fill: var(--svg-color)
}
.compass_arrow {
- width: calc(2.5rem - 1px);
- height: calc(2.5rem - 1px);
+ width: calc( 2.5rem - 1px ) ;
+ height: calc( 2.5rem - 1px )
}
@media (min-width: 640px) {
.compass_arrow {
- width: calc(2.75rem - 1px);
- height: calc(2.75rem - 1px);
+ width: calc( 2.75rem - 1px ) ;
+ height: calc( 2.75rem - 1px )
}
}
@-webkit-keyframes glowing-drop-shadow {
from {
-webkit-filter: drop-shadow(5px 5px 60px rgb(128 128 128 / 0.6));
- filter: drop-shadow(5px 5px 60px rgb(128 128 128 / 0.6));
+ filter: drop-shadow(5px 5px 60px rgb(128 128 128 / 0.6));
}
to {
-webkit-filter: drop-shadow(5px 5px 80px rgb(0.5 0.5 0.5 / 0.8));
- filter: drop-shadow(5px 5px 80px rgb(0.5 0.5 0.5 / 0.8));
+ filter: drop-shadow(5px 5px 80px rgb(0.5 0.5 0.5 / 0.8));
}
}
@@ -2973,12 +2880,12 @@ svg.apply-fill path {
from {
-webkit-transform: translateX(0%);
- transform: translateX(0%);
+ transform: translateX(0%);
}
to {
-webkit-transform: translateX(calc(-100% + 42px));
- transform: translateX(calc(-100% + 42px));
+ transform: translateX(calc(-100% + 42px));
}
}
@@ -2987,12 +2894,12 @@ svg.apply-fill path {
from {
-webkit-transform: translateX(0%);
- transform: translateX(0%);
+ transform: translateX(0%);
}
to {
-webkit-transform: translateX(calc(-100% + 42px));
- transform: translateX(calc(-100% + 42px));
+ transform: translateX(calc(-100% + 42px));
}
}
diff --git a/scripts/ScriptUtils.ts b/scripts/ScriptUtils.ts
index 6393f75d4..ff65aa73e 100644
--- a/scripts/ScriptUtils.ts
+++ b/scripts/ScriptUtils.ts
@@ -224,10 +224,12 @@ export default class ScriptUtils {
})
const timeoutPromise = new Promise((resolve, reject) => {
setTimeout(
- () =>
- timeoutSecs === undefined
- ? reject(new Error("Timout reached"))
- : resolve("timeout"),
+ () => {
+ if(timeoutSecs === undefined){
+ return // No resolve
+ }
+ resolve("timeout")
+ },
(timeoutSecs ?? 10) * 1000
)
})
diff --git a/scripts/osm2pgsql/tilecountServer.ts b/scripts/osm2pgsql/tilecountServer.ts
index 3c28aa803..8fa8fb162 100644
--- a/scripts/osm2pgsql/tilecountServer.ts
+++ b/scripts/osm2pgsql/tilecountServer.ts
@@ -38,6 +38,7 @@ class OsmPoiDatabase {
this._client = new Client(connectionString)
}
+
async getCount(
layer: string,
bbox: [[number, number], [number, number]] = undefined
diff --git a/scripts/server.ts b/scripts/server.ts
index 6f85d762e..3af794b93 100644
--- a/scripts/server.ts
+++ b/scripts/server.ts
@@ -91,6 +91,12 @@ export class Server {
try {
const result = await handler.handle(path, url.searchParams)
+ if(result === undefined){
+ res.writeHead(500)
+ res.write("Could not fetch this website, probably blocked by them")
+ res.end()
+ return
+ }
if (typeof result !== "string") {
console.error(
"Internal server error: handling",
@@ -103,7 +109,7 @@ export class Server {
}
const extraHeaders = handler.addHeaders ?? {}
res.writeHead(200, { "Content-Type": handler.mimetype, ...extraHeaders })
- res.write(result)
+ res.write(""+result)
res.end()
} catch (e) {
console.error("Could not handle request:", e)
diff --git a/scripts/serverLdScrape.ts b/scripts/serverLdScrape.ts
index fd5123d09..41f3d9d96 100644
--- a/scripts/serverLdScrape.ts
+++ b/scripts/serverLdScrape.ts
@@ -4,26 +4,30 @@ import parse from "node-html-parser"
import ScriptUtils from "./ScriptUtils"
class ServerLdScrape extends Script {
+
constructor() {
super("Starts a server which fetches a webpage and returns embedded LD+JSON")
}
private static async attemptDownload(url: string) {
const host = new URL(url).host
+ const random = Math.floor(Math.random()*100)
+ const random1 = Math.floor(Math.random()*100)
+
const headers = [
{
"User-Agent":
- "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36",
+ `Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.${random}.${random1} Safari/537.36`,
"accept": "application/html"
- },
- {
+ }
+ /* {
"User-Agent": "MapComplete/openstreetmap scraper; pietervdvn@posteo.net; https://github.com/pietervdvn/MapComplete",
"accept": "application/html"
},
{
Host: host,
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:122.0) Gecko/20100101 Firefox/122.0",
- "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,* /*;q=0.8", TODO remove space in * /*
"Accept-Language": "en-US,en;q=0.5",
"Accept-Encoding": "gzip, deflate, br",
"Alt-Used": host,
@@ -36,7 +40,7 @@ class ServerLdScrape extends Script {
"Sec-Fetch-User":"?1",
"TE": "trailers",
Connection: "keep-alive"
- }
+ }*/
]
for (let i = 0; i < headers.length; i++) {
try {
@@ -47,7 +51,7 @@ class ServerLdScrape extends Script {
10
)
} catch (e) {
- console.error("Could not download", url, "with headers", headers[i])
+ console.error("Could not download", url, "with headers", headers[i], "due to", e)
}
}
}
@@ -67,10 +71,9 @@ class ServerLdScrape extends Script {
console.log("URL", url)
if (cache[url] !== undefined) {
const { date, contents } = cache[url]
- console.log(">>>", date, contents)
// In seconds
const tdiff = (new Date().getTime() - (date?.getTime() ?? 0)) / 1000
- if (tdiff < 24 * 60 * 60) {
+ if (tdiff < 31 * 24 * 60 * 60) {
return JSON.stringify(contents)
}
}
@@ -83,6 +86,9 @@ class ServerLdScrape extends Script {
if (dloaded === "timeout") {
return "{\"#\":\"timout reached\"}"
}
+ if(dloaded === undefined){
+ return undefined
+ }
} while (dloaded["redirect"])
if (dloaded["content"].startsWith("{")) {
diff --git a/src/Logic/Actors/InitialMapPositioning.ts b/src/Logic/Actors/InitialMapPositioning.ts
index 55b9aaf4b..c73025a5c 100644
--- a/src/Logic/Actors/InitialMapPositioning.ts
+++ b/src/Logic/Actors/InitialMapPositioning.ts
@@ -2,10 +2,15 @@ import { ImmutableStore, Store, UIEventSource } from "../UIEventSource"
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
import { LocalStorageSource } from "../Web/LocalStorageSource"
import { QueryParameters } from "../Web/QueryParameters"
+import Hash from "../Web/Hash"
+import OsmObjectDownloader from "../Osm/OsmObjectDownloader"
+import { OsmObject } from "../Osm/OsmObject"
+import Constants from "../../Models/Constants"
/**
* This actor is responsible to set the map location.
* It will attempt to
+ * - Set the map to the position of the selected element
* - Set the map to the position as passed in by the query parameters (if available)
* - Set the map to the position remembered in LocalStorage (if available)
* - Set the map to the layout default
@@ -16,6 +21,7 @@ export default class InitialMapPositioning {
public zoom: UIEventSource
public location: UIEventSource<{ lon: number; lat: number }>
public useTerrain: Store
+
constructor(layoutToUse: LayoutConfig) {
function localStorageSynced(
key: string,
@@ -38,6 +44,8 @@ export default class InitialMapPositioning {
return src
}
+ const initialHash = Hash.hash.data
+
// -- Location control initialization
this.zoom = localStorageSynced(
"z",
@@ -62,5 +70,19 @@ export default class InitialMapPositioning {
lon.setData(loc.lon)
})
this.useTerrain = new ImmutableStore(layoutToUse.enableTerrain)
+
+ if (initialHash?.match(/^(node|way|relation)\/[0-9]+$/)) {
+ const [type, id] = initialHash.split("/")
+ OsmObjectDownloader.RawDownloadObjectAsync(type, Number(id), Constants.osmAuthConfig.url + "/").then(osmObject => {
+ if (osmObject === "deleted") {
+ return
+ }
+ const targetLayer = layoutToUse.getMatchingLayer(osmObject.tags)
+ this.zoom.setData(Math.max(this.zoom.data, targetLayer.minzoom))
+ const [lat, lon] = osmObject.centerpoint()
+ this.location.setData({ lon, lat })
+ })
+ }
+
}
}
diff --git a/src/Logic/Osm/OsmObject.ts b/src/Logic/Osm/OsmObject.ts
index d743b58c9..03048f408 100644
--- a/src/Logic/Osm/OsmObject.ts
+++ b/src/Logic/Osm/OsmObject.ts
@@ -127,7 +127,9 @@ export abstract class OsmObject {
return result
}
- // The centerpoint of the feature, as [lat, lon]
+ /** The centerpoint of the feature, as [lat, lon]
+ *
+ */
public abstract centerpoint(): [number, number]
public abstract asGeoJson(): any
diff --git a/src/Logic/Osm/OsmObjectDownloader.ts b/src/Logic/Osm/OsmObjectDownloader.ts
index 211827577..4baed2032 100644
--- a/src/Logic/Osm/OsmObjectDownloader.ts
+++ b/src/Logic/Osm/OsmObjectDownloader.ts
@@ -62,7 +62,7 @@ export default class OsmObjectDownloader {
if (idN < 0) {
obj = this.constructObject(<"node" | "way" | "relation">type, idN)
} else {
- obj = await this.RawDownloadObjectAsync(type, idN, maxCacheAgeInSecs)
+ obj = await OsmObjectDownloader.RawDownloadObjectAsync(type, idN, this.backend, maxCacheAgeInSecs)
}
if (obj === "deleted") {
return obj
@@ -211,13 +211,22 @@ export default class OsmObjectDownloader {
}
}
- private async RawDownloadObjectAsync(
+ /**
+ * Only to be used in exceptional cases
+ * @param type
+ * @param idN
+ * @param backend
+ * @param maxCacheAgeInSecs
+ * @constructor
+ */
+ public static async RawDownloadObjectAsync(
type: string,
idN: number,
+ backend: string,
maxCacheAgeInSecs?: number
): Promise {
const full = type !== "node" ? "/full" : ""
- const url = `${this.backend}api/0.6/${type}/${idN}${full}`
+ const url = `${backend}api/0.6/${type}/${idN}${full}`
const rawData = await Utils.downloadJsonCachedAdvanced(
url,
(maxCacheAgeInSecs ?? 10) * 1000
@@ -227,7 +236,7 @@ export default class OsmObjectDownloader {
}
// A full query might contain more then just the requested object (e.g. nodes that are part of a way, where we only want the way)
const parsed = OsmObject.ParseObjects(rawData["content"].elements)
- // Lets fetch the object we need
+ // Let us fetch the object we need
for (const osmObject of parsed) {
if (osmObject.type !== type) {
continue
diff --git a/src/Logic/SimpleMetaTagger.ts b/src/Logic/SimpleMetaTagger.ts
index 90dd0b9a9..15d358668 100644
--- a/src/Logic/SimpleMetaTagger.ts
+++ b/src/Logic/SimpleMetaTagger.ts
@@ -435,7 +435,7 @@ export default class SimpleMetaTaggers {
() => feature.properties["_country"]
)
let canonical =
- denomination?.canonicalValue(value, defaultDenom == denomination) ??
+ denomination?.canonicalValue(value, defaultDenom == denomination, unit.inverted) ??
undefined
if (canonical === value) {
break
diff --git a/src/Logic/Web/LinkedDataLoader.ts b/src/Logic/Web/LinkedDataLoader.ts
index 1528b4323..2d02c611c 100644
--- a/src/Logic/Web/LinkedDataLoader.ts
+++ b/src/Logic/Web/LinkedDataLoader.ts
@@ -331,6 +331,9 @@ export default class LinkedDataLoader {
return
}
output[key] = output[key].map((v) => applyF(v))
+ if(!output[key].some(v => v !== undefined)){
+ delete output[key]
+ }
}
function asBoolean(key: string, invert: boolean = false) {
@@ -379,6 +382,7 @@ export default class LinkedDataLoader {
}
return "€" + Number(p)
})
+
if (output["charge"] && output["timeUnit"]) {
const duration =
Number(output["chargeEnd"] ?? "1") - Number(output["chargeStart"] ?? "0")
diff --git a/src/Models/Denomination.ts b/src/Models/Denomination.ts
index 4ec3ffb91..51ccb3715 100644
--- a/src/Models/Denomination.ts
+++ b/src/Models/Denomination.ts
@@ -1,6 +1,7 @@
import { Translation, TypedTranslation } from "../UI/i18n/Translation"
import { DenominationConfigJson } from "./ThemeConfig/Json/UnitConfigJson"
import Translations from "../UI/i18n/Translations"
+import { Validator } from "../UI/InputElement/Validator"
/**
* A 'denomination' is one way to write a certain quantity.
@@ -15,6 +16,7 @@ export class Denomination {
public readonly alternativeDenominations: string[]
public readonly human: TypedTranslation<{ quantity: string }>
public readonly humanSingular?: Translation
+ private readonly _validator: Validator
private constructor(
canonical: string,
@@ -24,7 +26,8 @@ export class Denomination {
addSpace: boolean,
alternativeDenominations: string[],
_human: TypedTranslation<{ quantity: string }>,
- _humanSingular?: Translation
+ _humanSingular: Translation,
+ validator: Validator
) {
this.canonical = canonical
this._canonicalSingular = _canonicalSingular
@@ -34,9 +37,10 @@ export class Denomination {
this.alternativeDenominations = alternativeDenominations
this.human = _human
this.humanSingular = _humanSingular
+ this._validator = validator
}
- public static fromJson(json: DenominationConfigJson, context: string) {
+ public static fromJson(json: DenominationConfigJson, validator: Validator, context: string) {
context = `${context}.unit(${json.canonicalDenomination})`
const canonical = json.canonicalDenomination.trim()
if (canonical === undefined) {
@@ -68,7 +72,8 @@ export class Denomination {
json.addSpace ?? false,
json.alternativeDenomination?.map((v) => v.trim()) ?? [],
humanTexts,
- Translations.T(json.humanSingular, context + "humanSingular")
+ Translations.T(json.humanSingular, context + "humanSingular"),
+ validator
)
}
@@ -81,7 +86,8 @@ export class Denomination {
this.addSpace,
this.alternativeDenominations,
this.human,
- this.humanSingular
+ this.humanSingular,
+ this._validator
)
}
@@ -94,7 +100,8 @@ export class Denomination {
this.addSpace,
[this.canonical, ...this.alternativeDenominations],
this.human,
- this.humanSingular
+ this.humanSingular,
+ this._validator
)
}
@@ -103,19 +110,21 @@ export class Denomination {
* @param value the value from OSM
* @param actAsDefault if set and the value can be parsed as number, will be parsed and trimmed
*
+ * import Validators from "../UI/InputElement/Validators"
+ *
* const unit = Denomination.fromJson({
* canonicalDenomination: "m",
* alternativeDenomination: ["meter"],
* human: {
* en: "{quantity} meter"
* }
- * }, "test")
- * unit.canonicalValue("42m", true) // =>"42 m"
- * unit.canonicalValue("42", true) // =>"42 m"
- * unit.canonicalValue("42 m", true) // =>"42 m"
- * unit.canonicalValue("42 meter", true) // =>"42 m"
- * unit.canonicalValue("42m", true) // =>"42 m"
- * unit.canonicalValue("42", true) // =>"42 m"
+ * }, Validators.get("float"), "test")
+ * unit.canonicalValue("42m", true, false) // =>"42 m"
+ * unit.canonicalValue("42", true, false) // =>"42 m"
+ * unit.canonicalValue("42 m", true, false) // =>"42 m"
+ * unit.canonicalValue("42 meter", true, false) // =>"42 m"
+ * unit.canonicalValue("42m", true, false) // =>"42 m"
+ * unit.canonicalValue("42", true, false) // =>"42 m"
*
* // Should be trimmed if canonical is empty
* const unit = Denomination.fromJson({
@@ -124,22 +133,26 @@ export class Denomination {
* human: {
* en: "{quantity} meter"
* }
- * }, "test")
- * unit.canonicalValue("42m", true) // =>"42"
- * unit.canonicalValue("42", true) // =>"42"
- * unit.canonicalValue("42 m", true) // =>"42"
- * unit.canonicalValue("42 meter", true) // =>"42"
+ * }, Validators.get("float"), "test")
+ * unit.canonicalValue("42m", true, false) // =>"42"
+ * unit.canonicalValue("42", true, false) // =>"42"
+ * unit.canonicalValue("42 m", true, false) // =>"42"
+ * unit.canonicalValue("42 meter", true, false) // =>"42"
*
*
*/
- public canonicalValue(value: string, actAsDefault: boolean): string {
+ public canonicalValue(value: string, actAsDefault: boolean, inverted: boolean): string {
if (value === undefined) {
return undefined
}
- const stripped = this.StrippedValue(value, actAsDefault)
+ const stripped = this.StrippedValue(value, actAsDefault, inverted)
if (stripped === null) {
return null
}
+ if(inverted){
+ return (stripped + "/" + this.canonical).trim()
+
+ }
if (stripped === "1" && this._canonicalSingular !== undefined) {
return ("1 " + this._canonicalSingular).trim()
}
@@ -153,8 +166,8 @@ export class Denomination {
*
* Returns null if it doesn't match this unit
*/
- public StrippedValue(value: string, actAsDefault: boolean): string {
- if (value === undefined) {
+ public StrippedValue(value: string, actAsDefault: boolean, inverted: boolean): string {
+ if (value === undefined || value === "") {
return undefined
}
@@ -171,10 +184,16 @@ export class Denomination {
function substr(key) {
if (self.prefix) {
- return value.substr(key.length).trim()
- } else {
- return value.substring(0, value.length - key.length).trim()
+ return value.substring(key.length).trim()
}
+ let trimmed = value.substring(0, value.length - key.length).trim()
+ if(!inverted){
+ return trimmed
+ }
+ if(trimmed.endsWith("/")){
+ trimmed = trimmed.substring(0, trimmed.length - 1).trim()
+ }
+ return trimmed
}
if (this.canonical !== "" && startsWith(this.canonical.toLowerCase())) {
@@ -199,11 +218,13 @@ export class Denomination {
return null
}
- const parsed = Number(value.trim())
- if (!isNaN(parsed)) {
- return value.trim()
+ if(!this._validator.isValid(value.trim())){
+ return null
}
+ return this._validator.reformat(value.trim())
+ }
- return null
+ withValidator(validator: Validator) {
+ return new Denomination(this.canonical, this._canonicalSingular, this.useIfNoUnitGiven, this.prefix, this.addSpace, this.alternativeDenominations, this.human, this.humanSingular, validator)
}
}
diff --git a/src/Models/ThemeConfig/Json/LayerConfigJson.ts b/src/Models/ThemeConfig/Json/LayerConfigJson.ts
index 3b31068ff..a2053e097 100644
--- a/src/Models/ThemeConfig/Json/LayerConfigJson.ts
+++ b/src/Models/ThemeConfig/Json/LayerConfigJson.ts
@@ -519,6 +519,7 @@ export interface LayerConfigJson {
/**
* Either a list with [{"key": "unitname", "key2": {"quantity": "unitname", "denominations": ["denom", "denom"]}}]
*
+ * Use `"inverted": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)
*
* @see UnitConfigJson
*
@@ -526,7 +527,7 @@ export interface LayerConfigJson {
*/
units?: (
| UnitConfigJson
- | Record
+ | Record
)[]
/**
diff --git a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts
index db6c00346..8642e3d31 100644
--- a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts
+++ b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts
@@ -229,6 +229,7 @@ export interface QuestionableTagRenderingConfigJson extends TagRenderingConfigJs
* A (translated) text that is shown (as gray text) within the textfield
* type: translation
* group: expert
+ * ifunset: No specific placeholder is set, show the type of the textfield
*/
placeholder?: Translatable
diff --git a/src/Models/ThemeConfig/Json/TagRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
index 450634f71..5a77327f7 100644
--- a/src/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
+++ b/src/Models/ThemeConfig/Json/TagRenderingConfigJson.ts
@@ -88,7 +88,7 @@ export interface TagRenderingConfigJson {
*
* question: When should this item be shown?
* type: tag
- * ifunset: No specific condition set; always show this tagRendering or ask the question if unkown
+ * ifunset: No specific condition set; always show this tagRendering or show this question if unknown
*
* Only show this tagrendering (or ask the question) if the selected object also matches the tags specified as `condition`.
*
@@ -132,9 +132,10 @@ export interface TagRenderingConfigJson {
/** question: When should this item be shown (including special conditions)?
* type: tag
+ * ifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown
*
- * If set, this tag will be evaluated agains the _usersettings/application state_ table.
- * Enable 'show debug info' in user settings to see available options.
+ * If set, this tag will be evaluated against the _usersettings/application state_ table.
+ * Enable 'show debug info' in user settings to see available options (at the settings-tab).
* Note that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_
*/
metacondition?: TagConfigJson
diff --git a/src/Models/ThemeConfig/LayerConfig.ts b/src/Models/ThemeConfig/LayerConfig.ts
index 49cea46b7..5d0a15fc0 100644
--- a/src/Models/ThemeConfig/LayerConfig.ts
+++ b/src/Models/ThemeConfig/LayerConfig.ts
@@ -97,18 +97,6 @@ export default class LayerConfig extends WithContextLoader {
this.allowSplit = json.allowSplit ?? false
this.name = Translations.T(json.name, translationContext + ".name")
- if (json.units !== undefined && !Array.isArray(json.units)) {
- throw (
- "At " +
- context +
- ".units: the 'units'-section should be a list; you probably have an object there"
- )
- }
- this.units = [].concat(
- ...(json.units ?? []).map((unitJson, i) =>
- Unit.fromJson(unitJson, `${context}.unit[${i}]`)
- )
- )
if (json.description !== undefined) {
if (Object.keys(json.description).length === 0) {
@@ -280,6 +268,18 @@ export default class LayerConfig extends WithContextLoader {
this.id + ".tagRenderings[" + i + "]"
)
)
+ if (json.units !== undefined && !Array.isArray(json.units)) {
+ throw (
+ "At " +
+ context +
+ ".units: the 'units'-section should be a list; you probably have an object there"
+ )
+ }
+ this.units = [].concat(
+ ...(json.units ?? []).map((unitJson, i) =>
+ Unit.fromJson(unitJson, this.tagRenderings,`${context}.unit[${i}]`)
+ )
+ )
if (
json.filter !== undefined &&
diff --git a/src/Models/Unit.ts b/src/Models/Unit.ts
index 3ed096095..2a82a8ee0 100644
--- a/src/Models/Unit.ts
+++ b/src/Models/Unit.ts
@@ -2,6 +2,10 @@ import BaseUIElement from "../UI/BaseUIElement"
import { Denomination } from "./Denomination"
import UnitConfigJson from "./ThemeConfig/Json/UnitConfigJson"
import unit from "../../assets/layers/unit/unit.json"
+import { QuestionableTagRenderingConfigJson } from "./ThemeConfig/Json/QuestionableTagRenderingConfigJson"
+import TagRenderingConfig from "./ThemeConfig/TagRenderingConfig"
+import Validators, { ValidatorType } from "../UI/InputElement/Validators"
+import { Validator } from "../UI/InputElement/Validator"
export class Unit {
private static allUnits = this.initUnits()
@@ -10,14 +14,20 @@ export class Unit {
public readonly denominationsSorted: Denomination[]
public readonly eraseInvalid: boolean
public readonly quantity: string
+ private readonly _validator: Validator
+ public readonly inverted: boolean
constructor(
quantity: string,
appliesToKeys: string[],
applicableDenominations: Denomination[],
- eraseInvalid: boolean
+ eraseInvalid: boolean,
+ validator: Validator,
+ inverted: boolean = false
) {
this.quantity = quantity
+ this._validator = validator
+ this.inverted = inverted
this.appliesToKeys = new Set(appliesToKeys)
this.denominations = applicableDenominations
this.eraseInvalid = eraseInvalid
@@ -66,13 +76,47 @@ export class Unit {
static fromJson(
json:
| UnitConfigJson
- | Record,
+ | Record,
+ tagRenderings: TagRenderingConfig[],
ctx: string
): Unit[] {
- if (!json.appliesToKey && !json.quantity) {
- return this.loadFromLibrary(json, ctx)
+
+ let types: Record = {}
+ for (const tagRendering of tagRenderings) {
+ if (tagRendering.freeform?.type) {
+ types[tagRendering.freeform.key] = tagRendering.freeform.type
+ }
}
- return [this.parse(json, ctx)]
+
+ if (!json.appliesToKey && !json.quantity) {
+ return this.loadFromLibrary(json, types, ctx)
+ }
+ return this.parse(json, types, ctx)
+ }
+
+ private static parseDenomination(json: UnitConfigJson, validator: Validator, appliesToKey: string, ctx: string): Unit {
+ const applicable = json.applicableUnits.map((u, i) =>
+ Denomination.fromJson(u, validator, `${ctx}.units[${i}]`)
+ )
+
+ if (
+ json.defaultInput &&
+ !applicable.some((denom) => denom.canonical.trim() === json.defaultInput)
+ ) {
+ throw `${ctx}: no denomination has the specified default denomination. The default denomination is '${
+ json.defaultInput
+ }', but the available denominations are ${applicable
+ .map((denom) => denom.canonical)
+ .join(", ")}`
+ }
+
+ return new Unit(
+ json.quantity ?? "",
+ appliesToKey === undefined ? undefined : [appliesToKey],
+ applicable,
+ json.eraseInvalidValues ?? false,
+ validator
+ )
}
/**
@@ -113,7 +157,7 @@ export class Unit {
* ]
* }, "test")
*/
- private static parse(json: UnitConfigJson, ctx: string): Unit {
+ private static parse(json: UnitConfigJson, types: Record, ctx: string): Unit[] {
const appliesTo = json.appliesToKey
for (let i = 0; i < (appliesTo ?? []).length; i++) {
let key = appliesTo[i]
@@ -127,32 +171,22 @@ export class Unit {
}
// Some keys do have unit handling
- const applicable = json.applicableUnits.map((u, i) =>
- Denomination.fromJson(u, `${ctx}.units[${i}]`)
- )
- if (
- json.defaultInput &&
- !applicable.some((denom) => denom.canonical.trim() === json.defaultInput)
- ) {
- throw `${ctx}: no denomination has the specified default denomination. The default denomination is '${
- json.defaultInput
- }', but the available denominations are ${applicable
- .map((denom) => denom.canonical)
- .join(", ")}`
+ const units: Unit[] = []
+ if (appliesTo === undefined) {
+ units.push(this.parseDenomination(json, Validators.get("float"), undefined, ctx))
}
- return new Unit(
- json.quantity ?? "",
- appliesTo,
- applicable,
- json.eraseInvalidValues ?? false
- )
+ for (const key of appliesTo ?? []) {
+ const validator = Validators.get(types[key] ?? "float")
+ units.push(this.parseDenomination(json, validator, undefined, ctx))
+ }
+ return units
}
private static initUnits(): Map {
const m = new Map()
- const units = (unit.units).map((json, i) =>
- this.parse(json, "unit.json.units." + i)
+ const units = (unit.units).flatMap((json, i) =>
+ this.parse(json, {}, "unit.json.units." + i)
)
for (const unit of units) {
@@ -179,17 +213,19 @@ export class Unit {
private static loadFromLibrary(
spec: Record<
string,
- string | { quantity: string; denominations: string[]; canonical?: string }
+ string | { quantity: string; denominations: string[]; canonical?: string, inverted?: boolean }
>,
+ types: Record,
ctx: string
): Unit[] {
const units: Unit[] = []
for (const key in spec) {
const toLoad = spec[key]
+ const validator = Validators.get(types[key] ?? "float")
if (typeof toLoad === "string") {
const loaded = this.getFromLibrary(toLoad, ctx)
units.push(
- new Unit(loaded.quantity, [key], loaded.denominations, loaded.eraseInvalid)
+ new Unit(loaded.quantity, [key], loaded.denominations, loaded.eraseInvalid, validator, toLoad["inverted"])
)
continue
}
@@ -213,12 +249,13 @@ export class Unit {
const denoms = toLoad.denominations
.map((d) => d.toLowerCase())
.map((d) => fetchDenom(d))
+ .map(d => d.withValidator(validator))
if (toLoad.canonical) {
- const canonical = fetchDenom(toLoad.canonical)
+ const canonical = fetchDenom(toLoad.canonical).withValidator(validator)
denoms.unshift(canonical.withBlankCanonical())
}
- units.push(new Unit(loaded.quantity, [key], denoms, loaded.eraseInvalid))
+ units.push(new Unit(loaded.quantity, [key], denoms, loaded.eraseInvalid, validator, toLoad["inverted"]))
}
return units
}
@@ -240,7 +277,7 @@ export class Unit {
}
const defaultDenom = this.getDefaultDenomination(country)
for (const denomination of this.denominationsSorted) {
- const bare = denomination.StrippedValue(valueWithDenom, defaultDenom === denomination)
+ const bare = denomination.StrippedValue(valueWithDenom, defaultDenom === denomination, this.inverted)
if (bare !== null) {
return [bare, denomination]
}
@@ -253,10 +290,13 @@ export class Unit {
return undefined
}
const [stripped, denom] = this.findDenomination(value, country)
+ const human = denom?.human
+ if(this.inverted ){
+ return human.Subs({quantity: stripped+"/"})
+ }
if (stripped === "1") {
return denom?.humanSingular ?? stripped
}
- const human = denom?.human
if (human === undefined) {
return stripped ?? value
}
@@ -266,6 +306,10 @@ export class Unit {
public toOsm(value: string, denomination: string) {
const denom = this.denominations.find((d) => d.canonical === denomination)
+ if(this.inverted){
+ return value+"/"+denom._canonicalSingular
+ }
+
const space = denom.addSpace ? " " : ""
if (denom.prefix) {
return denom.canonical + space + value
@@ -273,7 +317,7 @@ export class Unit {
return value + space + denom.canonical
}
- public getDefaultDenomination(country: () => string) {
+ public getDefaultDenomination(country: () => string): Denomination {
for (const denomination of this.denominations) {
if (denomination.useIfNoUnitGiven === true) {
return denomination
diff --git a/src/UI/BigComponents/ExtraLinkButton.svelte b/src/UI/BigComponents/ExtraLinkButton.svelte
new file mode 100644
index 000000000..f55086ff7
--- /dev/null
+++ b/src/UI/BigComponents/ExtraLinkButton.svelte
@@ -0,0 +1,55 @@
+
+
+
+{#if config !== undefined &&
+!(config.requirements.has("iframe") && !isIframe) &&
+!(config.requirements.has("no-iframe") && isIframe) &&
+!(config.requirements.has("welcome-message") && !$showWelcomeMessageSwitch) &&
+!(config.requirements.has("no-welcome-message") && $showWelcomeMessageSwitch)}
+
+{/if}
diff --git a/src/UI/BigComponents/ExtraLinkButton.ts b/src/UI/BigComponents/ExtraLinkButton.ts
deleted file mode 100644
index c34ba305b..000000000
--- a/src/UI/BigComponents/ExtraLinkButton.ts
+++ /dev/null
@@ -1,101 +0,0 @@
-import { UIElement } from "../UIElement"
-import BaseUIElement from "../BaseUIElement"
-import { Store } from "../../Logic/UIEventSource"
-import ExtraLinkConfig from "../../Models/ThemeConfig/ExtraLinkConfig"
-import Img from "../Base/Img"
-import { SubtleButton } from "../Base/SubtleButton"
-import Toggle from "../Input/Toggle"
-import Locale from "../i18n/Locale"
-import { Utils } from "../../Utils"
-import Svg from "../../Svg"
-import Translations from "../i18n/Translations"
-import { Translation } from "../i18n/Translation"
-
-interface ExtraLinkButtonState {
- layout: { id: string; title: Translation }
- featureSwitches: { featureSwitchWelcomeMessage: Store }
- mapProperties: {
- location: Store<{ lon: number; lat: number }>
- zoom: Store
- }
-}
-export default class ExtraLinkButton extends UIElement {
- private readonly _config: ExtraLinkConfig
- private readonly state: ExtraLinkButtonState
-
- constructor(state: ExtraLinkButtonState, config: ExtraLinkConfig) {
- super()
- this.state = state
- this._config = config
- }
-
- protected InnerRender(): BaseUIElement {
- if (this._config === undefined) {
- return undefined
- }
-
- const c = this._config
-
- const isIframe = window !== window.top
- if (c.requirements?.has("iframe") && !isIframe) {
- return undefined
- }
-
- if (c.requirements?.has("no-iframe") && isIframe) {
- return undefined
- }
-
- let link: BaseUIElement
- const theme = this.state.layout?.id ?? ""
- const basepath = window.location.host
- const href = this.state.mapProperties.location.map(
- (loc) => {
- const subs = {
- ...loc,
- theme: theme,
- basepath,
- language: Locale.language.data,
- }
- return Utils.SubstituteKeys(c.href, subs)
- },
- [this.state.mapProperties.zoom]
- )
-
- let img: BaseUIElement = Svg.pop_out_svg()
- if (c.icon !== undefined) {
- img = new Img(c.icon).SetClass("h-6")
- }
-
- let text: Translation
- if (c.text === undefined) {
- text = Translations.t.general.screenToSmall.Subs({
- theme: this.state.layout.title,
- })
- } else {
- text = c.text.Clone()
- }
-
- link = new SubtleButton(img, text, {
- url: href,
- newTab: c.newTab,
- })
-
- if (c.requirements?.has("no-welcome-message")) {
- link = new Toggle(
- undefined,
- link,
- this.state.featureSwitches.featureSwitchWelcomeMessage
- )
- }
-
- if (c.requirements?.has("welcome-message")) {
- link = new Toggle(
- link,
- undefined,
- this.state.featureSwitches.featureSwitchWelcomeMessage
- )
- }
-
- return link
- }
-}
diff --git a/src/UI/InputElement/ValidatedInput.svelte b/src/UI/InputElement/ValidatedInput.svelte
index 0ef857c64..a13c355d3 100644
--- a/src/UI/InputElement/ValidatedInput.svelte
+++ b/src/UI/InputElement/ValidatedInput.svelte
@@ -91,11 +91,6 @@
return
}
- if (unit !== undefined && isNaN(Number(v))) {
- value.setData(undefined)
- return
- }
-
feedback?.setData(undefined)
if (selectedUnit.data) {
value.setData(unit.toOsm(v, selectedUnit.data))
diff --git a/src/UI/Map/Icon.svelte b/src/UI/Map/Icon.svelte
index 6bcdbee49..c97193db5 100644
--- a/src/UI/Map/Icon.svelte
+++ b/src/UI/Map/Icon.svelte
@@ -34,6 +34,7 @@
import { LinkIcon } from "@babeard/svelte-heroicons/mini"
import Square_rounded from "../../assets/svg/Square_rounded.svelte"
import Bug from "../../assets/svg/Bug.svelte"
+ import Pop_out from "../../assets/svg/Pop_out.svelte"
/**
* Renders a single icon.
@@ -123,6 +124,9 @@
{:else if icon === "link"}
+ {:else if icon === "popout"}
+
+
{:else}
{/if}
diff --git a/src/UI/Popup/ImportButtons/ImportFlow.ts b/src/UI/Popup/ImportButtons/ImportFlow.ts
index e9f193c9f..959472692 100644
--- a/src/UI/Popup/ImportButtons/ImportFlow.ts
+++ b/src/UI/Popup/ImportButtons/ImportFlow.ts
@@ -188,7 +188,7 @@ export default abstract class ImportFlow {
return { error: new Translation({ "*": e }) }
}
- if (state.mapProperties.zoom.data < 18) {
+ if (state.mapProperties.zoom.data < 16) {
return { error: t.zoomInMore }
}
diff --git a/src/UI/Popup/TagRendering/Questionbox.svelte b/src/UI/Popup/TagRendering/Questionbox.svelte
index adebc53b9..585f1d00a 100644
--- a/src/UI/Popup/TagRendering/Questionbox.svelte
+++ b/src/UI/Popup/TagRendering/Questionbox.svelte
@@ -79,7 +79,7 @@
console.log("Applying questions to ask")
const qta = questionsToAsk.data
firstQuestion.setData(undefined)
- allQuestionsToAsk.setData([])
+ //allQuestionsToAsk.setData([])
await Utils.awaitAnimationFrame()
firstQuestion.setData(qta[0])
allQuestionsToAsk.setData(qta)
diff --git a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte
index 843bd0726..771c844c5 100644
--- a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte
+++ b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte
@@ -36,6 +36,7 @@
export let config: TagRenderingConfig
export let tags: UIEventSource>
+
export let selectedElement: Feature
export let state: SpecialVisualizationState
export let layer: LayerConfig | undefined
@@ -71,6 +72,8 @@
/**
* Prepares and fills the checkedMappings
*/
+ console.log("Initing ", config.id)
+
function initialize(tgs: Record, confg: TagRenderingConfig): void {
mappings = confg.mappings?.filter((m) => {
if (typeof m.hideInAnswer === "boolean") {
@@ -139,11 +142,33 @@
feedback.setData(undefined)
}
- $: {
- // Even though 'config' is not declared as a store, Svelte uses it as one to update the component
- // We want to (re)-initialize whenever the 'tags' or 'config' change - but not when 'checkedConfig' changes
- initialize($tags, config)
- }
+ let usedKeys: string[] = config.usedTags().flatMap((t) => t.usedKeys())
+ /**
+ * The 'minimalTags' is a subset of the tags of the feature, only containing the values relevant for this object.
+ * The main goal is to be stable and only 'ping' when an actual change is relevant
+ */
+ let minimalTags = new UIEventSource>(undefined)
+ tags.addCallbackAndRunD((tags) => {
+ const previousMinimal = minimalTags.data
+ const newMinimal: Record = {}
+ let somethingChanged = previousMinimal === undefined
+ for (const key of usedKeys) {
+ const newValue = tags[key]
+ somethingChanged ||= previousMinimal?.[key] !== newValue
+ if (newValue !== undefined && newValue !== null) {
+ newMinimal[key] = newValue
+ }
+ }
+ if (somethingChanged) {
+ console.log("Updating minimal tags to", newMinimal, "of", config.id)
+ minimalTags.setData(newMinimal)
+ }
+ })
+
+ minimalTags.addCallbackAndRunD((tgs) => {
+ initialize(tgs, config)
+ })
+
onDestroy(
freeformInput.subscribe((freeformValue) => {
if (!mappings || mappings?.length == 0 || config.freeform?.key === undefined) {
@@ -180,6 +205,19 @@
checkedMappings,
tags.data
)
+ if (state.featureSwitches.featureSwitchIsDebugging.data) {
+ console.log(
+ "Constructing change spec from",
+ {
+ freeform: $freeformInput,
+ selectedMapping,
+ checkedMappings,
+ currentTags: tags.data,
+ },
+ " --> ",
+ selectedTags
+ )
+ }
} catch (e) {
console.error("Could not calculate changeSpecification:", e)
selectedTags = undefined
@@ -210,7 +248,7 @@
if (layer === undefined || (layer?.source === null && layer.id !== "favourite")) {
/**
- * This is a special, priviliged layer.
+ * This is a special, privileged layer.
* We simply apply the tags onto the records
*/
const kv = selectedTags.asChange(tags.data)
diff --git a/src/UI/Popup/UnitInput.svelte b/src/UI/Popup/UnitInput.svelte
index 4efe8500f..f299f75fa 100644
--- a/src/UI/Popup/UnitInput.svelte
+++ b/src/UI/Popup/UnitInput.svelte
@@ -64,10 +64,14 @@
)
+{#if unit.inverted}
+ /
+{/if}
+
{#each unit.denominations as denom (denom.canonical)}
- {#if $isSingle}
+ {#if $isSingle || unit.inverted}
{:else}
diff --git a/src/UI/Studio/Region.svelte b/src/UI/Studio/Region.svelte
index 879d4b6ca..d572773f3 100644
--- a/src/UI/Studio/Region.svelte
+++ b/src/UI/Studio/Region.svelte
@@ -11,7 +11,7 @@
export let configs: ConfigMeta[]
export let title: string | undefined = undefined
- export let path: (string | number)[] = []
+ export let path: readonly (string | number)[] = []
let expertMode = state.expertMode
let configsNoHidden = configs.filter((schema) => schema.hints?.group !== "hidden")
@@ -21,9 +21,9 @@
{#if configs === undefined}
- Bug: 'Region' received 'undefined'
+ Bug: 'Region' received 'undefined' at {path.join(".")}
{:else if configs.length === 0}
- Bug: Region received empty list as configuration
+ Bug: Region received empty list as configuration at {path.join(".")}
{:else if title}
{title}
diff --git a/src/UI/Studio/TagRenderingInput.svelte b/src/UI/Studio/TagRenderingInput.svelte
index a15065ac9..cfa056435 100644
--- a/src/UI/Studio/TagRenderingInput.svelte
+++ b/src/UI/Studio/TagRenderingInput.svelte
@@ -7,7 +7,7 @@
import type { ConfigMeta } from "./configMeta"
import type {
MappingConfigJson,
- QuestionableTagRenderingConfigJson,
+ QuestionableTagRenderingConfigJson
} from "../../Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
import TagRenderingEditable from "../Popup/TagRendering/TagRenderingEditable.svelte"
@@ -59,8 +59,8 @@
labelMapping = {
if: "value=" + label,
then: {
- en: "Builtin collection
" + label + " :",
- },
+ en: "Builtin collection
" + label + " :"
+ }
}
perLabel[label] = labelMapping
mappingsBuiltin.push(labelMapping)
@@ -72,14 +72,14 @@
mappingsBuiltin.push({
if: "value=" + tr["id"],
then: {
- en: "Builtin
" + tr["id"] + " " + description + "
",
- },
+ en: "Builtin
" + tr["id"] + " " + description + "
"
+ }
})
}
const configBuiltin = new TagRenderingConfig(
{
question: "Which builtin element should be shown?",
- mappings: mappingsBuiltin,
+ mappings: mappingsBuiltin
})
const tags = new UIEventSource({ value })
@@ -112,7 +112,7 @@
"condition",
"metacondition",
"mappings",
- "icon",
+ "icon"
])
const ignored = new Set(["labels", "description", "classes"])
@@ -196,7 +196,10 @@
Text field and input element configuration
-
+ {#if freeformSchema?.length > 0}
+
+
+ {/if}
diff --git a/src/UI/ThemeViewGUI.svelte b/src/UI/ThemeViewGUI.svelte
index 33cccc5b0..03e7f12ff 100644
--- a/src/UI/ThemeViewGUI.svelte
+++ b/src/UI/ThemeViewGUI.svelte
@@ -34,7 +34,6 @@
import { Utils } from "../Utils"
import Hotkeys from "./Base/Hotkeys"
import LevelSelector from "./BigComponents/LevelSelector.svelte"
- import ExtraLinkButton from "./BigComponents/ExtraLinkButton"
import SelectedElementTitle from "./BigComponents/SelectedElementTitle.svelte"
import ThemeIntroPanel from "./BigComponents/ThemeIntroPanel.svelte"
import type { RasterLayerPolygon } from "../Models/RasterLayers"
@@ -73,6 +72,7 @@
import PrivacyPolicy from "./BigComponents/PrivacyPolicy.svelte"
import { BBox } from "../Logic/BBox"
import ReviewsOverview from "./Reviews/ReviewsOverview.svelte"
+ import ExtraLinkButton from "./BigComponents/ExtraLinkButton.svelte"
export let state: ThemeViewState
let layout = state.layout
@@ -260,9 +260,7 @@
/>
{/if}
- new ExtraLinkButton(state, layout.extraLink).SetClass("pointer-events-auto")}
- />
+
diff --git a/src/Utils.ts b/src/Utils.ts
index cc0d6a47d..503c7ed7d 100644
--- a/src/Utils.ts
+++ b/src/Utils.ts
@@ -263,6 +263,9 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
return res
}
+ public static NoNull(array: T[] | undefined): (T[] | undefined)
+ public static NoNull(array: undefined): undefined
+ public static NoNull(array: T[]): T[]
public static NoNull(array: T[]): NonNullable[] {
return array?.filter((o) => o !== undefined && o !== null)
}
@@ -1039,7 +1042,14 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
Utils._download_cache.set(url, { promise, timestamp: new Date().getTime() })
return await promise
}
-
+ public static async downloadJson(
+ url: string,
+ headers?: Record
+ ): Promise
+ public static async downloadJson(
+ url: string,
+ headers?: Record
+ ): Promise
public static async downloadJson(
url: string,
headers?: Record
diff --git a/src/assets/editor-layer-index.json b/src/assets/editor-layer-index.json
index 227e48ae8..e71feab18 100644
--- a/src/assets/editor-layer-index.json
+++ b/src/assets/editor-layer-index.json
@@ -1,5 +1,6 @@
{"type":"FeatureCollection",
"features": [
+{"properties":{"name":"South Africa CD:NGI Aerial","id":"South_Africa-CD_NGI-Aerial","url":"https://aerial.openstreetmap.org.za/ngi-aerial/{zoom}/{x}/{y}.jpg","type":"tms","category":"photo","max_zoom":22,"best":true},"type":"Feature","geometry":{"coordinates":[[[17.83968,-32.79834],[17.83968,-32.85073],[17.84859,-32.96685],[17.88552,-33.05757],[17.94735,-33.16026],[18.13899,-33.39741],[18.21668,-33.44887],[18.2992,-33.58559],[18.36155,-33.65016],[18.41247,-33.74488],[18.34793,-33.78155],[18.34766,-33.84924],[18.33745,-33.99141],[18.29511,-33.99371],[18.29721,-34.19503],[18.34793,-34.20204],[18.35657,-34.30056],[18.39717,-34.3023],[18.39744,-34.3514],[18.44799,-34.35227],[18.44773,-34.362],[18.49995,-34.36169],[18.50175,-34.10153],[18.79842,-34.10164],[18.7975,-34.39364],[18.95206,-34.39494],[19.00235,-34.35256],[19.07256,-34.38024],[19.098,-34.44998],[19.32853,-34.45344],[19.34744,-34.52445],[19.28614,-34.59866],[19.28771,-34.64048],[19.39297,-34.64202],[19.5973,-34.79618],[19.89383,-34.7936],[19.89907,-34.82758],[19.99233,-34.83791],[20.08035,-34.83619],[20.25272,-34.70148],[20.5042,-34.48626],[20.74468,-34.48281],[20.89766,-34.4854],[20.89319,-34.39971],[21.00337,-34.37539],[21.09882,-34.39913],[21.19787,-34.44782],[21.41949,-34.44652],[21.5007,-34.40201],[21.50174,-34.36699],[21.5468,-34.36612],[21.56147,-34.40201],[21.86115,-34.40071],[21.9497,-34.322],[22.00156,-34.21722],[22.15769,-34.21809],[22.17124,-34.15218],[22.16212,-34.1057],[22.22213,-34.10147],[22.252,-34.06459],[22.50505,-34.06459],[22.57002,-34.00641],[22.64598,-34.00728],[22.64703,-34.05026],[22.84124,-34.05479],[22.90009,-34.0993],[23.41543,-34.11404],[23.41552,-34.04346],[23.49735,-34.00901],[23.74936,-34.01119],[23.80175,-34.05243],[23.99634,-34.05144],[24.19888,-34.1019],[24.34867,-34.11638],[24.50014,-34.20033],[24.76453,-34.20179],[24.85326,-34.21896],[24.87629,-34.20053],[24.87704,-34.15065],[24.94966,-34.10104],[24.95472,-34.00436],[25.04763,-33.99946],[25.28106,-34.00203],[25.35046,-34.05026],[25.55089,-34.06315],[25.72028,-34.05112],[25.71958,-34.00401],[25.65291,-33.94698],[25.65291,-33.85436],[25.75111,-33.80065],[25.80555,-33.75243],[26.00779,-33.7224],[26.20675,-33.75489],[26.45273,-33.79358],[26.59169,-33.74808],[26.88054,-33.6459],[27.3758,-33.38607],[27.84509,-33.08287],[28.07487,-32.94169],[28.14365,-32.83207],[28.54971,-32.58946],[28.89432,-32.28989],[29.48131,-31.69787],[29.74094,-31.50147],[29.86731,-31.43043],[30.09724,-31.24583],[30.35563,-30.93089],[30.72447,-30.3925],[30.86518,-30.10241],[30.95186,-30.00339],[31.04555,-29.9502],[31.06699,-29.86403],[31.05345,-29.84705],[31.06486,-29.78935],[31.16808,-29.63074],[31.35963,-29.38543],[31.46385,-29.28593],[31.77648,-28.96949],[31.98788,-28.90695],[32.07026,-28.84698],[32.36404,-28.59457],[32.42756,-28.50216],[32.53872,-28.2288],[32.5814,-28.07479],[32.62407,-27.77751],[32.70943,-27.47854],[32.88609,-26.9817],[32.89999,-26.85161],[32.31145,-26.84795],[32.10698,-26.79846],[32.00025,-26.79839],[31.97697,-27.05066],[31.97002,-27.12047],[31.97002,-27.31112],[31.50156,-27.31112],[31.15433,-27.19804],[31.00344,-27.04416],[30.97653,-27.00292],[30.98249,-26.90826],[30.91003,-26.84895],[30.90209,-26.78075],[30.80384,-26.80821],[30.80226,-26.52407],[30.82269,-26.44888],[30.85346,-26.40356],[30.89217,-26.32797],[30.96561,-26.26658],[31.11647,-25.99124],[31.1393,-25.91627],[31.25046,-25.82965],[31.32291,-25.74386],[31.41621,-25.72777],[31.86878,-26.00373],[31.98094,-25.95465],[31.93627,-25.84037],[32.00575,-25.66248],[32.00575,-25.6079],[31.99979,-25.51657],[31.99285,-25.44938],[32.01964,-25.38214],[32.03552,-25.08498],[32.01964,-24.91407],[32.00773,-24.65366],[32.01667,-24.4406],[31.99483,-24.30409],[31.91444,-24.17467],[31.88863,-23.94811],[31.77747,-23.88006],[31.71197,-23.74114],[31.69311,-23.61752],[31.55683,-23.44308],[31.56806,-23.19034],[31.29306,-22.36746],[31.18342,-22.32329],[31.00586,-22.30771],[30.83743,-22.28498],[30.50618,-22.30576],[30.30336,-22.33952],[30.25634,-22.29148],[30.11668,-22.28303],[29.9293,-22.18494],[29.77771,-22.1362],[29.6549,-22.11864],[29.35312,-22.18429],[29.23241,-22.16935],[29.01626,-22.20834],[28.95941,-22.30901],[28.92853,-22.42323],[28.82818,-22.45502],[28.61088,-22.54002],[28.49061,-22.5607],[28.33972,-22.56394],[28.20568,-22.65529],[28.04076,-22.82551],[27.93829,-22.94965],[27.88285,-23.06205],[27.80986,-23.0995],[27.59581,-23.20855],[27.51441,-23.35939],[27.33396,-23.39738],[27.13605,-23.52034],[27.0578,-23.60526],[27.00061,-23.63676],[26.97148,-23.69943],[26.93183,-23.84619],[26.92155,-23.8991],[26.85744,-24.10269],[26.85674,-24.24995],[26.73006,-24.30145],[26.58619,-24.40758],[26.509,-24.48424],[26.47391,-24.56533],[26.39285,-24.63329],[25.84664,-24.75385],[25.84193,-24.78054],[25.64418,-25.48238],[25.50784,-25.68554],[25.1107,-25.73894],[24.60391,-25.78966],[24.2364,-25.6134],[23.88372,-25.59737],[23.46583,-25.27351],[23.00052,-25.27619],[22.77528,-25.67752],[22.57078,-26.1334],[22.28034,-26.32747],[21.97211,-26.64314],[21.7765,-26.66963],[21.67277,-26.839],[21.08891,-26.84693],[20.65324,-26.82049],[20.65028,-26.48409],[20.84292,-26.21585],[20.8281,-25.89635],[20.73326,-25.6802],[20.65324,-25.45294],[20.47246,-25.15017],[20.29167,-24.91923],[19.98937,-24.74979],[19.99536,-28.39909],[19.84971,-28.40278],[19.85076,-28.44333],[19.69882,-28.44794],[19.69673,-28.49399],[19.55003,-28.49583],[19.44315,-28.69732],[19.25873,-28.70099],[19.23149,-28.80296],[19.24301,-28.85162],[19.19691,-28.93785],[19.1047,-28.94885],[18.90875,-28.82775],[18.61536,-28.82959],[18.50638,-28.87181],[18.15745,-28.87181],[18.00027,-28.79562],[17.99943,-28.75606],[17.80139,-28.73815],[17.65259,-28.73815],[17.64997,-28.69679],[17.60282,-28.683],[17.49836,-28.68721],[17.45121,-28.64951],[17.4527,-28.54897],[17.40083,-28.548],[17.41491,-28.34898],[17.40158,-28.24524],[17.35156,-28.24427],[17.35119,-28.19759],[17.2508,-28.19889],[17.24746,-28.23382],[17.20263,-28.23284],[17.20115,-28.09305],[17.10076,-28.03388],[17.05297,-28.02571],[16.99295,-28.0244],[16.88551,-28.04729],[16.74622,-28.2459],[16.75141,-28.4487],[16.60026,-28.48257],[16.4491,-28.55158],[16.44987,-28.69188],[16.54941,-28.84159],[16.7988,-29.19437],[16.9937,-29.65436],[17.24937,-30.39917],[17.40445,-30.63747],[17.548,-30.90217],[17.85293,-31.3444],[18.10545,-31.6455],[18.29302,-32.04871],[18.28987,-32.55266],[18.09917,-32.74853],[18.00364,-32.69822],[17.88935,-32.69728],[17.83968,-32.79834]],[[28.68156,-28.60188],[28.69781,-28.7018],[29.09788,-28.95182],[29.39826,-29.25135],[29.39818,-29.44853],[29.28997,-29.44865],[29.24841,-29.63468],[29.09839,-29.74865],[29.09844,-29.94862],[28.19846,-30.24842],[28.09798,-30.64863],[27.95197,-30.64159],[27.95151,-30.59863],[27.75194,-30.59894],[27.5015,-30.29846],[27.40175,-30.29864],[27.41031,-30.11589],[27.06459,-29.69818],[27.60177,-29.30152],[27.75146,-28.95168],[27.95166,-28.92174],[28.20181,-28.71386],[28.4015,-28.71422],[28.40186,-28.65136],[28.55056,-28.64634],[28.5507,-28.61431],[28.68156,-28.60188]]],"type":"Polygon"}},
{"properties":{"name":"City of Cape Town 2013 Aerial","id":"South_Africa-CapeTown-Aerial-2013","url":"https://{switch:a,b,c}.coct.aerial.openstreetmap.org.za/layer/za_coct_aerial_2013/{zoom}/{x}/{y}.jpg","attribution":{"required":true,"text":"City of Cape Town Aerial - OPENSTREETMAP USE ONLY","url":"https://www.capetown.gov.za"},"type":"tms","category":"historicphoto","min_zoom":4,"max_zoom":21},"type":"Feature","geometry":{"coordinates":[[[18.44866,-33.89362],[18.39773,-33.89335],[18.37284,-33.91776],[18.37262,-33.92927],[18.36381,-33.92925],[18.36287,-33.97351],[18.3398,-33.98663],[18.33974,-34.00127],[18.32892,-34.00125],[18.32877,-34.0192],[18.30682,-34.02526],[18.29607,-34.04513],[18.32,-34.06443],[18.34275,-34.06433],[18.35505,-34.05538],[18.36125,-34.05972],[18.33932,-34.08828],[18.34993,-34.10421],[18.32367,-34.13469],[18.3114,-34.14353],[18.31187,-34.15438],[18.32767,-34.16346],[18.32747,-34.18149],[18.34923,-34.18162],[18.37068,-34.21789],[18.37016,-34.28087],[18.39177,-34.29002],[18.3916,-34.31707],[18.46737,-34.35349],[18.46743,-34.36251],[18.49992,-34.36262],[18.50011,-34.34458],[18.48922,-34.34458],[18.46771,-34.29941],[18.486,-34.25437],[18.47889,-34.25437],[18.48662,-34.24539],[18.46593,-34.19121],[18.44673,-34.19111],[18.44681,-34.18211],[18.43597,-34.18202],[18.436,-34.16405],[18.44445,-34.16409],[18.44637,-34.13423],[18.47974,-34.11012],[18.65337,-34.07748],[18.76176,-34.08405],[18.85488,-34.15627],[18.81565,-34.17413],[18.81549,-34.21028],[18.84803,-34.23739],[18.84802,-34.2644],[18.83712,-34.26438],[18.83714,-34.27342],[18.86971,-34.27344],[18.86969,-34.26441],[18.87927,-34.26443],[18.88059,-34.25534],[18.88942,-34.25541],[18.88784,-34.23735],[18.90176,-34.23626],[18.90236,-34.21935],[18.93489,-34.21933],[18.93487,-34.20137],[18.9457,-34.20132],[18.94574,-34.19232],[18.95656,-34.19236],[18.95656,-34.18332],[18.96746,-34.1833],[18.96742,-34.17427],[18.97832,-34.17429],[18.97827,-34.16529],[18.98918,-34.1653],[18.98918,-34.1473],[18.96742,-34.14732],[18.96742,-34.13831],[18.95656,-34.13824],[18.9566,-34.12924],[18.96749,-34.12925],[18.9675,-34.11121],[18.97832,-34.11123],[18.97832,-34.10218],[18.98918,-34.1022],[18.98915,-34.09317],[19.00002,-34.0932],[19,-34.08413],[19.01079,-34.08414],[19.01084,-34.05725],[19.00002,-34.05718],[19.00002,-34.03913],[18.98916,-34.03913],[18.98914,-34.02114],[18.97833,-34.02114],[18.97822,-34.01208],[18.96747,-34.01208],[18.96743,-34.003],[18.94586,-34.0031],[18.94588,-33.99403],[18.91348,-33.99396],[18.91342,-34.012],[18.90258,-34.012],[18.90252,-34.02103],[18.88518,-34.02132],[18.88546,-34.02343],[18.86819,-34.02117],[18.86827,-34.02208],[18.85986,-34.02101],[18.85993,-34.02347],[18.84847,-34.02185],[18.84842,-34.03001],[18.838,-34.03],[18.83798,-34.03165],[18.81634,-34.02993],[18.81594,-34.03897],[18.80341,-34.03892],[18.80324,-34.04118],[18.79845,-34.04119],[18.79388,-34.0407],[18.79403,-34.03894],[18.77258,-34.03891],[18.7726,-34.0299],[18.76178,-34.02988],[18.76191,-33.9848],[18.75108,-33.98478],[18.75146,-33.90352],[18.76227,-33.90359],[18.76236,-33.84052],[18.77313,-33.84052],[18.77311,-33.83152],[18.79472,-33.83154],[18.79476,-33.81355],[18.80551,-33.81357],[18.80559,-33.79551],[18.81637,-33.79551],[18.81652,-33.74137],[18.83804,-33.74139],[18.83812,-33.72343],[18.82733,-33.72347],[18.8274,-33.70544],[18.80581,-33.70539],[18.80581,-33.67831],[18.8166,-33.67832],[18.81667,-33.66029],[18.82752,-33.6603],[18.82746,-33.6333],[18.77371,-33.63319],[18.77364,-33.64225],[18.75208,-33.64219],[18.75204,-33.66925],[18.69807,-33.66907],[18.69807,-33.66009],[18.68734,-33.66004],[18.6873,-33.65102],[18.67658,-33.65103],[18.67672,-33.61497],[18.66593,-33.61493],[18.66597,-33.58789],[18.62292,-33.58773],[18.62301,-33.57873],[18.59065,-33.57868],[18.5907,-33.56962],[18.57988,-33.56962],[18.57995,-33.56053],[18.59074,-33.56064],[18.59078,-33.5426],[18.58007,-33.5426],[18.58012,-33.52453],[18.56937,-33.52448],[18.56937,-33.5155],[18.54795,-33.51539],[18.54793,-33.52443],[18.52632,-33.52435],[18.52647,-33.4883],[18.51574,-33.48819],[18.51583,-33.47917],[18.49433,-33.47916],[18.49437,-33.4701],[18.4406,-33.46988],[18.44049,-33.48789],[18.4297,-33.48785],[18.42966,-33.50594],[18.37605,-33.5058],[18.37601,-33.51477],[18.36503,-33.5148],[18.36524,-33.52366],[18.35425,-33.5236],[18.354,-33.55059],[18.33245,-33.55045],[18.33224,-33.57752],[18.40719,-33.65899],[18.43914,-33.71772],[18.42815,-33.73564],[18.44925,-33.80107],[18.48139,-33.84724],[18.4702,-33.90277],[18.44859,-33.90264],[18.44866,-33.89362]]],"type":"Polygon"}},
{"properties":{"name":"City of Cape Town 2015 Aerial","id":"South_Africa-CapeTown-Aerial","url":"https://{switch:a,b,c}.coct.aerial.openstreetmap.org.za/layer/za_coct_aerial_2015/{zoom}/{x}/{y}.jpg","attribution":{"required":true,"text":"City of Cape Town Aerial - OPENSTREETMAP USE ONLY","url":"https://www.capetown.gov.za"},"type":"tms","category":"historicphoto","min_zoom":4,"max_zoom":21},"type":"Feature","geometry":{"coordinates":[[[18.44866,-33.89362],[18.39773,-33.89335],[18.37284,-33.91776],[18.37262,-33.92927],[18.36381,-33.92925],[18.36287,-33.97351],[18.3398,-33.98663],[18.33974,-34.00127],[18.32892,-34.00125],[18.32877,-34.0192],[18.30682,-34.02526],[18.29607,-34.04513],[18.32,-34.06443],[18.34275,-34.06433],[18.35505,-34.05538],[18.36125,-34.05972],[18.33932,-34.08828],[18.34993,-34.10421],[18.32367,-34.13469],[18.3114,-34.14353],[18.31187,-34.15438],[18.32767,-34.16346],[18.32747,-34.18149],[18.34923,-34.18162],[18.37068,-34.21789],[18.37016,-34.28087],[18.39177,-34.29002],[18.3916,-34.31707],[18.46737,-34.35349],[18.46743,-34.36251],[18.49992,-34.36262],[18.50011,-34.34458],[18.48922,-34.34458],[18.46771,-34.29941],[18.486,-34.25437],[18.47889,-34.25437],[18.48662,-34.24539],[18.46593,-34.19121],[18.44673,-34.19111],[18.44681,-34.18211],[18.43597,-34.18202],[18.436,-34.16405],[18.44445,-34.16409],[18.44637,-34.13423],[18.47974,-34.11012],[18.65337,-34.07748],[18.76176,-34.08405],[18.85488,-34.15627],[18.81565,-34.17413],[18.81549,-34.21028],[18.84803,-34.23739],[18.84802,-34.2644],[18.83712,-34.26438],[18.83714,-34.27342],[18.86971,-34.27344],[18.86969,-34.26441],[18.87927,-34.26443],[18.88059,-34.25534],[18.88942,-34.25541],[18.88784,-34.23735],[18.90176,-34.23626],[18.90236,-34.21935],[18.93489,-34.21933],[18.93487,-34.20137],[18.9457,-34.20132],[18.94574,-34.19232],[18.95656,-34.19236],[18.95656,-34.18332],[18.96746,-34.1833],[18.96742,-34.17427],[18.97832,-34.17429],[18.97827,-34.16529],[18.98918,-34.1653],[18.98918,-34.1473],[18.96742,-34.14732],[18.96742,-34.13831],[18.95656,-34.13824],[18.9566,-34.12924],[18.96749,-34.12925],[18.9675,-34.11121],[18.97832,-34.11123],[18.97832,-34.10218],[18.98918,-34.1022],[18.98915,-34.09317],[19.00002,-34.0932],[19,-34.08413],[19.01079,-34.08414],[19.01084,-34.05725],[19.00002,-34.05718],[19.00002,-34.03913],[18.98916,-34.03913],[18.98914,-34.02114],[18.97833,-34.02114],[18.97822,-34.01208],[18.96747,-34.01208],[18.96743,-34.003],[18.94586,-34.0031],[18.94588,-33.99403],[18.91348,-33.99396],[18.91342,-34.012],[18.90258,-34.012],[18.90252,-34.02103],[18.88518,-34.02132],[18.88546,-34.02343],[18.86819,-34.02117],[18.86827,-34.02208],[18.85986,-34.02101],[18.85993,-34.02347],[18.84847,-34.02185],[18.84842,-34.03001],[18.838,-34.03],[18.83798,-34.03165],[18.81634,-34.02993],[18.81594,-34.03897],[18.80341,-34.03892],[18.80324,-34.04118],[18.79845,-34.04119],[18.79388,-34.0407],[18.79403,-34.03894],[18.77258,-34.03891],[18.7726,-34.0299],[18.76178,-34.02988],[18.76191,-33.9848],[18.75108,-33.98478],[18.75146,-33.90352],[18.76227,-33.90359],[18.76236,-33.84052],[18.77313,-33.84052],[18.77311,-33.83152],[18.79472,-33.83154],[18.79476,-33.81355],[18.80551,-33.81357],[18.80559,-33.79551],[18.81637,-33.79551],[18.81652,-33.74137],[18.83804,-33.74139],[18.83812,-33.72343],[18.82733,-33.72347],[18.8274,-33.70544],[18.80581,-33.70539],[18.80581,-33.67831],[18.8166,-33.67832],[18.81667,-33.66029],[18.82752,-33.6603],[18.82746,-33.6333],[18.77371,-33.63319],[18.77364,-33.64225],[18.75208,-33.64219],[18.75204,-33.66925],[18.69807,-33.66907],[18.69807,-33.66009],[18.68734,-33.66004],[18.6873,-33.65102],[18.67658,-33.65103],[18.67672,-33.61497],[18.66593,-33.61493],[18.66597,-33.58789],[18.62292,-33.58773],[18.62301,-33.57873],[18.59065,-33.57868],[18.5907,-33.56962],[18.57988,-33.56962],[18.57995,-33.56053],[18.59074,-33.56064],[18.59078,-33.5426],[18.58007,-33.5426],[18.58012,-33.52453],[18.56937,-33.52448],[18.56937,-33.5155],[18.54795,-33.51539],[18.54793,-33.52443],[18.52632,-33.52435],[18.52647,-33.4883],[18.51574,-33.48819],[18.51583,-33.47917],[18.49433,-33.47916],[18.49437,-33.4701],[18.4406,-33.46988],[18.44049,-33.48789],[18.4297,-33.48785],[18.42966,-33.50594],[18.37605,-33.5058],[18.37601,-33.51477],[18.36503,-33.5148],[18.36524,-33.52366],[18.35425,-33.5236],[18.354,-33.55059],[18.33245,-33.55045],[18.33224,-33.57752],[18.40719,-33.65899],[18.43914,-33.71772],[18.42815,-33.73564],[18.44925,-33.80107],[18.48139,-33.84724],[18.4702,-33.90277],[18.44859,-33.90264],[18.44866,-33.89362]]],"type":"Polygon"}},
{"properties":{"name":"City of Cape Town Aerial Imagery (2017)","id":"South_Africa-CapeTown-Aerial-2017","url":"https://cityimg.capetown.gov.za:443/erdas-iws/ogc/wms/GeoSpatial%20Datasets?FORMAT=image/jpeg&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&LAYERS=Aerial%20Imagery_Aerial%20Imagery%202017Jan&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}","attribution":{"required":true,"text":"City of Cape Town Aerial","url":"https://www.arcgis.com/sharing/rest/content/items/739759d8127f4d1f9ba8ef9019878147/info/metadata/metadata.xml?format=default&output=html"},"type":"wms","category":"historicphoto","min_zoom":3},"type":"Feature","geometry":{"coordinates":[[[18.35572,-34.06348],[18.30856,-34.14988],[18.33655,-34.18764],[18.39162,-34.31413],[18.44973,-34.35206],[18.46768,-34.36437],[18.50723,-34.36336],[18.49749,-34.34603],[18.47559,-34.3287],[18.47589,-34.30558],[18.48776,-34.23493],[18.46646,-34.19971],[18.44151,-34.17606],[18.45764,-34.13225],[18.51574,-34.10278],[18.65052,-34.07582],[18.71958,-34.07728],[18.78742,-34.09416],[18.85527,-34.1604],[18.8218,-34.17223],[18.81328,-34.18481],[18.8148,-34.20343],[18.8361,-34.23815],[18.84401,-34.24142],[18.84736,-34.26053],[18.83458,-34.26506],[18.83214,-34.28391],[18.87808,-34.27637],[18.99369,-34.16342],[19.01316,-34.08207],[19.01225,-34.05334],[18.99186,-34.01981],[18.95292,-33.99282],[18.91003,-33.99207],[18.89603,-34.01855],[18.80355,-34.0193],[18.80324,-34.03746],[18.78651,-34.03721],[18.7859,-34.01981],[18.764,-34.0193],[18.76339,-33.8421],[18.79868,-33.84202],[18.7986,-33.81936],[18.82271,-33.8193],[18.82246,-33.74478],[18.8423,-33.74473],[18.84223,-33.72326],[18.82944,-33.72329],[18.82938,-33.70408],[18.80702,-33.70413],[18.80694,-33.67957],[18.81842,-33.67955],[18.81836,-33.66202],[18.82923,-33.662],[18.82913,-33.63214],[18.7506,-33.63232],[18.75072,-33.66656],[18.70223,-33.66667],[18.70217,-33.64934],[18.67759,-33.6494],[18.67747,-33.61367],[18.66782,-33.61369],[18.66773,-33.58722],[18.62376,-33.58733],[18.62373,-33.57749],[18.59163,-33.57756],[18.59161,-33.56929],[18.58033,-33.56932],[18.5803,-33.56088],[18.59158,-33.56086],[18.59151,-33.54227],[18.58072,-33.5423],[18.58066,-33.52366],[18.57027,-33.52368],[18.57024,-33.51513],[18.54757,-33.51519],[18.5476,-33.524],[18.52671,-33.52405],[18.52658,-33.4876],[18.51639,-33.48763],[18.51633,-33.47028],[18.42782,-33.47049],[18.42794,-33.5038],[18.3618,-33.50396],[18.36186,-33.52233],[18.30611,-33.52247],[18.3062,-33.54803],[18.30685,-33.57209],[18.32668,-33.58017],[18.36546,-33.62072],[18.4044,-33.65061],[18.42326,-33.69339],[18.42721,-33.72882],[18.4333,-33.77284],[18.45946,-33.82138],[18.48076,-33.8517],[18.47985,-33.88303],[18.46585,-33.89944],[18.4552,-33.90399],[18.43269,-33.89389],[18.39831,-33.8949],[18.37458,-33.90752],[18.36576,-33.93378],[18.36637,-33.96104],[18.34994,-33.97769],[18.33138,-33.99081],[18.32469,-34.02006],[18.30126,-34.02435],[18.30278,-34.04956],[18.32895,-34.06544],[18.35572,-34.06348]]],"type":"Polygon"}},
@@ -179,7 +180,7 @@
{"properties":{"name":"Offene Regionalkarte Mecklenburg-Vorpommern (ORKa.MV)","id":"orka.mv","url":"https://www.orka-mv.de/geodienste/orkamv/tiles/1.0.0/orkamv/GLOBAL_WEBMERCATOR/{zoom}/{x}/{y}.png","attribution":{"text":"ORKa.MV","url":"https://www.orka-mv.de/nutzung.html"},"type":"tms","category":"osmbasedmap","min_zoom":12,"max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[13.32019,54.72212],[12.49001,54.60327],[11.04611,54.03758],[10.73651,53.87637],[10.54746,53.36447],[11.05159,53.14154],[11.31736,53.10208],[12.98593,53.1399],[14.17503,53.21051],[14.45449,53.30557],[14.24626,53.93125],[13.81063,54.51907],[13.5613,54.69996],[13.32019,54.72212]]],"type":"Polygon"}},
{"properties":{"name":"Metropole Ruhr: Luftbilder (10 cm)","id":"Metropole_Ruhr_RVR-DOP10","url":"https://geodaten.metropoleruhr.de/dop/dop?LAYERS=DOP&STYLES=&FORMAT=image/jpeg&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","attribution":{"required":true,"text":"Datengrundlage: Regionalverband Ruhr","url":"https://www.metropoleruhr.de/regionalverband-ruhr.html"},"type":"wms","category":"photo"},"type":"Feature","geometry":{"coordinates":[[[6.51691,51.81714],[6.51162,51.81274],[6.48961,51.81056],[6.4898,51.80714],[6.50784,51.78094],[6.52478,51.77444],[6.53363,51.76434],[6.48171,51.75381],[6.48908,51.74539],[6.48942,51.7394],[6.48418,51.73414],[6.48908,51.72053],[6.47677,51.71855],[6.46246,51.70281],[6.44839,51.70765],[6.4164,51.71209],[6.40921,51.71708],[6.40877,51.72478],[6.42188,51.73708],[6.42134,51.7465],[6.41405,51.75319],[6.40287,51.75552],[6.40178,51.75035],[6.40597,51.74959],[6.40346,51.74524],[6.41055,51.74197],[6.40932,51.73937],[6.38789,51.72775],[6.38829,51.7209],[6.37731,51.7198],[6.38041,51.71387],[6.37642,51.7112],[6.3682,51.71016],[6.35482,51.703],[6.35808,51.6945],[6.37195,51.6931],[6.38062,51.68643],[6.38091,51.6813],[6.37069,51.66735],[6.36262,51.66374],[6.36553,51.66123],[6.35313,51.66095],[6.35403,51.64554],[6.32819,51.63981],[6.32563,51.63632],[6.29903,51.64343],[6.29225,51.64156],[6.29113,51.63725],[6.30143,51.62633],[6.30035,51.62117],[6.33392,51.6125],[6.33275,51.60905],[6.32067,51.60363],[6.32362,51.60026],[6.33482,51.59709],[6.35235,51.60349],[6.37372,51.59111],[6.37284,51.58251],[6.37726,51.57747],[6.36916,51.57471],[6.36951,51.56872],[6.37657,51.56545],[6.38918,51.56144],[6.40847,51.56101],[6.41912,51.56725],[6.42276,51.5759],[6.46176,51.56732],[6.49612,51.56806],[6.46262,51.55191],[6.48673,51.53871],[6.47499,51.52731],[6.47816,51.51966],[6.45562,51.52946],[6.44876,51.52931],[6.45326,51.52255],[6.44796,51.51901],[6.45497,51.51659],[6.45407,51.508],[6.46245,51.50561],[6.46699,51.49799],[6.47404,51.49471],[6.47608,51.48275],[6.4818,51.47859],[6.48714,51.48127],[6.49012,51.47705],[6.49698,51.4772],[6.49868,51.47123],[6.50709,51.46798],[6.50198,51.46101],[6.50273,51.44731],[6.50821,51.44743],[6.51119,51.4432],[6.52092,51.44084],[6.51987,51.43481],[6.51453,51.43213],[6.5149,51.42527],[6.52596,51.42379],[6.52939,51.41101],[6.53816,51.4009],[6.54505,51.40019],[6.54679,51.39337],[6.55496,51.39439],[6.55797,51.38931],[6.56618,51.38948],[6.57148,51.39302],[6.59479,51.39265],[6.611,51.39726],[6.63586,51.39348],[6.63626,51.38577],[6.64443,51.3868],[6.64602,51.38254],[6.65693,51.38362],[6.66081,51.38798],[6.67309,51.38908],[6.6684,51.37356],[6.67511,51.37626],[6.67794,51.3746],[6.67409,51.36938],[6.65789,51.36477],[6.65435,51.35356],[6.66428,51.3469],[6.69193,51.34144],[6.71287,51.33328],[6.72749,51.34214],[6.73831,51.34492],[6.7475,51.35281],[6.77673,51.34308],[6.79314,51.34339],[6.7941,51.35198],[6.80649,51.3505],[6.80939,51.34713],[6.81615,51.34897],[6.81731,51.35328],[6.82295,51.34995],[6.83385,51.35101],[6.84991,51.35903],[6.84552,51.36495],[6.85115,51.36162],[6.86745,51.36449],[6.87848,51.36297],[6.8904,51.37176],[6.90022,51.3668],[6.90565,51.36775],[6.92391,51.35779],[6.92137,51.35346],[6.92825,51.35272],[6.92422,51.35093],[6.9257,51.34839],[6.94748,51.35134],[6.95033,51.34882],[6.96545,51.34737],[6.97621,51.35184],[6.97743,51.35529],[6.98301,51.35282],[6.98689,51.35803],[7.00745,51.35752],[7.01,51.36185],[7.01944,51.36544],[7.03604,51.36144],[7.04404,51.36671],[7.04973,51.36167],[7.0552,51.36176],[7.07796,51.37414],[7.08088,51.3699],[7.08765,51.37172],[7.0919,51.36836],[7.10004,51.37021],[7.09853,51.37361],[7.1039,51.37627],[7.11205,51.37812],[7.11215,51.37555],[7.11626,51.37561],[7.11742,51.38078],[7.12153,51.38084],[7.12163,51.37827],[7.127,51.38093],[7.13262,51.37759],[7.13802,51.37939],[7.13957,51.37513],[7.14634,51.37695],[7.15189,51.37532],[7.15911,51.36601],[7.15665,51.35911],[7.14731,51.35296],[7.14882,51.34956],[7.15292,51.34962],[7.14513,51.33921],[7.14927,51.33842],[7.14807,51.33411],[7.15351,51.33505],[7.15645,51.32996],[7.1662,51.32582],[7.16503,51.32066],[7.16924,51.31815],[7.16674,51.31211],[7.18065,51.30633],[7.16869,51.29757],[7.18232,51.29864],[7.18792,51.2953],[7.20026,51.29463],[7.20682,51.30159],[7.22309,51.30527],[7.22296,51.3087],[7.2271,51.3079],[7.22973,51.31051],[7.23393,51.308],[7.26365,51.31788],[7.26511,51.31533],[7.25974,51.31268],[7.26521,51.31276],[7.26537,51.30847],[7.25531,51.28518],[7.26764,51.2845],[7.27623,51.27434],[7.26578,51.26133],[7.26734,51.25621],[7.2715,51.25455],[7.27541,51.25975],[7.28262,51.24957],[7.29764,51.24979],[7.29643,51.24549],[7.30481,51.24046],[7.31027,51.24054],[7.31284,51.24487],[7.3238,51.24417],[7.32904,51.25024],[7.33872,51.24695],[7.339,51.23924],[7.34849,51.24109],[7.35405,51.23859],[7.35526,51.2429],[7.37289,51.24657],[7.37853,51.24151],[7.38672,51.24162],[7.38793,51.24593],[7.3934,51.246],[7.40319,51.23928],[7.39521,51.23317],[7.39824,51.22463],[7.41342,51.2197],[7.41182,51.22653],[7.42408,51.22756],[7.42962,51.22506],[7.42995,51.21563],[7.43413,51.21312],[7.43816,51.21489],[7.43534,51.21742],[7.44478,51.22098],[7.44191,51.22522],[7.45129,51.23049],[7.46505,51.22724],[7.469,51.23158],[7.48262,51.23262],[7.50143,51.24229],[7.50271,51.24488],[7.49708,51.24995],[7.49438,51.24906],[7.49563,51.2525],[7.50385,51.25175],[7.50371,51.25604],[7.51049,51.25784],[7.51302,51.26387],[7.52797,51.26663],[7.52923,51.27008],[7.54977,51.26862],[7.55089,51.27635],[7.56582,51.27996],[7.56826,51.28942],[7.58305,51.29732],[7.58547,51.30763],[7.58134,51.30844],[7.57837,51.31612],[7.58373,51.31962],[7.57816,51.32298],[7.57655,51.33067],[7.58334,51.33247],[7.58186,51.33588],[7.59407,51.33946],[7.59257,51.34373],[7.59934,51.34638],[7.59234,51.35144],[7.58644,51.36509],[7.58465,51.37878],[7.59,51.38313],[7.58704,51.38995],[7.59647,51.39521],[7.60609,51.39447],[7.60485,51.39017],[7.61322,51.38512],[7.63313,51.40679],[7.62196,51.41352],[7.62183,51.4178],[7.61633,51.41859],[7.63125,51.42391],[7.62561,51.42899],[7.62825,51.43245],[7.62127,51.43666],[7.62525,51.44099],[7.61977,51.44092],[7.61407,51.44772],[7.62083,51.45122],[7.63589,51.45226],[7.63843,51.45914],[7.65347,51.46103],[7.65606,51.46621],[7.67525,51.46728],[7.69838,51.4744],[7.72864,51.47216],[7.73567,51.46623],[7.7425,51.46717],[7.74785,51.47237],[7.76169,51.46823],[7.78906,51.47109],[7.79876,51.46776],[7.80819,51.47471],[7.82198,51.47228],[7.83418,51.4784],[7.8506,51.48028],[7.84474,51.49479],[7.83923,51.4956],[7.83912,51.49988],[7.83212,51.50496],[7.83755,51.50758],[7.8345,51.51955],[7.84115,51.52819],[7.83277,51.53325],[7.83262,51.53925],[7.84327,51.55307],[7.82749,51.57863],[7.85889,51.58837],[7.85742,51.59179],[7.86837,51.59446],[7.87529,51.59282],[7.91378,51.59489],[7.91632,51.60349],[7.91195,51.61374],[7.92414,51.62242],[7.92406,51.62585],[7.93224,51.62935],[7.93477,51.6388],[7.94443,51.63804],[7.94984,51.64237],[7.94689,51.65092],[7.95366,51.65612],[7.95466,51.67242],[7.96286,51.67592],[7.98365,51.67096],[7.9974,51.67279],[7.99732,51.67622],[7.98761,51.67871],[7.9875,51.68385],[7.97779,51.68633],[7.97631,51.69061],[7.96108,51.69305],[7.94296,51.70146],[7.93746,51.70055],[7.94014,51.704],[7.92912,51.70305],[7.92768,51.7056],[7.91249,51.70632],[7.90568,51.70283],[7.90148,51.70536],[7.88912,51.70267],[7.88875,51.7181],[7.88038,51.72145],[7.87745,51.72828],[7.87187,51.7308],[7.86374,51.72472],[7.85822,51.72467],[7.85815,51.72724],[7.83739,51.72961],[7.83314,51.73385],[7.83287,51.74413],[7.82457,51.74491],[7.82058,51.73887],[7.81228,51.73964],[7.80825,51.73531],[7.80137,51.73439],[7.80282,51.73183],[7.79037,51.73256],[7.78908,51.72912],[7.77119,51.72722],[7.7699,51.72378],[7.75154,51.73901],[7.73638,51.73799],[7.73659,51.73028],[7.72555,51.73016],[7.72163,51.7224],[7.71749,51.72236],[7.71899,51.71809],[7.71481,51.71976],[7.71352,51.71631],[7.7012,51.71275],[7.69283,51.71608],[7.68832,51.72889],[7.66915,51.72353],[7.668,51.71581],[7.65428,51.71308],[7.6531,51.70621],[7.64321,51.71381],[7.62814,51.7102],[7.62663,51.71447],[7.61419,51.71518],[7.6143,51.71176],[7.60743,51.71082],[7.6048,51.7065],[7.59379,51.70551],[7.58706,51.70029],[7.56642,51.69832],[7.56651,51.69575],[7.5528,51.69301],[7.54477,51.6852],[7.5378,51.68768],[7.54458,51.6912],[7.53349,51.69277],[7.52922,51.69701],[7.53035,51.70473],[7.51788,51.70629],[7.51738,51.72172],[7.50214,51.72324],[7.49947,51.72063],[7.49119,51.72053],[7.48449,51.71444],[7.48435,51.71872],[7.47877,51.72037],[7.4826,51.72985],[7.4771,51.72892],[7.47273,51.73572],[7.46718,51.7365],[7.44825,51.72511],[7.43451,51.72321],[7.42245,51.71277],[7.42406,51.70593],[7.43792,51.7044],[7.44094,51.69673],[7.44933,51.69341],[7.44854,51.67625],[7.43892,51.67527],[7.43089,51.6683],[7.4101,51.67145],[7.41031,51.66545],[7.40617,51.6654],[7.39086,51.66947],[7.3781,51.67959],[7.35877,51.68017],[7.35589,51.68356],[7.33919,51.68761],[7.34599,51.69028],[7.34427,51.69969],[7.33057,51.69692],[7.32762,51.70202],[7.30825,51.70346],[7.31069,51.71207],[7.2985,51.70589],[7.29963,51.71277],[7.31169,51.72237],[7.32081,51.73707],[7.3125,51.73781],[7.31102,51.74036],[7.31519,51.73957],[7.3151,51.74214],[7.31079,51.74636],[7.27889,51.75019],[7.27577,51.75957],[7.2688,51.76118],[7.26012,51.77134],[7.26002,51.77391],[7.27229,51.77838],[7.26245,51.78252],[7.26485,51.79198],[7.26179,51.79966],[7.2535,51.79953],[7.24916,51.80461],[7.23668,51.80528],[7.23658,51.80785],[7.22121,51.81191],[7.2141,51.81694],[7.19177,51.82174],[7.16419,51.8196],[7.1616,51.81528],[7.13435,51.80542],[7.11433,51.78795],[7.07867,51.78137],[7.07333,51.777],[7.0609,51.77679],[7.06079,51.77936],[7.05392,51.77839],[7.03847,51.78414],[7.0316,51.78317],[7.03141,51.78745],[7.0244,51.7899],[7.02118,51.80014],[6.99497,51.79884],[6.99485,51.80141],[6.98794,51.80129],[6.97559,51.79936],[6.95606,51.77245],[6.93527,51.7738],[6.9157,51.7786],[6.91511,51.76144],[6.90861,51.75275],[6.9103,51.74592],[6.8586,51.72956],[6.85551,51.73636],[6.84995,51.73712],[6.8403,51.73694],[6.82683,51.72983],[6.81956,51.73741],[6.81927,51.74341],[6.79861,51.74217],[6.78862,51.74884],[6.77219,51.74596],[6.7698,51.76649],[6.75824,51.77656],[6.74862,51.77551],[6.7475,51.77035],[6.72131,51.76899],[6.70876,51.77131],[6.7138,51.78084],[6.66837,51.77738],[6.65946,51.7892],[6.63264,51.79981],[6.61081,51.79423],[6.60911,51.80019],[6.59102,51.8024],[6.58457,51.79369],[6.57476,51.79606],[6.56818,51.78992],[6.5511,51.799],[6.53991,51.80134],[6.52834,51.81053],[6.52281,51.81041],[6.52258,51.81469],[6.51691,51.81714]]],"type":"Polygon"}},
{"properties":{"name":"Munich latest aerial imagery 60cm","id":"MunichLatestAerialImagery","url":"https://ogc.muenchen.de/wms/opendata_luftbild?LAYERS=bgl0&STYLES=&FORMAT=image/jpeg&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","attribution":{"required":true,"text":"Datenquelle: dl-de/by-2-0: Landeshauptstadt München – Kommunalreferat – GeodatenService – www.geodatenservice-muenchen.de","url":"https://www.muenchen.de/rathaus/Stadtverwaltung/Kommunalreferat/geodatenservice.html"},"type":"wms","category":"historicphoto","min_zoom":11},"type":"Feature","geometry":{"coordinates":[[[11.48878,48.053],[11.55589,48.05323],[11.55583,48.06224],[11.56915,48.06229],[11.56908,48.07128],[11.64986,48.07155],[11.64993,48.06256],[11.70326,48.06274],[11.70313,48.08074],[11.71673,48.08079],[11.71667,48.08968],[11.7299,48.08972],[11.72963,48.12566],[11.74313,48.1257],[11.74292,48.15276],[11.72943,48.15271],[11.72936,48.16152],[11.71612,48.16147],[11.71592,48.18859],[11.7027,48.18855],[11.70263,48.19752],[11.67558,48.19743],[11.67537,48.22446],[11.66176,48.22441],[11.66169,48.23355],[11.64863,48.2335],[11.64857,48.24246],[11.54064,48.2421],[11.54058,48.25093],[11.52735,48.25088],[11.52728,48.26001],[11.47335,48.25983],[11.47356,48.23291],[11.46014,48.23287],[11.46021,48.22373],[11.43336,48.22364],[11.43343,48.21439],[11.3798,48.21421],[11.37987,48.20518],[11.36607,48.20514],[11.36621,48.18741],[11.35259,48.18737],[11.35266,48.17817],[11.33946,48.17813],[11.33973,48.14216],[11.36684,48.14225],[11.36697,48.12443],[11.38083,48.12448],[11.3809,48.11558],[11.44769,48.1158],[11.44804,48.07087],[11.46186,48.07091],[11.46193,48.06193],[11.48872,48.06202],[11.48878,48.053]]],"type":"Polygon"}},
-{"properties":{"name":"NRW Liegenschaftskataster","id":"nrw_alkis_wms","url":"https://www.wms.nrw.de/geobasis/wms_nw_alkis?LAYERS=adv_alkis_tatsaechliche_nutzung,adv_alkis_gewaesser,adv_alkis_vegetation,adv_alkis_verkehr,adv_alkis_siedlung,adv_alkis_gesetzl_festlegungen,adv_alkis_bodensch,adv_alkis_oeff_rechtl_sonst_festl,adv_alkis_weiteres,adv_alkis_bauw_einricht,adv_alkis_gebaeude,adv_alkis_flurstuecke&FORMAT=image/png&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","type":"wms","category":"map","best":true},"type":"Feature","geometry":{"coordinates":[[[6.48,50.32],[6.88,50.32],[6.88,50.4],[6.96,50.4],[6.96,50.48],[7.04,50.48],[7.04,50.56],[7.36,50.56],[7.36,50.64],[7.52,50.64],[7.52,50.72],[7.76,50.72],[7.76,50.8],[7.92,50.8],[7.92,50.72],[8,50.72],[8,50.64],[8.24,50.64],[8.24,50.8],[8.4,50.8],[8.4,50.88],[8.48,50.88],[8.48,50.96],[8.56,50.96],[8.56,51.04],[8.8,51.04],[8.8,51.28],[8.72,51.28],[8.72,51.36],[8.96,51.36],[8.96,51.44],[9.04,51.44],[9.04,51.36],[9.2,51.36],[9.2,51.44],[9.36,51.44],[9.36,51.52],[9.44,51.52],[9.44,51.6],[9.52,51.6],[9.52,51.68],[9.44,51.68],[9.44,51.76],[9.52,51.76],[9.52,51.92],[9.36,51.92],[9.36,52],[9.28,52],[9.28,52.08],[9.2,52.08],[9.2,52.16],[9.12,52.16],[9.12,52.32],[9.2,52.32],[9.2,52.56],[8.96,52.56],[8.96,52.48],[8.72,52.48],[8.72,52.56],[8.4,52.56],[8.4,52.48],[8.24,52.48],[8.24,52.32],[8.4,52.32],[8.4,52.16],[8.08,52.16],[8.08,52.24],[8,52.24],[8,52.4],[7.76,52.4],[7.76,52.48],[7.52,52.48],[7.52,52.4],[7.36,52.4],[7.36,52.32],[7.04,52.32],[7.04,52.24],[6.8,52.24],[6.8,52.16],[6.72,52.16],[6.72,52.08],[6.64,52.08],[6.64,51.92],[5.92,51.92],[5.92,51.68],[6,51.68],[6,51.6],[6.08,51.6],[6.08,51.52],[6.16,51.52],[6.16,51.36],[6.08,51.36],[6.08,51.28],[6,51.28],[6,51.12],[5.84,51.12],[5.84,50.96],[6,50.96],[6,50.88],[5.92,50.88],[5.92,50.72],[6,50.72],[6,50.64],[6.16,50.64],[6.16,50.48],[6.32,50.48],[6.32,50.32],[6.4,50.32],[6.4,50.24],[6.48,50.24],[6.48,50.32]]],"type":"Polygon"}},
+{"properties":{"name":"NRW Liegenschaftskataster","id":"nrw_alkis_wms","url":"https://www.wms.nrw.de/geobasis/wms_nw_alkis?LAYERS=adv_alkis_tatsaechliche_nutzung,adv_alkis_gewaesser,adv_alkis_vegetation,adv_alkis_verkehr,adv_alkis_siedlung,adv_alkis_gesetzl_festlegungen,adv_alkis_bodensch,adv_alkis_oeff_rechtl_sonst_festl,adv_alkis_weiteres,adv_alkis_bauw_einricht,adv_alkis_gebaeude,adv_alkis_flurstuecke&FORMAT=image/png&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","type":"wms","category":"map"},"type":"Feature","geometry":{"coordinates":[[[6.48,50.32],[6.88,50.32],[6.88,50.4],[6.96,50.4],[6.96,50.48],[7.04,50.48],[7.04,50.56],[7.36,50.56],[7.36,50.64],[7.52,50.64],[7.52,50.72],[7.76,50.72],[7.76,50.8],[7.92,50.8],[7.92,50.72],[8,50.72],[8,50.64],[8.24,50.64],[8.24,50.8],[8.4,50.8],[8.4,50.88],[8.48,50.88],[8.48,50.96],[8.56,50.96],[8.56,51.04],[8.8,51.04],[8.8,51.28],[8.72,51.28],[8.72,51.36],[8.96,51.36],[8.96,51.44],[9.04,51.44],[9.04,51.36],[9.2,51.36],[9.2,51.44],[9.36,51.44],[9.36,51.52],[9.44,51.52],[9.44,51.6],[9.52,51.6],[9.52,51.68],[9.44,51.68],[9.44,51.76],[9.52,51.76],[9.52,51.92],[9.36,51.92],[9.36,52],[9.28,52],[9.28,52.08],[9.2,52.08],[9.2,52.16],[9.12,52.16],[9.12,52.32],[9.2,52.32],[9.2,52.56],[8.96,52.56],[8.96,52.48],[8.72,52.48],[8.72,52.56],[8.4,52.56],[8.4,52.48],[8.24,52.48],[8.24,52.32],[8.4,52.32],[8.4,52.16],[8.08,52.16],[8.08,52.24],[8,52.24],[8,52.4],[7.76,52.4],[7.76,52.48],[7.52,52.48],[7.52,52.4],[7.36,52.4],[7.36,52.32],[7.04,52.32],[7.04,52.24],[6.8,52.24],[6.8,52.16],[6.72,52.16],[6.72,52.08],[6.64,52.08],[6.64,51.92],[5.92,51.92],[5.92,51.68],[6,51.68],[6,51.6],[6.08,51.6],[6.08,51.52],[6.16,51.52],[6.16,51.36],[6.08,51.36],[6.08,51.28],[6,51.28],[6,51.12],[5.84,51.12],[5.84,50.96],[6,50.96],[6,50.88],[5.92,50.88],[5.92,50.72],[6,50.72],[6,50.64],[6.16,50.64],[6.16,50.48],[6.32,50.48],[6.32,50.32],[6.4,50.32],[6.4,50.24],[6.48,50.24],[6.48,50.32]]],"type":"Polygon"}},
{"properties":{"name":"NRW DTM Hillshade","id":"nrw_dtm_wms","url":"https://www.wms.nrw.de/geobasis/wms_nw_dgm-schummerung?LAYERS=nw_dgm-schummerung_pan&STYLES=default&FORMAT=image/jpeg&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","type":"wms","category":"elevation"},"type":"Feature","geometry":{"coordinates":[[[6.48,50.32],[6.88,50.32],[6.88,50.4],[6.96,50.4],[6.96,50.48],[7.04,50.48],[7.04,50.56],[7.36,50.56],[7.36,50.64],[7.52,50.64],[7.52,50.72],[7.76,50.72],[7.76,50.8],[7.92,50.8],[7.92,50.72],[8,50.72],[8,50.64],[8.24,50.64],[8.24,50.8],[8.4,50.8],[8.4,50.88],[8.48,50.88],[8.48,50.96],[8.56,50.96],[8.56,51.04],[8.8,51.04],[8.8,51.28],[8.72,51.28],[8.72,51.36],[8.96,51.36],[8.96,51.44],[9.04,51.44],[9.04,51.36],[9.2,51.36],[9.2,51.44],[9.36,51.44],[9.36,51.52],[9.44,51.52],[9.44,51.6],[9.52,51.6],[9.52,51.68],[9.44,51.68],[9.44,51.76],[9.52,51.76],[9.52,51.92],[9.36,51.92],[9.36,52],[9.28,52],[9.28,52.08],[9.2,52.08],[9.2,52.16],[9.12,52.16],[9.12,52.32],[9.2,52.32],[9.2,52.56],[8.96,52.56],[8.96,52.48],[8.72,52.48],[8.72,52.56],[8.4,52.56],[8.4,52.48],[8.24,52.48],[8.24,52.32],[8.4,52.32],[8.4,52.16],[8.08,52.16],[8.08,52.24],[8,52.24],[8,52.4],[7.76,52.4],[7.76,52.48],[7.52,52.48],[7.52,52.4],[7.36,52.4],[7.36,52.32],[7.04,52.32],[7.04,52.24],[6.8,52.24],[6.8,52.16],[6.72,52.16],[6.72,52.08],[6.64,52.08],[6.64,51.92],[5.92,51.92],[5.92,51.68],[6,51.68],[6,51.6],[6.08,51.6],[6.08,51.52],[6.16,51.52],[6.16,51.36],[6.08,51.36],[6.08,51.28],[6,51.28],[6,51.12],[5.84,51.12],[5.84,50.96],[6,50.96],[6,50.88],[5.92,50.88],[5.92,50.72],[6,50.72],[6,50.64],[6.16,50.64],[6.16,50.48],[6.32,50.48],[6.32,50.32],[6.4,50.32],[6.4,50.24],[6.48,50.24],[6.48,50.32]]],"type":"Polygon"}},
{"properties":{"name":"NRW iDOP","id":"nrw_idop_wms","url":"https://www.wms.nrw.de/geobasis/wms_nw_idop?LAYERS=nw_idop_rgb&STYLES=default&FORMAT=image/png&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","type":"wms","category":"photo"},"type":"Feature","geometry":{"coordinates":[[[6.48,50.32],[6.88,50.32],[6.88,50.4],[6.96,50.4],[6.96,50.48],[7.04,50.48],[7.04,50.56],[7.36,50.56],[7.36,50.64],[7.52,50.64],[7.52,50.72],[7.76,50.72],[7.76,50.8],[7.92,50.8],[7.92,50.72],[8,50.72],[8,50.64],[8.24,50.64],[8.24,50.8],[8.4,50.8],[8.4,50.88],[8.48,50.88],[8.48,50.96],[8.56,50.96],[8.56,51.04],[8.8,51.04],[8.8,51.28],[8.72,51.28],[8.72,51.36],[8.96,51.36],[8.96,51.44],[9.04,51.44],[9.04,51.36],[9.2,51.36],[9.2,51.44],[9.36,51.44],[9.36,51.52],[9.44,51.52],[9.44,51.6],[9.52,51.6],[9.52,51.68],[9.44,51.68],[9.44,51.76],[9.52,51.76],[9.52,51.92],[9.36,51.92],[9.36,52],[9.28,52],[9.28,52.08],[9.2,52.08],[9.2,52.16],[9.12,52.16],[9.12,52.32],[9.2,52.32],[9.2,52.56],[8.96,52.56],[8.96,52.48],[8.72,52.48],[8.72,52.56],[8.4,52.56],[8.4,52.48],[8.24,52.48],[8.24,52.32],[8.4,52.32],[8.4,52.16],[8.08,52.16],[8.08,52.24],[8,52.24],[8,52.4],[7.76,52.4],[7.76,52.48],[7.52,52.48],[7.52,52.4],[7.36,52.4],[7.36,52.32],[7.04,52.32],[7.04,52.24],[6.8,52.24],[6.8,52.16],[6.72,52.16],[6.72,52.08],[6.64,52.08],[6.64,51.92],[5.92,51.92],[5.92,51.68],[6,51.68],[6,51.6],[6.08,51.6],[6.08,51.52],[6.16,51.52],[6.16,51.36],[6.08,51.36],[6.08,51.28],[6,51.28],[6,51.12],[5.84,51.12],[5.84,50.96],[6,50.96],[6,50.88],[5.92,50.88],[5.92,50.72],[6,50.72],[6,50.64],[6.16,50.64],[6.16,50.48],[6.32,50.48],[6.32,50.32],[6.4,50.32],[6.4,50.24],[6.48,50.24],[6.48,50.32]]],"type":"Polygon"}},
{"properties":{"name":"NRW Orthophoto","id":"nrw_ortho_wms","url":"https://www.wms.nrw.de/geobasis/wms_nw_dop?LAYERS=nw_dop_rgb&STYLES=default&FORMAT=image/jpeg&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","type":"wms","category":"photo"},"type":"Feature","geometry":{"coordinates":[[[6.48,50.32],[6.88,50.32],[6.88,50.4],[6.96,50.4],[6.96,50.48],[7.04,50.48],[7.04,50.56],[7.36,50.56],[7.36,50.64],[7.52,50.64],[7.52,50.72],[7.76,50.72],[7.76,50.8],[7.92,50.8],[7.92,50.72],[8,50.72],[8,50.64],[8.24,50.64],[8.24,50.8],[8.4,50.8],[8.4,50.88],[8.48,50.88],[8.48,50.96],[8.56,50.96],[8.56,51.04],[8.8,51.04],[8.8,51.28],[8.72,51.28],[8.72,51.36],[8.96,51.36],[8.96,51.44],[9.04,51.44],[9.04,51.36],[9.2,51.36],[9.2,51.44],[9.36,51.44],[9.36,51.52],[9.44,51.52],[9.44,51.6],[9.52,51.6],[9.52,51.68],[9.44,51.68],[9.44,51.76],[9.52,51.76],[9.52,51.92],[9.36,51.92],[9.36,52],[9.28,52],[9.28,52.08],[9.2,52.08],[9.2,52.16],[9.12,52.16],[9.12,52.32],[9.2,52.32],[9.2,52.56],[8.96,52.56],[8.96,52.48],[8.72,52.48],[8.72,52.56],[8.4,52.56],[8.4,52.48],[8.24,52.48],[8.24,52.32],[8.4,52.32],[8.4,52.16],[8.08,52.16],[8.08,52.24],[8,52.24],[8,52.4],[7.76,52.4],[7.76,52.48],[7.52,52.48],[7.52,52.4],[7.36,52.4],[7.36,52.32],[7.04,52.32],[7.04,52.24],[6.8,52.24],[6.8,52.16],[6.72,52.16],[6.72,52.08],[6.64,52.08],[6.64,51.92],[5.92,51.92],[5.92,51.68],[6,51.68],[6,51.6],[6.08,51.6],[6.08,51.52],[6.16,51.52],[6.16,51.36],[6.08,51.36],[6.08,51.28],[6,51.28],[6,51.12],[5.84,51.12],[5.84,50.96],[6,50.96],[6,50.88],[5.92,50.88],[5.92,50.72],[6,50.72],[6,50.64],[6.16,50.64],[6.16,50.48],[6.32,50.48],[6.32,50.32],[6.4,50.32],[6.4,50.24],[6.48,50.24],[6.48,50.32]]],"type":"Polygon"}},
@@ -507,6 +508,8 @@
{"properties":{"name":"ADOP Orthoimagery 2023 (9in)","id":"ADOP_2023_9in","url":"https://gis.arkansas.gov/arcgis/rest/services/ImageServices/IMAGERY_9IN_2023/ImageServer/tile/{zoom}/{y}/{x}","attribution":{"required":false,"text":"Arkansas GIS Office","url":"https://gis.arkansas.gov/programs/arkansas-digital-ortho-program-adop/"},"type":"tms","category":"photo","min_zoom":3,"max_zoom":19,"best":true},"type":"Feature","geometry":{"coordinates":[[[-94.62579,35.74603],[-94.52734,35.74796],[-94.50009,34.34085],[-94.53191,34.34003],[-94.51743,33.47512],[-94.12992,33.47906],[-94.12479,33.12756],[-94.15742,33.12711],[-94.15575,32.99213],[-90.97741,32.98103],[-90.96769,33.41369],[-90.99973,33.41416],[-90.9974,33.52227],[-91.09411,33.5239],[-91.09199,33.60508],[-90.99544,33.60373],[-90.99225,33.73877],[-90.86277,33.73705],[-90.8568,33.98023],[-90.72697,33.9778],[-90.71972,34.24787],[-90.62187,34.24608],[-90.61903,34.35412],[-90.48868,34.35144],[-90.48048,34.62193],[-90.34976,34.61943],[-90.34624,34.72721],[-90.24791,34.725],[-90.24351,34.86019],[-90.11238,34.85701],[-90.10792,34.99226],[-89.97623,34.98904],[-89.96635,35.2591],[-89.99933,35.25985],[-89.99135,35.47607],[-89.85917,35.47274],[-89.85411,35.60798],[-89.72142,35.60441],[-89.71627,35.73915],[-89.61682,35.73644],[-89.59975,36.14142],[-89.89895,36.14973],[-89.90412,36.01468],[-90.23688,36.02241],[-90.23452,36.10408],[-90.10099,36.10119],[-90.09585,36.23561],[-89.99557,36.2331],[-89.98546,36.50334],[-91.15719,36.52708],[-91.15735,36.50003],[-94.64183,36.50323],[-94.62579,35.74603]]],"type":"Polygon"}},
{"properties":{"name":"PAgis 2018 Orthophotography","id":"PAgis_Ortho_2018","url":"https://www.pagis.org/arcgis/services/MAPS/AerialPhotos2018/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}","attribution":{"required":false,"text":"Pulaski Area Geographic Information System","url":"https://www.pagis.org/"},"type":"wms","category":"photo","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[-92.75493,34.84636],[-92.65777,34.84694],[-92.65707,34.75991],[-92.55161,34.76045],[-92.55115,34.6879],[-92.50721,34.6881],[-92.50707,34.66635],[-92.44561,34.66661],[-92.44535,34.6231],[-92.34887,34.62341],[-92.34865,34.5799],[-92.25224,34.58011],[-92.25195,34.49308],[-92.22567,34.49312],[-92.22565,34.48587],[-92.02421,34.48609],[-92.02425,34.62388],[-92.1032,34.62385],[-92.10322,34.66013],[-92.09447,34.66013],[-92.0945,34.69639],[-92.08575,34.69641],[-92.08574,34.71815],[-92.07696,34.71816],[-92.077,34.76893],[-92.06823,34.76896],[-92.06844,35.01555],[-92.23593,35.01534],[-92.23569,34.9283],[-92.26211,34.92825],[-92.26214,34.93548],[-92.42063,34.93503],[-92.42055,34.91331],[-92.45575,34.91313],[-92.47042,34.94247],[-92.48118,34.95006],[-92.49286,34.95245],[-92.52334,34.95063],[-92.55292,34.95626],[-92.55283,34.94176],[-92.64972,34.94127],[-92.64951,34.91225],[-92.75512,34.9116],[-92.75493,34.84636]]],"type":"Polygon"}},
{"properties":{"name":"PAgis 2021 Orthophotography","id":"PAgis_Ortho_2021","url":"https://www.pagis.org/arcgis/rest/services/MAPS/AerialPhotos2021/MapServer/export?f=image&format=jpg&bbox={bbox}&bboxSR={wkid}&imageSR={wkid}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"Pulaski Area Geographic Information System","url":"https://www.pagis.org/"},"type":"wms","category":"photo","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[-92.75493,34.84636],[-92.65777,34.84694],[-92.65707,34.75991],[-92.55161,34.76045],[-92.55115,34.6879],[-92.50721,34.6881],[-92.50707,34.66635],[-92.44561,34.66661],[-92.44535,34.6231],[-92.34887,34.62341],[-92.34865,34.5799],[-92.25224,34.58011],[-92.25195,34.49308],[-92.22567,34.49312],[-92.22565,34.48587],[-92.02421,34.48609],[-92.02425,34.62388],[-92.1032,34.62385],[-92.10322,34.66013],[-92.09447,34.66013],[-92.0945,34.69639],[-92.08575,34.69641],[-92.08574,34.71815],[-92.07696,34.71816],[-92.077,34.76893],[-92.06823,34.76896],[-92.06844,35.01555],[-92.23593,35.01534],[-92.23569,34.9283],[-92.26211,34.92825],[-92.26214,34.93548],[-92.42063,34.93503],[-92.42055,34.91331],[-92.45575,34.91313],[-92.47042,34.94247],[-92.48118,34.95006],[-92.49286,34.95245],[-92.52334,34.95063],[-92.55292,34.95626],[-92.55283,34.94176],[-92.64972,34.94127],[-92.64951,34.91225],[-92.75512,34.9116],[-92.75493,34.84636]]],"type":"Polygon"}},
+{"properties":{"name":"City of Burbank Orthoimagery (2021)","id":"Burbank_CA_2021","url":"https://mobilegis.burbankca.gov/burgis/rest/services/Ortho/Base_2021_3in_Webmerc_Notitles/MapServer/tile/{zoom}/{y}/{x}","attribution":{"required":false,"text":"City of Burbank","url":"https://gis.burbankca.gov/"},"type":"tms","category":"historicphoto","max_zoom":23},"type":"Feature","geometry":{"coordinates":[[[-118.27124,34.22771],[-118.37562,34.22771],[-118.37562,34.13313],[-118.27124,34.13313],[-118.27124,34.22771]]],"type":"Polygon"}},
+{"properties":{"name":"City of Burbank Orthoimagery (2024)","id":"Burbank_CA_2024","url":"https://mobilegis.burbankca.gov/burgis/rest/services/Ortho/Base_2024_4in/MapServer/export?f=image&format=jpg&bbox={bbox}&bboxSR={wkid}&imageSR={wkid}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"City of Burbank","url":"https://gis.burbankca.gov/"},"type":"wms","category":"photo","max_zoom":23},"type":"Feature","geometry":{"coordinates":[[[-118.27124,34.22771],[-118.37562,34.22771],[-118.37562,34.13313],[-118.27124,34.13313],[-118.27124,34.22771]]],"type":"Polygon"}},
{"properties":{"name":"Calaveras County Orthoimagery (2022)","id":"Calaveras_CA_2022","url":"https://gisportal.co.calaveras.ca.us/image/rest/services/CC_Aug2022_Cache/ImageServer/tile/{zoom}/{y}/{x}","attribution":{"required":false,"text":"Calaveras County","url":"https://www.calaverasgov.us/"},"type":"tms","category":"photo","max_zoom":23},"type":"Feature","geometry":{"coordinates":[[[-120.93863,38.0883],[-120.65316,37.83286],[-120.64289,37.84152],[-120.63342,37.86085],[-120.59963,37.8788],[-120.59765,37.88824],[-120.58644,37.89615],[-120.56867,37.8946],[-120.56205,37.9141],[-120.54329,37.91982],[-120.53785,37.92597],[-120.53998,37.93616],[-120.53475,37.94475],[-120.51532,37.95114],[-120.52525,37.99398],[-120.50155,37.99129],[-120.49909,38.00811],[-120.46483,38.00861],[-120.43998,38.05969],[-120.43236,38.05926],[-120.42548,38.07309],[-120.41333,38.0829],[-120.40885,38.10273],[-120.38727,38.11559],[-120.38348,38.12668],[-120.37857,38.13029],[-120.37845,38.13555],[-120.37275,38.1365],[-120.37083,38.13906],[-120.37391,38.14489],[-120.37023,38.15154],[-120.35758,38.15427],[-120.35769,38.15846],[-120.36036,38.16077],[-120.35561,38.16371],[-120.35374,38.16371],[-120.34984,38.1703],[-120.34456,38.17022],[-120.34002,38.17233],[-120.33751,38.17806],[-120.33543,38.18498],[-120.33197,38.18865],[-120.33016,38.19523],[-120.326,38.19636],[-120.32527,38.19951],[-120.32247,38.20089],[-120.30164,38.22978],[-120.29201,38.23332],[-120.28939,38.24674],[-120.27258,38.25948],[-120.27274,38.26648],[-120.27039,38.27094],[-120.26591,38.27232],[-120.2607,38.27758],[-120.25542,38.28667],[-120.252,38.28701],[-120.24026,38.29489],[-120.2369,38.29857],[-120.23708,38.30205],[-120.23458,38.30364],[-120.2342,38.30616],[-120.23201,38.30679],[-120.22881,38.31429],[-120.22644,38.31471],[-120.22366,38.31877],[-120.21371,38.32306],[-120.20543,38.32922],[-120.17645,38.37125],[-120.15392,38.38673],[-120.12051,38.39965],[-120.08787,38.4034],[-120.07749,38.41086],[-120.03989,38.42611],[-120.02969,38.42469],[-120.01795,38.43568],[-120.05352,38.4555],[-120.07255,38.44722],[-120.07249,38.50987],[-120.12892,38.49716],[-120.21677,38.49795],[-120.22713,38.49047],[-120.23554,38.48974],[-120.24143,38.48504],[-120.24645,38.486],[-120.24749,38.48682],[-120.2528,38.48715],[-120.25366,38.48774],[-120.26092,38.48616],[-120.26272,38.48326],[-120.26363,38.48253],[-120.26488,38.4828],[-120.26939,38.47762],[-120.27267,38.47787],[-120.27563,38.47594],[-120.28343,38.47534],[-120.28599,38.47668],[-120.29482,38.47722],[-120.29795,38.4754],[-120.30094,38.4745],[-120.30451,38.47206],[-120.30603,38.47235],[-120.3201,38.47074],[-120.32175,38.46884],[-120.3308,38.46518],[-120.3332,38.46536],[-120.33805,38.46749],[-120.3512,38.46624],[-120.35296,38.46544],[-120.36356,38.46678],[-120.37133,38.46471],[-120.37642,38.46246],[-120.38464,38.46216],[-120.39099,38.46743],[-120.40012,38.46651],[-120.4124,38.47056],[-120.41619,38.47366],[-120.42297,38.47336],[-120.44357,38.462],[-120.44816,38.45288],[-120.48443,38.4458],[-120.49564,38.44944],[-120.50503,38.444],[-120.50727,38.43823],[-120.52051,38.42657],[-120.52366,38.4228],[-120.52782,38.42251],[-120.53033,38.41887],[-120.5377,38.41854],[-120.54058,38.42289],[-120.57207,38.41339],[-120.57448,38.40177],[-120.60848,38.39779],[-120.61509,38.3893],[-120.61734,38.37846],[-120.62022,38.35729],[-120.62822,38.35586],[-120.63191,38.34607],[-120.63287,38.33987],[-120.63885,38.34092],[-120.65929,38.33169],[-120.67434,38.33112],[-120.69932,38.31839],[-120.73829,38.30813],[-120.75131,38.29695],[-120.75361,38.29108],[-120.80613,38.2902],[-120.84894,38.25941],[-120.85694,38.24754],[-120.87924,38.24084],[-120.89424,38.22],[-120.91666,38.22964],[-120.95461,38.22012],[-120.99556,38.22528],[-120.93863,38.0883]]],"type":"Polygon"}},
{"properties":{"name":"Orange County Orthoimagery (2022)","id":"Orange_CA_2022","url":"https://www.ocgis.com/survey/rest/services/Basemaps/Eagle_2022_3in_Aerial_Cached/ImageServer/exportImage?f=image&format=jpg&bbox={bbox}&bboxSR={wkid}&imageSR={wkid}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"Orange County","url":"https://data-ocpw.opendata.arcgis.com/"},"type":"wms","category":"photo","max_zoom":23},"type":"Feature","geometry":{"coordinates":[[[-117.40675,33.65258],[-117.41167,33.65807],[-117.41071,33.65966],[-117.47392,33.70357],[-117.53261,33.71172],[-117.53453,33.7571],[-117.57703,33.76797],[-117.62354,33.81771],[-117.62326,33.82939],[-117.63365,33.82934],[-117.66137,33.86069],[-117.64525,33.86007],[-117.64502,33.86822],[-117.65849,33.87161],[-117.65928,33.87733],[-117.65249,33.88055],[-117.64208,33.88355],[-117.6457,33.88785],[-117.64609,33.89798],[-117.64819,33.908],[-117.65334,33.92379],[-117.67207,33.94484],[-117.68871,33.9677],[-117.6968,33.96046],[-117.70433,33.95814],[-117.71066,33.95831],[-117.71491,33.95995],[-117.71542,33.96594],[-117.72062,33.96538],[-117.72656,33.96306],[-117.72985,33.96153],[-117.73154,33.96527],[-117.73222,33.9694],[-117.72939,33.97319],[-117.72968,33.97585],[-117.73205,33.97964],[-117.73188,33.9832],[-117.73777,33.98185],[-117.74252,33.98202],[-117.75146,33.98881],[-117.75791,33.99582],[-117.76182,33.99339],[-117.7711,33.99356],[-117.77636,33.99679],[-117.78253,33.99848],[-117.79181,33.99447],[-117.80347,33.99696],[-117.80675,33.99922],[-117.81105,34.00075],[-117.81428,33.99486],[-117.81773,33.99124],[-117.82758,33.98456],[-117.83788,33.97387],[-117.8415,33.96954],[-117.84642,33.96756],[-117.84999,33.96892],[-117.85055,33.9722],[-117.85389,33.97474],[-117.85819,33.97537],[-117.86204,33.97469],[-117.86538,33.97146],[-117.86979,33.97237],[-117.88241,33.97605],[-117.89147,33.97457],[-117.89809,33.96999],[-117.91516,33.96788],[-117.91481,33.96184],[-117.92166,33.95748],[-117.93064,33.94779],[-117.97806,33.94711],[-117.97789,33.90411],[-117.98542,33.90405],[-117.98536,33.90484],[-117.98779,33.90473],[-117.98779,33.90264],[-117.99034,33.90264],[-117.99017,33.89692],[-117.99577,33.89698],[-117.99566,33.88956],[-118.00437,33.88962],[-118.00426,33.88238],[-118.01167,33.88232],[-118.0299,33.8744],[-118.03938,33.86656],[-118.03932,33.8637],[-118.04356,33.86365],[-118.04353,33.86002],[-118.04798,33.85994],[-118.04784,33.85485],[-118.05214,33.85485],[-118.05202,33.8512],[-118.05644,33.85122],[-118.05644,33.8476],[-118.06065,33.84746],[-118.06085,33.83538],[-118.06481,33.83187],[-118.06504,33.82021],[-118.07364,33.81614],[-118.08615,33.80363],[-118.08762,33.79718],[-118.10092,33.77641],[-118.09534,33.76801],[-118.0941,33.76484],[-118.09376,33.75941],[-118.1001,33.75896],[-118.10021,33.75567],[-118.11379,33.74809],[-118.13275,33.72455],[-117.58794,33.37667],[-117.58298,33.38562],[-117.58252,33.38548],[-117.58188,33.38662],[-117.58143,33.38677],[-117.57949,33.38567],[-117.57754,33.38518],[-117.57541,33.38534],[-117.56044,33.38835],[-117.55375,33.38867],[-117.55202,33.38847],[-117.55089,33.38819],[-117.54911,33.38836],[-117.54356,33.39068],[-117.54215,33.39156],[-117.53804,33.39501],[-117.53595,33.39645],[-117.53389,33.39691],[-117.53063,33.39685],[-117.52915,33.39663],[-117.52884,33.39748],[-117.52956,33.39927],[-117.52808,33.40189],[-117.52796,33.40478],[-117.53062,33.40817],[-117.53159,33.41485],[-117.53362,33.41751],[-117.53555,33.41813],[-117.53674,33.41949],[-117.53102,33.42187],[-117.527,33.4247],[-117.52451,33.43013],[-117.50352,33.44756],[-117.50069,33.45243],[-117.47754,33.46754],[-117.47664,33.47331],[-117.47658,33.47897],[-117.47398,33.48321],[-117.47285,33.48712],[-117.46945,33.49232],[-117.46509,33.49481],[-117.46215,33.49979],[-117.46317,33.54359],[-117.45513,33.55672],[-117.45513,33.57777],[-117.43001,33.60222],[-117.41428,33.63249],[-117.40675,33.65258]]],"type":"Polygon"}},
{"properties":{"name":"Sacramento County Orthoimagery (2022)","id":"Sacramento_CA_2022","url":"https://mapservices.gis.saccounty.gov/ArcGIS/rest/services/Cache/IMAGERY_2022_WEB_MERCATOR/MapServer/tile/{zoom}/{y}/{x}","attribution":{"required":false,"text":"Sacramento County","url":"https://data.saccounty.gov/"},"type":"tms","category":"photo","max_zoom":23},"type":"Feature","geometry":{"coordinates":[[[-121.75804,38.01591],[-121.75781,38.02314],[-121.7213,38.02314],[-121.72144,38.03025],[-121.71207,38.03018],[-121.71189,38.0375],[-121.69383,38.03729],[-121.69366,38.04475],[-121.68463,38.04461],[-121.68453,38.05184],[-121.67533,38.0519],[-121.67523,38.08822],[-121.64787,38.08803],[-121.64794,38.08077],[-121.62941,38.08082],[-121.62917,38.09531],[-121.61115,38.09522],[-121.61086,38.10237],[-121.60185,38.10231],[-121.60192,38.09511],[-121.55578,38.09499],[-121.55534,38.10975],[-121.57424,38.10981],[-121.57417,38.12409],[-121.565,38.12406],[-121.56504,38.13124],[-121.55574,38.13117],[-121.55564,38.13856],[-121.54658,38.13846],[-121.54638,38.14585],[-121.52807,38.14571],[-121.52807,38.16742],[-121.51883,38.16737],[-121.51854,38.19639],[-121.50942,38.19636],[-121.50936,38.20356],[-121.50025,38.20347],[-121.49997,38.22534],[-121.48173,38.22522],[-121.4815,38.23975],[-121.47245,38.23962],[-121.472,38.25419],[-121.43551,38.25395],[-121.4357,38.24681],[-121.42641,38.24673],[-121.4265,38.23222],[-121.41731,38.23214],[-121.41743,38.22497],[-121.32543,38.22452],[-121.32525,38.23162],[-121.28873,38.23146],[-121.28833,38.23866],[-121.27935,38.23862],[-121.2793,38.24591],[-121.25161,38.24558],[-121.25182,38.23844],[-121.21501,38.23835],[-121.21483,38.24549],[-121.19655,38.2453],[-121.19656,38.25257],[-121.15971,38.25237],[-121.15949,38.2596],[-121.14113,38.25951],[-121.14105,38.26674],[-121.12275,38.26644],[-121.12237,38.27384],[-121.10423,38.27365],[-121.10381,38.28096],[-121.07668,38.2807],[-121.07661,38.28798],[-121.06727,38.28775],[-121.06705,38.29508],[-121.05814,38.29503],[-121.05821,38.28775],[-121.03989,38.28753],[-121.03946,38.29486],[-121.0212,38.2948],[-121.01731,38.51237],[-121.02709,38.51257],[-121.02709,38.53387],[-121.03638,38.53387],[-121.03602,38.55582],[-121.04536,38.55597],[-121.04499,38.57043],[-121.05433,38.57029],[-121.05399,38.59949],[-121.06325,38.59957],[-121.06267,38.63581],[-121.07196,38.63595],[-121.07124,38.67941],[-121.08067,38.67952],[-121.08021,38.70128],[-121.08962,38.70137],[-121.08939,38.72305],[-121.19117,38.72378],[-121.19099,38.73101],[-121.3021,38.73177],[-121.30198,38.74628],[-121.48707,38.74711],[-121.48724,38.73998],[-121.58899,38.7404],[-121.58889,38.74754],[-121.60729,38.74776],[-121.6075,38.73318],[-121.62607,38.73343],[-121.62616,38.71877],[-121.64463,38.71884],[-121.64508,38.65355],[-121.62647,38.65338],[-121.62659,38.64629],[-121.60801,38.64596],[-121.6081,38.63174],[-121.5711,38.63142],[-121.57135,38.60255],[-121.58059,38.60271],[-121.58068,38.58084],[-121.59,38.5809],[-121.59057,38.49389],[-121.56268,38.49364],[-121.56299,38.47926],[-121.55367,38.47909],[-121.55388,38.47213],[-121.54449,38.47179],[-121.54447,38.46466],[-121.50752,38.46449],[-121.5078,38.44289],[-121.5261,38.44294],[-121.52632,38.43572],[-121.5354,38.43561],[-121.53582,38.4137],[-121.52637,38.41354],[-121.52644,38.38498],[-121.53575,38.38502],[-121.53599,38.35598],[-121.54511,38.35602],[-121.54528,38.34873],[-121.5636,38.34882],[-121.5636,38.34173],[-121.57293,38.34168],[-121.57293,38.3343],[-121.59123,38.33441],[-121.59157,38.32004],[-121.60047,38.31997],[-121.60056,38.30549],[-121.60992,38.30542],[-121.61041,38.21136],[-121.61954,38.21124],[-121.61975,38.19682],[-121.64709,38.19699],[-121.64725,38.18961],[-121.66551,38.18986],[-121.66565,38.18242],[-121.67471,38.18257],[-121.67478,38.17529],[-121.68418,38.17519],[-121.68418,38.16806],[-121.69318,38.16832],[-121.69348,38.13197],[-121.70278,38.13183],[-121.70287,38.11726],[-121.71191,38.11754],[-121.71203,38.08844],[-121.75762,38.08852],[-121.758,38.08133],[-121.77605,38.08119],[-121.77637,38.07387],[-121.78527,38.07412],[-121.78551,38.06673],[-121.82204,38.06696],[-121.82164,38.07396],[-121.83115,38.07436],[-121.83115,38.08153],[-121.84967,38.08161],[-121.84942,38.07412],[-121.86782,38.07407],[-121.86776,38.05961],[-121.84949,38.05955],[-121.84951,38.0379],[-121.84044,38.03783],[-121.84053,38.02338],[-121.82214,38.02322],[-121.82229,38.01604],[-121.75804,38.01591]]],"type":"Polygon"}},
@@ -687,6 +690,7 @@
{"properties":{"name":"Rhode Island Aerial Photo (Spring 2021)","id":"RIGIS_Aerial_Photo_21s","url":"https://maps.edc.uri.edu/rigis/rest/services/IMG/RI_202103_RGB_3in_web/ImageServer/exportImage?f=image&format=jpgpng&imageSR={wkid}&bboxSR={wkid}&bbox={bbox}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"RIGIS","url":"http://www.planning.ri.gov/planning-areas/demographics/aerial-photographs.php"},"type":"wms","category":"historicphoto","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[[-71.56855,41.22547],[-71.57301,41.22741],[-71.5782,41.23319],[-71.57904,41.20896],[-71.58088,41.20401],[-71.58925,41.19819],[-71.59369,41.20042],[-71.59378,41.19227],[-71.59792,41.18599],[-71.60738,41.18161],[-71.61459,41.15641],[-71.60927,41.15101],[-71.59876,41.14605],[-71.58076,41.14647],[-71.54636,41.15186],[-71.54323,41.16373],[-71.54526,41.16567],[-71.55005,41.16712],[-71.55192,41.16824],[-71.55387,41.1729],[-71.55318,41.17788],[-71.56494,41.1813],[-71.56571,41.18828],[-71.56374,41.19435],[-71.55295,41.21182],[-71.55988,41.22405],[-71.56486,41.22554],[-71.56855,41.22547]]],[[[-71.49821,42.01783],[-71.5152,42.01662],[-71.80012,42.01078],[-71.79909,41.92399],[-71.78982,41.65816],[-71.79943,41.41814],[-71.81831,41.42104],[-71.84372,41.41184],[-71.86698,41.31927],[-71.90758,41.3047],[-71.87943,41.29844],[-71.71103,41.33081],[-71.54932,41.37359],[-71.49014,41.34418],[-71.4283,41.44684],[-71.31002,41.44929],[-71.24617,41.45881],[-71.19364,41.44736],[-71.11811,41.48396],[-71.13218,41.6268],[-71.12982,41.66034],[-71.17467,41.66868],[-71.17452,41.67248],[-71.19533,41.67642],[-71.2587,41.75262],[-71.32526,41.78043],[-71.33801,41.80804],[-71.34667,41.82308],[-71.3341,41.83539],[-71.34152,41.84463],[-71.33352,41.86255],[-71.3404,41.88178],[-71.33732,41.89934],[-71.38101,41.89416],[-71.38115,42.01892],[-71.49821,42.01783]]]],"type":"MultiPolygon"}},
{"properties":{"name":"Rhode Island Aerial Photo (Spring 2022)","id":"RIGIS_Aerial_Photo_22s","url":"https://maps.edc.uri.edu/rigis/rest/services/IMG/RI_202204_RGB_3in_web/ImageServer/exportImage?f=image&format=jpgpng&imageSR={wkid}&bboxSR={wkid}&bbox={bbox}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"RIGIS","url":"https://planning.ri.gov/planning-areas/data-center/aerial-photography"},"type":"wms","category":"historicphoto","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[[-71.56855,41.22547],[-71.57301,41.22741],[-71.5782,41.23319],[-71.57904,41.20896],[-71.58088,41.20401],[-71.58925,41.19819],[-71.59369,41.20042],[-71.59378,41.19227],[-71.59792,41.18599],[-71.60738,41.18161],[-71.61459,41.15641],[-71.60927,41.15101],[-71.59876,41.14605],[-71.58076,41.14647],[-71.54636,41.15186],[-71.54323,41.16373],[-71.54526,41.16567],[-71.55005,41.16712],[-71.55192,41.16824],[-71.55387,41.1729],[-71.55318,41.17788],[-71.56494,41.1813],[-71.56571,41.18828],[-71.56374,41.19435],[-71.55295,41.21182],[-71.55988,41.22405],[-71.56486,41.22554],[-71.56855,41.22547]]],[[[-71.49821,42.01783],[-71.5152,42.01662],[-71.80012,42.01078],[-71.79909,41.92399],[-71.78982,41.65816],[-71.79943,41.41814],[-71.81831,41.42104],[-71.84372,41.41184],[-71.86698,41.31927],[-71.90758,41.3047],[-71.87943,41.29844],[-71.71103,41.33081],[-71.54932,41.37359],[-71.49014,41.34418],[-71.4283,41.44684],[-71.31002,41.44929],[-71.24617,41.45881],[-71.19364,41.44736],[-71.11811,41.48396],[-71.13218,41.6268],[-71.12982,41.66034],[-71.17467,41.66868],[-71.17452,41.67248],[-71.19533,41.67642],[-71.2587,41.75262],[-71.32526,41.78043],[-71.33801,41.80804],[-71.34667,41.82308],[-71.3341,41.83539],[-71.34152,41.84463],[-71.33352,41.86255],[-71.3404,41.88178],[-71.33732,41.89934],[-71.38101,41.89416],[-71.38115,42.01892],[-71.49821,42.01783]]]],"type":"MultiPolygon"}},
{"properties":{"name":"Rhode Island Aerial Photo (Spring 2023)","id":"RIGIS_Aerial_Photo_23s","url":"https://maps.edc.uri.edu/rigis/rest/services/IMG/RI_202303_RGB_3in_web/ImageServer/exportImage?f=image&format=jpgpng&imageSR={wkid}&bboxSR={wkid}&bbox={bbox}&size={width},{height}&foo={proj}","attribution":{"required":false,"text":"RIGIS","url":"https://planning.ri.gov/planning-areas/data-center/aerial-photography"},"type":"wms","category":"photo","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[[-71.56855,41.22547],[-71.57301,41.22741],[-71.5782,41.23319],[-71.57904,41.20896],[-71.58088,41.20401],[-71.58925,41.19819],[-71.59369,41.20042],[-71.59378,41.19227],[-71.59792,41.18599],[-71.60738,41.18161],[-71.61459,41.15641],[-71.60927,41.15101],[-71.59876,41.14605],[-71.58076,41.14647],[-71.54636,41.15186],[-71.54323,41.16373],[-71.54526,41.16567],[-71.55005,41.16712],[-71.55192,41.16824],[-71.55387,41.1729],[-71.55318,41.17788],[-71.56494,41.1813],[-71.56571,41.18828],[-71.56374,41.19435],[-71.55295,41.21182],[-71.55988,41.22405],[-71.56486,41.22554],[-71.56855,41.22547]]],[[[-71.49821,42.01783],[-71.5152,42.01662],[-71.80012,42.01078],[-71.79909,41.92399],[-71.78982,41.65816],[-71.79943,41.41814],[-71.81831,41.42104],[-71.84372,41.41184],[-71.86698,41.31927],[-71.90758,41.3047],[-71.87943,41.29844],[-71.71103,41.33081],[-71.54932,41.37359],[-71.49014,41.34418],[-71.4283,41.44684],[-71.31002,41.44929],[-71.24617,41.45881],[-71.19364,41.44736],[-71.11811,41.48396],[-71.13218,41.6268],[-71.12982,41.66034],[-71.17467,41.66868],[-71.17452,41.67248],[-71.19533,41.67642],[-71.2587,41.75262],[-71.32526,41.78043],[-71.33801,41.80804],[-71.34667,41.82308],[-71.3341,41.83539],[-71.34152,41.84463],[-71.33352,41.86255],[-71.3404,41.88178],[-71.33732,41.89934],[-71.38101,41.89416],[-71.38115,42.01892],[-71.49821,42.01783]]]],"type":"MultiPolygon"}},
+{"properties":{"name":"TNMap Orthoimagery Latest","id":"TNMap_Orthoimagery_Latest","url":"https://tnmap.tn.gov/arcgis/rest/services/BASEMAPS/IMAGERY_WEB_MERCATOR/MapServer/tile/{zoom}/{y}/{x}","attribution":{"required":false,"text":"Tennessee Imagery Program","url":"https://imagery.tn.gov/pages/tdot-imagery"},"type":"tms","category":"photo","min_zoom":6,"max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[-90.32418,34.98378],[-90.02032,34.99468],[-90.01994,34.98328],[-89.66986,34.99486],[-89.66958,34.98342],[-89.34252,34.99348],[-89.34206,34.98236],[-88.8749,34.99483],[-88.87457,34.98373],[-88.33679,34.99579],[-88.33658,34.98463],[-88.19671,34.98741],[-88.19689,34.9982],[-87.79957,35.0047],[-87.79957,34.99383],[-87.2854,35.00029],[-87.28517,34.9894],[-86.93485,34.9928],[-86.93485,34.98193],[-85.62592,34.98491],[-85.62592,34.97393],[-85.34581,34.97259],[-85.34581,34.98335],[-84.5978,34.97729],[-84.59831,34.98782],[-84.31772,34.98483],[-84.31683,35.02882],[-84.29352,35.02882],[-84.28942,35.2148],[-84.26622,35.21507],[-84.26572,35.23643],[-84.24208,35.23708],[-84.24154,35.24718],[-84.21789,35.24696],[-84.21843,35.23599],[-84.12465,35.23467],[-84.12438,35.24586],[-84.07762,35.24542],[-84.07762,35.25574],[-84.05371,35.2553],[-84.05317,35.26627],[-84.03033,35.26627],[-84.02952,35.28821],[-84.00615,35.28842],[-84.00529,35.32057],[-84.02896,35.32101],[-84.02814,35.34298],[-84.00502,35.34254],[-84.00257,35.41951],[-83.97919,35.41951],[-83.97862,35.44108],[-83.95496,35.44108],[-83.95412,35.45164],[-83.9313,35.45141],[-83.9313,35.46173],[-83.90792,35.4615],[-83.90764,35.48307],[-83.8837,35.48307],[-83.88285,35.50508],[-83.85891,35.50462],[-83.85863,35.51586],[-83.81289,35.51501],[-83.81219,35.52572],[-83.78842,35.52591],[-83.78818,35.54732],[-83.76418,35.54676],[-83.76418,35.55765],[-83.6933,35.55747],[-83.69353,35.56704],[-83.66998,35.56723],[-83.66952,35.55615],[-83.62262,35.55597],[-83.6229,35.56639],[-83.59926,35.56593],[-83.59926,35.55504],[-83.48194,35.55295],[-83.48108,35.57427],[-83.45744,35.57404],[-83.45687,35.59581],[-83.43295,35.59557],[-83.43237,35.60598],[-83.40925,35.60576],[-83.40925,35.61637],[-83.38505,35.61703],[-83.38478,35.62654],[-83.36139,35.62654],[-83.36112,35.63803],[-83.33773,35.63737],[-83.3375,35.64819],[-83.28992,35.64745],[-83.28938,35.6692],[-83.26586,35.66906],[-83.26532,35.67935],[-83.24164,35.67927],[-83.24053,35.72273],[-83.16978,35.72168],[-83.16867,35.74228],[-83.14484,35.7418],[-83.14473,35.76411],[-83.09748,35.76357],[-83.09703,35.77459],[-83.07354,35.77395],[-83.07285,35.78496],[-83.04929,35.78421],[-83.04952,35.77339],[-82.95549,35.77097],[-82.95435,35.80403],[-82.93078,35.80361],[-82.92972,35.83624],[-82.90572,35.83579],[-82.90472,35.86875],[-82.88083,35.86794],[-82.87978,35.9008],[-82.90311,35.90148],[-82.90263,35.92365],[-82.87859,35.92317],[-82.87787,35.94505],[-82.85416,35.94438],[-82.85503,35.92245],[-82.78407,35.92065],[-82.78234,35.9644],[-82.75871,35.96367],[-82.75857,35.97473],[-82.78205,35.97535],[-82.78155,35.98648],[-82.75786,35.98585],[-82.75744,35.99675],[-82.73381,35.99612],[-82.73333,36.00712],[-82.70971,36.00653],[-82.70868,36.02847],[-82.68506,36.02788],[-82.68463,36.03864],[-82.66099,36.03811],[-82.6607,36.04901],[-82.63698,36.04828],[-82.63731,36.03751],[-82.61367,36.03672],[-82.61668,35.96005],[-82.59324,35.95927],[-82.59352,35.94835],[-82.54673,35.94696],[-82.54615,35.9578],[-82.52233,35.95726],[-82.52182,35.96808],[-82.49809,35.9675],[-82.49799,35.97864],[-82.47405,35.97798],[-82.47308,35.99976],[-82.4496,35.99927],[-82.44851,36.0211],[-82.42514,36.02033],[-82.4231,36.05342],[-82.39972,36.05276],[-82.39821,36.08545],[-82.37468,36.0849],[-82.37399,36.09557],[-82.35046,36.09535],[-82.34991,36.10591],[-82.32652,36.10547],[-82.32597,36.11636],[-82.30189,36.11558],[-82.30147,36.1267],[-82.2305,36.12423],[-82.2298,36.13544],[-82.1588,36.13301],[-82.15961,36.11124],[-82.13624,36.11021],[-82.13676,36.09929],[-82.06577,36.0974],[-82.06538,36.10801],[-82.04146,36.10748],[-82.0412,36.1182],[-82.01741,36.11778],[-82.0159,36.13954],[-81.99261,36.1389],[-81.99058,36.18269],[-81.96649,36.18194],[-81.96501,36.21463],[-81.94142,36.21429],[-81.93949,36.24679],[-81.91589,36.24613],[-81.91348,36.28987],[-81.88974,36.28928],[-81.88929,36.30018],[-81.86555,36.29947],[-81.86443,36.32133],[-81.84068,36.32051],[-81.83949,36.34251],[-81.7683,36.33992],[-81.76869,36.32895],[-81.69759,36.32644],[-81.69575,36.35919],[-81.71958,36.36005],[-81.71591,36.42619],[-81.69238,36.42548],[-81.68444,36.56788],[-81.66071,36.56714],[-81.65879,36.6],[-81.63507,36.59934],[-81.63383,36.62108],[-81.70531,36.62368],[-81.70594,36.61276],[-81.94395,36.62082],[-81.94504,36.59895],[-82.15965,36.60597],[-82.16026,36.59496],[-82.54156,36.60633],[-82.54192,36.59542],[-82.8756,36.60448],[-82.87595,36.59336],[-83.51965,36.60829],[-83.51996,36.59744],[-83.63912,36.59946],[-83.63896,36.61069],[-83.68654,36.61167],[-83.68701,36.58956],[-84.85533,36.60621],[-84.85543,36.61747],[-84.99828,36.61857],[-84.99828,36.62954],[-85.37972,36.63205],[-85.37982,36.62107],[-85.83293,36.62255],[-85.83306,36.63359],[-86.07159,36.63363],[-86.07163,36.64461],[-86.26245,36.6444],[-86.26248,36.65537],[-87.8371,36.64159],[-87.83805,36.67477],[-87.95726,36.67272],[-87.95765,36.68394],[-88.0767,36.68157],[-88.07506,36.61585],[-88.0511,36.61615],[-88.04841,36.50649],[-88.35784,36.50031],[-88.35859,36.51177],[-88.78678,36.50241],[-88.78731,36.51351],[-89.14443,36.505],[-89.14508,36.5159],[-89.42999,36.50833],[-89.42925,36.4861],[-89.45292,36.48566],[-89.45194,36.46339],[-89.47598,36.463],[-89.47817,36.50674],[-89.54905,36.50468],[-89.54795,36.47189],[-89.52396,36.47264],[-89.52355,36.46159],[-89.54744,36.46085],[-89.54398,36.38419],[-89.52009,36.38483],[-89.51877,36.35181],[-89.54234,36.35099],[-89.5422,36.33997],[-89.56606,36.33938],[-89.56635,36.3504],[-89.63692,36.34817],[-89.63531,36.30435],[-89.61152,36.30519],[-89.61069,36.29426],[-89.58715,36.29451],[-89.58637,36.27289],[-89.53883,36.27415],[-89.53789,36.25214],[-89.63316,36.24931],[-89.63393,36.26045],[-89.7044,36.2581],[-89.70409,36.24695],[-89.72773,36.24633],[-89.72666,36.22454],[-89.70301,36.22553],[-89.70207,36.20325],[-89.67801,36.20431],[-89.67784,36.19314],[-89.65411,36.19367],[-89.65345,36.18277],[-89.63021,36.18356],[-89.62872,36.16161],[-89.60515,36.16214],[-89.60358,36.12944],[-89.62713,36.12855],[-89.62686,36.11771],[-89.65054,36.11694],[-89.65013,36.10588],[-89.67341,36.10555],[-89.67327,36.09404],[-89.69682,36.0936],[-89.69494,36.0496],[-89.71849,36.04905],[-89.71767,36.02691],[-89.74108,36.02602],[-89.73778,35.96049],[-89.71439,35.96083],[-89.71358,35.93929],[-89.68982,35.93986],[-89.68947,35.92883],[-89.66571,35.92958],[-89.66361,35.89675],[-89.68796,35.89571],[-89.68842,35.90694],[-89.71207,35.90631],[-89.71252,35.91725],[-89.75947,35.91543],[-89.75902,35.90448],[-89.78255,35.90375],[-89.78018,35.849],[-89.75627,35.8497],[-89.7557,35.83897],[-89.73222,35.83955],[-89.73165,35.82882],[-89.70817,35.82916],[-89.70803,35.81808],[-89.80195,35.81532],[-89.80065,35.78246],[-89.82412,35.7817],[-89.82319,35.75979],[-89.8939,35.75744],[-89.89446,35.76843],[-89.91791,35.76765],[-89.91744,35.75673],[-89.94098,35.75595],[-89.94058,35.74488],[-89.96396,35.74423],[-89.95941,35.65643],[-89.93603,35.65701],[-89.93584,35.64608],[-89.86497,35.64862],[-89.86464,35.63736],[-89.88789,35.63654],[-89.88766,35.62564],[-89.93448,35.62432],[-89.93398,35.61288],[-89.95735,35.61216],[-89.95659,35.60144],[-89.98017,35.60038],[-89.97912,35.57887],[-89.95581,35.57972],[-89.95437,35.55754],[-89.97846,35.5569],[-89.97913,35.56756],[-90.04928,35.56531],[-90.04808,35.53238],[-90.07118,35.53162],[-90.06891,35.48769],[-90.11587,35.4861],[-90.11541,35.47508],[-90.13883,35.47436],[-90.13704,35.4414],[-90.16065,35.44053],[-90.15997,35.42957],[-90.18349,35.42886],[-90.18005,35.36277],[-90.13321,35.36443],[-90.13532,35.40839],[-90.11191,35.40925],[-90.11094,35.38725],[-90.08733,35.38819],[-90.08675,35.37707],[-90.11026,35.37628],[-90.10856,35.3434],[-90.13188,35.34261],[-90.13169,35.33163],[-90.10808,35.3325],[-90.1074,35.32135],[-90.13091,35.32056],[-90.13043,35.30958],[-90.17716,35.30793],[-90.1744,35.25315],[-90.15099,35.25402],[-90.15034,35.24301],[-90.10341,35.24459],[-90.10133,35.20048],[-90.12485,35.19977],[-90.12289,35.16703],[-90.09957,35.1679],[-90.09904,35.15676],[-90.07563,35.15763],[-90.07446,35.13556],[-90.1915,35.13153],[-90.18853,35.07656],[-90.21204,35.07585],[-90.2104,35.04274],[-90.25702,35.04123],[-90.2577,35.05208],[-90.30434,35.0505],[-90.30327,35.02839],[-90.3266,35.02769],[-90.32418,34.98378]]],"type":"Polygon"}},
{"properties":{"name":"TX: Brazos County Imagery 2019","id":"brazos_county_2019_wms","url":"https://imagery.tnris.org/server/services/StratMap/StratMap19_NCCIR_6in_Brazos/ImageServer/WMSServer?LAYERS=0&STYLES=&CRS={proj}&BBOX={bbox}&FORMAT=image/jpeg&WIDTH={width}&HEIGHT={height}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","attribution":{"required":false,"text":"Strategic Mapping Program (StratMap). Brazos County Imagery, 2019-01-29","url":"https://data.tnris.org/collection/aa2cd74e-9c2d-4f00-bae5-609b5e898093"},"type":"wms","category":"photo","min_zoom":3,"best":true},"type":"Feature","geometry":{"coordinates":[[[-96.15,30.33],[-96.12,30.33],[-96.12,30.36],[-96.09,30.36],[-96.09,30.39],[-96.06,30.39],[-96.06,30.45],[-96.12,30.45],[-96.12,30.54],[-96.15,30.54],[-96.15,30.87],[-96.18,30.87],[-96.18,30.96],[-96.21,30.96],[-96.21,30.99],[-96.27,30.99],[-96.27,30.96],[-96.33,30.96],[-96.33,30.93],[-96.36,30.93],[-96.36,30.9],[-96.39,30.9],[-96.39,30.87],[-96.42,30.87],[-96.42,30.81],[-96.45,30.81],[-96.45,30.78],[-96.48,30.78],[-96.48,30.75],[-96.54,30.75],[-96.54,30.72],[-96.57,30.72],[-96.57,30.69],[-96.6,30.69],[-96.6,30.66],[-96.63,30.66],[-96.63,30.63],[-96.57,30.63],[-96.57,30.6],[-96.48,30.6],[-96.48,30.57],[-96.45,30.57],[-96.45,30.54],[-96.42,30.54],[-96.42,30.51],[-96.36,30.51],[-96.36,30.45],[-96.33,30.45],[-96.33,30.36],[-96.3,30.36],[-96.3,30.33],[-96.24,30.33],[-96.24,30.36],[-96.18,30.36],[-96.18,30.33],[-96.15,30.33]]],"type":"Polygon"}},
{"properties":{"name":"TX: CapArea Imagery 2019","id":"caparea_2019_wms","url":"https://imagery.tnris.org/server/services/StratMap/StratMap19_NCCIR_CapArea/ImageServer/WMSServer?LAYERS=0&STYLES=&CRS={proj}&BBOX={bbox}&FORMAT=image/jpeg&WIDTH={width}&HEIGHT={height}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","attribution":{"required":false,"text":"Strategic Mapping Program (StratMap). CapArea Imagery, 2019-01-29","url":"https://data.tnris.org/collection/f84442b8-ac2a-4708-b5c0-9d15515f4483"},"type":"wms","category":"historicphoto","min_zoom":2},"type":"Feature","geometry":{"coordinates":[[[-96.85,29.6],[-96.85,29.65],[-96.8,29.65],[-96.8,29.7],[-96.75,29.7],[-96.75,29.75],[-96.7,29.75],[-96.7,29.8],[-96.65,29.8],[-96.65,29.85],[-96.6,29.85],[-96.6,29.9],[-96.55,29.9],[-96.55,30.05],[-96.6,30.05],[-96.6,30.15],[-96.65,30.15],[-96.65,30.25],[-96.6,30.25],[-96.6,30.3],[-96.65,30.3],[-96.65,30.35],[-96.75,30.35],[-96.75,30.4],[-96.8,30.4],[-96.8,30.45],[-96.85,30.45],[-96.85,30.5],[-96.9,30.5],[-96.9,30.55],[-96.95,30.55],[-96.95,30.6],[-97,30.6],[-97,30.55],[-97.1,30.55],[-97.1,30.5],[-97.15,30.5],[-97.15,30.6],[-97.2,30.6],[-97.2,30.7],[-97.25,30.7],[-97.25,30.75],[-97.3,30.75],[-97.3,30.8],[-97.4,30.8],[-97.4,30.85],[-97.55,30.85],[-97.55,30.9],[-97.75,30.9],[-97.75,30.95],[-97.85,30.95],[-97.85,31.05],[-98.5,31.05],[-98.5,30.95],[-99,30.95],[-99,30.45],[-98.6,30.45],[-98.6,30.05],[-98.55,30.05],[-98.55,30],[-98.5,30],[-98.5,29.95],[-98.45,29.95],[-98.45,29.9],[-98.35,29.9],[-98.35,29.95],[-98.3,29.95],[-98.3,30],[-98.25,30],[-98.25,29.95],[-98.2,29.95],[-98.2,29.9],[-98.15,29.9],[-98.15,29.85],[-98.05,29.85],[-98.05,29.75],[-97.95,29.75],[-97.95,29.8],[-97.85,29.8],[-97.85,29.75],[-97.8,29.75],[-97.8,29.7],[-97.75,29.7],[-97.75,29.65],[-97.65,29.65],[-97.65,29.6],[-97.55,29.6],[-97.55,29.65],[-97.45,29.65],[-97.45,29.7],[-97.35,29.7],[-97.35,29.75],[-97.3,29.75],[-97.3,29.7],[-97.25,29.7],[-97.25,29.65],[-97.15,29.65],[-97.15,29.6],[-96.85,29.6]]],"type":"Polygon"}},
{"properties":{"name":"TX: City of Amarillo Imagery 2015","id":"amarillo_2016_wms","url":"https://imagery.tnris.org/server/services/StratMap/StratMap15_NCCIR_12in_NGA_Amarillo/ImageServer/WMSServer?LAYERS=0&STYLES=&CRS={proj}&BBOX={bbox}&FORMAT=image/jpeg&WIDTH={width}&HEIGHT={height}&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap","attribution":{"required":false,"text":"Strategic Mapping Program (StratMap). City of Amarillo Imagery, 2015-03-13","url":"https://data.tnris.org/collection/c4045402-55b8-41ee-a911-adbda2a2c4aa"},"type":"wms","category":"photo","min_zoom":5},"type":"Feature","geometry":{"coordinates":[[[-101.62309,35.13352],[-101.62352,35.14703],[-101.62396,35.16055],[-101.62439,35.17406],[-101.62482,35.18757],[-101.60837,35.18792],[-101.6088,35.20144],[-101.60923,35.21495],[-101.60966,35.22846],[-101.6101,35.24197],[-101.61053,35.25548],[-101.627,35.25513],[-101.64347,35.25477],[-101.65995,35.25441],[-101.67642,35.25404],[-101.69289,35.25368],[-101.70936,35.25331],[-101.72583,35.25294],[-101.7423,35.25257],[-101.74275,35.26608],[-101.74321,35.27959],[-101.74367,35.2931],[-101.74412,35.30661],[-101.74458,35.32012],[-101.74504,35.33363],[-101.74549,35.34714],[-101.74595,35.36064],[-101.74641,35.37415],[-101.74687,35.38766],[-101.76336,35.38729],[-101.77986,35.38691],[-101.79636,35.38653],[-101.81285,35.38614],[-101.82935,35.38576],[-101.84585,35.38537],[-101.86234,35.38498],[-101.87884,35.38459],[-101.87836,35.37108],[-101.87788,35.35757],[-101.8774,35.34406],[-101.87692,35.33056],[-101.87644,35.31705],[-101.87596,35.30354],[-101.87548,35.29003],[-101.875,35.27652],[-101.89148,35.27613],[-101.891,35.26262],[-101.90747,35.26223],[-101.92393,35.26183],[-101.9404,35.26143],[-101.95687,35.26103],[-101.97334,35.26062],[-101.98981,35.26022],[-102.00628,35.25981],[-102.00578,35.2463],[-102.00528,35.2328],[-102.00478,35.21929],[-102.00428,35.20578],[-102.00378,35.19228],[-102.00329,35.17877],[-102.00279,35.16526],[-102.00229,35.15175],[-102.0018,35.13825],[-102.0013,35.12474],[-102.00081,35.11123],[-101.98437,35.11164],[-101.96793,35.11204],[-101.95149,35.11244],[-101.93505,35.11284],[-101.91861,35.11324],[-101.90217,35.11364],[-101.88573,35.11403],[-101.86929,35.11442],[-101.85285,35.11481],[-101.83641,35.11519],[-101.81997,35.11558],[-101.80353,35.11596],[-101.78709,35.11634],[-101.77065,35.11672],[-101.7542,35.11709],[-101.73776,35.11746],[-101.72132,35.11783],[-101.70487,35.1182],[-101.68843,35.11857],[-101.67199,35.11893],[-101.65554,35.11929],[-101.6391,35.11965],[-101.62265,35.12001],[-101.62309,35.13352]]],"type":"Polygon"}},
@@ -764,7 +768,7 @@
{"properties":{"name":"Rio Mosaico 2019","id":"rio2019","url":"https://pgeo3.rio.rj.gov.br/arcgis/services/Imagens/Mosaico_2019/ImageServer/WMSServer?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}","attribution":{"text":"Instituto Pereira Passos - Prefeitura da Cidade do Rio de Janeiro","url":"https://www.rio.rj.gov.br/web/ipp"},"type":"wms","category":"photo","min_zoom":4,"best":true},"type":"Feature","geometry":{"coordinates":[[[-43.59375,-23.09163],[-43.49213,-23.09163],[-43.49043,-23.05158],[-43.42965,-23.04994],[-43.42958,-23.03186],[-43.42655,-23.02912],[-43.35517,-23.02925],[-43.35275,-23.0322],[-43.35273,-23.04931],[-43.32336,-23.05052],[-43.32046,-23.07079],[-43.27378,-23.07079],[-43.27156,-23.05116],[-43.24219,-23.04994],[-43.24219,-23.02902],[-43.23053,-23.02917],[-43.22783,-23.03186],[-43.22776,-23.09163],[-43.11654,-23.09163],[-43.11722,-23.03416],[-43.14502,-23.03414],[-43.1481,-23.03106],[-43.14754,-22.98957],[-43.11653,-22.98732],[-43.11722,-22.90906],[-43.14502,-22.90904],[-43.14805,-22.90629],[-43.14923,-22.86457],[-43.14741,-22.82414],[-43.14433,-22.82106],[-43.08564,-22.82104],[-43.08564,-22.72164],[-43.16528,-22.72227],[-43.1653,-22.73907],[-43.16696,-22.7417],[-43.19618,-22.74253],[-43.1962,-22.76033],[-43.19771,-22.76284],[-43.25866,-22.76343],[-43.25873,-22.78092],[-43.26176,-22.78367],[-43.41453,-22.78622],[-43.41511,-22.80369],[-43.42776,-22.80537],[-43.45873,-22.80481],[-43.46052,-22.80212],[-43.46123,-22.78622],[-43.55392,-22.78749],[-43.5541,-22.79474],[-43.55793,-22.8019],[-43.5704,-22.80269],[-43.57864,-22.81028],[-43.58017,-22.81603],[-43.59306,-22.81851],[-43.59375,-22.84646],[-43.72215,-22.84891],[-43.73108,-22.85144],[-43.73374,-22.85711],[-43.75373,-22.85651],[-43.75466,-22.86261],[-43.75861,-22.86767],[-43.78738,-22.87297],[-43.78944,-22.87424],[-43.78951,-22.8854],[-43.79156,-22.8879],[-43.8121,-22.88817],[-43.8121,-22.93182],[-43.80039,-22.93188],[-43.78897,-22.93578],[-43.78326,-22.94066],[-43.77767,-22.94095],[-43.76014,-22.95055],[-43.75786,-22.98804],[-43.72977,-22.98767],[-43.72766,-22.99051],[-43.72696,-23.00888],[-43.69775,-23.00989],[-43.69606,-23.04994],[-43.68379,-23.0512],[-43.68033,-23.06129],[-43.68026,-23.07079],[-43.60544,-23.07086],[-43.60269,-23.07389],[-43.60267,-23.091],[-43.59375,-23.09163]]],"type":"Polygon"}},
{"properties":{"name":"Rio Mosaico 2022","id":"rio2022","url":"https://pgeo3.rio.rj.gov.br/arcgis/services/Imagens/Mosaico_2022/ImageServer/WMSServer?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&CRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}","attribution":{"text":"Instituto Pereira Passos - Prefeitura da Cidade do Rio de Janeiro","url":"https://www.rio.rj.gov.br/web/ipp"},"type":"wms","category":"photo","min_zoom":4},"type":"Feature","geometry":{"coordinates":[[[-43.59375,-23.09163],[-43.49213,-23.09163],[-43.49043,-23.05158],[-43.42965,-23.04994],[-43.42958,-23.03186],[-43.42655,-23.02912],[-43.35517,-23.02925],[-43.35275,-23.0322],[-43.35273,-23.04931],[-43.32336,-23.05052],[-43.32046,-23.07079],[-43.27378,-23.07079],[-43.27156,-23.05116],[-43.24219,-23.04994],[-43.24219,-23.02902],[-43.23053,-23.02917],[-43.22783,-23.03186],[-43.22776,-23.09163],[-43.11654,-23.09163],[-43.11722,-23.03416],[-43.14502,-23.03414],[-43.1481,-23.03106],[-43.14754,-22.98957],[-43.11653,-22.98732],[-43.11722,-22.90906],[-43.14502,-22.90904],[-43.14805,-22.90629],[-43.14923,-22.86457],[-43.14741,-22.82414],[-43.14433,-22.82106],[-43.08564,-22.82104],[-43.08564,-22.72164],[-43.16528,-22.72227],[-43.1653,-22.73907],[-43.16696,-22.7417],[-43.19618,-22.74253],[-43.1962,-22.76033],[-43.19771,-22.76284],[-43.25866,-22.76343],[-43.25873,-22.78092],[-43.26176,-22.78367],[-43.41453,-22.78622],[-43.41511,-22.80369],[-43.42776,-22.80537],[-43.45873,-22.80481],[-43.46052,-22.80212],[-43.46123,-22.78622],[-43.55392,-22.78749],[-43.5541,-22.79474],[-43.55793,-22.8019],[-43.5704,-22.80269],[-43.57864,-22.81028],[-43.58017,-22.81603],[-43.59306,-22.81851],[-43.59375,-22.84646],[-43.72215,-22.84891],[-43.73108,-22.85144],[-43.73374,-22.85711],[-43.75373,-22.85651],[-43.75466,-22.86261],[-43.75861,-22.86767],[-43.78738,-22.87297],[-43.78944,-22.87424],[-43.78951,-22.8854],[-43.79156,-22.8879],[-43.8121,-22.88817],[-43.8121,-22.93182],[-43.80039,-22.93188],[-43.78897,-22.93578],[-43.78326,-22.94066],[-43.77767,-22.94095],[-43.76014,-22.95055],[-43.75786,-22.98804],[-43.72977,-22.98767],[-43.72766,-22.99051],[-43.72696,-23.00888],[-43.69775,-23.00989],[-43.69606,-23.04994],[-43.68379,-23.0512],[-43.68033,-23.06129],[-43.68026,-23.07079],[-43.60544,-23.07086],[-43.60269,-23.07389],[-43.60267,-23.091],[-43.59375,-23.09163]]],"type":"Polygon"}},
{"properties":{"name":"Jaraguá do Sul Ortomosaico 2020","id":"jaragua-do-sul-2020","url":"https://www.jaraguadosul.sc.gov.br/geo/ortomosaico2020/{zoom}/{x}/{y}.png","attribution":{"text":"Prefeitura de Jaraguá do Sul, SC","url":"https://sistemas.jaraguadosul.sc.gov.br/index.php?class=GeoWelcomeView"},"type":"tms","category":"photo","max_zoom":19},"type":"Feature","geometry":{"coordinates":[[[-49.25368,-26.26563],[-49.17549,-26.31065],[-49.16931,-26.35804],[-49.19403,-26.38449],[-49.19266,-26.42016],[-49.21051,-26.43676],[-49.21806,-26.47733],[-49.22562,-26.48471],[-49.24621,-26.48901],[-49.29634,-26.54185],[-49.30595,-26.58054],[-49.28106,-26.61953],[-49.23798,-26.61922],[-49.20433,-26.62966],[-49.17824,-26.61615],[-49.1645,-26.65237],[-49.13292,-26.64316],[-49.10408,-26.61063],[-49.10133,-26.58177],[-49.0876,-26.57993],[-49.08554,-26.55168],[-49.0567,-26.54615],[-49.05121,-26.51912],[-49.03404,-26.52219],[-49.01756,-26.51298],[-49.01138,-26.48287],[-49.02511,-26.45643],[-49.09515,-26.39863],[-49.10545,-26.39371],[-49.10477,-26.36972],[-49.13635,-26.33219],[-49.13841,-26.30265],[-49.16725,-26.26571],[-49.16725,-26.21336],[-49.19128,-26.21274],[-49.23454,-26.23061],[-49.23386,-26.25524],[-49.25368,-26.26563]]],"type":"Polygon"}},
-{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t2.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14368&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null},
+{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t1.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14442&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null},
{"properties":{"name":"CyclOSM","id":"cyclosm","url":"https://{switch:a,b,c}.tile-cyclosm.openstreetmap.fr/cyclosm/{zoom}/{x}/{y}.png","attribution":{"text":"Rendering: CyclOSM (hosted by OpenStreetMap France) © Map data OpenStreetMap contributors","url":"https://www.cyclosm.org/"},"type":"tms","category":"osmbasedmap","max_zoom":20},"type":"Feature","geometry":null},
{"properties":{"name":"Esri World Imagery","id":"EsriWorldImagery","url":"https://{switch:services,server}.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}","attribution":{"required":true,"text":"Terms & Feedback","url":"https://wiki.openstreetmap.org/wiki/Esri"},"type":"tms","category":"photo","max_zoom":22,"default":true},"type":"Feature","geometry":null},
{"properties":{"name":"Esri World Imagery (Clarity) Beta","id":"EsriWorldImageryClarity","url":"https://clarity.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}","attribution":{"required":true,"text":"Terms & Feedback","url":"https://wiki.openstreetmap.org/wiki/Esri"},"type":"tms","category":"photo","max_zoom":22,"default":true},"type":"Feature","geometry":null},
diff --git a/src/assets/schemas/layerconfigmeta.json b/src/assets/schemas/layerconfigmeta.json
index 5ecd1e779..a60fc0ae3 100644
--- a/src/assets/schemas/layerconfigmeta.json
+++ b/src/assets/schemas/layerconfigmeta.json
@@ -445,7 +445,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -459,7 +459,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -672,7 +672,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -763,7 +763,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -776,7 +777,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -1225,7 +1226,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -1316,7 +1317,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -1329,7 +1331,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -2373,7 +2375,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -2387,7 +2389,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -2605,7 +2607,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -2699,7 +2701,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -2712,7 +2715,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -3074,7 +3077,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -3088,7 +3091,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -3306,7 +3309,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -3400,7 +3403,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -3413,7 +3417,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -3753,7 +3757,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -3767,7 +3771,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -3985,7 +3989,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4079,7 +4083,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4092,7 +4097,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -4434,7 +4439,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -4448,7 +4453,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -4666,7 +4671,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4760,7 +4765,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4773,7 +4779,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -5116,7 +5122,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -5130,7 +5136,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -5348,7 +5354,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -5442,7 +5448,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -5455,7 +5462,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -5803,7 +5810,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -5817,7 +5824,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -6035,7 +6042,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6129,7 +6136,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6142,7 +6150,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -6485,7 +6493,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -6499,7 +6507,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -6717,7 +6725,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6811,7 +6819,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6824,7 +6833,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -7167,7 +7176,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -7181,7 +7190,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -7399,7 +7408,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -7493,7 +7502,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -7506,7 +7516,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -7856,7 +7866,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -7870,7 +7880,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -8092,7 +8102,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8186,7 +8196,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8199,7 +8210,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -8550,7 +8561,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -8564,7 +8575,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -8786,7 +8797,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8880,7 +8891,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8893,7 +8905,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -9965,7 +9977,7 @@
"group": "presets"
},
"type": "array",
- "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
+ "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
},
{
"path": [
@@ -10724,7 +10736,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -10872,7 +10884,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -10886,7 +10898,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -11675,7 +11687,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -12020,7 +12033,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -12111,7 +12124,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -12124,7 +12138,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -12952,7 +12966,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -13313,7 +13328,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -13407,7 +13422,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -13420,7 +13436,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -14261,7 +14277,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -14622,7 +14639,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -14716,7 +14733,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -14729,7 +14747,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -15587,7 +15605,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -15964,7 +15983,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -16061,7 +16080,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -16074,7 +16094,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -16910,7 +16930,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -17271,7 +17292,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -17365,7 +17386,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -17378,7 +17400,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -18236,7 +18258,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -18613,7 +18636,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -18710,7 +18733,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -18723,7 +18747,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -19442,10 +19466,10 @@
"additionalProperties": false
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
],
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]"
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)"
},
{
"path": [
diff --git a/src/assets/schemas/layoutconfigmeta.json b/src/assets/schemas/layoutconfigmeta.json
index 8182b1f2a..8c34acd8d 100644
--- a/src/assets/schemas/layoutconfigmeta.json
+++ b/src/assets/schemas/layoutconfigmeta.json
@@ -1134,7 +1134,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1148,7 +1148,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1323,7 +1323,7 @@
"type": "boolean"
},
"presets": {
- "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
+ "description": "\n
\nPresets for this layer.\n\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\n\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\n\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
\n\ngroup: presets",
"type": "array",
"items": {
"type": "object",
@@ -1418,7 +1418,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -1566,7 +1566,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -1580,7 +1580,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -1808,7 +1808,7 @@
"type": "boolean"
},
"units": {
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]",
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\n\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)",
"type": "array",
"items": {
"anyOf": [
@@ -1849,7 +1849,7 @@
"additionalProperties": false
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
]
}
@@ -2375,7 +2375,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -2389,7 +2389,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -2607,7 +2607,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -2701,7 +2701,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -2714,7 +2715,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -3183,7 +3184,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -3277,7 +3278,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -3290,7 +3292,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -4368,7 +4370,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -4382,7 +4384,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -4605,7 +4607,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4702,7 +4704,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -4715,7 +4718,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -5090,7 +5093,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -5104,7 +5107,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -5327,7 +5330,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -5424,7 +5427,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -5437,7 +5441,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -5790,7 +5794,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -5804,7 +5808,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -6027,7 +6031,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6124,7 +6128,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6137,7 +6142,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -6492,7 +6497,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -6506,7 +6511,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -6729,7 +6734,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6826,7 +6831,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -6839,7 +6845,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -7195,7 +7201,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -7209,7 +7215,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -7432,7 +7438,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -7529,7 +7535,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -7542,7 +7549,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -7903,7 +7910,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -7917,7 +7924,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -8140,7 +8147,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8237,7 +8244,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8250,7 +8258,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -8606,7 +8614,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -8620,7 +8628,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -8843,7 +8851,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8940,7 +8948,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -8953,7 +8962,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -9309,7 +9318,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -9323,7 +9332,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -9546,7 +9555,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -9643,7 +9652,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -9656,7 +9666,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -10019,7 +10029,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -10033,7 +10043,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -10260,7 +10270,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -10357,7 +10367,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -10370,7 +10381,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -10734,7 +10745,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -10748,7 +10759,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -10975,7 +10986,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -11072,7 +11083,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -11085,7 +11097,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -12203,7 +12215,7 @@
"group": "presets"
},
"type": "array",
- "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
+ "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
},
{
"path": [
@@ -12969,7 +12981,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -13117,7 +13129,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -13131,7 +13143,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -13946,7 +13958,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -14307,7 +14320,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -14401,7 +14414,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -14414,7 +14428,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -15272,7 +15286,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -15649,7 +15664,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -15746,7 +15761,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -15759,7 +15775,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -16631,7 +16647,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -17008,7 +17025,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -17105,7 +17122,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -17118,7 +17136,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -18006,7 +18024,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -18399,7 +18418,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -18499,7 +18518,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -18512,7 +18532,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -19378,7 +19398,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -19755,7 +19776,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -19852,7 +19873,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -19865,7 +19887,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -20753,7 +20775,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -21146,7 +21169,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -21246,7 +21269,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -21259,7 +21283,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -22007,10 +22031,10 @@
"additionalProperties": false
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
],
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]"
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)"
},
{
"path": [
@@ -22717,7 +22741,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -22731,7 +22755,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -22954,7 +22978,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -23051,7 +23075,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -23064,7 +23089,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -23553,7 +23578,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -23650,7 +23675,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -23663,7 +23689,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -24775,7 +24801,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -24789,7 +24815,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -25017,7 +25043,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -25117,7 +25143,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -25130,7 +25157,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -25518,7 +25545,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -25532,7 +25559,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -25760,7 +25787,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -25860,7 +25887,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -25873,7 +25901,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -26239,7 +26267,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -26253,7 +26281,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -26481,7 +26509,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -26581,7 +26609,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -26594,7 +26623,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -26962,7 +26991,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -26976,7 +27005,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -27204,7 +27233,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -27304,7 +27333,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -27317,7 +27347,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -27686,7 +27716,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -27700,7 +27730,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -27928,7 +27958,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -28028,7 +28058,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -28041,7 +28072,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -28415,7 +28446,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -28429,7 +28460,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -28657,7 +28688,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -28757,7 +28788,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -28770,7 +28802,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -29139,7 +29171,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -29153,7 +29185,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -29381,7 +29413,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -29481,7 +29513,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -29494,7 +29527,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -29863,7 +29896,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -29877,7 +29910,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -30105,7 +30138,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -30205,7 +30238,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -30218,7 +30252,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -30594,7 +30628,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -30608,7 +30642,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -30840,7 +30874,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -30940,7 +30974,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -30953,7 +30988,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -31330,7 +31365,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -31344,7 +31379,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -31576,7 +31611,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -31676,7 +31711,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -31689,7 +31725,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -32853,7 +32889,7 @@
"group": "presets"
},
"type": "array",
- "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
+ "description": "\n
\nPresets for this layer.\nA preset consists of one or more attributes (tags), a title and optionally a description and optionally example images.\nWhen the contributor wishes to add a point to OpenStreetMap, they'll:\n1. Press the 'add new point'-button\n2. Choose a preset from the list of all presets\n3. Confirm the choice. In this step, the `description` (if set) and `exampleImages` (if given) will be shown\n4. Confirm the location\n5. A new point will be created with the attributes that were defined in the preset\nIf no presets are defined, the button which invites to add a new preset will not be shown.\n
\n
\n
"
},
{
"path": [
@@ -33626,7 +33662,7 @@
"type": "string"
},
"placeholder": {
- "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert",
+ "description": "question: What placeholder text should be shown in the input-element if there is no input?\nA (translated) text that is shown (as gray text) within the textfield\ntype: translation\ngroup: expert\nifunset: No specific placeholder is set, show the type of the textfield",
"anyOf": [
{
"$ref": "#/definitions/Record"
@@ -33774,7 +33810,7 @@
]
},
"condition": {
- "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or ask the question if unkown\n\nOnly 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```",
+ "description": "question: When should this item be shown?\ntype: tag\nifunset: No specific condition set; always show this tagRendering or show this question if unknown\n\nOnly 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[];}"
@@ -33788,7 +33824,7 @@
]
},
"metacondition": {
- "description": "question: When should this item be shown (including special conditions)?\ntype: tag\n\nIf 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_",
+ "description": "question: When should this item be shown (including special conditions)?\ntype: tag\nifunset: No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown\n\nIf set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\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[];}"
@@ -34629,7 +34665,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -35006,7 +35043,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -35103,7 +35140,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -35116,7 +35154,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -36004,7 +36042,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -36397,7 +36436,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -36497,7 +36536,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -36510,7 +36550,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -37413,7 +37453,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -37806,7 +37847,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -37906,7 +37947,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -37919,7 +37961,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -38837,7 +38879,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -39246,7 +39289,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -39349,7 +39392,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -39362,7 +39406,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -40258,7 +40302,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -40651,7 +40696,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -40751,7 +40796,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -40764,7 +40810,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -41682,7 +41728,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -42091,7 +42138,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -42194,7 +42241,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -42207,7 +42255,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
@@ -42984,10 +43032,10 @@
"additionalProperties": false
},
{
- "$ref": "#/definitions/Record"
+ "$ref": "#/definitions/Record"
}
],
- "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]"
+ "description": "Either a list with [{\"key\": \"unitname\", \"key2\": {\"quantity\": \"unitname\", \"denominations\": [\"denom\", \"denom\"]}}]\nUse `\"inverted\": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`)"
},
{
"path": [
diff --git a/src/assets/schemas/questionabletagrenderingconfigmeta.json b/src/assets/schemas/questionabletagrenderingconfigmeta.json
index ed7d906ca..b58132131 100644
--- a/src/assets/schemas/questionabletagrenderingconfigmeta.json
+++ b/src/assets/schemas/questionabletagrenderingconfigmeta.json
@@ -683,7 +683,8 @@
"hints": {
"typehint": "translation",
"group": "expert",
- "question": "What placeholder text should be shown in the input-element if there is no input?"
+ "question": "What placeholder text should be shown in the input-element if there is no input?",
+ "ifunset": "No specific placeholder is set, show the type of the textfield"
},
"type": [
{
@@ -1012,7 +1013,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -1100,7 +1101,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -1113,7 +1115,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
diff --git a/src/assets/schemas/tagrenderingconfigmeta.json b/src/assets/schemas/tagrenderingconfigmeta.json
index acd4947fd..80775f92c 100644
--- a/src/assets/schemas/tagrenderingconfigmeta.json
+++ b/src/assets/schemas/tagrenderingconfigmeta.json
@@ -115,7 +115,7 @@
"hints": {
"typehint": "tag",
"question": "When should this item be shown?",
- "ifunset": "No specific condition set; always show this tagRendering or ask the question if unkown"
+ "ifunset": "No specific condition set; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -203,7 +203,8 @@
"required": false,
"hints": {
"typehint": "tag",
- "question": "When should this item be shown (including special conditions)?"
+ "question": "When should this item be shown (including special conditions)?",
+ "ifunset": "No specific metacondition set which is evaluated against the usersettings/application state ; always show this tagRendering or show this question if unknown"
},
"type": [
{
@@ -216,7 +217,7 @@
"type": "string"
}
],
- "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_"
+ "description": "If set, this tag will be evaluated against the _usersettings/application state_ table.\nEnable 'show debug info' in user settings to see available options (at the settings-tab).\nNote that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_"
},
{
"path": [
diff --git a/src/index.ts b/src/index.ts
index 3a9084c2e..2d5a1a03a 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -30,8 +30,8 @@ async function getAvailableLayers(): Promise> {
try {
const host = new URL(Constants.VectorTileServer).host
const status: { layers: string[] } = await Promise.any([
- // Utils.downloadJson("https://" + host + "/summary/status.json"),
- timeout(0),
+ Utils.downloadJson<{layers}>("https://" + host + "/summary/status.json"),
+ timeout(2500),
])
return new Set(status.layers)
} catch (e) {
diff --git a/src/index_theme.ts.template b/src/index_theme.ts.template
index 5079901b7..6092f8453 100644
--- a/src/index_theme.ts.template
+++ b/src/index_theme.ts.template
@@ -29,7 +29,7 @@ async function getAvailableLayers(): Promise> {
try {
const host = new URL(Constants.VectorTileServer).host
const status = await Promise.any([
- // Utils.downloadJson("https://" + host + "/summary/status.json"),
+ Utils.downloadJson("https://" + host + "/summary/status.json"),
timeout(0)
])
return new Set(status.layers)
diff --git a/test/Models/Units.spec.ts b/test/Models/Units.spec.ts
index 278a57ef2..c2329c47d 100644
--- a/test/Models/Units.spec.ts
+++ b/test/Models/Units.spec.ts
@@ -1,6 +1,7 @@
import { Unit } from "../../src/Models/Unit"
import { Denomination } from "../../src/Models/Denomination"
import { describe, expect, it } from "vitest"
+import Validators from "../../src/UI/InputElement/Validators"
describe("Unit", () => {
it("should convert a value back and forth", () => {
@@ -13,14 +14,36 @@ describe("Unit", () => {
nl: "{quantity} megawatt",
},
},
+ Validators.get("float"),
"test"
)
- const canonical = denomintion.canonicalValue("5", true)
+ const canonical = denomintion.canonicalValue("5", true, false)
expect(canonical).toBe("5 MW")
- const units = new Unit("quantity", ["key"], [denomintion], false)
+ const units = new Unit("quantity", ["key"], [denomintion], false, Validators.get("float"))
const [detected, detectedDenom] = units.findDenomination("5 MW", () => "be")
expect(detected).toBe("5")
expect(detectedDenom).toBe(denomintion)
})
+
+ it("should convert an inverted value back and forth", () => {
+ const denomintion = Denomination.fromJson(
+ {
+ canonicalDenomination: "year",
+ human: {
+ en: "{quantity} year",
+ nl: "{quantity} year",
+ },
+ },
+ Validators.get("float"),
+ "test"
+ )
+
+ const canonical = denomintion.canonicalValue("5", true, true)
+ expect(canonical).toBe("5/year")
+ const unit = new Unit("quantity", ["key"], [denomintion], false, Validators.get("float"), true)
+ const [detected, detectedDenom] = unit.findDenomination("5/year", () => "be")
+ expect(detected).toBe("5")
+ expect(detectedDenom).toBe(denomintion)
+ })
})