import { Icon, IconOptions } from "leaflet"; import { LeafletArgs, PlayBackEvent } from "../EventInterface"; export namespace ChangeIcon { export const NAME = 'CHANGE_ICON'; export interface EventArgs { id:string; from:IconOptions | 'default'; to:IconOptions | 'default'; } export class Event implements PlayBackEvent{ name: string = NAME; do(leafletArgs: LeafletArgs, args: EventArgs): void { this.changeIcon(leafletArgs,args,false); } undo(leafletArgs: LeafletArgs, args: EventArgs): void { this.changeIcon(leafletArgs,args,true); } private changeIcon(leafletArgs: LeafletArgs, args: EventArgs,from:boolean) { const ico = from ? args.from : args.to; if(ico === 'default') { leafletArgs.playback.getMarkerById(args.id)?.setIcon(new Icon.Default()); } else { leafletArgs.playback.getMarkerById(args.id)?.setIcon(new Icon(ico)); } } } }