2020-06-27 03:06:51 +02:00
// The message that should be shown at the center of the screen
2020-06-24 00:35:19 +02:00
import { UIEventSource } from "./UI/UIEventSource" ;
import { UIElement } from "./UI/UIElement" ;
2020-06-27 03:06:51 +02:00
import { ElementStorage } from "./Logic/ElementStorage" ;
import { OsmConnection } from "./Logic/OsmConnection" ;
import { Changes } from "./Logic/Changes" ;
import { Basemap } from "./Logic/Basemap" ;
import { KnownSet } from "./Layers/KnownSet" ;
import { Overpass } from "./Logic/Overpass" ;
import { FeatureInfoBox } from "./UI/FeatureInfoBox" ;
import { TagMapping , TagMappingOptions } from "./UI/TagMapping" ;
import { CommonTagMappings } from "./Layers/CommonTagMappings" ;
import { ImageCarousel } from "./UI/Image/ImageCarousel" ;
import { WikimediaImage } from "./UI/Image/WikimediaImage" ;
2020-06-28 00:06:23 +02:00
import { OsmImageUploadHandler } from "./Logic/OsmImageUploadHandler" ;
import { DropDownUI } from "./UI/DropDownUI" ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const centerMessage = new UIEventSource < string > ( "" ) ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const dryRun = true ;
// If you have a testfile somewhere, enable this to spoof overpass
// This should be hosted independantly, e.g. with `cd assets; webfsd -p 8080` + a CORS plugin to disable cors rules
Overpass . testUrl = "http://127.0.0.1:8080/test.json" ;
// The countdown: if set to e.g. ten, it'll start counting down. When reaching zero, changes will be saved. NB: this is implemented later, not in the eventSource
const secondsTillChangesAreSaved = new UIEventSource < number > ( 0 ) ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const leftMessage = new UIEventSource < ( ) = > UIElement > ( undefined ) ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const selectedElement = new UIEventSource < any > ( undefined ) ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const questSetToRender = KnownSet . groen ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
const locationControl = new UIEventSource ( {
zoom : questSetToRender.startzoom ,
lat : questSetToRender.startLat ,
lon : questSetToRender.startLon
} ) ;
2020-06-24 00:35:19 +02:00
2020-06-27 03:06:51 +02:00
// ----------------- Prepare the important objects -----------------
2020-06-25 03:39:31 +02:00
2020-06-27 03:06:51 +02:00
const saveTimeout = 5000 ; // After this many milliseconds without changes, saves are sent of to OSM
const allElements = new ElementStorage ( ) ;
const osmConnection = new OsmConnection ( dryRun ) ;
const changes = new Changes (
"Beantwoorden van vragen met MapComplete voor vragenset #" + questSetToRender . name ,
osmConnection , allElements , centerMessage ) ;
2020-06-25 03:39:31 +02:00
2020-06-27 03:06:51 +02:00
const layer = questSetToRender . layers [ 0 ] ;
const tags = {
id : "way/123" ,
// access: "yes",
barrier : "fence" ,
curator : "Arnout Zwaenepoel" ,
description : "Heide en heischraal landschap met landduin en grote soortenverscheidenheid" ,
dog : "no" ,
email : "arnoutenregine@skynet.be" ,
image : "https://natuurpuntbrugge.be/wp-content/uploads/2017/05/Schobbejakshoogte-schapen-PDG-1024x768.jpg" ,
leisure : "nature_reserve" ,
name : "Schobbejakshoogte" ,
operator : "Natuurpunt Brugge" ,
phone : "+32 50 82 26 97" ,
website : "https://natuurpuntbrugge.be/schobbejakshoogte/" ,
2020-06-28 00:06:23 +02:00
// wikidata: "Q4499623",
wikipedia : "nl:Schobbejakshoogte" ,
2020-06-27 03:06:51 +02:00
} ;
const tagsES = allElements . addElement ( { properties : tags } ) ;
2020-06-28 00:06:23 +02:00
/ *
new OsmImageUploadHandler ( tagsES , osmConnection . userDetails , changes )
. getUI ( ) . AttachTo ( "maindiv" ) ;
/*/
new FeatureInfoBox (
tagsES ,
layer . elementsToShow ,
layer . questions ,
changes ,
osmConnection . userDetails
) . AttachTo ( "maindiv" ) . Activate ( ) ;
//*/