forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 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") |