import type { Map } from "leaflet"; import L from "leaflet"; import "leaflet/dist/leaflet.css"; import NoteContextAwareWidget from "./note_context_aware_widget.js"; const TPL = /*html*/`\
`; export type Leaflet = typeof L; export type InitCallback = (L: Leaflet) => void; export default class GeoMapWidget extends NoteContextAwareWidget { map?: Map; $container!: JQuery; private initCallback?: InitCallback; constructor(widgetMode: "type", initCallback?: InitCallback) { super(); this.initCallback = initCallback; } doRender() { this.$widget = $(TPL); this.$container = this.$widget.find(".geo-map-container"); const map = L.map(this.$container[0], { worldCopyJump: true }); this.map = map; if (this.initCallback) { this.initCallback(L); } L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", { attribution: '© OpenStreetMap contributors', detectRetina: true }).addTo(map); } }