forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {UIEventSource} from "./Logic/UIEventSource";
 | 
						|
import {GenerateEmpty} from "./UI/CustomGenerator/GenerateEmpty";
 | 
						|
import {LayoutConfigJson} from "./Customizations/JSON/LayoutConfigJson";
 | 
						|
import {OsmConnection} from "./Logic/Osm/OsmConnection";
 | 
						|
import CustomGeneratorPanel from "./UI/CustomGenerator/CustomGeneratorPanel";
 | 
						|
import {LocalStorageSource} from "./Logic/Web/LocalStorageSource";
 | 
						|
import {Utils} from "./Utils";
 | 
						|
import LZString from "lz-string";
 | 
						|
 | 
						|
let layout = GenerateEmpty.createEmptyLayout();
 | 
						|
if (window.location.hash.length > 10) {
 | 
						|
    const hash = window.location.hash.substr(1)
 | 
						|
    try{
 | 
						|
        layout = JSON.parse(atob(hash)) as LayoutConfigJson;
 | 
						|
    }catch(e){
 | 
						|
        console.log("Initial load of theme failed, attempt nr 2 with decompression", e)
 | 
						|
        layout =  JSON.parse( Utils.UnMinify(LZString.decompressFromBase64(hash)))
 | 
						|
    }
 | 
						|
    
 | 
						|
} else {
 | 
						|
    const hash = LocalStorageSource.Get("last-custom-theme").data
 | 
						|
    if (hash !== undefined) {
 | 
						|
        console.log("Using theme from local storage")
 | 
						|
        layout = JSON.parse(atob(hash)) as LayoutConfigJson;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
const connection = new OsmConnection(false, new UIEventSource<string>(undefined), "customGenerator", false);
 | 
						|
 | 
						|
new CustomGeneratorPanel(connection, layout)
 | 
						|
    .AttachTo("maindiv");
 | 
						|
 |