forked from MapComplete/MapComplete
		
	Fix: fix sauna theme
This commit is contained in:
		
							parent
							
								
									01ac1d0944
								
							
						
					
					
						commit
						ccbbba5628
					
				
					 3 changed files with 115 additions and 88 deletions
				
			
		| 
						 | 
					@ -30,90 +30,79 @@
 | 
				
			||||||
    "images",
 | 
					    "images",
 | 
				
			||||||
    "reviews",
 | 
					    "reviews",
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "builtin": "toilet_at_amenity.toilet-access",
 | 
					      "id": "sauna_access",
 | 
				
			||||||
      "override": {
 | 
					      "condition": "leisure!=water_park",
 | 
				
			||||||
        "condition": "leisure!=water_park",
 | 
					      "question": {
 | 
				
			||||||
        "question": {
 | 
					        "en": "Is this sauna publicly accessible?",
 | 
				
			||||||
          "en": "Is this sauna publicly accessible?",
 | 
					        "de": "Ist die Sauna öffentlich zugänglich?"
 | 
				
			||||||
          "de": "Ist die Sauna öffentlich zugänglich?"
 | 
					      },
 | 
				
			||||||
        },
 | 
					      "render": {
 | 
				
			||||||
        "render": {
 | 
					        "en": "Access is {sauna:access}",
 | 
				
			||||||
          "en": "Access is {sauna:access}",
 | 
					        "de": "Zugang ist {sauna:access}"
 | 
				
			||||||
          "de": "Zugang ist {sauna:access}",
 | 
					      },
 | 
				
			||||||
          "fr": "{sauna:access}",
 | 
					      "freeform": {
 | 
				
			||||||
          "nl": "{sauna:access}",
 | 
					        "key": "sauna:access"
 | 
				
			||||||
          "it": "{sauna:access}",
 | 
					      },
 | 
				
			||||||
          "es": "{sauna:access}",
 | 
					      "mappings": [
 | 
				
			||||||
          "da": "{sauna:access}",
 | 
					        {
 | 
				
			||||||
          "ca": "{sauna:access}",
 | 
					          "if": "sauna:access=yes",
 | 
				
			||||||
          "cs": "{sauna:access}",
 | 
					          "then": {
 | 
				
			||||||
          "sl": "{sauna:access}",
 | 
					            "en": "Public access",
 | 
				
			||||||
          "uk": "{sauna:access}"
 | 
					            "de": "Der Zugang ist öffentlich",
 | 
				
			||||||
        },
 | 
					            "fr": "Accès publique",
 | 
				
			||||||
        "freeform": {
 | 
					            "nl": "Publiek toegankelijk",
 | 
				
			||||||
          "key": "sauna:access"
 | 
					            "it": "Accesso pubblico",
 | 
				
			||||||
        },
 | 
					            "ru": "Свободный доступ",
 | 
				
			||||||
        "mappings": [
 | 
					            "es": "Acceso público",
 | 
				
			||||||
          {
 | 
					            "da": "Offentlig adgang",
 | 
				
			||||||
            "if": "sauna:access=yes",
 | 
					            "ca": "Accés públic",
 | 
				
			||||||
            "then": {
 | 
					            "cs": "Veřejný přístup",
 | 
				
			||||||
              "en": "Public access",
 | 
					            "sl": "Javno dostopno"
 | 
				
			||||||
              "de": "Der Zugang ist öffentlich",
 | 
					 | 
				
			||||||
              "fr": "Accès publique",
 | 
					 | 
				
			||||||
              "nl": "Publiek toegankelijk",
 | 
					 | 
				
			||||||
              "it": "Accesso pubblico",
 | 
					 | 
				
			||||||
              "ru": "Свободный доступ",
 | 
					 | 
				
			||||||
              "es": "Acceso público",
 | 
					 | 
				
			||||||
              "da": "Offentlig adgang",
 | 
					 | 
				
			||||||
              "ca": "Accés públic",
 | 
					 | 
				
			||||||
              "cs": "Veřejný přístup",
 | 
					 | 
				
			||||||
              "sl": "Javno dostopno"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "if": "sauna:access=customers",
 | 
					 | 
				
			||||||
            "then": {
 | 
					 | 
				
			||||||
              "en": "Only access to customers of the amenity",
 | 
					 | 
				
			||||||
              "de": "Nur Zugang für Kunden der Einrichtung",
 | 
					 | 
				
			||||||
              "nl": "Enkel toegankelijk voor klanten van de voorziening",
 | 
					 | 
				
			||||||
              "fr": "Accessibles uniquement au clients du lieu",
 | 
					 | 
				
			||||||
              "ca": "Només accessible a clients de l'instal·lació",
 | 
					 | 
				
			||||||
              "cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
 | 
					 | 
				
			||||||
              "sl": "Samo za stranke lokala",
 | 
					 | 
				
			||||||
              "es": "Solo acceso para clientes del servicio"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "if": "sauna:access=no",
 | 
					 | 
				
			||||||
            "then": {
 | 
					 | 
				
			||||||
              "en": "Not accessible, even for customers of the amenity",
 | 
					 | 
				
			||||||
              "de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
 | 
					 | 
				
			||||||
              "nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
 | 
					 | 
				
			||||||
              "fr": "Non accessibles, même pour les clients du lieu",
 | 
					 | 
				
			||||||
              "ca": "No accessible, inclús per als clients de la instal·lació",
 | 
					 | 
				
			||||||
              "cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
 | 
					 | 
				
			||||||
              "sl": "Ni dostopno niti za stranke lokala",
 | 
					 | 
				
			||||||
              "es": "Inaccesible, incluso para clientes del servicio"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            "if": "sauna:access=public",
 | 
					 | 
				
			||||||
            "then": {
 | 
					 | 
				
			||||||
              "en": "Public access",
 | 
					 | 
				
			||||||
              "de": "Öffentlicher Zugang",
 | 
					 | 
				
			||||||
              "fr": "Accès publique",
 | 
					 | 
				
			||||||
              "nl": "Publiek toegankelijk",
 | 
					 | 
				
			||||||
              "it": "Accesso pubblico",
 | 
					 | 
				
			||||||
              "ru": "Свободный доступ",
 | 
					 | 
				
			||||||
              "es": "Acceso público",
 | 
					 | 
				
			||||||
              "da": "Offentlig adgang",
 | 
					 | 
				
			||||||
              "ca": "Accés públic",
 | 
					 | 
				
			||||||
              "cs": "Veřejný přístup"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "hideInAnswer": true
 | 
					 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        ]
 | 
					        },
 | 
				
			||||||
      }
 | 
					        {
 | 
				
			||||||
 | 
					          "if": "sauna:access=customers",
 | 
				
			||||||
 | 
					          "then": {
 | 
				
			||||||
 | 
					            "en": "Only access to customers of the amenity",
 | 
				
			||||||
 | 
					            "de": "Nur Zugang für Kunden der Einrichtung",
 | 
				
			||||||
 | 
					            "nl": "Enkel toegankelijk voor klanten van de voorziening",
 | 
				
			||||||
 | 
					            "fr": "Accessibles uniquement au clients du lieu",
 | 
				
			||||||
 | 
					            "ca": "Només accessible a clients de l'instal·lació",
 | 
				
			||||||
 | 
					            "cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
 | 
				
			||||||
 | 
					            "sl": "Samo za stranke lokala",
 | 
				
			||||||
 | 
					            "es": "Solo acceso para clientes del servicio"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "if": "sauna:access=no",
 | 
				
			||||||
 | 
					          "then": {
 | 
				
			||||||
 | 
					            "en": "Not accessible, even for customers of the amenity",
 | 
				
			||||||
 | 
					            "de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
 | 
				
			||||||
 | 
					            "nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
 | 
				
			||||||
 | 
					            "fr": "Non accessibles, même pour les clients du lieu",
 | 
				
			||||||
 | 
					            "ca": "No accessible, inclús per als clients de la instal·lació",
 | 
				
			||||||
 | 
					            "cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
 | 
				
			||||||
 | 
					            "sl": "Ni dostopno niti za stranke lokala",
 | 
				
			||||||
 | 
					            "es": "Inaccesible, incluso para clientes del servicio"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "if": "sauna:access=public",
 | 
				
			||||||
 | 
					          "then": {
 | 
				
			||||||
 | 
					            "en": "Public access",
 | 
				
			||||||
 | 
					            "de": "Öffentlicher Zugang",
 | 
				
			||||||
 | 
					            "fr": "Accès publique",
 | 
				
			||||||
 | 
					            "nl": "Publiek toegankelijk",
 | 
				
			||||||
 | 
					            "it": "Accesso pubblico",
 | 
				
			||||||
 | 
					            "ru": "Свободный доступ",
 | 
				
			||||||
 | 
					            "es": "Acceso público",
 | 
				
			||||||
 | 
					            "da": "Offentlig adgang",
 | 
				
			||||||
 | 
					            "ca": "Accés públic",
 | 
				
			||||||
 | 
					            "cs": "Veřejný přístup"
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          "hideInAnswer": true
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "contact",
 | 
					    "contact",
 | 
				
			||||||
    "fixme"
 | 
					    "fixme"
 | 
				
			||||||
| 
						 | 
					@ -159,4 +148,4 @@
 | 
				
			||||||
      "en": "{name}"
 | 
					      "en": "{name}"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,11 +6,11 @@
 | 
				
			||||||
    "en": "Sauna"
 | 
					    "en": "Sauna"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "layers": [
 | 
					  "layers": [
 | 
				
			||||||
    "./assets/layers/sauna/sauna.json",
 | 
					    "sauna",
 | 
				
			||||||
    "./assets/layers/sauna/sauna_at_leisure.json"
 | 
					    "sauna_at_leisure"
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "description": {
 | 
					  "description": {
 | 
				
			||||||
    "en": "Sauna"
 | 
					    "en": "Sauna"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "icon": "./assets/layers/sauna/sauna.svg"
 | 
					  "icon": "./assets/layers/sauna/sauna.svg"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,7 @@ import {
 | 
				
			||||||
    MappingConfigJson,
 | 
					    MappingConfigJson,
 | 
				
			||||||
    QuestionableTagRenderingConfigJson,
 | 
					    QuestionableTagRenderingConfigJson,
 | 
				
			||||||
} from "../Json/QuestionableTagRenderingConfigJson"
 | 
					} from "../Json/QuestionableTagRenderingConfigJson"
 | 
				
			||||||
 | 
					import { Utils } from "../../../Utils"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
 | 
					export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
 | 
				
			||||||
    private readonly _prefix: string
 | 
					    private readonly _prefix: string
 | 
				
			||||||
| 
						 | 
					@ -18,6 +19,40 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
 | 
				
			||||||
        this._prefix = prefix
 | 
					        this._prefix = prefix
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {key}") // => "Some argument with a {PREFIX:key}"
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * // Don't rewrite metatags
 | 
				
			||||||
 | 
					     * new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {_calculated_key}") // => "Some argument with a {_calculated_key}"
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private rewriteArguments(txt: string) {
 | 
				
			||||||
 | 
					        const regex = /(.*?){([^}]*)}(.*)/s
 | 
				
			||||||
 | 
					        let match = txt.match(regex)
 | 
				
			||||||
 | 
					        if (!match) {
 | 
				
			||||||
 | 
					            return txt
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        let result = ""
 | 
				
			||||||
 | 
					        while (match) {
 | 
				
			||||||
 | 
					            const [_, normal, key, leftover] = match
 | 
				
			||||||
 | 
					            if (key.startsWith("_")) {
 | 
				
			||||||
 | 
					                result += normal + "{" + key + "}"
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                result += normal + "{" + this._prefix + ":" + key + "}"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            match = leftover.match(regex)
 | 
				
			||||||
 | 
					            if (!match) {
 | 
				
			||||||
 | 
					                result += leftover
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if(txt !== result){
 | 
				
			||||||
 | 
					            console.log(">>> Rewritten", txt, "into", result)
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return result
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * const edit = new AddPrefixToTagRenderingConfig("PREFIX")
 | 
					     * const edit = new AddPrefixToTagRenderingConfig("PREFIX")
 | 
				
			||||||
| 
						 | 
					@ -29,6 +64,9 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * // Should prefix the default key in a special visualisation
 | 
					     * // Should prefix the default key in a special visualisation
 | 
				
			||||||
     * new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
 | 
					     * new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * // Should prefix links, e.g. for 'phone'
 | 
				
			||||||
 | 
					     * new AddPrefixToTagRenderingConfig("PREFIX").updateString("{link({phone},tel:{phone},,,,)}") // => "{link({PREFIX:phone},tel:{PREFIX:phone},,,,)}"
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private updateString(str: string): string {
 | 
					    private updateString(str: string): string {
 | 
				
			||||||
        const parsed = SpecialVisualizations.constructSpecification(str)
 | 
					        const parsed = SpecialVisualizations.constructSpecification(str)
 | 
				
			||||||
| 
						 | 
					@ -45,7 +83,7 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
 | 
				
			||||||
                    if (argDoc.type === "key") {
 | 
					                    if (argDoc.type === "key") {
 | 
				
			||||||
                        newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
 | 
					                        newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
                        newArgs.push(argV ?? "")
 | 
					                        newArgs.push(this.rewriteArguments(argV ?? ""))
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")
 | 
					                fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue