import Combine from "../Base/Combine"; import Toggle from "../Input/Toggle"; import LanguagePicker from "../LanguagePicker"; import UserRelatedState from "../../Logic/State/UserRelatedState"; import BaseUIElement from "../BaseUIElement"; import MinimapImplementation from "../Base/MinimapImplementation"; import Translations from "../i18n/Translations"; import {FlowPanelFactory} from "./FlowStep"; import {RequestFile} from "./RequestFile"; import {PreviewAttributesPanel} from "./PreviewPanel"; import ConflationChecker from "./ConflationChecker"; import {AskMetadata} from "./AskMetadata"; import {ConfirmProcess} from "./ConfirmProcess"; import {CreateNotes} from "./CreateNotes"; import {VariableUiElement} from "../Base/VariableUIElement"; import List from "../Base/List"; import {CompareToAlreadyExistingNotes} from "./CompareToAlreadyExistingNotes"; import Introdution from "./Introdution"; import LoginToImport from "./LoginToImport"; import {MapPreview} from "./MapPreview"; import LeftIndex from "../Base/LeftIndex"; import {SubtleButton} from "../Base/SubtleButton"; import SelectTheme from "./SelectTheme"; export default class ImportHelperGui extends LeftIndex { constructor() { const state = new UserRelatedState(undefined) const t = Translations.t.importHelper; const {flow, furthestStep, titles} = FlowPanelFactory .start(t.introduction, new Introdution()) .then(t.login, _ => new LoginToImport(state)) .then(t.selectFile, _ => new RequestFile()) .then(t.previewAttributes, geojson => new PreviewAttributesPanel(state, geojson)) .then(t.mapPreview, geojson => new MapPreview(state, geojson)) .then(t.selectTheme, v => new SelectTheme(v)) .then(t.compareToAlreadyExistingNotes, v => new CompareToAlreadyExistingNotes(state, v)) .then(t.conflationChecker, v => new ConflationChecker(state, v)) .then(t.confirmProcess, v => new ConfirmProcess(v)) .then(t.askMetadata, (v) => new AskMetadata(v)) .finish(t.createNotes.title, v => new CreateNotes(state, v)); const toc = new List( titles.map((title, i) => new VariableUiElement(furthestStep.map(currentStep => { if (i > currentStep) { return new Combine([title]).SetClass("subtle"); } if (i == currentStep) { return new Combine([title]).SetClass("font-bold"); } if (i < currentStep) { return title } }))) , true) const leftContents: BaseUIElement[] = [ new SubtleButton(undefined, t.gotoImportViewer, { url: "import_viewer.html" }), toc, new Toggle(t.testMode.SetClass("block alert"), undefined, state.featureSwitchIsTesting), new LanguagePicker(Translations.t.importHelper.title.SupportedLanguages(), "")?.SetClass("mt-4 self-end flex-col"), ].map(el => el?.SetClass("pl-4")) super( leftContents, flow) } } MinimapImplementation.initialize() new ImportHelperGui().AttachTo("main")