forked from MapComplete/MapComplete
		
	Improvements to the climbing theme
This commit is contained in:
		
							parent
							
								
									a9aff5e16e
								
							
						
					
					
						commit
						5a94e9d239
					
				
					 6 changed files with 65 additions and 47 deletions
				
			
		| 
						 | 
				
			
			@ -79,6 +79,19 @@ export class Denomination {
 | 
			
		|||
     * unit.canonicalValue("42 meter") // =>"42 m"
 | 
			
		||||
     * 
 | 
			
		||||
     * 
 | 
			
		||||
     * // Should be trimmed if canonical is empty
 | 
			
		||||
     * const unit = new Denomination({
 | 
			
		||||
     *               canonicalDenomination: "",
 | 
			
		||||
     *               alternativeDenomination: ["meter","m],
 | 
			
		||||
     *               'default': true,
 | 
			
		||||
     *               human: {
 | 
			
		||||
     *                   en: "meter"
 | 
			
		||||
     *               }
 | 
			
		||||
     *           }, "test")
 | 
			
		||||
     * unit.canonicalValue("42m") // =>"42"
 | 
			
		||||
     * unit.canonicalValue("42") // =>"42"
 | 
			
		||||
     * unit.canonicalValue("42 m") // =>"42"
 | 
			
		||||
     * unit.canonicalValue("42 meter") // =>"42"
 | 
			
		||||
     */
 | 
			
		||||
    public canonicalValue(value: string, actAsDefault?: boolean) : string {
 | 
			
		||||
        if (value === undefined) {
 | 
			
		||||
| 
						 | 
				
			
			@ -89,9 +102,9 @@ export class Denomination {
 | 
			
		|||
            return null;
 | 
			
		||||
        }
 | 
			
		||||
        if (stripped === "1" && this._canonicalSingular !== undefined) {
 | 
			
		||||
            return "1 " + this._canonicalSingular
 | 
			
		||||
            return ("1 " + this._canonicalSingular).trim()
 | 
			
		||||
        }
 | 
			
		||||
        return stripped + " " + this.canonical;
 | 
			
		||||
        return (stripped + " " + this.canonical).trim();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,8 +64,10 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
 | 
			
		|||
        const title = new TagRenderingAnswer(tags, layerConfig.title ?? new TagRenderingConfig("POI"), state)
 | 
			
		||||
            .SetClass("break-words font-bold sm:p-0.5 md:p-1 sm:p-1.5 md:p-2 text-2xl");
 | 
			
		||||
        const titleIcons = new Combine(
 | 
			
		||||
            layerConfig.titleIcons.map(icon => new TagRenderingAnswer(tags, icon, state,
 | 
			
		||||
                "block w-8 h-8 max-h-8 align-baseline box-content sm:p-0.5 w-10",)
 | 
			
		||||
            layerConfig.titleIcons.map(icon => {
 | 
			
		||||
                    return new TagRenderingAnswer(tags, icon, state,
 | 
			
		||||
                        "block h-8 max-h-8 align-baseline box-content sm:p-0.5").SetClass("flex");
 | 
			
		||||
                }
 | 
			
		||||
            ))
 | 
			
		||||
            .SetClass("flex flex-row flex-wrap pt-0.5 sm:pt-1 items-center mr-2")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ export class SubstitutedTranslation extends VariableUiElement {
 | 
			
		|||
            )
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        const linkToWeblate = new LinkToWeblate(translation.context, translation.translations)
 | 
			
		||||
        const linkToWeblate = translation !== undefined ? new LinkToWeblate(translation.context, translation.translations) : undefined;
 | 
			
		||||
        
 | 
			
		||||
        super(
 | 
			
		||||
            Locale.language.map(language => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -131,7 +131,6 @@ export class Translation extends BaseUIElement {
 | 
			
		|||
 | 
			
		||||
        const wrapper = document.createElement("span")
 | 
			
		||||
        wrapper.appendChild(el)
 | 
			
		||||
        wrapper.classList.add("flex")
 | 
			
		||||
        Locale.showLinkToWeblate.addCallbackAndRun(doShow => {
 | 
			
		||||
 | 
			
		||||
            if (!doShow) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -143,10 +143,6 @@
 | 
			
		|||
          },
 | 
			
		||||
          "id": "climbing_club-name"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "minimap",
 | 
			
		||||
          "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
 | 
			
		||||
        },
 | 
			
		||||
        "website",
 | 
			
		||||
        "email",
 | 
			
		||||
        "phone",
 | 
			
		||||
| 
						 | 
				
			
			@ -287,11 +283,6 @@
 | 
			
		|||
      },
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        "images",
 | 
			
		||||
        "questions",
 | 
			
		||||
        {
 | 
			
		||||
          "id": "minimap",
 | 
			
		||||
          "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "render": {
 | 
			
		||||
            "en": "<strong>{name}</strong>",
 | 
			
		||||
| 
						 | 
				
			
			@ -320,8 +311,7 @@
 | 
			
		|||
        "website",
 | 
			
		||||
        "phone",
 | 
			
		||||
        "email",
 | 
			
		||||
        "opening_hours",
 | 
			
		||||
        "reviews"
 | 
			
		||||
        "opening_hours"
 | 
			
		||||
      ],
 | 
			
		||||
      "mapRendering": [
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -397,11 +387,6 @@
 | 
			
		|||
      },
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        "images",
 | 
			
		||||
        "questions",
 | 
			
		||||
        {
 | 
			
		||||
          "id": "minimap",
 | 
			
		||||
          "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "render": {
 | 
			
		||||
            "en": "<strong>{name}</strong>",
 | 
			
		||||
| 
						 | 
				
			
			@ -555,8 +540,7 @@
 | 
			
		|||
            "key": "_embedding_features_with_rock:rock"
 | 
			
		||||
          },
 | 
			
		||||
          "id": "Rock type"
 | 
			
		||||
        },
 | 
			
		||||
        "reviews"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "presets": [
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -704,7 +688,6 @@
 | 
			
		|||
      },
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        "images",
 | 
			
		||||
        "questions",
 | 
			
		||||
        {
 | 
			
		||||
          "id": "minimap",
 | 
			
		||||
          "render": "{minimap(18, id, _contained_climbing_route_ids): height: 9rem; overflow: hidden; border-radius:3rem; }"
 | 
			
		||||
| 
						 | 
				
			
			@ -846,8 +829,7 @@
 | 
			
		|||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          "id": "Rock type (crag/rock/cliff only)"
 | 
			
		||||
        },
 | 
			
		||||
        "reviews"
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "presets": [
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			@ -955,10 +937,6 @@
 | 
			
		|||
        "it": "Un’opportunità di arrampicata?"
 | 
			
		||||
      },
 | 
			
		||||
      "tagRenderings": [
 | 
			
		||||
        {
 | 
			
		||||
          "id": "minimap",
 | 
			
		||||
          "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "id": "climbing-opportunity-name",
 | 
			
		||||
          "render": {
 | 
			
		||||
| 
						 | 
				
			
			@ -1053,26 +1031,50 @@
 | 
			
		|||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "overrideAll": {
 | 
			
		||||
    "titleIcons": [
 | 
			
		||||
    "+titleIcons": [
 | 
			
		||||
      {
 | 
			
		||||
        "render": "<div style='display:block ruby;' class='m-1 '><img src='./assets/themes/climbing/height.svg' style='width:2rem; height:2rem'/>{climbing:length}m</div>",
 | 
			
		||||
        "freeform": {
 | 
			
		||||
          "key": "climbing:length"
 | 
			
		||||
        }
 | 
			
		||||
        "render": "<div class='flex' style='word-wrap: normal; padding-right: 0.25rem;'><img src='./assets/themes/climbing/height.svg' style='height: 1.75rem;'/>{climbing:length}m</div>",
 | 
			
		||||
        "condition": "climbing:length~*"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "render": "<div style='display:block ruby;' class='m-1 '><img src='./assets/themes/climbing/carabiner.svg' style='width:2rem; height:2rem'/>{climbing:bolted}</div>",
 | 
			
		||||
        "freeform": {
 | 
			
		||||
          "key": "climbing:bolted"
 | 
			
		||||
        },
 | 
			
		||||
        "mappings": [
 | 
			
		||||
          {
 | 
			
		||||
            "if": "climbing:bolts~*",
 | 
			
		||||
            "then": "<div class='flex' style='padding-right: 0.25rem;'><img src='./assets/themes/climbing/carabiner.svg' style='width: 1rem;'/>{climbing:bolts}</div>"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "if": "climbing:bolted=yes",
 | 
			
		||||
            "then": "<img src='./assets/themes/climbing/carabiner.svg' style='width:2rem; height:2rem'/>"
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "defaults"
 | 
			
		||||
      {
 | 
			
		||||
            "mappings": [
 | 
			
		||||
              {
 | 
			
		||||
                "if": "climbing:grade:french~3.*",
 | 
			
		||||
                "then": "<div class='rounded-full px-1' style='background-color:#ebf224'> {climbing:grade:french}</div>"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "climbing:grade:french~4.*",
 | 
			
		||||
                "then": "<div class='rounded-full pl-2 pr-2' style='background-color:#7af224'> {climbing:grade:french}</div>"
 | 
			
		||||
              },{
 | 
			
		||||
                "if": "climbing:grade:french~5.*",
 | 
			
		||||
                "then": "<div class='rounded-full pl-2 pr-2' style='background-color:#f24a24'> {climbing:grade:french}</div>"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "climbing:grade:french~6.*",
 | 
			
		||||
                "then": "<div class='text-white rounded-full pl-2 pr-2' style='background-color:#244af2'> {climbing:grade:french}</div>"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "climbing:grade:french~7.*",
 | 
			
		||||
                "then": "<div class='text-white rounded-full pl-2 pr-2' style='background-color:#e904ed'> {climbing:grade:french}</div>"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "if": "climbing:grade:french~*",
 | 
			
		||||
                "then": "<div class='text-white rounded-full px-2' style='background-colour:black'> {climbing:grade:french}</div>"
 | 
			
		||||
              }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "+calculatedTags": [
 | 
			
		||||
      "_embedding_feature_properties=feat.overlapWith('climbing').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})",
 | 
			
		||||
| 
						 | 
				
			
			@ -1690,7 +1692,9 @@
 | 
			
		|||
            "hideInAnswer": true
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
      },
 | 
			
		||||
      "questions",
 | 
			
		||||
      "reviews"
 | 
			
		||||
    ]
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1523,10 +1523,6 @@ video {
 | 
			
		|||
  padding-left: 1rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pl-1 {
 | 
			
		||||
  padding-left: 0.25rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pl-2 {
 | 
			
		||||
  padding-left: 0.5rem;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1543,6 +1539,10 @@ video {
 | 
			
		|||
  padding-bottom: 0.25rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pl-1 {
 | 
			
		||||
  padding-left: 0.25rem;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.pr-1 {
 | 
			
		||||
  padding-right: 0.25rem;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue