2023-04-02 02:59:20 +02:00
|
|
|
import { Store, UIEventSource } from "../Logic/UIEventSource"
|
2023-03-24 19:21:15 +01:00
|
|
|
import { BBox } from "../Logic/BBox"
|
|
|
|
import { RasterLayerPolygon } from "./RasterLayers"
|
2023-12-15 01:46:01 +01:00
|
|
|
import { B } from "vitest/dist/types-aac763a5"
|
|
|
|
export interface KeyNavigationEvent {
|
|
|
|
date: Date
|
|
|
|
key: "north" | "east" | "south" | "west" | "in" | "out" | "islocked" | "locked" | "unlocked"
|
|
|
|
}
|
2023-03-24 19:21:15 +01:00
|
|
|
export interface MapProperties {
|
|
|
|
readonly location: UIEventSource<{ lon: number; lat: number }>
|
|
|
|
readonly zoom: UIEventSource<number>
|
2023-04-06 01:33:08 +02:00
|
|
|
readonly minzoom: UIEventSource<number>
|
2023-04-21 01:53:24 +02:00
|
|
|
readonly maxzoom: UIEventSource<number>
|
2023-03-28 05:13:48 +02:00
|
|
|
readonly bounds: UIEventSource<BBox>
|
2023-03-24 19:21:15 +01:00
|
|
|
readonly rasterLayer: UIEventSource<RasterLayerPolygon | undefined>
|
|
|
|
readonly maxbounds: UIEventSource<undefined | BBox>
|
|
|
|
readonly allowMoving: UIEventSource<true | boolean>
|
2023-07-18 01:26:04 +02:00
|
|
|
readonly allowRotating: UIEventSource<true | boolean>
|
2023-12-19 22:21:34 +01:00
|
|
|
readonly rotation: UIEventSource<number>
|
2023-04-02 02:59:20 +02:00
|
|
|
readonly lastClickLocation: Store<{ lon: number; lat: number }>
|
2023-03-28 05:13:48 +02:00
|
|
|
readonly allowZooming: UIEventSource<true | boolean>
|
2023-12-15 01:46:01 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Triggered when the user navigated by using the keyboard.
|
|
|
|
* The callback might return 'true' if it wants to be unregistered
|
|
|
|
* @param f
|
|
|
|
*/
|
|
|
|
onKeyNavigationEvent(f: (event: KeyNavigationEvent) => void | boolean): () => void
|
2023-03-24 19:21:15 +01:00
|
|
|
}
|
2023-04-19 03:20:49 +02:00
|
|
|
|
|
|
|
export interface ExportableMap {
|
2023-10-19 16:32:42 +02:00
|
|
|
/**
|
|
|
|
* Export the current map as PNG.
|
|
|
|
* @param markerScale: if given, the markers will be 'markerScale' bigger. This is to use in combination with a supersized canvas to have more pixels and achieve print quality
|
|
|
|
*/
|
|
|
|
exportAsPng(markerScale?: number): Promise<Blob>
|
2023-04-19 03:20:49 +02:00
|
|
|
}
|