import {UIEventSource} from "./Logic/UIEventSource"; import SingleSetting from "./UI/CustomGenerator/SingleSetting"; import Combine from "./UI/Base/Combine"; import {VariableUiElement} from "./UI/Base/VariableUIElement"; import GeneralSettings from "./UI/CustomGenerator/GeneralSettings"; import {TabbedComponent} from "./UI/Base/TabbedComponent"; import AllLayersPanel from "./UI/CustomGenerator/AllLayersPanel"; import SharePanel from "./UI/CustomGenerator/SharePanel"; import {GenerateEmpty} from "./UI/CustomGenerator/GenerateEmpty"; import PageSplit from "./UI/Base/PageSplit"; import HelpText from "./Customizations/HelpText"; import {TagRendering} from "./Customizations/TagRendering"; import {LayoutConfigJson} from "./Customizations/JSON/LayoutConfigJson"; let layout = GenerateEmpty.createEmptyLayout(); if(window.location.hash.length > 10){ layout = JSON.parse(atob(window.location.hash.substr(1))) as LayoutConfigJson; } const es = new UIEventSource(layout); const encoded = es.map(config => btoa(JSON.stringify(config))); const liveUrl = encoded.map(encoded => `./index.html?userlayout=${es.data.id}#${encoded}`) const iframe = liveUrl.map(url => ``); TagRendering.injectFunction(); const currentSetting = new UIEventSource>(undefined) const generalSettings = new GeneralSettings(es, currentSetting); const languages = generalSettings.languages; // The preview const preview = new Combine([ new VariableUiElement(iframe.stabilized(2500)) ]).SetClass("preview") new TabbedComponent([ { header: "", content: new PageSplit( generalSettings.SetStyle("width: 50vw;"), new Combine([ new HelpText(currentSetting).SetStyle("height:calc(100% - 65vh); width: 100%; display:block; overflow-y: auto"), preview.SetStyle("height:65vh; width:100%; display:block") ]).SetStyle("position:relative; width: 50%;") ) }, { header: "", content: new AllLayersPanel(es, languages) }, { header: "", content: new VariableUiElement(es.map(config => { return JSON.stringify(config, null, 2) .replace(/\n/g, "
") .replace(/ /g, " "); })) }, { header: "", content: new SharePanel(es, liveUrl) } ]).SetClass("main-tabs") .AttachTo("maindiv");