forked from MapComplete/MapComplete
		
	Huge refactorings of JSON-parsing and Tagsfilter, other cleanups, warning cleanups and lots of small subtle bugfixes
This commit is contained in:
		
							parent
							
								
									9a5b35b9f3
								
							
						
					
					
						commit
						a57b7d93fa
					
				
					 113 changed files with 1565 additions and 2594 deletions
				
			
		
							
								
								
									
										98
									
								
								Customizations/JSON/LayoutConfigJson.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								Customizations/JSON/LayoutConfigJson.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,98 @@ | |||
| import {LayerConfigJson} from "./LayerConfigJson"; | ||||
| import {TagRenderingConfigJson} from "./TagRenderingConfigJson"; | ||||
| 
 | ||||
| /** | ||||
|  * Defines what a JSON-segment defining a layout should look like. | ||||
|  * | ||||
|  * General remark: a type (string | any) indicates either a fixed or a translatable string | ||||
|  */ | ||||
| export interface LayoutConfigJson { | ||||
|     /** | ||||
|      * The id of this layout. | ||||
|      * This should be a simple, lowercase string which is used to create the html-page, e.g. | ||||
|      * 'cyclestreets' which become 'cyclestreets.html' | ||||
|      */ | ||||
|     id: string; | ||||
|     /** | ||||
|      * Who does maintian this preset? | ||||
|      */ | ||||
|     maintainer: string; | ||||
|     /** | ||||
|      * Extra piece of text that can be added to the changeset | ||||
|      */ | ||||
|     changesetmessage?: string; | ||||
|     /** | ||||
|      * A version number, either semantically or by date. | ||||
|      * Should be sortable, where the higher value is the later version | ||||
|      */ | ||||
|     version: string; | ||||
|     /** | ||||
|      * The supported language(s). | ||||
|      * This should be a two-letter, lowercase code which identifies the language, e.g. "en", "nl", ... | ||||
|      * If the theme supports multiple languages, use a list: `["en","nl","fr"]` to allow the user to pick any of them | ||||
|      */ | ||||
|     language: string | string[]; | ||||
|      | ||||
|     /** | ||||
|      * The title, as shown in the welcome message and the more-screen | ||||
|      */ | ||||
|     title: string | any; | ||||
|     /** | ||||
|      * The description, as shown in the welcome message and the more-screen | ||||
|      */ | ||||
|     description: string | any; | ||||
| 
 | ||||
| 
 | ||||
|     /** | ||||
|      * The icon representing this theme. | ||||
|      * Used as logo in the more-screen and (for official themes) as favicon, webmanifest logo, ... | ||||
|      * Either a URL or a base64 encoded value (which should include 'data:image/svg+xml;base64) | ||||
|      */ | ||||
|     icon: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Link to a 'social image' which is included as og:image-tag on official themes. | ||||
|      * Usefull to share the theme on social media | ||||
|      */ | ||||
|     socialImage?: string; | ||||
| 
 | ||||
|     /** | ||||
|      * Default location and zoom to start. | ||||
|      * Note that this is barely used. Once the user has visited mapcomplete at least once, the previous location of the user will be used | ||||
|      */ | ||||
|     startZoom: number; | ||||
|     startLat: number; | ||||
|     startLon: number; | ||||
| 
 | ||||
|     /** | ||||
|      * When a query is run, the data within bounds of the visible map is loaded. | ||||
|      * However, users tend to pan and zoom a lot. It is pretty annoying if every single pan means a reloading of the data. | ||||
|      * For this, the bounds are widened in order to make a small pan still within bounds of the loaded data. | ||||
|      * | ||||
|      * IF widenfactor is 0, this feature is disabled. A recommended value is between 0.5 and 0.01 (the latter for very dense queries) | ||||
|      */ | ||||
|     widenFactor?: number; | ||||
| 
 | ||||
|     /** | ||||
|      * A tagrendering depicts how to show some tags or how to show a question for it. | ||||
|      * | ||||
|      * These tagrenderings are applied to _all_ the loaded layers and are a way to reuse tagrenderings. | ||||
|      * Note that if multiple themes are loaded (e.g. via the personal theme) | ||||
|      * that these roamingRenderings are applied to the layers of the OTHER themes too! | ||||
|      * | ||||
|      * In order to prevent them to do too much damage, all the overpass-tags of the layers are taken and combined as OR. | ||||
|      * These tag renderings will only show up if the object matches this filter. | ||||
|      */ | ||||
|     roamingRenderings?: TagRenderingConfigJson[], | ||||
|      | ||||
|     /** | ||||
|      * The layers to display | ||||
|      */ | ||||
|     layers: LayerConfigJson[], | ||||
| 
 | ||||
|   | ||||
| 
 | ||||
|     | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue