UNPKG

declarations

Version:

[![npm version](https://badge.fury.io/js/declarations.svg)](https://www.npmjs.com/package/declarations)

334 lines (270 loc) 6.64 kB
// Type definitions for leaflet-draw 0.2.4 // Project: https://github.com/Leaflet/Leaflet.draw // Definitions by: Matt Guest <https://github.com/matt-guest> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// <reference path="../leaflet/leaflet.d.ts" /> declare namespace L { export interface MapOptions { drawControl?: boolean; } export interface ControlStatic { Draw: Control.DrawStatic; } namespace Control { export interface DrawStatic { new (options?: IDrawConstructorOptions): Draw; } export interface IDrawConstructorOptions { /** * The initial position of the control (one of the map corners). * * Default value: 'topleft' */ position?: string; /** * The options used to configure the draw toolbar. * * Default value: {} */ draw?: DrawOptions; /** * The options used to configure the edit toolbar. * * Default value: false */ edit: EditOptions; } export interface DrawOptions { /** * Polyline draw handler options. Set to false to disable handler. * * Default value: {} */ polyline?: DrawOptions.PolylineOptions; /** * Polygon draw handler options. Set to false to disable handler. * * Default value: {} */ polygon?: DrawOptions.PolygonOptions; /** * Rectangle draw handler options. Set to false to disable handler. * * Default value: {} */ rectangle?: DrawOptions.RectangleOptions; /** * Circle draw handler options. Set to false to disable handler. * * Default value: {} */ circle?: DrawOptions.CircleOptions; /** * Marker draw handler options. Set to false to disable handler. * * Default value: {} */ marker?: DrawOptions.MarkerOptions; } export interface EditOptions { /** * This is the FeatureGroup that stores all editable shapes. * THIS IS REQUIRED FOR THE EDIT TOOLBAR TO WORK * * Default value: null */ featureGroup: FeatureGroup<ILayer>; /** * Edit handler options. Set to false to disable handler. * * Default value: null */ edit?: DrawOptions.EditHandlerOptions; /** * Delete handler options. Set to false to disable handler. * * Default value: null */ remove?: DrawOptions.DeleteHandlerOptions; } export interface Draw extends IControl { } } namespace DrawOptions { export interface PolylineOptions { /** * Determines if line segments can cross. * * Default value: true */ allowIntersection?: boolean; /** * Configuration options for the error that displays if an intersection is detected. * * Default value: See code */ drawError?: any; /** * Distance in pixels between each guide dash. * * Default value: 20 */ guidelineDistance?: number; /** * The options used when drawing the polyline/polygon on the map. * * Default value: See code */ shapeOptions?: L.PolylineOptions; /** * Determines which measurement system (metric or imperial) is used. * * Default value: true */ metric?: boolean; /** * This should be a high number to ensure that you can draw over all other layers on the map. * * Default value: 2000 */ zIndexOffset?: number; /** * Determines if the draw tool remains enabled after drawing a shape. * * Default value: false */ repeatMode?: boolean; } export interface PolygonOptions extends PolylineOptions { /** * Show the area of the drawn polygon in m², ha or km². * The area is only approximate and become less accurate the larger the polygon is. * * Default value: false */ showArea?: boolean; } export interface RectangleOptions { /** * The options used when drawing the rectangle on the map. * * Default value: See code */ shapeOptions?: L.PathOptions; /** * Determines if the draw tool remains enabled after drawing a shape. * * Default value: false */ repeatMode?: boolean; } export interface CircleOptions { /** * The options used when drawing the circle on the map. * * Default value: See code */ shapeOptions?: L.PathOptions; /** * Determines if the draw tool remains enabled after drawing a shape. * * Default value: false */ repeatMode?: boolean; } export interface MarkerOptions { /** * TThe icon displayed when drawing a marker. * * Default value: L.Icon.Default() */ icon?: L.Icon; /** * This should be a high number to ensure that you can draw over all other layers on the map. * * Default value: 2000 */ zIndexOffset?: number; /** * Determines if the draw tool remains enabled after drawing a shape. * * Default value: false */ repeatMode?: boolean; } export interface EditHandlerOptions { /** * The path options for how the layers will look while in edit mode. * If this is set to null the editable path options will not be set. * * Default value: See code */ selectedPathOptions?: L.PathOptions; } export interface DeleteHandlerOptions { } } namespace DrawEvents { export interface Created { /** * Layer that was just created. */ layer: ILayer; /** * The type of layer this is. One of: polyline, polygon, rectangle, circle, marker. */ layerType: string; } export interface Edited { /** * List of all layers just edited on the map. */ layers: LayerGroup<ILayer>; } /** * Triggered when layers have been removed (and saved) from the FeatureGroup. */ export interface Deleted { /** * List of all layers just removed from the map. */ layers: LayerGroup<ILayer>; } export interface DrawStart { /** * The type of layer this is. One of: polyline, polygon, rectangle, circle, marker */ layerType: string; } export interface DrawStop { /** * The type of layer this is. One of: polyline, polygon, rectangle, circle, marker */ layerType: string; } export interface EditStart { /** * The type of edit this is. One of: edit */ handler: string; } export interface EditStop { /** * The type of edit this is. One of: edit */ handler: string; } export interface DeleteStart { /** * The type of edit this is. One of: remove */ handler: string; } export interface DeleteStop { /** * The type of edit this is. One of: remove */ handler: string; } } }