Merge branch 'develop' into feature/nsi
This commit is contained in:
commit
22c2f5166d
116 changed files with 5653 additions and 1538 deletions
|
@ -6,7 +6,7 @@ runs:
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "20"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
cache-dependency-path: package-lock.json
|
cache-dependency-path: package-lock.json
|
||||||
|
|
||||||
|
|
2
.github/workflows/deploy_dev.yml
vendored
2
.github/workflows/deploy_dev.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "20"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
cache-dependency-path: package-lock.json
|
cache-dependency-path: package-lock.json
|
||||||
|
|
||||||
|
|
2
.github/workflows/deploy_pietervdvn.yml
vendored
2
.github/workflows/deploy_pietervdvn.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "20"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
cache-dependency-path: package-lock.json
|
cache-dependency-path: package-lock.json
|
||||||
|
|
||||||
|
|
2
.github/workflows/deploy_prod.yml
vendored
2
.github/workflows/deploy_prod.yml
vendored
|
@ -13,7 +13,7 @@ jobs:
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "20"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
cache-dependency-path: package-lock.json
|
cache-dependency-path: package-lock.json
|
||||||
|
|
||||||
|
|
2
.github/workflows/validate-pr.yml
vendored
2
.github/workflows/validate-pr.yml
vendored
|
@ -11,7 +11,7 @@ jobs:
|
||||||
- name: Set up Node.js
|
- name: Set up Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: "16"
|
node-version: "20"
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
cache-dependency-path: package-lock.json
|
cache-dependency-path: package-lock.json
|
||||||
|
|
||||||
|
|
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
||||||
16.9.1
|
20.12.2
|
||||||
|
|
|
@ -204,7 +204,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -379,7 +379,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -387,7 +387,7 @@
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -703,7 +703,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -717,7 +717,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1238,7 +1238,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1386,7 +1386,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1400,7 +1400,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1464,7 +1464,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1612,7 +1612,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1626,7 +1626,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1950,7 +1950,7 @@
|
||||||
],
|
],
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>": {
|
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -379,7 +379,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -387,7 +387,7 @@ export default {
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -696,7 +696,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -710,7 +710,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1225,7 +1225,7 @@ export default {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1373,7 +1373,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1387,7 +1387,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1450,7 +1450,7 @@ export default {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1598,7 +1598,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1612,7 +1612,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1930,7 +1930,7 @@ export default {
|
||||||
"applicableUnits"
|
"applicableUnits"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>": {
|
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>": {
|
||||||
"type": "object"
|
"type": "object"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -593,7 +593,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -607,7 +607,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1128,7 +1128,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1276,7 +1276,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1290,7 +1290,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1354,7 +1354,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1502,7 +1502,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1516,7 +1516,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1840,7 +1840,7 @@
|
||||||
],
|
],
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>": {
|
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
|
@ -2095,7 +2095,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -2270,7 +2270,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -2278,7 +2278,7 @@
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -2514,7 +2514,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -2689,7 +2689,7 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -2697,7 +2697,7 @@
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -586,7 +586,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -600,7 +600,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1115,7 +1115,7 @@ export default {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1263,7 +1263,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1277,7 +1277,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1340,7 +1340,7 @@ export default {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -1488,7 +1488,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1502,7 +1502,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -1820,7 +1820,7 @@ export default {
|
||||||
"applicableUnits"
|
"applicableUnits"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>": {
|
"Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>": {
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
@ -2073,7 +2073,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -2248,7 +2248,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -2256,7 +2256,7 @@ export default {
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -2491,7 +2491,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"presets": {
|
"presets": {
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>\n\ngroup: presets",
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>\n\ngroup: presets",
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -2666,7 +2666,7 @@ export default {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"units": {
|
"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",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"anyOf": [
|
"anyOf": [
|
||||||
|
@ -2674,7 +2674,7 @@ export default {
|
||||||
"$ref": "#/definitions/default_2"
|
"$ref": "#/definitions/default_2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -379,7 +379,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -393,7 +393,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -372,7 +372,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -386,7 +386,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -406,7 +406,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -420,7 +420,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -399,7 +399,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -413,7 +413,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -453,7 +453,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -467,7 +467,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -446,7 +446,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -460,7 +460,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -177,7 +177,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -510,7 +510,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -524,7 +524,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -177,7 +177,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -191,7 +191,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -503,7 +503,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -517,7 +517,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -332,7 +332,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -346,7 +346,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -325,7 +325,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -339,7 +339,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -64,7 +64,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -78,7 +78,7 @@ export default {
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
|
|
@ -46,3 +46,9 @@ mapcomplete.osm.be {
|
||||||
to http://127.0.0.1:1236
|
to http://127.0.0.1:1236
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cache.mapcomplete.org {
|
||||||
|
reverse_proxy /summary/* {
|
||||||
|
to http://127.0.0.1:2345
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -3,3 +3,10 @@
|
||||||
This server hosts the studio files and is used for expermintal builds.
|
This server hosts the studio files and is used for expermintal builds.
|
||||||
|
|
||||||
For used hosts, see the Caddyfile
|
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`
|
||||||
|
|
|
@ -13,9 +13,9 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [advertising](../Layers/advertising.md)
|
- [advertising](../Layers/advertising.md)
|
||||||
- [shelter](../Layers/shelter.md)
|
- [shelter](../Layers/shelter.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,8 +13,8 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [defibrillator](../Layers/defibrillator.md)
|
- [defibrillator](../Layers/defibrillator.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,8 +13,8 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [artwork](../Layers/artwork.md)
|
- [artwork](../Layers/artwork.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,8 +13,8 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [clock](../Layers/clock.md)
|
- [clock](../Layers/clock.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,8 +13,8 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [facadegardens](../Layers/facadegardens.md)
|
- [facadegardens](../Layers/facadegardens.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,9 +13,9 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [ghostsigns](../Layers/ghostsigns.md)
|
- [ghostsigns](../Layers/ghostsigns.md)
|
||||||
- [advertising_wall_paintings](../Layers/advertising_wall_paintings.md)
|
- [advertising_wall_paintings](../Layers/advertising_wall_paintings.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.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)
|
- [osm_buildings_no_points](../Layers/osm_buildings_no_points.md)
|
||||||
- [grb](../Layers/grb.md)
|
- [grb](../Layers/grb.md)
|
||||||
- [service_ways](../Layers/service_ways.md)
|
- [service_ways](../Layers/service_ways.md)
|
||||||
|
@ -21,6 +20,7 @@ This theme contains the following layers:
|
||||||
- [address](../Layers/address.md)
|
- [address](../Layers/address.md)
|
||||||
- [crab_address](../Layers/crab_address.md)
|
- [crab_address](../Layers/crab_address.md)
|
||||||
- [current_view](../Layers/current_view.md)
|
- [current_view](../Layers/current_view.md)
|
||||||
|
- [named_streets](../Layers/named_streets.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,7 +13,6 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
|
||||||
- [indoors](../Layers/indoors.md)
|
- [indoors](../Layers/indoors.md)
|
||||||
- [stairs](../Layers/stairs.md)
|
- [stairs](../Layers/stairs.md)
|
||||||
- [pedestrian_path](../Layers/pedestrian_path.md)
|
- [pedestrian_path](../Layers/pedestrian_path.md)
|
||||||
|
@ -36,6 +35,7 @@ This theme contains the following layers:
|
||||||
- [bench](../Layers/bench.md)
|
- [bench](../Layers/bench.md)
|
||||||
- [drinking_water](../Layers/drinking_water.md)
|
- [drinking_water](../Layers/drinking_water.md)
|
||||||
- [departures_board](../Layers/departures_board.md)
|
- [departures_board](../Layers/departures_board.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.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)
|
- [surveillance_camera](../Layers/surveillance_camera.md)
|
||||||
- [speed_camera](../Layers/speed_camera.md)
|
- [speed_camera](../Layers/speed_camera.md)
|
||||||
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -13,11 +13,11 @@ This theme contains the following layers:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- [address](../Layers/address.md)
|
|
||||||
- [raw_inspire_polygons](../Layers/raw_inspire_polygons.md)
|
- [raw_inspire_polygons](../Layers/raw_inspire_polygons.md)
|
||||||
- [to_import](../Layers/to_import.md)
|
- [to_import](../Layers/to_import.md)
|
||||||
- [uk_address](../Layers/uk_address.md)
|
- [uk_address](../Layers/uk_address.md)
|
||||||
- [named_streets](../Layers/named_streets.md)
|
- [named_streets](../Layers/named_streets.md)
|
||||||
|
- [address](../Layers/address.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.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)
|
- [walls_and_buildings](../Layers/walls_and_buildings.md)
|
||||||
- [entrance](../Layers/entrance.md)
|
- [entrance](../Layers/entrance.md)
|
||||||
|
- [indoors](../Layers/indoors.md)
|
||||||
|
- [pedestrian_path](../Layers/pedestrian_path.md)
|
||||||
- [selected_element](../Layers/selected_element.md)
|
- [selected_element](../Layers/selected_element.md)
|
||||||
- [gps_location](../Layers/gps_location.md)
|
- [gps_location](../Layers/gps_location.md)
|
||||||
- [gps_location_history](../Layers/gps_location_history.md)
|
- [gps_location_history](../Layers/gps_location_history.md)
|
||||||
|
|
|
@ -291,7 +291,7 @@ z
|
||||||
|
|
||||||
The initial/current zoom level
|
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_
|
The default value is _1_
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ lat
|
||||||
|
|
||||||
The initial/current latitude
|
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_
|
The default value is _0_
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ lon
|
||||||
|
|
||||||
The initial/current longitude of the app
|
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_
|
The default value is _0_
|
||||||
|
|
||||||
|
|
|
@ -155,8 +155,8 @@
|
||||||
{
|
{
|
||||||
"if": "backrest=yes",
|
"if": "backrest=yes",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Does have a backrest",
|
"en": "This bench does have a backrest",
|
||||||
"de": "Die Sitzbank hat eine Rückenlehne",
|
"de": "Diese Sitzbank hat eine Rückenlehne",
|
||||||
"fr": "Dossier : Oui",
|
"fr": "Dossier : Oui",
|
||||||
"nl": "Heeft een rugleuning",
|
"nl": "Heeft een rugleuning",
|
||||||
"es": "Tiene respaldo",
|
"es": "Tiene respaldo",
|
||||||
|
@ -186,8 +186,8 @@
|
||||||
"two_sided="
|
"two_sided="
|
||||||
],
|
],
|
||||||
"then": {
|
"then": {
|
||||||
"en": "Does <b>not</b> have a backrest",
|
"en": "This bench does <b>not</b> have a backrest",
|
||||||
"de": "Die Sitzbank hat <b>keine</b> Rückenlehne",
|
"de": "Diese Sitzbank hat <b>keine</b> Rückenlehne",
|
||||||
"fr": "Dossier : Non",
|
"fr": "Dossier : Non",
|
||||||
"nl": "Heeft <b>geen</b> rugleuning",
|
"nl": "Heeft <b>geen</b> rugleuning",
|
||||||
"es": "<b>No</b> tiene respaldo",
|
"es": "<b>No</b> tiene respaldo",
|
||||||
|
@ -236,8 +236,8 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"render": {
|
"render": {
|
||||||
"en": "{seats} seats",
|
"en": "This bench has {seats} seats",
|
||||||
"de": "Die Sitzbank hat {seats} Sitzplätze",
|
"de": "Diese Sitzbank hat {seats} Sitzplätze",
|
||||||
"fr": "{seats} places",
|
"fr": "{seats} places",
|
||||||
"nl": "{seats} zitplaatsen",
|
"nl": "{seats} zitplaatsen",
|
||||||
"es": "{seats} asientos",
|
"es": "{seats} asientos",
|
||||||
|
@ -882,7 +882,7 @@
|
||||||
"bench-questions"
|
"bench-questions"
|
||||||
],
|
],
|
||||||
"render": {
|
"render": {
|
||||||
"en": "This bench does have the following inscription:<br/><p><i>{inscription}</i></p>",
|
"en": "This bench has the following inscription:<br/><p><i>{inscription}</i></p>",
|
||||||
"nl": "Deze bank heeft een inscriptie: <br/><p><i>{inscription}</i></p>",
|
"nl": "Deze bank heeft een inscriptie: <br/><p><i>{inscription}</i></p>",
|
||||||
"de": "Diese Bank hat folgende Inschrift:<br/><p><i>{inscription}</i></p>",
|
"de": "Diese Bank hat folgende Inschrift:<br/><p><i>{inscription}</i></p>",
|
||||||
"fr": "Ce banc a l'inscription suivante :<br/><p><i>{inscription}</i></p>",
|
"fr": "Ce banc a l'inscription suivante :<br/><p><i>{inscription}</i></p>",
|
||||||
|
@ -931,7 +931,7 @@
|
||||||
{
|
{
|
||||||
"if": "inscription=",
|
"if": "inscription=",
|
||||||
"then": {
|
"then": {
|
||||||
"en": "This bench does <span class='subtle'>(probably)</span> not have an inscription",
|
"en": "This bench <span class='subtle'>(probably)</span> does not not have an inscription",
|
||||||
"nl": "Deze bank heeft <span class='subtle'>(waarschijnlijk)</span> geen inscriptie",
|
"nl": "Deze bank heeft <span class='subtle'>(waarschijnlijk)</span> geen inscriptie",
|
||||||
"de": "Diese Bank hat <span class='subtle'>(wahrscheinlich)</span> keine Inschrift",
|
"de": "Diese Bank hat <span class='subtle'>(wahrscheinlich)</span> keine Inschrift",
|
||||||
"fr": "Ce banc n'a <span class='subtle'>(probablement)</span> pas d'inscription",
|
"fr": "Ce banc n'a <span class='subtle'>(probablement)</span> pas d'inscription",
|
||||||
|
|
|
@ -998,6 +998,16 @@
|
||||||
"weeks",
|
"weeks",
|
||||||
"months"
|
"months"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"charge": {
|
||||||
|
"quantity": "duration",
|
||||||
|
"inverted": true,
|
||||||
|
"denominations": [
|
||||||
|
"days",
|
||||||
|
"weeks",
|
||||||
|
"months",
|
||||||
|
"years"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -5,12 +5,7 @@
|
||||||
"nl": "Oplaadpunten",
|
"nl": "Oplaadpunten",
|
||||||
"de": "Ladestationen"
|
"de": "Ladestationen"
|
||||||
},
|
},
|
||||||
"description": {
|
"minzoom": 10,
|
||||||
"en": "A charging station",
|
|
||||||
"nl": "Oplaadpunten",
|
|
||||||
"ca": "Una estació de càrrega",
|
|
||||||
"de": "Eine Ladestation"
|
|
||||||
},
|
|
||||||
"source": {
|
"source": {
|
||||||
"osmTags": {
|
"osmTags": {
|
||||||
"and": [
|
"and": [
|
||||||
|
@ -25,7 +20,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"minzoom": 10,
|
|
||||||
"title": {
|
"title": {
|
||||||
"render": {
|
"render": {
|
||||||
"en": "Charging station",
|
"en": "Charging station",
|
||||||
|
@ -71,103 +65,13 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"pointRendering": [
|
"description": {
|
||||||
{
|
"en": "A charging station",
|
||||||
"location": [
|
"nl": "Oplaadpunten",
|
||||||
"point",
|
"ca": "Una estació de càrrega",
|
||||||
"centroid"
|
"de": "Eine Ladestation"
|
||||||
],
|
|
||||||
"marker": [
|
|
||||||
{
|
|
||||||
"icon": "pin",
|
|
||||||
"color": "#fff"
|
|
||||||
},
|
},
|
||||||
{
|
"#": "no-question-hint-check",
|
||||||
"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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
"images",
|
"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": [
|
"filter": [
|
||||||
{
|
{
|
||||||
"id": "vehicle-type",
|
"id": "vehicle-type",
|
||||||
|
@ -2714,19 +2715,6 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"deletion": {
|
|
||||||
"softDeletionTags": {
|
|
||||||
"and": [
|
|
||||||
"amenity=",
|
|
||||||
"disused:amenity=charging_station"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"neededChangesets": 10
|
|
||||||
},
|
|
||||||
"allowMove": {
|
|
||||||
"enableRelocation": false,
|
|
||||||
"enableImproveAccuracy": true
|
|
||||||
},
|
|
||||||
"units": [
|
"units": [
|
||||||
{
|
{
|
||||||
"maxstay": {
|
"maxstay": {
|
||||||
|
@ -2885,5 +2873,17 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"#": "no-question-hint-check"
|
"allowMove": {
|
||||||
|
"enableRelocation": false,
|
||||||
|
"enableImproveAccuracy": true
|
||||||
|
},
|
||||||
|
"deletion": {
|
||||||
|
"softDeletionTags": {
|
||||||
|
"and": [
|
||||||
|
"amenity=",
|
||||||
|
"disused:amenity=charging_station"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"neededChangesets": 10
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -3,14 +3,17 @@
|
||||||
"title": {
|
"title": {
|
||||||
"en": "Changes made with MapComplete"
|
"en": "Changes made with MapComplete"
|
||||||
},
|
},
|
||||||
"description": {
|
|
||||||
"en": "This maps shows all the changes made with MapComplete"
|
|
||||||
},
|
|
||||||
"shortDescription": {
|
"shortDescription": {
|
||||||
"en": "Shows changes made by MapComplete"
|
"en": "Shows changes made by MapComplete"
|
||||||
},
|
},
|
||||||
|
"description": {
|
||||||
|
"en": "This maps shows all the changes made with MapComplete"
|
||||||
|
},
|
||||||
"icon": "./assets/svg/logo.svg",
|
"icon": "./assets/svg/logo.svg",
|
||||||
"hideFromOverview": true,
|
"hideFromOverview": true,
|
||||||
|
"startLat": 0,
|
||||||
|
"startLon": 0,
|
||||||
|
"startZoom": 1,
|
||||||
"layers": [
|
"layers": [
|
||||||
{
|
{
|
||||||
"id": "mapcomplete-changes",
|
"id": "mapcomplete-changes",
|
||||||
|
|
|
@ -845,10 +845,10 @@
|
||||||
"then": "Diese Bank ist zweiseitig und teilt sich die Rückenlehne"
|
"then": "Diese Bank ist zweiseitig und teilt sich die Rückenlehne"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Die Sitzbank hat eine Rückenlehne"
|
"then": "Diese Sitzbank hat eine Rückenlehne"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Die Sitzbank hat <b>keine</b> Rückenlehne"
|
"then": "Diese Sitzbank hat <b>keine</b> Rückenlehne"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Hat diese Sitzbank eine Rückenlehne?"
|
"question": "Hat diese Sitzbank eine Rückenlehne?"
|
||||||
|
@ -942,7 +942,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Wie viele Sitzplätze hat diese Bank?",
|
"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": {
|
"bench-survey:date": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
|
|
|
@ -393,27 +393,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "What is the purpose of the animal shelter?"
|
"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": {
|
"title": {
|
||||||
|
@ -866,10 +845,10 @@
|
||||||
"then": "This bench is two-sided and shares the backrest"
|
"then": "This bench is two-sided and shares the backrest"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Does have a backrest"
|
"then": "This bench does have a backrest"
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Does <b>not</b> have a backrest"
|
"then": "This bench does <b>not</b> have a backrest"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Does this bench have a backrest?"
|
"question": "Does this bench have a backrest?"
|
||||||
|
@ -914,12 +893,12 @@
|
||||||
"then": "This bench does not have an inscription"
|
"then": "This bench does not have an inscription"
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"then": "This bench does <span class='subtle'>(probably)</span> not have an inscription"
|
"then": "This bench <span class='subtle'>(probably)</span> does not not have an inscription"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Does this bench have an inscription?",
|
"question": "Does this bench have an inscription?",
|
||||||
"questionHint": "E.g. on a mounted plaque, in the backrest, …",
|
"questionHint": "E.g. on a mounted plaque, in the backrest, …",
|
||||||
"render": "This bench does have the following inscription:<br/><p><i>{inscription}</i></p>"
|
"render": "This bench has the following inscription:<br/><p><i>{inscription}</i></p>"
|
||||||
},
|
},
|
||||||
"bench-material": {
|
"bench-material": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
|
@ -963,7 +942,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "How many seats does this bench have?",
|
"question": "How many seats does this bench have?",
|
||||||
"render": "{seats} seats"
|
"render": "This bench has {seats} seats"
|
||||||
},
|
},
|
||||||
"bench-survey:date": {
|
"bench-survey:date": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
|
@ -1511,18 +1490,10 @@
|
||||||
},
|
},
|
||||||
"question": "Are these bicycle parkings free to use?"
|
"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": {
|
"operator": {
|
||||||
"question": "Who maintains this bicycle parking?",
|
"question": "Who maintains this bicycle parking?",
|
||||||
"render": "This bicycle parking is maintained by {operator}"
|
"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": {
|
"operator_phone": {
|
||||||
"question": "What is the phone number of the operator of this bicycle parking?",
|
"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"
|
"questionHint": "One might be able to call this number in case of problems, e.g. to remove unmaintained bicycles"
|
||||||
|
@ -2190,9 +2161,6 @@
|
||||||
},
|
},
|
||||||
"16": {
|
"16": {
|
||||||
"question": "Has a <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> connector"
|
"question": "Has a <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> connector"
|
||||||
},
|
|
||||||
"17": {
|
|
||||||
"question": "Has a <div style='display: inline-block'><b><b>BS1363</b> (Type G)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bs1363.svg'/></div> connector"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2337,12 +2305,6 @@
|
||||||
},
|
},
|
||||||
"31": {
|
"31": {
|
||||||
"then": "<b>Bosch Active Connect with 5 pins</b> and cable"
|
"then": "<b>Bosch Active Connect with 5 pins</b> and cable"
|
||||||
},
|
|
||||||
"32": {
|
|
||||||
"then": "<b>BS1363</b> (Type G)"
|
|
||||||
},
|
|
||||||
"33": {
|
|
||||||
"then": "<b>BS1363</b> (Type G)"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Which charging connections are available here?"
|
"question": "Which charging connections are available here?"
|
||||||
|
@ -2577,9 +2539,6 @@
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"2": "<b>Bosch Active Connect with 5 pins</b> and cable"
|
"2": "<b>Bosch Active Connect with 5 pins</b> and cable"
|
||||||
},
|
|
||||||
"16": {
|
|
||||||
"2": "<b>BS1363</b> (Type G)"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5154,22 +5113,6 @@
|
||||||
"render": "Restaurant"
|
"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 <b>{name}</b>."
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"title": {
|
|
||||||
"render": "Food Court"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ghost_bike": {
|
"ghost_bike": {
|
||||||
"description": "A layer showing memorials for cyclists, killed in road accidents",
|
"description": "A layer showing memorials for cyclists, killed in road accidents",
|
||||||
"name": "Ghost bikes",
|
"name": "Ghost bikes",
|
||||||
|
@ -6682,74 +6625,6 @@
|
||||||
"render": "OSM Community Index"
|
"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": {
|
"parcel_lockers": {
|
||||||
"description": "Layer showing parcel lockers for collecting and sending parcels.",
|
"description": "Layer showing parcel lockers for collecting and sending parcels.",
|
||||||
"name": "Parcel Lockers",
|
"name": "Parcel Lockers",
|
||||||
|
@ -9068,10 +8943,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tagRenderings": {
|
"tagRenderings": {
|
||||||
"camera_direction": {
|
|
||||||
"question": "In which geographical direction does this camera film?",
|
|
||||||
"render": "Films to a compass heading of {direction}"
|
|
||||||
},
|
|
||||||
"maxspeed": {
|
"maxspeed": {
|
||||||
"freeform": {
|
"freeform": {
|
||||||
"placeholder": "Maximum speed allowed"
|
"placeholder": "Maximum speed allowed"
|
||||||
|
|
|
@ -1227,18 +1227,10 @@
|
||||||
},
|
},
|
||||||
"question": "Is deze fietsenstalling gratis te gebruiken?"
|
"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": {
|
"operator": {
|
||||||
"question": "Wie beheert deze fietsenstalling?",
|
"question": "Wie beheert deze fietsenstalling?",
|
||||||
"render": "Deze fietsenstalling wordt beheerd door {operator}"
|
"render": "Deze fietsenstalling wordt beheerd door {operator}"
|
||||||
},
|
},
|
||||||
"operator_email": {
|
|
||||||
"question": "Wat is het emailadres van de beheerder van deze parking?"
|
|
||||||
},
|
|
||||||
"operator_phone": {
|
"operator_phone": {
|
||||||
"question": "Wat is het telefoonnummer van de operator van deze fietsenstalling?",
|
"question": "Wat is het telefoonnummer van de operator van deze fietsenstalling?",
|
||||||
"questionHint": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden"
|
"questionHint": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden"
|
||||||
|
@ -1882,9 +1874,6 @@
|
||||||
},
|
},
|
||||||
"16": {
|
"16": {
|
||||||
"question": "Heeft een <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>"
|
"question": "Heeft een <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>"
|
||||||
},
|
|
||||||
"17": {
|
|
||||||
"question": "Heeft een <div style='display: inline-block'><b><b>BS1363</b> (VK 3-pin)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bs1363.svg'/></div>"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2029,12 +2018,6 @@
|
||||||
},
|
},
|
||||||
"31": {
|
"31": {
|
||||||
"then": "<b>Bosch Active Connect met 5 pinnen</b> aan een kabel"
|
"then": "<b>Bosch Active Connect met 5 pinnen</b> aan een kabel"
|
||||||
},
|
|
||||||
"32": {
|
|
||||||
"then": "<b>BS1363</b> (VK 3-pin)"
|
|
||||||
},
|
|
||||||
"33": {
|
|
||||||
"then": "<b>BS1363</b> (VK 3-pin)"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Welke aansluitingen zijn hier beschikbaar?"
|
"question": "Welke aansluitingen zijn hier beschikbaar?"
|
||||||
|
@ -2269,9 +2252,6 @@
|
||||||
},
|
},
|
||||||
"15": {
|
"15": {
|
||||||
"2": "<b>Bosch Active Connect met 5 pinnen</b> aan een kabel"
|
"2": "<b>Bosch Active Connect met 5 pinnen</b> aan een kabel"
|
||||||
},
|
|
||||||
"16": {
|
|
||||||
"2": "<b>BS1363</b> (VK 3-pin)"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7349,10 +7329,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tagRenderings": {
|
"tagRenderings": {
|
||||||
"camera_direction": {
|
|
||||||
"question": "In welke geografische richting filmt deze camera?",
|
|
||||||
"render": "Filmt in kompasrichting {direction}"
|
|
||||||
},
|
|
||||||
"maxspeed": {
|
"maxspeed": {
|
||||||
"freeform": {
|
"freeform": {
|
||||||
"placeholder": "Maximum toegestane snelheid"
|
"placeholder": "Maximum toegestane snelheid"
|
||||||
|
|
|
@ -899,6 +899,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "En aquest mapa, es mostren llocs públics accessibles per a cadira de rodes i es poden afegir fàcilment",
|
"description": "En aquest mapa, es mostren llocs públics accessibles per a cadira de rodes i es poden afegir fàcilment",
|
||||||
"layers": {
|
"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": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -941,33 +968,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Places d'aparcament per a minusvàlids"
|
"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"
|
"title": "Sobre rodes"
|
||||||
|
@ -1128,10 +1128,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Veure, editar i afegir detalls a una estació de tren",
|
"description": "Veure, editar i afegir detalls a una estació de tren",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Capa que mostra les estacions de tren",
|
|
||||||
"name": "Estació de tren"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Pantalles que mostren els trens que sortiran de l'estació",
|
"description": "Pantalles que mostren els trens que sortiran de l'estació",
|
||||||
"name": "Taulers de sortides",
|
"name": "Taulers de sortides",
|
||||||
|
@ -1163,6 +1159,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Tauler de sortides"
|
"render": "Tauler de sortides"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Capa que mostra les estacions de tren",
|
||||||
|
"name": "Estació de tren"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Estacions de tren"
|
"title": "Estacions de tren"
|
||||||
|
|
|
@ -906,6 +906,33 @@
|
||||||
"onwheels": {
|
"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",
|
"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": {
|
"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": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -948,33 +975,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Parkovací místa pro osoby se zdravotním postižením"
|
"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"
|
"title": "Na kolečkách"
|
||||||
|
@ -1135,10 +1135,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Zobrazení, úprava a přidání podrobností o vlakovém nádraží",
|
"description": "Zobrazení, úprava a přidání podrobností o vlakovém nádraží",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Vrstva zobrazující vlaková nádraží",
|
|
||||||
"name": "Vlaková nádraží"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Zobrazuje vlaky odjíždějící z této stanice",
|
"description": "Zobrazuje vlaky odjíždějící z této stanice",
|
||||||
"name": "Odjezdové tabule",
|
"name": "Odjezdové tabule",
|
||||||
|
@ -1170,6 +1166,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Odjezdová tabule"
|
"render": "Odjezdová tabule"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Vrstva zobrazující vlaková nádraží",
|
||||||
|
"name": "Vlaková nádraží"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Vlaková nádraží"
|
"title": "Vlaková nádraží"
|
||||||
|
|
|
@ -631,6 +631,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "På dette kort vises steder, der er offentligt tilgængelige for kørestolsbrugere, og de kan nemt tilføjes",
|
"description": "På dette kort vises steder, der er offentligt tilgængelige for kørestolsbrugere, og de kan nemt tilføjes",
|
||||||
"layers": {
|
"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": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -975,6 +975,133 @@
|
||||||
},
|
},
|
||||||
"title": "Bordsteine und Überwege"
|
"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 <b>not</b> {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Etymologie-Thema ausschließen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Erstellt vom Mitwirkenden {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "<b>Nicht</b> 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 <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
|
||||||
|
},
|
||||||
|
"host": {
|
||||||
|
"question": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?",
|
||||||
|
"render": "Änderung über <a href='{host}'>{host}</a>"
|
||||||
|
},
|
||||||
|
"locale": {
|
||||||
|
"question": "In welcher Benutzersprache wurde die Änderung vorgenommen?",
|
||||||
|
"render": "Benutzersprache {locale}"
|
||||||
|
},
|
||||||
|
"show_changeset_id": {
|
||||||
|
"render": "Änderungssatz <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
|
||||||
|
},
|
||||||
|
"theme-id": {
|
||||||
|
"question": "Welches Thema wurde für die Änderung verwendet?",
|
||||||
|
"render": "Geändert mit Thema <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
|
||||||
|
},
|
||||||
|
"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 <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shortDescription": "Änderungen von MapComplete anzeigen",
|
||||||
|
"title": "Änderungen mit MapComplete"
|
||||||
|
},
|
||||||
"maproulette": {
|
"maproulette": {
|
||||||
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
|
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
|
||||||
"title": "MapRoulette-Aufgaben"
|
"title": "MapRoulette-Aufgaben"
|
||||||
|
@ -1010,6 +1137,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen",
|
"description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statistik"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Alle vorgeschlagenen Tags hinzufügen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -1052,33 +1206,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Barrierefreie Parkplätze"
|
"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"
|
"title": "Auf Rädern"
|
||||||
|
@ -1320,10 +1447,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen",
|
"description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Ebene mit Bahnhöfen",
|
|
||||||
"name": "Bahnhöfe"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Anzeigen der Züge, die von diesem Bahnhof abfahren",
|
"description": "Anzeigen der Züge, die von diesem Bahnhof abfahren",
|
||||||
"name": "Abfahrtstafeln",
|
"name": "Abfahrtstafeln",
|
||||||
|
@ -1355,6 +1478,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Abfahrtstafel"
|
"render": "Abfahrtstafel"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Ebene mit Bahnhöfen",
|
||||||
|
"name": "Bahnhöfe"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Bahnhöfe"
|
"title": "Bahnhöfe"
|
||||||
|
|
|
@ -676,7 +676,7 @@
|
||||||
},
|
},
|
||||||
"5": {
|
"5": {
|
||||||
"override": {
|
"override": {
|
||||||
"=name": "Toursistic places without etymology information"
|
"=name": "Touristic places without etymology information"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"6": {
|
"6": {
|
||||||
|
@ -995,6 +995,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Exclude etymology theme"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
|
@ -1050,13 +1057,6 @@
|
||||||
"question": "Exclude GRB theme"
|
"question": "Exclude GRB theme"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Exclude etymology theme"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Changeset centers",
|
"name": "Changeset centers",
|
||||||
|
@ -1137,6 +1137,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "On this map, publicly weelchair accessible places are shown and can be easily added",
|
"description": "On this map, publicly weelchair accessible places are shown and can be easily added",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statistics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Add all the suggested tags"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -1179,33 +1206,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Disabled parking spaces"
|
"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"
|
"title": "OnWheels"
|
||||||
|
@ -1447,10 +1447,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "View, edit and add details to a train station",
|
"description": "View, edit and add details to a train station",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Layer showing train stations",
|
|
||||||
"name": "Train Stations"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Displays showing the trains that will leave from this station",
|
"description": "Displays showing the trains that will leave from this station",
|
||||||
"name": "Departures boards",
|
"name": "Departures boards",
|
||||||
|
@ -1482,6 +1478,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Departures board"
|
"render": "Departures board"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Layer showing train stations",
|
||||||
|
"name": "Train Stations"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Train Stations"
|
"title": "Train Stations"
|
||||||
|
|
|
@ -956,6 +956,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "En este mapa se muestran los lugares accesibles al público en silla de ruedas, que pueden añadirse fácilmente",
|
"description": "En este mapa se muestran los lugares accesibles al público en silla de ruedas, que pueden añadirse fácilmente",
|
||||||
"layers": {
|
"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": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -998,33 +1025,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Plazas de aparcamiento para discapacitados"
|
"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"
|
"title": "Sobre ruedas"
|
||||||
|
@ -1240,10 +1240,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Ver, editar y añadir detalles a una estación de tren",
|
"description": "Ver, editar y añadir detalles a una estación de tren",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Capa que muestra las estaciones de tren",
|
|
||||||
"name": "Estación de Tren"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Pantallas que muestran los trenes que saldrán de esta estación",
|
"description": "Pantallas que muestran los trenes que saldrán de esta estación",
|
||||||
"name": "Tableros de salidas",
|
"name": "Tableros de salidas",
|
||||||
|
@ -1275,6 +1271,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Tablero de salidas"
|
"render": "Tablero de salidas"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Capa que muestra las estaciones de tren",
|
||||||
|
"name": "Estación de Tren"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Estaciones de tren"
|
"title": "Estaciones de tren"
|
||||||
|
|
|
@ -93,6 +93,9 @@
|
||||||
"shortDescription": "Carte des bancs",
|
"shortDescription": "Carte des bancs",
|
||||||
"title": "Bancs"
|
"title": "Bancs"
|
||||||
},
|
},
|
||||||
|
"bicycle_parkings": {
|
||||||
|
"title": "Stationnement vélo"
|
||||||
|
},
|
||||||
"bicycle_rental": {
|
"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",
|
"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",
|
"shortDescription": "Une carte avec des stations et magasins de location de vélos",
|
||||||
|
@ -861,6 +864,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "Sur cette carte nous pouvons voir et ajouter les différents endroits publiques accessibles aux chaises roulantes",
|
"description": "Sur cette carte nous pouvons voir et ajouter les différents endroits publiques accessibles aux chaises roulantes",
|
||||||
"layers": {
|
"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": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -903,33 +933,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Places de stationnement pour personnes handicapées"
|
"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"
|
"title": "OnWheels"
|
||||||
|
@ -1090,10 +1093,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Voir, modifier et ajouter des détails à une gare ferroviaire",
|
"description": "Voir, modifier et ajouter des détails à une gare ferroviaire",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Couche montrant les gares",
|
|
||||||
"name": "Gares ferroviaires"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Panneau affichant les trains au départ depuis cette gare",
|
"description": "Panneau affichant les trains au départ depuis cette gare",
|
||||||
"name": "Panneaux des départs",
|
"name": "Panneaux des départs",
|
||||||
|
@ -1125,6 +1124,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Tableau des départs"
|
"render": "Tableau des départs"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Couche montrant les gares",
|
||||||
|
"name": "Gares ferroviaires"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Gares ferroviaires"
|
"title": "Gares ferroviaires"
|
||||||
|
|
|
@ -494,19 +494,6 @@
|
||||||
},
|
},
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"layers": {
|
"layers": {
|
||||||
"4": {
|
|
||||||
"override": {
|
|
||||||
"filter": {
|
|
||||||
"0": {
|
|
||||||
"options": {
|
|
||||||
"1": {
|
|
||||||
"question": "Uten breddeinfo"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"19": {
|
"19": {
|
||||||
"override": {
|
"override": {
|
||||||
"=title": {
|
"=title": {
|
||||||
|
@ -533,6 +520,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"override": {
|
||||||
|
"filter": {
|
||||||
|
"0": {
|
||||||
|
"options": {
|
||||||
|
"1": {
|
||||||
|
"question": "Uten breddeinfo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "På hjul"
|
"title": "På hjul"
|
||||||
|
@ -626,10 +626,6 @@
|
||||||
},
|
},
|
||||||
"stations": {
|
"stations": {
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Lag som viser togstasjoner",
|
|
||||||
"name": "Togstasjoner"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"tagRenderings": {
|
"tagRenderings": {
|
||||||
"type": {
|
"type": {
|
||||||
|
@ -640,6 +636,10 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Lag som viser togstasjoner",
|
||||||
|
"name": "Togstasjoner"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Togstasjoner"
|
"title": "Togstasjoner"
|
||||||
|
|
|
@ -908,6 +908,33 @@
|
||||||
"onwheels": {
|
"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.",
|
"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": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statistieken"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Importeren"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Voeg alle gesuggereerde tags toe"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -950,33 +977,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Parkeerplaatsen voor personen met een beperking"
|
"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"
|
"title": "OnWheels"
|
||||||
|
@ -1183,10 +1183,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Bekijk, bewerk en voeg details to aan een treinstation",
|
"description": "Bekijk, bewerk en voeg details to aan een treinstation",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Laag met treinstations",
|
|
||||||
"name": "Treinstations"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Schermen die treinen tonen die van dit station vertrekken",
|
"description": "Schermen die treinen tonen die van dit station vertrekken",
|
||||||
"name": "Vertrektijdenborden",
|
"name": "Vertrektijdenborden",
|
||||||
|
@ -1218,6 +1214,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Vertrektijdenbord"
|
"render": "Vertrektijdenbord"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Laag met treinstations",
|
||||||
|
"name": "Treinstations"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Treinstations"
|
"title": "Treinstations"
|
||||||
|
|
|
@ -875,6 +875,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "Na tej mapie pokazane są miejsca publicznie dostępne dla wózków inwalidzkich, które można łatwo dodać",
|
"description": "Na tej mapie pokazane są miejsca publicznie dostępne dla wózków inwalidzkich, które można łatwo dodać",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statystyki"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Dodaj wszystkie sugerowane znaczniki"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -917,33 +944,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Miejsca parkingowe dla niepełnosprawnych"
|
"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"
|
"title": "Na kółkach"
|
||||||
|
@ -1104,10 +1104,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Przeglądaj, edytuj i dodawaj szczegóły do stacji kolejowej",
|
"description": "Przeglądaj, edytuj i dodawaj szczegóły do stacji kolejowej",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Warstwa pokazująca stacje kolejowe",
|
|
||||||
"name": "Stacje Kolejowe"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Ekrany wyświetlające pokazujące pociągi, które odjadą z tej stacji",
|
"description": "Ekrany wyświetlające pokazujące pociągi, które odjadą z tej stacji",
|
||||||
"name": "Tablice odjazdów",
|
"name": "Tablice odjazdów",
|
||||||
|
@ -1139,6 +1135,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Tablica odjazdów"
|
"render": "Tablica odjazdów"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Warstwa pokazująca stacje kolejowe",
|
||||||
|
"name": "Stacje Kolejowe"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Stacje Kolejowe"
|
"title": "Stacje Kolejowe"
|
||||||
|
|
3988
package-lock.json
generated
3988
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -173,6 +173,7 @@
|
||||||
"marked": "^12.0.2",
|
"marked": "^12.0.2",
|
||||||
"monaco-editor": "^0.46.0",
|
"monaco-editor": "^0.46.0",
|
||||||
"name-suggestion-index": "^6.0.20240422",
|
"name-suggestion-index": "^6.0.20240422",
|
||||||
|
"npm": "^10.7.0",
|
||||||
"opening_hours": "^3.6.0",
|
"opening_hours": "^3.6.0",
|
||||||
"osm-auth": "^2.2.0",
|
"osm-auth": "^2.2.0",
|
||||||
"osmtogeojson": "^3.0.0-beta.5",
|
"osmtogeojson": "^3.0.0-beta.5",
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
::before,
|
::before,
|
||||||
::after {
|
::after {
|
||||||
--tw-content: "";
|
--tw-content: '';
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -50,9 +50,7 @@ html {
|
||||||
/* 3 */
|
/* 3 */
|
||||||
tab-size: 4;
|
tab-size: 4;
|
||||||
/* 3 */
|
/* 3 */
|
||||||
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
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";
|
||||||
"Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
|
|
||||||
"Segoe UI Symbol", "Noto Color Emoji";
|
|
||||||
/* 4 */
|
/* 4 */
|
||||||
-webkit-font-feature-settings: normal;
|
-webkit-font-feature-settings: normal;
|
||||||
font-feature-settings: normal;
|
font-feature-settings: normal;
|
||||||
|
@ -136,8 +134,7 @@ code,
|
||||||
kbd,
|
kbd,
|
||||||
samp,
|
samp,
|
||||||
pre {
|
pre {
|
||||||
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
"Courier New", monospace;
|
|
||||||
/* 1 */
|
/* 1 */
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
/* 2 */
|
/* 2 */
|
||||||
|
@ -228,9 +225,9 @@ select {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
button,
|
button,
|
||||||
[type="button"],
|
[type='button'],
|
||||||
[type="reset"],
|
[type='reset'],
|
||||||
[type="submit"] {
|
[type='submit'] {
|
||||||
-webkit-appearance: button;
|
-webkit-appearance: button;
|
||||||
/* 1 */
|
/* 1 */
|
||||||
background-color: transparent;
|
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.
|
2. Correct the outline style in Safari.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
[type="search"] {
|
[type='search'] {
|
||||||
-webkit-appearance: textfield;
|
-webkit-appearance: textfield;
|
||||||
/* 1 */
|
/* 1 */
|
||||||
outline-offset: -2px;
|
outline-offset: -2px;
|
||||||
|
@ -362,8 +359,7 @@ textarea {
|
||||||
2. Set the default placeholder color to the user's configured gray 400 color.
|
2. Set the default placeholder color to the user's configured gray 400 color.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
input::-webkit-input-placeholder,
|
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
|
||||||
textarea::-webkit-input-placeholder {
|
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
/* 1 */
|
/* 1 */
|
||||||
color: #9ca3af;
|
color: #9ca3af;
|
||||||
|
@ -431,9 +427,7 @@ video {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
*,
|
*, ::before, ::after {
|
||||||
::before,
|
|
||||||
::after {
|
|
||||||
--tw-border-spacing-x: 0;
|
--tw-border-spacing-x: 0;
|
||||||
--tw-border-spacing-y: 0;
|
--tw-border-spacing-y: 0;
|
||||||
--tw-translate-x: 0;
|
--tw-translate-x: 0;
|
||||||
|
@ -787,10 +781,6 @@ video {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.m-2 {
|
|
||||||
margin: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.m-4 {
|
.m-4 {
|
||||||
margin: 1rem;
|
margin: 1rem;
|
||||||
}
|
}
|
||||||
|
@ -807,6 +797,10 @@ video {
|
||||||
margin: 2rem;
|
margin: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.m-2 {
|
||||||
|
margin: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.m-1 {
|
.m-1 {
|
||||||
margin: 0.25rem;
|
margin: 0.25rem;
|
||||||
}
|
}
|
||||||
|
@ -1332,21 +1326,13 @@ video {
|
||||||
}
|
}
|
||||||
|
|
||||||
.transform {
|
.transform {
|
||||||
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-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));
|
||||||
rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-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));
|
||||||
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 {
|
.\!transform {
|
||||||
-webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-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)) !important;
|
||||||
rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-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)) !important;
|
||||||
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 {
|
@-webkit-keyframes spin {
|
||||||
|
@ -2044,44 +2030,37 @@ video {
|
||||||
|
|
||||||
.ordinal {
|
.ordinal {
|
||||||
--tw-ordinal: ordinal;
|
--tw-ordinal: ordinal;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.slashed-zero {
|
.slashed-zero {
|
||||||
--tw-slashed-zero: slashed-zero;
|
--tw-slashed-zero: slashed-zero;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.lining-nums {
|
.lining-nums {
|
||||||
--tw-numeric-figure: lining-nums;
|
--tw-numeric-figure: lining-nums;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.oldstyle-nums {
|
.oldstyle-nums {
|
||||||
--tw-numeric-figure: oldstyle-nums;
|
--tw-numeric-figure: oldstyle-nums;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.proportional-nums {
|
.proportional-nums {
|
||||||
--tw-numeric-spacing: proportional-nums;
|
--tw-numeric-spacing: proportional-nums;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabular-nums {
|
.tabular-nums {
|
||||||
--tw-numeric-spacing: tabular-nums;
|
--tw-numeric-spacing: tabular-nums;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.diagonal-fractions {
|
.diagonal-fractions {
|
||||||
--tw-numeric-fraction: diagonal-fractions;
|
--tw-numeric-fraction: diagonal-fractions;
|
||||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure)
|
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||||
var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tracking-tight {
|
.tracking-tight {
|
||||||
|
@ -2140,8 +2119,7 @@ video {
|
||||||
.shadow {
|
.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: 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);
|
--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),
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||||
var(--tw-shadow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.outline-none {
|
.outline-none {
|
||||||
|
@ -2154,10 +2132,8 @@ video {
|
||||||
}
|
}
|
||||||
|
|
||||||
.ring {
|
.ring {
|
||||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width)
|
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||||
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-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);
|
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2167,137 +2143,89 @@ video {
|
||||||
|
|
||||||
.blur {
|
.blur {
|
||||||
--tw-blur: blur(8px);
|
--tw-blur: blur(8px);
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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);
|
||||||
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: 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 {
|
.drop-shadow-md {
|
||||||
--tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07))
|
--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));
|
||||||
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);
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
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);
|
||||||
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 {
|
.drop-shadow-2xl {
|
||||||
--tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
|
--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)
|
-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);
|
||||||
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: 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 {
|
.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));
|
--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)
|
-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);
|
||||||
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: 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 {
|
.grayscale {
|
||||||
--tw-grayscale: grayscale(100%);
|
--tw-grayscale: grayscale(100%);
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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);
|
||||||
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: 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 {
|
.invert {
|
||||||
--tw-invert: invert(100%);
|
--tw-invert: invert(100%);
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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);
|
||||||
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: 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 {
|
.sepia {
|
||||||
--tw-sepia: sepia(100%);
|
--tw-sepia: sepia(100%);
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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);
|
||||||
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: 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 {
|
.filter {
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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);
|
||||||
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: 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 {
|
.\!filter {
|
||||||
-webkit-filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale)
|
-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;
|
||||||
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;
|
||||||
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 {
|
.backdrop-blur {
|
||||||
--tw-backdrop-blur: blur(8px);
|
--tw-backdrop-blur: blur(8px);
|
||||||
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
|
-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);
|
||||||
var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
|
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);
|
||||||
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 {
|
.backdrop-grayscale {
|
||||||
--tw-backdrop-grayscale: grayscale(100%);
|
--tw-backdrop-grayscale: grayscale(100%);
|
||||||
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
|
-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);
|
||||||
var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
|
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);
|
||||||
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 {
|
.backdrop-invert {
|
||||||
--tw-backdrop-invert: invert(100%);
|
--tw-backdrop-invert: invert(100%);
|
||||||
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
|
-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);
|
||||||
var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
|
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);
|
||||||
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 {
|
.backdrop-sepia {
|
||||||
--tw-backdrop-sepia: sepia(100%);
|
--tw-backdrop-sepia: sepia(100%);
|
||||||
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
|
-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);
|
||||||
var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
|
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);
|
||||||
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 {
|
.backdrop-filter {
|
||||||
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness)
|
-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);
|
||||||
var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate)
|
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);
|
||||||
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 {
|
||||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke,
|
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, -webkit-transform, -webkit-filter, -webkit-backdrop-filter;
|
||||||
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,
|
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;
|
||||||
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-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
transition-duration: 150ms;
|
transition-duration: 150ms;
|
||||||
}
|
}
|
||||||
|
@ -2428,7 +2356,7 @@ input {
|
||||||
color: var(--foreground-color);
|
color: var(--foreground-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="text"] {
|
input[type=text] {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2451,12 +2379,12 @@ input[type="text"] {
|
||||||
|
|
||||||
.low-interaction {
|
.low-interaction {
|
||||||
background: var(--low-interaction-background);
|
background: var(--low-interaction-background);
|
||||||
color: var(--low-interaction-foreground);
|
color: var(--low-interaction-foreground)
|
||||||
}
|
}
|
||||||
|
|
||||||
.interactive {
|
.interactive {
|
||||||
background: var(--interactive-background);
|
background: var(--interactive-background);
|
||||||
color: var(--interactive-foreground);
|
color: var(--interactive-foreground)
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-interactive {
|
.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
|
* 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;
|
line-height: 1rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-left: 0.5rem;
|
margin-left: 0.5rem;
|
||||||
|
@ -2497,8 +2424,7 @@ button.small,
|
||||||
color: var(--low-interaction-foreground);
|
color: var(--low-interaction-foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button, .button {
|
||||||
.button {
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
line-height: 1.25rem;
|
line-height: 1.25rem;
|
||||||
|
@ -2521,72 +2447,60 @@ button,
|
||||||
box-shadow: 0 5px 10px #88888888;
|
box-shadow: 0 5px 10px #88888888;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.selected,
|
button.selected, .button.selected {
|
||||||
.button.selected {
|
|
||||||
background-color: var(--catch-detail-color);
|
background-color: var(--catch-detail-color);
|
||||||
border-color: var(--catch-detail-color);
|
border-color: var(--catch-detail-color);
|
||||||
color: var(--catch-detail-foregroundcolor);
|
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;
|
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;
|
fill: var(--interactive-foreground) !important;
|
||||||
transition: all 250ms;
|
transition: all 250ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.interactive button,
|
.interactive button, .interactive .button {
|
||||||
.interactive .button {
|
|
||||||
background: var(--interactive-background);
|
background: var(--interactive-background);
|
||||||
color: var(--interactive-foreground);
|
color: var(--interactive-foreground);
|
||||||
}
|
}
|
||||||
|
|
||||||
button:hover,
|
button:hover, .button:hover {
|
||||||
.button:hover {
|
|
||||||
background-color: var(--catch-detail-color);
|
background-color: var(--catch-detail-color);
|
||||||
color: var(--catch-detail-foregroundcolor);
|
color: var(--catch-detail-foregroundcolor);
|
||||||
border: 2px solid var(--catch-detail-color-contrast);
|
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);
|
background: var(--low-interaction-background);
|
||||||
border-radius: 100rem;
|
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;
|
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;
|
fill: var(--low-interaction-foreground) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.primary,
|
button.primary, .button.primary {
|
||||||
.button.primary {
|
|
||||||
color: var(--button-foreground);
|
color: var(--button-foreground);
|
||||||
background: var(--button-background);
|
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;
|
fill: var(--button-foreground) !important;
|
||||||
transition: all 250ms;
|
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);
|
background-color: var(--low-interaction-background-50);
|
||||||
}
|
}
|
||||||
|
|
||||||
button.disabled,
|
button.disabled, .button.disabled {
|
||||||
.button.disabled {
|
|
||||||
cursor: default;
|
cursor: default;
|
||||||
border: 2px dashed var(--button-background);
|
border: 2px dashed var(--button-background);
|
||||||
background: unset;
|
background: unset;
|
||||||
|
@ -2594,8 +2508,7 @@ button.disabled,
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.disabled:hover,
|
button.disabled:hover, .button.disabled:hover {
|
||||||
.button.disabled:hover {
|
|
||||||
cursor: default;
|
cursor: default;
|
||||||
border: 2px dashed var(--button-background);
|
border: 2px dashed var(--button-background);
|
||||||
background: unset;
|
background: unset;
|
||||||
|
@ -2609,21 +2522,18 @@ button.link {
|
||||||
}
|
}
|
||||||
|
|
||||||
button.link:hover {
|
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;
|
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;
|
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;
|
fill: var(--foreground-color) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2636,14 +2546,12 @@ button.link:hover {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.soft,
|
button.soft, .button.soft {
|
||||||
.button.soft {
|
|
||||||
border: 2px solid var(--interactive-background);
|
border: 2px solid var(--interactive-background);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
button.soft:hover,
|
button.soft:hover, .button.soft:hover {
|
||||||
.button.soft:hover {
|
|
||||||
background-color: var(--interactive-background);
|
background-color: var(--interactive-background);
|
||||||
color: var(--interactive-foreground);
|
color: var(--interactive-foreground);
|
||||||
border: 2px solid var(--catch-detail-color-contrast);
|
border: 2px solid var(--catch-detail-color-contrast);
|
||||||
|
@ -2681,7 +2589,7 @@ select:hover {
|
||||||
border-color: var(--catch-detail-color-contrast);
|
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.
|
/** This label styles as normal text. It's power comes from the many :not(.neutral-label) entries.
|
||||||
* Placed here for autocompletion
|
* Placed here for autocompletion
|
||||||
*/
|
*/
|
||||||
|
@ -2709,7 +2617,7 @@ label.button {
|
||||||
label:hover:not(.neutral-label) {
|
label:hover:not(.neutral-label) {
|
||||||
background-color: var(--catch-detail-color);
|
background-color: var(--catch-detail-color);
|
||||||
color: var(--catch-detail-foregroundcolor);
|
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 {
|
label:not(.no-image-background):not(.neutral-label) img {
|
||||||
|
@ -2817,8 +2725,7 @@ textarea {
|
||||||
color: #7193bb;
|
color: #7193bb;
|
||||||
}
|
}
|
||||||
|
|
||||||
.literal-code,
|
.literal-code, code {
|
||||||
code {
|
|
||||||
/* A codeblock */
|
/* A codeblock */
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
background-color: lightgray;
|
background-color: lightgray;
|
||||||
|
@ -2941,18 +2848,18 @@ a.link-underline {
|
||||||
}
|
}
|
||||||
|
|
||||||
svg.apply-fill path {
|
svg.apply-fill path {
|
||||||
fill: var(--svg-color);
|
fill: var(--svg-color)
|
||||||
}
|
}
|
||||||
|
|
||||||
.compass_arrow {
|
.compass_arrow {
|
||||||
width: calc(2.5rem - 1px);
|
width: calc( 2.5rem - 1px ) ;
|
||||||
height: calc(2.5rem - 1px);
|
height: calc( 2.5rem - 1px )
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 640px) {
|
@media (min-width: 640px) {
|
||||||
.compass_arrow {
|
.compass_arrow {
|
||||||
width: calc(2.75rem - 1px);
|
width: calc( 2.75rem - 1px ) ;
|
||||||
height: calc(2.75rem - 1px);
|
height: calc( 2.75rem - 1px )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -224,10 +224,12 @@ export default class ScriptUtils {
|
||||||
})
|
})
|
||||||
const timeoutPromise = new Promise<any>((resolve, reject) => {
|
const timeoutPromise = new Promise<any>((resolve, reject) => {
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() =>
|
() => {
|
||||||
timeoutSecs === undefined
|
if(timeoutSecs === undefined){
|
||||||
? reject(new Error("Timout reached"))
|
return // No resolve
|
||||||
: resolve("timeout"),
|
}
|
||||||
|
resolve("timeout")
|
||||||
|
},
|
||||||
(timeoutSecs ?? 10) * 1000
|
(timeoutSecs ?? 10) * 1000
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
|
@ -38,6 +38,7 @@ class OsmPoiDatabase {
|
||||||
this._client = new Client(connectionString)
|
this._client = new Client(connectionString)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async getCount(
|
async getCount(
|
||||||
layer: string,
|
layer: string,
|
||||||
bbox: [[number, number], [number, number]] = undefined
|
bbox: [[number, number], [number, number]] = undefined
|
||||||
|
|
|
@ -91,6 +91,12 @@ export class Server {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await handler.handle(path, url.searchParams)
|
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") {
|
if (typeof result !== "string") {
|
||||||
console.error(
|
console.error(
|
||||||
"Internal server error: handling",
|
"Internal server error: handling",
|
||||||
|
@ -103,7 +109,7 @@ export class Server {
|
||||||
}
|
}
|
||||||
const extraHeaders = handler.addHeaders ?? {}
|
const extraHeaders = handler.addHeaders ?? {}
|
||||||
res.writeHead(200, { "Content-Type": handler.mimetype, ...extraHeaders })
|
res.writeHead(200, { "Content-Type": handler.mimetype, ...extraHeaders })
|
||||||
res.write(result)
|
res.write(""+result)
|
||||||
res.end()
|
res.end()
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Could not handle request:", e)
|
console.error("Could not handle request:", e)
|
||||||
|
|
|
@ -4,26 +4,30 @@ import parse from "node-html-parser"
|
||||||
import ScriptUtils from "./ScriptUtils"
|
import ScriptUtils from "./ScriptUtils"
|
||||||
|
|
||||||
class ServerLdScrape extends Script {
|
class ServerLdScrape extends Script {
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super("Starts a server which fetches a webpage and returns embedded LD+JSON")
|
super("Starts a server which fetches a webpage and returns embedded LD+JSON")
|
||||||
}
|
}
|
||||||
|
|
||||||
private static async attemptDownload(url: string) {
|
private static async attemptDownload(url: string) {
|
||||||
const host = new URL(url).host
|
const host = new URL(url).host
|
||||||
|
const random = Math.floor(Math.random()*100)
|
||||||
|
const random1 = Math.floor(Math.random()*100)
|
||||||
|
|
||||||
const headers = [
|
const headers = [
|
||||||
{
|
{
|
||||||
"User-Agent":
|
"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"
|
"accept": "application/html"
|
||||||
},
|
}
|
||||||
{
|
/* {
|
||||||
"User-Agent": "MapComplete/openstreetmap scraper; pietervdvn@posteo.net; https://github.com/pietervdvn/MapComplete",
|
"User-Agent": "MapComplete/openstreetmap scraper; pietervdvn@posteo.net; https://github.com/pietervdvn/MapComplete",
|
||||||
"accept": "application/html"
|
"accept": "application/html"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Host: host,
|
Host: host,
|
||||||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; rv:122.0) Gecko/20100101 Firefox/122.0",
|
"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-Language": "en-US,en;q=0.5",
|
||||||
"Accept-Encoding": "gzip, deflate, br",
|
"Accept-Encoding": "gzip, deflate, br",
|
||||||
"Alt-Used": host,
|
"Alt-Used": host,
|
||||||
|
@ -36,7 +40,7 @@ class ServerLdScrape extends Script {
|
||||||
"Sec-Fetch-User":"?1",
|
"Sec-Fetch-User":"?1",
|
||||||
"TE": "trailers",
|
"TE": "trailers",
|
||||||
Connection: "keep-alive"
|
Connection: "keep-alive"
|
||||||
}
|
}*/
|
||||||
]
|
]
|
||||||
for (let i = 0; i < headers.length; i++) {
|
for (let i = 0; i < headers.length; i++) {
|
||||||
try {
|
try {
|
||||||
|
@ -47,7 +51,7 @@ class ServerLdScrape extends Script {
|
||||||
10
|
10
|
||||||
)
|
)
|
||||||
} catch (e) {
|
} 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)
|
console.log("URL", url)
|
||||||
if (cache[url] !== undefined) {
|
if (cache[url] !== undefined) {
|
||||||
const { date, contents } = cache[url]
|
const { date, contents } = cache[url]
|
||||||
console.log(">>>", date, contents)
|
|
||||||
// In seconds
|
// In seconds
|
||||||
const tdiff = (new Date().getTime() - (date?.getTime() ?? 0)) / 1000
|
const tdiff = (new Date().getTime() - (date?.getTime() ?? 0)) / 1000
|
||||||
if (tdiff < 24 * 60 * 60) {
|
if (tdiff < 31 * 24 * 60 * 60) {
|
||||||
return JSON.stringify(contents)
|
return JSON.stringify(contents)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,6 +86,9 @@ class ServerLdScrape extends Script {
|
||||||
if (dloaded === "timeout") {
|
if (dloaded === "timeout") {
|
||||||
return "{\"#\":\"timout reached\"}"
|
return "{\"#\":\"timout reached\"}"
|
||||||
}
|
}
|
||||||
|
if(dloaded === undefined){
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
} while (dloaded["redirect"])
|
} while (dloaded["redirect"])
|
||||||
|
|
||||||
if (dloaded["content"].startsWith("{")) {
|
if (dloaded["content"].startsWith("{")) {
|
||||||
|
|
|
@ -2,10 +2,15 @@ import { ImmutableStore, Store, UIEventSource } from "../UIEventSource"
|
||||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig"
|
||||||
import { LocalStorageSource } from "../Web/LocalStorageSource"
|
import { LocalStorageSource } from "../Web/LocalStorageSource"
|
||||||
import { QueryParameters } from "../Web/QueryParameters"
|
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.
|
* This actor is responsible to set the map location.
|
||||||
* It will attempt to
|
* 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 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 position remembered in LocalStorage (if available)
|
||||||
* - Set the map to the layout default
|
* - Set the map to the layout default
|
||||||
|
@ -16,6 +21,7 @@ export default class InitialMapPositioning {
|
||||||
public zoom: UIEventSource<number>
|
public zoom: UIEventSource<number>
|
||||||
public location: UIEventSource<{ lon: number; lat: number }>
|
public location: UIEventSource<{ lon: number; lat: number }>
|
||||||
public useTerrain: Store<boolean>
|
public useTerrain: Store<boolean>
|
||||||
|
|
||||||
constructor(layoutToUse: LayoutConfig) {
|
constructor(layoutToUse: LayoutConfig) {
|
||||||
function localStorageSynced(
|
function localStorageSynced(
|
||||||
key: string,
|
key: string,
|
||||||
|
@ -38,6 +44,8 @@ export default class InitialMapPositioning {
|
||||||
return src
|
return src
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const initialHash = Hash.hash.data
|
||||||
|
|
||||||
// -- Location control initialization
|
// -- Location control initialization
|
||||||
this.zoom = localStorageSynced(
|
this.zoom = localStorageSynced(
|
||||||
"z",
|
"z",
|
||||||
|
@ -62,5 +70,19 @@ export default class InitialMapPositioning {
|
||||||
lon.setData(loc.lon)
|
lon.setData(loc.lon)
|
||||||
})
|
})
|
||||||
this.useTerrain = new ImmutableStore<boolean>(layoutToUse.enableTerrain)
|
this.useTerrain = new ImmutableStore<boolean>(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 })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,9 @@ export abstract class OsmObject {
|
||||||
return result
|
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 centerpoint(): [number, number]
|
||||||
|
|
||||||
public abstract asGeoJson(): any
|
public abstract asGeoJson(): any
|
||||||
|
|
|
@ -62,7 +62,7 @@ export default class OsmObjectDownloader {
|
||||||
if (idN < 0) {
|
if (idN < 0) {
|
||||||
obj = this.constructObject(<"node" | "way" | "relation">type, idN)
|
obj = this.constructObject(<"node" | "way" | "relation">type, idN)
|
||||||
} else {
|
} else {
|
||||||
obj = await this.RawDownloadObjectAsync(type, idN, maxCacheAgeInSecs)
|
obj = await OsmObjectDownloader.RawDownloadObjectAsync(type, idN, this.backend, maxCacheAgeInSecs)
|
||||||
}
|
}
|
||||||
if (obj === "deleted") {
|
if (obj === "deleted") {
|
||||||
return obj
|
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,
|
type: string,
|
||||||
idN: number,
|
idN: number,
|
||||||
|
backend: string,
|
||||||
maxCacheAgeInSecs?: number
|
maxCacheAgeInSecs?: number
|
||||||
): Promise<OsmObject | "deleted"> {
|
): Promise<OsmObject | "deleted"> {
|
||||||
const full = type !== "node" ? "/full" : ""
|
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(
|
const rawData = await Utils.downloadJsonCachedAdvanced(
|
||||||
url,
|
url,
|
||||||
(maxCacheAgeInSecs ?? 10) * 1000
|
(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)
|
// 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)
|
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) {
|
for (const osmObject of parsed) {
|
||||||
if (osmObject.type !== type) {
|
if (osmObject.type !== type) {
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -435,7 +435,7 @@ export default class SimpleMetaTaggers {
|
||||||
() => feature.properties["_country"]
|
() => feature.properties["_country"]
|
||||||
)
|
)
|
||||||
let canonical =
|
let canonical =
|
||||||
denomination?.canonicalValue(value, defaultDenom == denomination) ??
|
denomination?.canonicalValue(value, defaultDenom == denomination, unit.inverted) ??
|
||||||
undefined
|
undefined
|
||||||
if (canonical === value) {
|
if (canonical === value) {
|
||||||
break
|
break
|
||||||
|
|
|
@ -331,6 +331,9 @@ export default class LinkedDataLoader {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
output[key] = output[key].map((v) => applyF(v))
|
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) {
|
function asBoolean(key: string, invert: boolean = false) {
|
||||||
|
@ -379,6 +382,7 @@ export default class LinkedDataLoader {
|
||||||
}
|
}
|
||||||
return "€" + Number(p)
|
return "€" + Number(p)
|
||||||
})
|
})
|
||||||
|
|
||||||
if (output["charge"] && output["timeUnit"]) {
|
if (output["charge"] && output["timeUnit"]) {
|
||||||
const duration =
|
const duration =
|
||||||
Number(output["chargeEnd"] ?? "1") - Number(output["chargeStart"] ?? "0")
|
Number(output["chargeEnd"] ?? "1") - Number(output["chargeStart"] ?? "0")
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { Translation, TypedTranslation } from "../UI/i18n/Translation"
|
import { Translation, TypedTranslation } from "../UI/i18n/Translation"
|
||||||
import { DenominationConfigJson } from "./ThemeConfig/Json/UnitConfigJson"
|
import { DenominationConfigJson } from "./ThemeConfig/Json/UnitConfigJson"
|
||||||
import Translations from "../UI/i18n/Translations"
|
import Translations from "../UI/i18n/Translations"
|
||||||
|
import { Validator } from "../UI/InputElement/Validator"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A 'denomination' is one way to write a certain quantity.
|
* A 'denomination' is one way to write a certain quantity.
|
||||||
|
@ -15,6 +16,7 @@ export class Denomination {
|
||||||
public readonly alternativeDenominations: string[]
|
public readonly alternativeDenominations: string[]
|
||||||
public readonly human: TypedTranslation<{ quantity: string }>
|
public readonly human: TypedTranslation<{ quantity: string }>
|
||||||
public readonly humanSingular?: Translation
|
public readonly humanSingular?: Translation
|
||||||
|
private readonly _validator: Validator
|
||||||
|
|
||||||
private constructor(
|
private constructor(
|
||||||
canonical: string,
|
canonical: string,
|
||||||
|
@ -24,7 +26,8 @@ export class Denomination {
|
||||||
addSpace: boolean,
|
addSpace: boolean,
|
||||||
alternativeDenominations: string[],
|
alternativeDenominations: string[],
|
||||||
_human: TypedTranslation<{ quantity: string }>,
|
_human: TypedTranslation<{ quantity: string }>,
|
||||||
_humanSingular?: Translation
|
_humanSingular: Translation,
|
||||||
|
validator: Validator
|
||||||
) {
|
) {
|
||||||
this.canonical = canonical
|
this.canonical = canonical
|
||||||
this._canonicalSingular = _canonicalSingular
|
this._canonicalSingular = _canonicalSingular
|
||||||
|
@ -34,9 +37,10 @@ export class Denomination {
|
||||||
this.alternativeDenominations = alternativeDenominations
|
this.alternativeDenominations = alternativeDenominations
|
||||||
this.human = _human
|
this.human = _human
|
||||||
this.humanSingular = _humanSingular
|
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})`
|
context = `${context}.unit(${json.canonicalDenomination})`
|
||||||
const canonical = json.canonicalDenomination.trim()
|
const canonical = json.canonicalDenomination.trim()
|
||||||
if (canonical === undefined) {
|
if (canonical === undefined) {
|
||||||
|
@ -68,7 +72,8 @@ export class Denomination {
|
||||||
json.addSpace ?? false,
|
json.addSpace ?? false,
|
||||||
json.alternativeDenomination?.map((v) => v.trim()) ?? [],
|
json.alternativeDenomination?.map((v) => v.trim()) ?? [],
|
||||||
humanTexts,
|
humanTexts,
|
||||||
Translations.T(json.humanSingular, context + "humanSingular")
|
Translations.T(json.humanSingular, context + "humanSingular"),
|
||||||
|
validator
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +86,8 @@ export class Denomination {
|
||||||
this.addSpace,
|
this.addSpace,
|
||||||
this.alternativeDenominations,
|
this.alternativeDenominations,
|
||||||
this.human,
|
this.human,
|
||||||
this.humanSingular
|
this.humanSingular,
|
||||||
|
this._validator
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +100,8 @@ export class Denomination {
|
||||||
this.addSpace,
|
this.addSpace,
|
||||||
[this.canonical, ...this.alternativeDenominations],
|
[this.canonical, ...this.alternativeDenominations],
|
||||||
this.human,
|
this.human,
|
||||||
this.humanSingular
|
this.humanSingular,
|
||||||
|
this._validator
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,19 +110,21 @@ export class Denomination {
|
||||||
* @param value the value from OSM
|
* @param value the value from OSM
|
||||||
* @param actAsDefault if set and the value can be parsed as number, will be parsed and trimmed
|
* @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({
|
* const unit = Denomination.fromJson({
|
||||||
* canonicalDenomination: "m",
|
* canonicalDenomination: "m",
|
||||||
* alternativeDenomination: ["meter"],
|
* alternativeDenomination: ["meter"],
|
||||||
* human: {
|
* human: {
|
||||||
* en: "{quantity} meter"
|
* en: "{quantity} meter"
|
||||||
* }
|
* }
|
||||||
* }, "test")
|
* }, Validators.get("float"), "test")
|
||||||
* unit.canonicalValue("42m", true) // =>"42 m"
|
* unit.canonicalValue("42m", true, false) // =>"42 m"
|
||||||
* unit.canonicalValue("42", true) // =>"42 m"
|
* unit.canonicalValue("42", true, false) // =>"42 m"
|
||||||
* unit.canonicalValue("42 m", true) // =>"42 m"
|
* unit.canonicalValue("42 m", true, false) // =>"42 m"
|
||||||
* unit.canonicalValue("42 meter", true) // =>"42 m"
|
* unit.canonicalValue("42 meter", true, false) // =>"42 m"
|
||||||
* unit.canonicalValue("42m", true) // =>"42 m"
|
* unit.canonicalValue("42m", true, false) // =>"42 m"
|
||||||
* unit.canonicalValue("42", true) // =>"42 m"
|
* unit.canonicalValue("42", true, false) // =>"42 m"
|
||||||
*
|
*
|
||||||
* // Should be trimmed if canonical is empty
|
* // Should be trimmed if canonical is empty
|
||||||
* const unit = Denomination.fromJson({
|
* const unit = Denomination.fromJson({
|
||||||
|
@ -124,22 +133,26 @@ export class Denomination {
|
||||||
* human: {
|
* human: {
|
||||||
* en: "{quantity} meter"
|
* en: "{quantity} meter"
|
||||||
* }
|
* }
|
||||||
* }, "test")
|
* }, Validators.get("float"), "test")
|
||||||
* unit.canonicalValue("42m", true) // =>"42"
|
* unit.canonicalValue("42m", true, false) // =>"42"
|
||||||
* unit.canonicalValue("42", true) // =>"42"
|
* unit.canonicalValue("42", true, false) // =>"42"
|
||||||
* unit.canonicalValue("42 m", true) // =>"42"
|
* unit.canonicalValue("42 m", true, false) // =>"42"
|
||||||
* unit.canonicalValue("42 meter", true) // =>"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) {
|
if (value === undefined) {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
const stripped = this.StrippedValue(value, actAsDefault)
|
const stripped = this.StrippedValue(value, actAsDefault, inverted)
|
||||||
if (stripped === null) {
|
if (stripped === null) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
if(inverted){
|
||||||
|
return (stripped + "/" + this.canonical).trim()
|
||||||
|
|
||||||
|
}
|
||||||
if (stripped === "1" && this._canonicalSingular !== undefined) {
|
if (stripped === "1" && this._canonicalSingular !== undefined) {
|
||||||
return ("1 " + this._canonicalSingular).trim()
|
return ("1 " + this._canonicalSingular).trim()
|
||||||
}
|
}
|
||||||
|
@ -153,8 +166,8 @@ export class Denomination {
|
||||||
*
|
*
|
||||||
* Returns null if it doesn't match this unit
|
* Returns null if it doesn't match this unit
|
||||||
*/
|
*/
|
||||||
public StrippedValue(value: string, actAsDefault: boolean): string {
|
public StrippedValue(value: string, actAsDefault: boolean, inverted: boolean): string {
|
||||||
if (value === undefined) {
|
if (value === undefined || value === "") {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,10 +184,16 @@ export class Denomination {
|
||||||
|
|
||||||
function substr(key) {
|
function substr(key) {
|
||||||
if (self.prefix) {
|
if (self.prefix) {
|
||||||
return value.substr(key.length).trim()
|
return value.substring(key.length).trim()
|
||||||
} else {
|
|
||||||
return value.substring(0, value.length - 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())) {
|
if (this.canonical !== "" && startsWith(this.canonical.toLowerCase())) {
|
||||||
|
@ -199,11 +218,13 @@ export class Denomination {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const parsed = Number(value.trim())
|
if(!this._validator.isValid(value.trim())){
|
||||||
if (!isNaN(parsed)) {
|
|
||||||
return value.trim()
|
|
||||||
}
|
|
||||||
|
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
return this._validator.reformat(value.trim())
|
||||||
|
}
|
||||||
|
|
||||||
|
withValidator(validator: Validator) {
|
||||||
|
return new Denomination(this.canonical, this._canonicalSingular, this.useIfNoUnitGiven, this.prefix, this.addSpace, this.alternativeDenominations, this.human, this.humanSingular, validator)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -519,6 +519,7 @@ export interface LayerConfigJson {
|
||||||
/**
|
/**
|
||||||
* Either a list with [{"key": "unitname", "key2": {"quantity": "unitname", "denominations": ["denom", "denom"]}}]
|
* 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
|
* @see UnitConfigJson
|
||||||
*
|
*
|
||||||
|
@ -526,7 +527,7 @@ export interface LayerConfigJson {
|
||||||
*/
|
*/
|
||||||
units?: (
|
units?: (
|
||||||
| UnitConfigJson
|
| UnitConfigJson
|
||||||
| Record<string, string | { quantity: string; denominations: string[]; canonical?: string }>
|
| Record<string, string | { quantity: string; denominations: string[]; canonical?: string, inverted?: boolean }>
|
||||||
)[]
|
)[]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -229,6 +229,7 @@ export interface QuestionableTagRenderingConfigJson extends TagRenderingConfigJs
|
||||||
* A (translated) text that is shown (as gray text) within the textfield
|
* A (translated) text that is shown (as gray text) within the textfield
|
||||||
* type: translation
|
* type: translation
|
||||||
* group: expert
|
* group: expert
|
||||||
|
* ifunset: No specific placeholder is set, show the type of the textfield
|
||||||
*/
|
*/
|
||||||
placeholder?: Translatable
|
placeholder?: Translatable
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ export interface TagRenderingConfigJson {
|
||||||
*
|
*
|
||||||
* question: When should this item be shown?
|
* question: When should this item be shown?
|
||||||
* type: tag
|
* 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`.
|
* 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)?
|
/** question: When should this item be shown (including special conditions)?
|
||||||
* type: tag
|
* type: tag
|
||||||
|
* ifunset: No specific metacondition set which is evaluated against the <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown
|
||||||
*
|
*
|
||||||
* If set, this tag will be evaluated agains the _usersettings/application state_ table.
|
* If set, this tag will be evaluated against the _usersettings/application state_ table.
|
||||||
* Enable 'show debug info' in user settings to see available options.
|
* 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_
|
* Note that values with an underscore depicts _application state_ (including metainfo about the user) whereas values without an underscore depict _user settings_
|
||||||
*/
|
*/
|
||||||
metacondition?: TagConfigJson
|
metacondition?: TagConfigJson
|
||||||
|
|
|
@ -97,18 +97,6 @@ export default class LayerConfig extends WithContextLoader {
|
||||||
|
|
||||||
this.allowSplit = json.allowSplit ?? false
|
this.allowSplit = json.allowSplit ?? false
|
||||||
this.name = Translations.T(json.name, translationContext + ".name")
|
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 (json.description !== undefined) {
|
||||||
if (Object.keys(json.description).length === 0) {
|
if (Object.keys(json.description).length === 0) {
|
||||||
|
@ -280,6 +268,18 @@ export default class LayerConfig extends WithContextLoader {
|
||||||
this.id + ".tagRenderings[" + i + "]"
|
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 (
|
if (
|
||||||
json.filter !== undefined &&
|
json.filter !== undefined &&
|
||||||
|
|
|
@ -2,6 +2,10 @@ import BaseUIElement from "../UI/BaseUIElement"
|
||||||
import { Denomination } from "./Denomination"
|
import { Denomination } from "./Denomination"
|
||||||
import UnitConfigJson from "./ThemeConfig/Json/UnitConfigJson"
|
import UnitConfigJson from "./ThemeConfig/Json/UnitConfigJson"
|
||||||
import unit from "../../assets/layers/unit/unit.json"
|
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 {
|
export class Unit {
|
||||||
private static allUnits = this.initUnits()
|
private static allUnits = this.initUnits()
|
||||||
|
@ -10,14 +14,20 @@ export class Unit {
|
||||||
public readonly denominationsSorted: Denomination[]
|
public readonly denominationsSorted: Denomination[]
|
||||||
public readonly eraseInvalid: boolean
|
public readonly eraseInvalid: boolean
|
||||||
public readonly quantity: string
|
public readonly quantity: string
|
||||||
|
private readonly _validator: Validator
|
||||||
|
public readonly inverted: boolean
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
quantity: string,
|
quantity: string,
|
||||||
appliesToKeys: string[],
|
appliesToKeys: string[],
|
||||||
applicableDenominations: Denomination[],
|
applicableDenominations: Denomination[],
|
||||||
eraseInvalid: boolean
|
eraseInvalid: boolean,
|
||||||
|
validator: Validator,
|
||||||
|
inverted: boolean = false
|
||||||
) {
|
) {
|
||||||
this.quantity = quantity
|
this.quantity = quantity
|
||||||
|
this._validator = validator
|
||||||
|
this.inverted = inverted
|
||||||
this.appliesToKeys = new Set(appliesToKeys)
|
this.appliesToKeys = new Set(appliesToKeys)
|
||||||
this.denominations = applicableDenominations
|
this.denominations = applicableDenominations
|
||||||
this.eraseInvalid = eraseInvalid
|
this.eraseInvalid = eraseInvalid
|
||||||
|
@ -66,13 +76,47 @@ export class Unit {
|
||||||
static fromJson(
|
static fromJson(
|
||||||
json:
|
json:
|
||||||
| UnitConfigJson
|
| UnitConfigJson
|
||||||
| Record<string, string | { quantity: string; denominations: string[] }>,
|
| Record<string, string | { quantity: string; denominations: string[], inverted?: boolean }>,
|
||||||
|
tagRenderings: TagRenderingConfig[],
|
||||||
ctx: string
|
ctx: string
|
||||||
): Unit[] {
|
): Unit[] {
|
||||||
if (!json.appliesToKey && !json.quantity) {
|
|
||||||
return this.loadFromLibrary(<any>json, ctx)
|
let types: Record<string, ValidatorType> = {}
|
||||||
|
for (const tagRendering of tagRenderings) {
|
||||||
|
if (tagRendering.freeform?.type) {
|
||||||
|
types[tagRendering.freeform.key] = tagRendering.freeform.type
|
||||||
}
|
}
|
||||||
return [this.parse(<UnitConfigJson>json, ctx)]
|
}
|
||||||
|
|
||||||
|
if (!json.appliesToKey && !json.quantity) {
|
||||||
|
return this.loadFromLibrary(<any>json, types, ctx)
|
||||||
|
}
|
||||||
|
return this.parse(<UnitConfigJson>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")
|
* }, "test")
|
||||||
*/
|
*/
|
||||||
private static parse(json: UnitConfigJson, ctx: string): Unit {
|
private static parse(json: UnitConfigJson, types: Record<string, ValidatorType>, ctx: string): Unit[] {
|
||||||
const appliesTo = json.appliesToKey
|
const appliesTo = json.appliesToKey
|
||||||
for (let i = 0; i < (appliesTo ?? []).length; i++) {
|
for (let i = 0; i < (appliesTo ?? []).length; i++) {
|
||||||
let key = appliesTo[i]
|
let key = appliesTo[i]
|
||||||
|
@ -127,32 +171,22 @@ export class Unit {
|
||||||
}
|
}
|
||||||
// Some keys do have unit handling
|
// Some keys do have unit handling
|
||||||
|
|
||||||
const applicable = json.applicableUnits.map((u, i) =>
|
|
||||||
Denomination.fromJson(u, `${ctx}.units[${i}]`)
|
|
||||||
)
|
|
||||||
|
|
||||||
if (
|
const units: Unit[] = []
|
||||||
json.defaultInput &&
|
if (appliesTo === undefined) {
|
||||||
!applicable.some((denom) => denom.canonical.trim() === json.defaultInput)
|
units.push(this.parseDenomination(json, Validators.get("float"), undefined, ctx))
|
||||||
) {
|
|
||||||
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(
|
for (const key of appliesTo ?? []) {
|
||||||
json.quantity ?? "",
|
const validator = Validators.get(types[key] ?? "float")
|
||||||
appliesTo,
|
units.push(this.parseDenomination(json, validator, undefined, ctx))
|
||||||
applicable,
|
}
|
||||||
json.eraseInvalidValues ?? false
|
return units
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static initUnits(): Map<string, Unit> {
|
private static initUnits(): Map<string, Unit> {
|
||||||
const m = new Map<string, Unit>()
|
const m = new Map<string, Unit>()
|
||||||
const units = (<UnitConfigJson[]>unit.units).map((json, i) =>
|
const units = (<UnitConfigJson[]>unit.units).flatMap((json, i) =>
|
||||||
this.parse(json, "unit.json.units." + i)
|
this.parse(json, {}, "unit.json.units." + i)
|
||||||
)
|
)
|
||||||
|
|
||||||
for (const unit of units) {
|
for (const unit of units) {
|
||||||
|
@ -179,17 +213,19 @@ export class Unit {
|
||||||
private static loadFromLibrary(
|
private static loadFromLibrary(
|
||||||
spec: Record<
|
spec: Record<
|
||||||
string,
|
string,
|
||||||
string | { quantity: string; denominations: string[]; canonical?: string }
|
string | { quantity: string; denominations: string[]; canonical?: string, inverted?: boolean }
|
||||||
>,
|
>,
|
||||||
|
types: Record<string, ValidatorType>,
|
||||||
ctx: string
|
ctx: string
|
||||||
): Unit[] {
|
): Unit[] {
|
||||||
const units: Unit[] = []
|
const units: Unit[] = []
|
||||||
for (const key in spec) {
|
for (const key in spec) {
|
||||||
const toLoad = spec[key]
|
const toLoad = spec[key]
|
||||||
|
const validator = Validators.get(types[key] ?? "float")
|
||||||
if (typeof toLoad === "string") {
|
if (typeof toLoad === "string") {
|
||||||
const loaded = this.getFromLibrary(toLoad, ctx)
|
const loaded = this.getFromLibrary(toLoad, ctx)
|
||||||
units.push(
|
units.push(
|
||||||
new Unit(loaded.quantity, [key], loaded.denominations, loaded.eraseInvalid)
|
new Unit(loaded.quantity, [key], loaded.denominations, loaded.eraseInvalid, validator, toLoad["inverted"])
|
||||||
)
|
)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -213,12 +249,13 @@ export class Unit {
|
||||||
const denoms = toLoad.denominations
|
const denoms = toLoad.denominations
|
||||||
.map((d) => d.toLowerCase())
|
.map((d) => d.toLowerCase())
|
||||||
.map((d) => fetchDenom(d))
|
.map((d) => fetchDenom(d))
|
||||||
|
.map(d => d.withValidator(validator))
|
||||||
|
|
||||||
if (toLoad.canonical) {
|
if (toLoad.canonical) {
|
||||||
const canonical = fetchDenom(toLoad.canonical)
|
const canonical = fetchDenom(toLoad.canonical).withValidator(validator)
|
||||||
denoms.unshift(canonical.withBlankCanonical())
|
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
|
return units
|
||||||
}
|
}
|
||||||
|
@ -240,7 +277,7 @@ export class Unit {
|
||||||
}
|
}
|
||||||
const defaultDenom = this.getDefaultDenomination(country)
|
const defaultDenom = this.getDefaultDenomination(country)
|
||||||
for (const denomination of this.denominationsSorted) {
|
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) {
|
if (bare !== null) {
|
||||||
return [bare, denomination]
|
return [bare, denomination]
|
||||||
}
|
}
|
||||||
|
@ -253,10 +290,13 @@ export class Unit {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
const [stripped, denom] = this.findDenomination(value, country)
|
const [stripped, denom] = this.findDenomination(value, country)
|
||||||
|
const human = denom?.human
|
||||||
|
if(this.inverted ){
|
||||||
|
return human.Subs({quantity: stripped+"/"})
|
||||||
|
}
|
||||||
if (stripped === "1") {
|
if (stripped === "1") {
|
||||||
return denom?.humanSingular ?? stripped
|
return denom?.humanSingular ?? stripped
|
||||||
}
|
}
|
||||||
const human = denom?.human
|
|
||||||
if (human === undefined) {
|
if (human === undefined) {
|
||||||
return stripped ?? value
|
return stripped ?? value
|
||||||
}
|
}
|
||||||
|
@ -266,6 +306,10 @@ export class Unit {
|
||||||
|
|
||||||
public toOsm(value: string, denomination: string) {
|
public toOsm(value: string, denomination: string) {
|
||||||
const denom = this.denominations.find((d) => d.canonical === denomination)
|
const denom = this.denominations.find((d) => d.canonical === denomination)
|
||||||
|
if(this.inverted){
|
||||||
|
return value+"/"+denom._canonicalSingular
|
||||||
|
}
|
||||||
|
|
||||||
const space = denom.addSpace ? " " : ""
|
const space = denom.addSpace ? " " : ""
|
||||||
if (denom.prefix) {
|
if (denom.prefix) {
|
||||||
return denom.canonical + space + value
|
return denom.canonical + space + value
|
||||||
|
@ -273,7 +317,7 @@ export class Unit {
|
||||||
return value + space + denom.canonical
|
return value + space + denom.canonical
|
||||||
}
|
}
|
||||||
|
|
||||||
public getDefaultDenomination(country: () => string) {
|
public getDefaultDenomination(country: () => string): Denomination {
|
||||||
for (const denomination of this.denominations) {
|
for (const denomination of this.denominations) {
|
||||||
if (denomination.useIfNoUnitGiven === true) {
|
if (denomination.useIfNoUnitGiven === true) {
|
||||||
return denomination
|
return denomination
|
||||||
|
|
55
src/UI/BigComponents/ExtraLinkButton.svelte
Normal file
55
src/UI/BigComponents/ExtraLinkButton.svelte
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
<script lang="ts">
|
||||||
|
import ExtraLinkConfig from "../../Models/ThemeConfig/ExtraLinkConfig"
|
||||||
|
import Locale from "../i18n/Locale"
|
||||||
|
import { Utils } from "../../Utils"
|
||||||
|
import Translations from "../i18n/Translations"
|
||||||
|
import type { SpecialVisualizationState } from "../SpecialVisualization"
|
||||||
|
import Pop_out from "../../assets/svg/Pop_out.svelte"
|
||||||
|
import Tr from "../Base/Tr.svelte"
|
||||||
|
import Icon from "../Map/Icon.svelte"
|
||||||
|
|
||||||
|
|
||||||
|
export let state: SpecialVisualizationState
|
||||||
|
let theme = state.layout?.id ?? ""
|
||||||
|
let config: ExtraLinkConfig = state.layout.extraLink
|
||||||
|
const isIframe = window !== window.top
|
||||||
|
let basepath = window.location.host
|
||||||
|
let showWelcomeMessageSwitch = state.featureSwitches.featureSwitchWelcomeMessage
|
||||||
|
|
||||||
|
const t = Translations.t.general
|
||||||
|
const href = state.mapProperties.location.map(
|
||||||
|
(loc) => {
|
||||||
|
const subs = {
|
||||||
|
...loc,
|
||||||
|
theme: theme,
|
||||||
|
basepath,
|
||||||
|
language: Locale.language.data
|
||||||
|
}
|
||||||
|
return Utils.SubstituteKeys(config.href, subs)
|
||||||
|
},
|
||||||
|
[state.mapProperties.zoom]
|
||||||
|
)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
{#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)}
|
||||||
|
<div class="links-as-button">
|
||||||
|
|
||||||
|
<a href={$href} target={config.newTab ? "_blank" : ""} rel="noopener"
|
||||||
|
class="flex pointer-events-auto rounded-full border-black">
|
||||||
|
|
||||||
|
<Icon icon={config.icon} clss="w-6 h-6 m-2"/>
|
||||||
|
|
||||||
|
{#if config.text}
|
||||||
|
<Tr t={config.text} />
|
||||||
|
{:else}
|
||||||
|
<Tr t={t.screenToSmall.Subs({theme: state.layout.title})} />
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{/if}
|
|
@ -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<boolean> }
|
|
||||||
mapProperties: {
|
|
||||||
location: Store<{ lon: number; lat: number }>
|
|
||||||
zoom: Store<number>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -91,11 +91,6 @@
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unit !== undefined && isNaN(Number(v))) {
|
|
||||||
value.setData(undefined)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
feedback?.setData(undefined)
|
feedback?.setData(undefined)
|
||||||
if (selectedUnit.data) {
|
if (selectedUnit.data) {
|
||||||
value.setData(unit.toOsm(v, selectedUnit.data))
|
value.setData(unit.toOsm(v, selectedUnit.data))
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
import { LinkIcon } from "@babeard/svelte-heroicons/mini"
|
import { LinkIcon } from "@babeard/svelte-heroicons/mini"
|
||||||
import Square_rounded from "../../assets/svg/Square_rounded.svelte"
|
import Square_rounded from "../../assets/svg/Square_rounded.svelte"
|
||||||
import Bug from "../../assets/svg/Bug.svelte"
|
import Bug from "../../assets/svg/Bug.svelte"
|
||||||
|
import Pop_out from "../../assets/svg/Pop_out.svelte"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders a single icon.
|
* Renders a single icon.
|
||||||
|
@ -123,6 +124,9 @@
|
||||||
<AddSmall {color} class={clss} />
|
<AddSmall {color} class={clss} />
|
||||||
{:else if icon === "link"}
|
{:else if icon === "link"}
|
||||||
<LinkIcon style="--svg-color: {color}" class={twMerge(clss, "apply-fill")} />
|
<LinkIcon style="--svg-color: {color}" class={twMerge(clss, "apply-fill")} />
|
||||||
|
{:else if icon === "popout"}
|
||||||
|
<LinkIcon style="--svg-color: {color}" />
|
||||||
|
|
||||||
{:else}
|
{:else}
|
||||||
<img class={clss ?? "h-full w-full"} src={icon} aria-hidden="true" alt="" />
|
<img class={clss ?? "h-full w-full"} src={icon} aria-hidden="true" alt="" />
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -188,7 +188,7 @@ export default abstract class ImportFlow<ArgT extends ImportFlowArguments> {
|
||||||
return { error: new Translation({ "*": e }) }
|
return { error: new Translation({ "*": e }) }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state.mapProperties.zoom.data < 18) {
|
if (state.mapProperties.zoom.data < 16) {
|
||||||
return { error: t.zoomInMore }
|
return { error: t.zoomInMore }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
console.log("Applying questions to ask")
|
console.log("Applying questions to ask")
|
||||||
const qta = questionsToAsk.data
|
const qta = questionsToAsk.data
|
||||||
firstQuestion.setData(undefined)
|
firstQuestion.setData(undefined)
|
||||||
allQuestionsToAsk.setData([])
|
//allQuestionsToAsk.setData([])
|
||||||
await Utils.awaitAnimationFrame()
|
await Utils.awaitAnimationFrame()
|
||||||
firstQuestion.setData(qta[0])
|
firstQuestion.setData(qta[0])
|
||||||
allQuestionsToAsk.setData(qta)
|
allQuestionsToAsk.setData(qta)
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
|
|
||||||
export let config: TagRenderingConfig
|
export let config: TagRenderingConfig
|
||||||
export let tags: UIEventSource<Record<string, string>>
|
export let tags: UIEventSource<Record<string, string>>
|
||||||
|
|
||||||
export let selectedElement: Feature
|
export let selectedElement: Feature
|
||||||
export let state: SpecialVisualizationState
|
export let state: SpecialVisualizationState
|
||||||
export let layer: LayerConfig | undefined
|
export let layer: LayerConfig | undefined
|
||||||
|
@ -71,6 +72,8 @@
|
||||||
/**
|
/**
|
||||||
* Prepares and fills the checkedMappings
|
* Prepares and fills the checkedMappings
|
||||||
*/
|
*/
|
||||||
|
console.log("Initing ", config.id)
|
||||||
|
|
||||||
function initialize(tgs: Record<string, string>, confg: TagRenderingConfig): void {
|
function initialize(tgs: Record<string, string>, confg: TagRenderingConfig): void {
|
||||||
mappings = confg.mappings?.filter((m) => {
|
mappings = confg.mappings?.filter((m) => {
|
||||||
if (typeof m.hideInAnswer === "boolean") {
|
if (typeof m.hideInAnswer === "boolean") {
|
||||||
|
@ -139,11 +142,33 @@
|
||||||
feedback.setData(undefined)
|
feedback.setData(undefined)
|
||||||
}
|
}
|
||||||
|
|
||||||
$: {
|
let usedKeys: string[] = config.usedTags().flatMap((t) => t.usedKeys())
|
||||||
// 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
|
* The 'minimalTags' is a subset of the tags of the feature, only containing the values relevant for this object.
|
||||||
initialize($tags, config)
|
* The main goal is to be stable and only 'ping' when an actual change is relevant
|
||||||
|
*/
|
||||||
|
let minimalTags = new UIEventSource<Record<string, string>>(undefined)
|
||||||
|
tags.addCallbackAndRunD((tags) => {
|
||||||
|
const previousMinimal = minimalTags.data
|
||||||
|
const newMinimal: Record<string, string> = {}
|
||||||
|
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(
|
onDestroy(
|
||||||
freeformInput.subscribe((freeformValue) => {
|
freeformInput.subscribe((freeformValue) => {
|
||||||
if (!mappings || mappings?.length == 0 || config.freeform?.key === undefined) {
|
if (!mappings || mappings?.length == 0 || config.freeform?.key === undefined) {
|
||||||
|
@ -180,6 +205,19 @@
|
||||||
checkedMappings,
|
checkedMappings,
|
||||||
tags.data
|
tags.data
|
||||||
)
|
)
|
||||||
|
if (state.featureSwitches.featureSwitchIsDebugging.data) {
|
||||||
|
console.log(
|
||||||
|
"Constructing change spec from",
|
||||||
|
{
|
||||||
|
freeform: $freeformInput,
|
||||||
|
selectedMapping,
|
||||||
|
checkedMappings,
|
||||||
|
currentTags: tags.data,
|
||||||
|
},
|
||||||
|
" --> ",
|
||||||
|
selectedTags
|
||||||
|
)
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error("Could not calculate changeSpecification:", e)
|
console.error("Could not calculate changeSpecification:", e)
|
||||||
selectedTags = undefined
|
selectedTags = undefined
|
||||||
|
@ -210,7 +248,7 @@
|
||||||
|
|
||||||
if (layer === undefined || (layer?.source === null && layer.id !== "favourite")) {
|
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
|
* We simply apply the tags onto the records
|
||||||
*/
|
*/
|
||||||
const kv = selectedTags.asChange(tags.data)
|
const kv = selectedTags.asChange(tags.data)
|
||||||
|
|
|
@ -64,10 +64,14 @@
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
{#if unit.inverted}
|
||||||
|
<div class="bold px-2">/</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
<select bind:value={$selectedUnit}>
|
<select bind:value={$selectedUnit}>
|
||||||
{#each unit.denominations as denom (denom.canonical)}
|
{#each unit.denominations as denom (denom.canonical)}
|
||||||
<option value={denom.canonical}>
|
<option value={denom.canonical}>
|
||||||
{#if $isSingle}
|
{#if $isSingle || unit.inverted}
|
||||||
<Tr t={denom.humanSingular} />
|
<Tr t={denom.humanSingular} />
|
||||||
{:else}
|
{:else}
|
||||||
<Tr t={denom.human.Subs({ quantity: "" })} />
|
<Tr t={denom.human.Subs({ quantity: "" })} />
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
export let configs: ConfigMeta[]
|
export let configs: ConfigMeta[]
|
||||||
export let title: string | undefined = undefined
|
export let title: string | undefined = undefined
|
||||||
|
|
||||||
export let path: (string | number)[] = []
|
export let path: readonly (string | number)[] = []
|
||||||
|
|
||||||
let expertMode = state.expertMode
|
let expertMode = state.expertMode
|
||||||
let configsNoHidden = configs.filter((schema) => schema.hints?.group !== "hidden")
|
let configsNoHidden = configs.filter((schema) => schema.hints?.group !== "hidden")
|
||||||
|
@ -21,9 +21,9 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if configs === undefined}
|
{#if configs === undefined}
|
||||||
Bug: 'Region' received 'undefined'
|
Bug: 'Region' received 'undefined' at {path.join(".")}
|
||||||
{:else if configs.length === 0}
|
{: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}
|
{:else if title}
|
||||||
<div class="flex w-full flex-col">
|
<div class="flex w-full flex-col">
|
||||||
<h3>{title}</h3>
|
<h3>{title}</h3>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
import type { ConfigMeta } from "./configMeta"
|
import type { ConfigMeta } from "./configMeta"
|
||||||
import type {
|
import type {
|
||||||
MappingConfigJson,
|
MappingConfigJson,
|
||||||
QuestionableTagRenderingConfigJson,
|
QuestionableTagRenderingConfigJson
|
||||||
} from "../../Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"
|
} from "../../Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"
|
||||||
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
|
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
|
||||||
import TagRenderingEditable from "../Popup/TagRendering/TagRenderingEditable.svelte"
|
import TagRenderingEditable from "../Popup/TagRendering/TagRenderingEditable.svelte"
|
||||||
|
@ -59,8 +59,8 @@
|
||||||
labelMapping = {
|
labelMapping = {
|
||||||
if: "value=" + label,
|
if: "value=" + label,
|
||||||
then: {
|
then: {
|
||||||
en: "Builtin collection <b>" + label + "</b>:",
|
en: "Builtin collection <b>" + label + "</b>:"
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
perLabel[label] = labelMapping
|
perLabel[label] = labelMapping
|
||||||
mappingsBuiltin.push(labelMapping)
|
mappingsBuiltin.push(labelMapping)
|
||||||
|
@ -72,14 +72,14 @@
|
||||||
mappingsBuiltin.push({
|
mappingsBuiltin.push({
|
||||||
if: "value=" + tr["id"],
|
if: "value=" + tr["id"],
|
||||||
then: {
|
then: {
|
||||||
en: "Builtin <b>" + tr["id"] + "</b> <div class='subtle'>" + description + "</div>",
|
en: "Builtin <b>" + tr["id"] + "</b> <div class='subtle'>" + description + "</div>"
|
||||||
},
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const configBuiltin = new TagRenderingConfig(<QuestionableTagRenderingConfigJson>{
|
const configBuiltin = new TagRenderingConfig(<QuestionableTagRenderingConfigJson>{
|
||||||
question: "Which builtin element should be shown?",
|
question: "Which builtin element should be shown?",
|
||||||
mappings: mappingsBuiltin,
|
mappings: mappingsBuiltin
|
||||||
})
|
})
|
||||||
|
|
||||||
const tags = new UIEventSource({ value })
|
const tags = new UIEventSource({ value })
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
"condition",
|
"condition",
|
||||||
"metacondition",
|
"metacondition",
|
||||||
"mappings",
|
"mappings",
|
||||||
"icon",
|
"icon"
|
||||||
])
|
])
|
||||||
const ignored = new Set(["labels", "description", "classes"])
|
const ignored = new Set(["labels", "description", "classes"])
|
||||||
|
|
||||||
|
@ -196,7 +196,10 @@
|
||||||
<h3>Text field and input element configuration</h3>
|
<h3>Text field and input element configuration</h3>
|
||||||
<div class="border-l border-dashed border-gray-800 pl-2">
|
<div class="border-l border-dashed border-gray-800 pl-2">
|
||||||
<SchemaBasedField {state} path={[...path, "render"]} schema={topLevelItems["render"]} />
|
<SchemaBasedField {state} path={[...path, "render"]} schema={topLevelItems["render"]} />
|
||||||
|
{#if freeformSchema?.length > 0}
|
||||||
|
<!-- In read-only cases, (e.g. popup title) there will be no freeform-schema to set and thus freeformSchema will be undefined -->
|
||||||
<Region {state} {path} configs={freeformSchema} />
|
<Region {state} {path} configs={freeformSchema} />
|
||||||
|
{/if}
|
||||||
<SchemaBasedField {state} path={[...path, "icon"]} schema={topLevelItems["icon"]} />
|
<SchemaBasedField {state} path={[...path, "icon"]} schema={topLevelItems["icon"]} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
import { Utils } from "../Utils"
|
import { Utils } from "../Utils"
|
||||||
import Hotkeys from "./Base/Hotkeys"
|
import Hotkeys from "./Base/Hotkeys"
|
||||||
import LevelSelector from "./BigComponents/LevelSelector.svelte"
|
import LevelSelector from "./BigComponents/LevelSelector.svelte"
|
||||||
import ExtraLinkButton from "./BigComponents/ExtraLinkButton"
|
|
||||||
import SelectedElementTitle from "./BigComponents/SelectedElementTitle.svelte"
|
import SelectedElementTitle from "./BigComponents/SelectedElementTitle.svelte"
|
||||||
import ThemeIntroPanel from "./BigComponents/ThemeIntroPanel.svelte"
|
import ThemeIntroPanel from "./BigComponents/ThemeIntroPanel.svelte"
|
||||||
import type { RasterLayerPolygon } from "../Models/RasterLayers"
|
import type { RasterLayerPolygon } from "../Models/RasterLayers"
|
||||||
|
@ -73,6 +72,7 @@
|
||||||
import PrivacyPolicy from "./BigComponents/PrivacyPolicy.svelte"
|
import PrivacyPolicy from "./BigComponents/PrivacyPolicy.svelte"
|
||||||
import { BBox } from "../Logic/BBox"
|
import { BBox } from "../Logic/BBox"
|
||||||
import ReviewsOverview from "./Reviews/ReviewsOverview.svelte"
|
import ReviewsOverview from "./Reviews/ReviewsOverview.svelte"
|
||||||
|
import ExtraLinkButton from "./BigComponents/ExtraLinkButton.svelte"
|
||||||
|
|
||||||
export let state: ThemeViewState
|
export let state: ThemeViewState
|
||||||
let layout = state.layout
|
let layout = state.layout
|
||||||
|
@ -260,9 +260,7 @@
|
||||||
/>
|
/>
|
||||||
</MapControlButton>
|
</MapControlButton>
|
||||||
{/if}
|
{/if}
|
||||||
<ToSvelte
|
<ExtraLinkButton {state} />
|
||||||
construct={() => new ExtraLinkButton(state, layout.extraLink).SetClass("pointer-events-auto")}
|
|
||||||
/>
|
|
||||||
<UploadingImageCounter featureId="*" showThankYou={false} {state} />
|
<UploadingImageCounter featureId="*" showThankYou={false} {state} />
|
||||||
<PendingChangesIndicator {state} />
|
<PendingChangesIndicator {state} />
|
||||||
<If condition={state.featureSwitchIsTesting}>
|
<If condition={state.featureSwitchIsTesting}>
|
||||||
|
|
12
src/Utils.ts
12
src/Utils.ts
|
@ -263,6 +263,9 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static NoNull<T>(array: T[] | undefined): (T[] | undefined)
|
||||||
|
public static NoNull<T>(array: undefined): undefined
|
||||||
|
public static NoNull<T>(array: T[]): T[]
|
||||||
public static NoNull<T>(array: T[]): NonNullable<T>[] {
|
public static NoNull<T>(array: T[]): NonNullable<T>[] {
|
||||||
return <any>array?.filter((o) => o !== undefined && o !== null)
|
return <any>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() })
|
Utils._download_cache.set(url, { promise, timestamp: new Date().getTime() })
|
||||||
return await promise
|
return await promise
|
||||||
}
|
}
|
||||||
|
public static async downloadJson(
|
||||||
|
url: string,
|
||||||
|
headers?: Record<string, string>
|
||||||
|
): Promise<object | []>
|
||||||
|
public static async downloadJson<T>(
|
||||||
|
url: string,
|
||||||
|
headers?: Record<string, string>
|
||||||
|
): Promise<T>
|
||||||
public static async downloadJson(
|
public static async downloadJson(
|
||||||
url: string,
|
url: string,
|
||||||
headers?: Record<string, string>
|
headers?: Record<string, string>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -445,7 +445,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -459,7 +459,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -672,7 +672,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -763,7 +763,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -776,7 +777,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -1225,7 +1226,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -1316,7 +1317,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -1329,7 +1331,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -2373,7 +2375,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -2387,7 +2389,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -2605,7 +2607,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -2699,7 +2701,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -2712,7 +2715,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -3074,7 +3077,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -3088,7 +3091,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -3306,7 +3309,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -3400,7 +3403,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -3413,7 +3417,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -3753,7 +3757,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -3767,7 +3771,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -3985,7 +3989,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -4079,7 +4083,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -4092,7 +4097,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -4434,7 +4439,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -4448,7 +4453,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -4666,7 +4671,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -4760,7 +4765,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -4773,7 +4779,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -5116,7 +5122,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -5130,7 +5136,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -5348,7 +5354,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -5442,7 +5448,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -5455,7 +5462,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -5803,7 +5810,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -5817,7 +5824,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -6035,7 +6042,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -6129,7 +6136,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -6142,7 +6150,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -6485,7 +6493,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -6499,7 +6507,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -6717,7 +6725,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -6811,7 +6819,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -6824,7 +6833,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -7167,7 +7176,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -7181,7 +7190,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -7399,7 +7408,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -7493,7 +7502,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -7506,7 +7516,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -7856,7 +7866,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -7870,7 +7880,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -8092,7 +8102,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -8186,7 +8196,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -8199,7 +8210,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -8550,7 +8561,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -8564,7 +8575,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -8786,7 +8797,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -8880,7 +8891,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -8893,7 +8905,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -9965,7 +9977,7 @@
|
||||||
"group": "presets"
|
"group": "presets"
|
||||||
},
|
},
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"description": "<div class='flex'>\n <div>\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</div>\n<a class='block m-2 min-w-64' href='./Docs/Screenshots/AddNewItemScreencast.webm' target='_blank'> <video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/></a>\n</div>"
|
"description": "<div class='flex'>\n <div>\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</div>\n<video controls autoplay muted src='./Docs/Screenshots/AddNewItemScreencast.webm' class='w-64'/>\n</div>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": [
|
"path": [
|
||||||
|
@ -10724,7 +10736,7 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"placeholder": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string>"
|
"$ref": "#/definitions/Record<string,string>"
|
||||||
|
@ -10872,7 +10884,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"condition": {
|
"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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -10886,7 +10898,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"metacondition": {
|
"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 <i>usersettings/application state</i>; 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": [
|
"anyOf": [
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
"$ref": "#/definitions/{and:TagConfigJson[];}"
|
||||||
|
@ -11675,7 +11687,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -12020,7 +12033,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -12111,7 +12124,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -12124,7 +12138,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -12952,7 +12966,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -13313,7 +13328,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -13407,7 +13422,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -13420,7 +13436,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -14261,7 +14277,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -14622,7 +14639,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -14716,7 +14733,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -14729,7 +14747,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -15587,7 +15605,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -15964,7 +15983,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -16061,7 +16080,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -16074,7 +16094,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -16910,7 +16930,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -17271,7 +17292,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -17365,7 +17386,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -17378,7 +17400,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -18236,7 +18258,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -18613,7 +18636,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -18710,7 +18733,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -18723,7 +18747,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
@ -19442,10 +19466,10 @@
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;}>"
|
"$ref": "#/definitions/Record<string,string|{quantity:string;denominations:string[];canonical?:string|undefined;inverted?:boolean|undefined;}>"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"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": [
|
"path": [
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -683,7 +683,8 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "translation",
|
"typehint": "translation",
|
||||||
"group": "expert",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -1012,7 +1013,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -1100,7 +1101,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -1113,7 +1115,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"typehint": "tag",
|
||||||
"question": "When should this item be shown?",
|
"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": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -203,7 +203,8 @@
|
||||||
"required": false,
|
"required": false,
|
||||||
"hints": {
|
"hints": {
|
||||||
"typehint": "tag",
|
"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 <i>usersettings/application state</i>; always show this tagRendering or show this question if unknown"
|
||||||
},
|
},
|
||||||
"type": [
|
"type": [
|
||||||
{
|
{
|
||||||
|
@ -216,7 +217,7 @@
|
||||||
"type": "string"
|
"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": [
|
"path": [
|
||||||
|
|
|
@ -30,8 +30,8 @@ async function getAvailableLayers(): Promise<Set<string>> {
|
||||||
try {
|
try {
|
||||||
const host = new URL(Constants.VectorTileServer).host
|
const host = new URL(Constants.VectorTileServer).host
|
||||||
const status: { layers: string[] } = await Promise.any([
|
const status: { layers: string[] } = await Promise.any([
|
||||||
// Utils.downloadJson("https://" + host + "/summary/status.json"),
|
Utils.downloadJson<{layers}>("https://" + host + "/summary/status.json"),
|
||||||
timeout(0),
|
timeout(2500),
|
||||||
])
|
])
|
||||||
return new Set<string>(status.layers)
|
return new Set<string>(status.layers)
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -29,7 +29,7 @@ async function getAvailableLayers(): Promise<Set<string>> {
|
||||||
try {
|
try {
|
||||||
const host = new URL(Constants.VectorTileServer).host
|
const host = new URL(Constants.VectorTileServer).host
|
||||||
const status = await Promise.any([
|
const status = await Promise.any([
|
||||||
// Utils.downloadJson("https://" + host + "/summary/status.json"),
|
Utils.downloadJson("https://" + host + "/summary/status.json"),
|
||||||
timeout(0)
|
timeout(0)
|
||||||
])
|
])
|
||||||
return new Set<string>(status.layers)
|
return new Set<string>(status.layers)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import { Unit } from "../../src/Models/Unit"
|
import { Unit } from "../../src/Models/Unit"
|
||||||
import { Denomination } from "../../src/Models/Denomination"
|
import { Denomination } from "../../src/Models/Denomination"
|
||||||
import { describe, expect, it } from "vitest"
|
import { describe, expect, it } from "vitest"
|
||||||
|
import Validators from "../../src/UI/InputElement/Validators"
|
||||||
|
|
||||||
describe("Unit", () => {
|
describe("Unit", () => {
|
||||||
it("should convert a value back and forth", () => {
|
it("should convert a value back and forth", () => {
|
||||||
|
@ -13,14 +14,36 @@ describe("Unit", () => {
|
||||||
nl: "{quantity} megawatt",
|
nl: "{quantity} megawatt",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
Validators.get("float"),
|
||||||
"test"
|
"test"
|
||||||
)
|
)
|
||||||
|
|
||||||
const canonical = denomintion.canonicalValue("5", true)
|
const canonical = denomintion.canonicalValue("5", true, false)
|
||||||
expect(canonical).toBe("5 MW")
|
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")
|
const [detected, detectedDenom] = units.findDenomination("5 MW", () => "be")
|
||||||
expect(detected).toBe("5")
|
expect(detected).toBe("5")
|
||||||
expect(detectedDenom).toBe(denomintion)
|
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)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue