forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import DetermineLayout from "./Logic/DetermineLayout"
 | |
| import ThemeViewState from "./Models/ThemeViewState"
 | |
| import SvelteUIElement from "./UI/Base/SvelteUIElement"
 | |
| import ThemeViewGUI from "./UI/ThemeViewGUI.svelte"
 | |
| import { FixedUiElement } from "./UI/Base/FixedUiElement"
 | |
| import Combine from "./UI/Base/Combine"
 | |
| import { SubtleButton } from "./UI/Base/SubtleButton"
 | |
| import Svg from "./Svg"
 | |
| import { Utils } from "./Utils"
 | |
| 
 | |
| // @ts-ignore
 | |
| try {
 | |
|     DetermineLayout.GetLayout()
 | |
|         .then((layout) => {
 | |
|             const state = new ThemeViewState(layout)
 | |
|             const main = new SvelteUIElement(ThemeViewGUI, { state })
 | |
|             main.AttachTo("maindiv")
 | |
|         })
 | |
|         .catch((err) => {
 | |
|             console.error("Error while initializing: ", err, err.stack)
 | |
|             new Combine([
 | |
|                 new FixedUiElement(err).SetClass("block alert"),
 | |
| 
 | |
|                 new SubtleButton(Svg.download_svg(), "Download the raw file").onClick(() =>
 | |
|                     Utils.offerContentsAsDownloadableFile(
 | |
|                         DetermineLayout.getCustomDefinition(),
 | |
|                         "mapcomplete-theme.json",
 | |
|                         { mimetype: "application/json" }
 | |
|                     )
 | |
|                 ),
 | |
|             ]).AttachTo("maindiv")
 | |
|         })
 | |
| } catch (err) {
 | |
|     new FixedUiElement(err).SetClass("block alert").AttachTo("maindiv")
 | |
| }
 |