forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			958 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			958 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import IntValidator from "./IntValidator"
 | 
						|
 | 
						|
export default class DirectionValidator extends IntValidator {
 | 
						|
    constructor() {
 | 
						|
        super(
 | 
						|
            "direction",
 | 
						|
            [
 | 
						|
                "A geographical direction, in degrees. 0° is north, 90° is east, ... Will return a value between 0 (incl) and 360 (excl).",
 | 
						|
                "### Input helper",
 | 
						|
                "This element has an input helper showing a map and 'viewport' indicating the direction. By default, this map is zoomed to zoomlevel 17, but this can be changed with the first argument",
 | 
						|
            ].join("\n\n")
 | 
						|
        )
 | 
						|
    }
 | 
						|
 | 
						|
    isValid(str): boolean {
 | 
						|
        if (str.endsWith("°")) {
 | 
						|
            str = str.substring(0, str.length - 1)
 | 
						|
        }
 | 
						|
        return super.isValid(str)
 | 
						|
    }
 | 
						|
 | 
						|
    reformat(str): string {
 | 
						|
        if (str.endsWith("°")) {
 | 
						|
            str = str.substring(0, str.length - 1)
 | 
						|
        }
 | 
						|
        const n = Number(str) % 360
 | 
						|
        return "" + n
 | 
						|
    }
 | 
						|
}
 |