forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			32 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 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";
 | |
| 
 | |
| export class ConfirmProcess<T> extends Combine implements FlowStep<T> {
 | |
| 
 | |
|     public IsValid: UIEventSource<boolean>
 | |
|     public Value: UIEventSource<T>
 | |
| 
 | |
|     constructor(v: T) {
 | |
| 
 | |
|         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
 | |
|         ]);
 | |
|         this.SetClass("link-underline")
 | |
|         this.IsValid = licenseClear.GetValue().map(selected => toConfirm.length == selected.length)
 | |
|         this.Value = new UIEventSource<T>(v)
 | |
|     }
 | |
| } |