diff --git a/UI/SpecialVisualizations.ts b/UI/SpecialVisualizations.ts index edc6f730bf..7927e03b51 100644 --- a/UI/SpecialVisualizations.ts +++ b/UI/SpecialVisualizations.ts @@ -22,9 +22,8 @@ import Title from "./Base/Title"; import Table from "./Base/Table"; import Histogram from "./BigComponents/Histogram"; import Loc from "../Models/Loc"; -import ShowDataLayer from "./ShowDataLayer"; -import Minimap from "./Base/Minimap"; import {Utils} from "../Utils"; +import BaseLayer from "../Models/BaseLayer"; export default class SpecialVisualizations { @@ -129,7 +128,6 @@ export default class SpecialVisualizations { return features }) const properties = tagSource.data; - let zoom = 18 if (args[0]) { const parsed = Number(args[0]) @@ -137,7 +135,7 @@ export default class SpecialVisualizations { zoom = parsed; } } - const minimap = new Minimap( + const minimap = SpecialVisualizations.constructMiniMap( { background: state.backgroundLayer, location: new UIEventSource({ @@ -149,9 +147,9 @@ export default class SpecialVisualizations { } ) - new ShowDataLayer( + SpecialVisualizations.constructShowDataLayer( featuresToShow, - minimap.leafletMap, + minimap["leafletMap"], State.state.layoutToUse, false, true @@ -160,7 +158,6 @@ export default class SpecialVisualizations { minimap.SetStyle("overflow: hidden; pointer-events: none;") return minimap; - } }, { @@ -366,6 +363,12 @@ export default class SpecialVisualizations { ] static HelpMessage: BaseUIElement = SpecialVisualizations.GenHelpMessage(); + static constructMiniMap: (options?: { + background?: UIEventSource, + location?: UIEventSource, + allowMoving?: boolean + }) => BaseUIElement; + static constructShowDataLayer: (features: UIEventSource<{ feature: any; freshness: Date }[]>, leafletMap: UIEventSource, layoutToUse: UIEventSource, enablePopups?: boolean, zoomToFeatures?: boolean) => any; private static GenHelpMessage() { diff --git a/index.ts b/index.ts index 83abe95d48..ccba3d5ac0 100644 --- a/index.ts +++ b/index.ts @@ -16,10 +16,19 @@ import CountryCoder from "latlon2country" import SimpleMetaTagger from "./Logic/SimpleMetaTagger"; import Minimap from "./UI/Base/Minimap"; import DirectionInput from "./UI/Input/DirectionInput"; +import SpecialVisualizations from "./UI/SpecialVisualizations"; +import ShowDataLayer from "./UI/ShowDataLayer"; +import * as L from "leaflet"; // Workaround for a stupid crash: inject some functions which would give stupid circular dependencies or crash the other nodejs scripts SimpleMetaTagger.coder = new CountryCoder("https://pietervdvn.github.io/latlon2country/"); DirectionInput.constructMinimap = options => new Minimap(options) +SpecialVisualizations.constructMiniMap = options => new Minimap(options) +SpecialVisualizations.constructShowDataLayer = (features: UIEventSource<{ feature: any, freshness: Date }[]>, + leafletMap: UIEventSource, + layoutToUse: UIEventSource, + enablePopups = true, + zoomToFeatures = false) => new ShowDataLayer(features, leafletMap, layoutToUse, enablePopups, zoomToFeatures) let defaultLayout = "" // --------------------- Special actions based on the parameters -----------------