115 lines
3.1 KiB
TypeScript
115 lines
3.1 KiB
TypeScript
import Leaflet, {Marker} from 'leaflet';
|
|
|
|
export interface BouncingOptions {
|
|
|
|
/**
|
|
* How high marker can bounce (px)
|
|
*/
|
|
bounceHeight?: number;
|
|
|
|
/**
|
|
* How much marker can contract (px)
|
|
*/
|
|
contractHeight?: number;
|
|
|
|
/**
|
|
* Bouncing speed coefficient
|
|
*/
|
|
bounceSpeed?: number;
|
|
|
|
/**
|
|
* Contracting speed coefficient
|
|
*/
|
|
contractSpeed?: number;
|
|
|
|
/**
|
|
* Shadow inclination angle(radians); null to cancel shadow movement
|
|
*/
|
|
shadowAngle?: number;
|
|
|
|
/**
|
|
* Activate contract animation
|
|
*/
|
|
elastic?: boolean;
|
|
|
|
/**
|
|
* Many markers can bounce in the same time
|
|
*/
|
|
exclusive?: boolean;
|
|
|
|
/**
|
|
* If true, when marker stops, it does not execute animation until its end, but instead stops
|
|
* abruptly.
|
|
*/
|
|
immediateStop?: boolean;
|
|
}
|
|
|
|
export class BouncingMarker extends Marker {
|
|
|
|
/**
|
|
* Registers options of bouncing animation for this marker. After registration of options for
|
|
* this marker, it will ignore changes of default options. Function automatically recalculates
|
|
* animation steps and delays.
|
|
*
|
|
* @param options {BouncingOptions} options object
|
|
* @return {Marker} this marker
|
|
*/
|
|
setBouncingOptions(options: BouncingOptions);
|
|
|
|
/**
|
|
* Returns true if this marker is bouncing. If this marker is not bouncing returns false.
|
|
* @return {boolean} true if marker is bouncing, false if not
|
|
*/
|
|
isBouncing(): boolean;
|
|
|
|
/**
|
|
* Starts bouncing of this marker.
|
|
* @param times {number|null} number of times the marker must to bounce
|
|
* @return {Marker} this marker
|
|
*/
|
|
bounce(times?: number);
|
|
|
|
/**
|
|
* Stops bouncing of this marker.
|
|
* Note: unless 'immediate' flag is set to true, by the call to this method or in marker options,
|
|
* the bouncing will not stop immediately after the call of this method. Instead, the animation
|
|
* is executed until marker returns to its original position and takes its full size.
|
|
*
|
|
* @param immediate {boolean} if true, marker stop to bounce immediately, without waiting
|
|
* animation to end
|
|
* @return {Marker} this marker
|
|
*/
|
|
stopBouncing(immediate?: boolean);
|
|
|
|
/**
|
|
* Starts/stops bouncing of this marker.
|
|
* @return {Marker} marker
|
|
*/
|
|
toggleBouncing();
|
|
}
|
|
|
|
export type MarkerExt = (typeof Marker) & {
|
|
|
|
/**
|
|
* Registers default options of bouncing animation.
|
|
* @param options {BouncingOptions|object} object with options
|
|
*/
|
|
setBouncingOptions(options: BouncingOptions);
|
|
|
|
/**
|
|
* Returns array of currently bouncing markers.
|
|
* @return {Marker[]} array of bouncing markers
|
|
*/
|
|
getBouncingMarkers(): BouncingMarker[];
|
|
|
|
/**
|
|
* Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers.
|
|
*
|
|
* @param immediate {boolean} if true, markers stop to bounce immediately, without waiting
|
|
* animation to end
|
|
*/
|
|
stopAllBouncingMarkers(immediate?: boolean);
|
|
}
|
|
|
|
export default function SmoothMarkerBouncing(L: Leaflet): Leaflet;
|