import Combine from "../Base/Combine" import Toggle from "../Input/Toggle" import MapControlButton from "../MapControlButton" import GeoLocationHandler from "../../Logic/Actors/GeoLocationHandler" import Svg from "../../Svg" import MapState from "../../Logic/State/MapState" import FeaturePipeline from "../../Logic/FeatureSource/FeaturePipeline" import { Utils } from "../../Utils" import { TagUtils } from "../../Logic/Tags/TagUtils" import { BBox } from "../../Logic/BBox" import { OsmFeature } from "../../Models/OsmFeature" import LevelSelector from "./LevelSelector" export default class RightControls extends Combine { constructor(state: MapState & { featurePipeline: FeaturePipeline }) { const geolocatioHandler = new GeoLocationHandler(state) const geolocationButton = new Toggle( new MapControlButton(geolocatioHandler, { dontStyle: true, }), undefined, state.featureSwitchGeolocation ) const plus = new MapControlButton(Svg.plus_svg()).onClick(() => { state.locationControl.data.zoom++ state.locationControl.ping() }) const min = new MapControlButton(Svg.min_svg()).onClick(() => { state.locationControl.data.zoom-- state.locationControl.ping() }) const levelSelector = new LevelSelector(state) super( [levelSelector, plus, min, geolocationButton].map((el) => el.SetClass("m-0.5 md:m-1")) ) this.SetClass("flex flex-col items-center") } }