forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import Combine from "../Base/Combine";
 | 
						|
import {FlowStep} from "./FlowStep";
 | 
						|
import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
import Link from "../Base/Link";
 | 
						|
import {FixedUiElement} from "../Base/FixedUiElement";
 | 
						|
import CheckBoxes from "../Input/Checkboxes";
 | 
						|
import Title from "../Base/Title";
 | 
						|
import {SubtleButton} from "../Base/SubtleButton";
 | 
						|
import Svg from "../../Svg";
 | 
						|
import {Utils} from "../../Utils";
 | 
						|
 | 
						|
export class ConfirmProcess extends Combine implements FlowStep<{ features: any[], theme: string }> {
 | 
						|
 | 
						|
    public IsValid: UIEventSource<boolean>
 | 
						|
    public Value: UIEventSource<{ features: any[],theme: string  }>
 | 
						|
 | 
						|
    constructor(v: { features: any[], theme: string  }) {
 | 
						|
 | 
						|
        const toConfirm = [
 | 
						|
            new Combine(["I have read the ", new Link("import guidelines on the OSM wiki", "https://wiki.openstreetmap.org/wiki/Import_guidelines", true)]),
 | 
						|
            new FixedUiElement("I did contact the (local) community about this import"),
 | 
						|
            new FixedUiElement("The license of the data to import allows it to be imported into OSM. They are allowed to be redistributed commercially, with only minimal attribution"),
 | 
						|
            new FixedUiElement("The process is documented on the OSM-wiki (you'll need this link later)")
 | 
						|
        ];
 | 
						|
 | 
						|
        const licenseClear = new CheckBoxes(toConfirm)
 | 
						|
        super([
 | 
						|
            new Title("Did you go through the import process?"),
 | 
						|
            licenseClear,
 | 
						|
            new FixedUiElement("Alternatively, you can download the dataset to import directly"),
 | 
						|
            new SubtleButton(Svg.download_svg(), "Download geojson").OnClickWithLoading("Preparing your download", 
 | 
						|
                async ( ) => {
 | 
						|
                const geojson = {
 | 
						|
                    type:"FeatureCollection",
 | 
						|
                    features: v.features
 | 
						|
                }
 | 
						|
                Utils.offerContentsAsDownloadableFile(JSON.stringify(geojson), "prepared_import_"+v.theme+".geojson",{
 | 
						|
                    mimetype: "application/vnd.geo+json"
 | 
						|
                })
 | 
						|
            })
 | 
						|
        ]);
 | 
						|
        this.SetClass("link-underline")
 | 
						|
        this.IsValid = licenseClear.GetValue().map(selected => toConfirm.length == selected.length)
 | 
						|
        this.Value = new UIEventSource<{ features: any[], theme: string }>(v)
 | 
						|
    }
 | 
						|
} |