mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
add type definitions for leaflet.pm
This commit is contained in:
parent
6c3cb891e2
commit
7673aba8bd
96
leaflet.pm/index.d.ts
vendored
Normal file
96
leaflet.pm/index.d.ts
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
// Type definitions for leaflet.pm 0.13
|
||||
// Project: https://github.com/codeofsumit/leaflet.pm
|
||||
// Definitions by: Thomas Kleinke <https://github.com/tkleinke>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
|
||||
/// <reference types="leaflet" />
|
||||
|
||||
declare namespace L {
|
||||
|
||||
export interface Map {
|
||||
pm: PM.Map;
|
||||
}
|
||||
|
||||
export interface Polygon {
|
||||
pm: PM.Edit.Line;
|
||||
}
|
||||
|
||||
export interface Polyline {
|
||||
pm: PM.Edit.Line;
|
||||
}
|
||||
|
||||
export interface Marker {
|
||||
pm: PM.Edit.Marker;
|
||||
}
|
||||
|
||||
export interface LayerGroup {
|
||||
pm: PM.Edit.LayerGroup;
|
||||
}
|
||||
|
||||
export namespace PM {
|
||||
|
||||
export interface Map {
|
||||
addControls(options?: PM.ToolbarOptions): void;
|
||||
enableDraw(shape: string, options?: PM.DrawOptions): void;
|
||||
disableDraw(shape: string): void;
|
||||
setPathOptions(options: L.PathOptions): void;
|
||||
toggleRemoval(enabled: boolean): void;
|
||||
globalEditEnabled(): boolean;
|
||||
toggleGlobalEditMode(options?: PM.EditOptions): void;
|
||||
|
||||
Draw: PM.Draw;
|
||||
}
|
||||
|
||||
export interface Draw {
|
||||
getShapes(): string[];
|
||||
}
|
||||
|
||||
export interface ToolbarOptions {
|
||||
position?: string; // topleft | topright | bottomleft | bottomright
|
||||
drawMarker?: boolean;
|
||||
drawPolygon?: boolean;
|
||||
drawPolyline?: boolean;
|
||||
editPolygon?: boolean;
|
||||
deleteLayer?: boolean;
|
||||
}
|
||||
|
||||
export interface DrawOptions {
|
||||
templineStyle?: L.PathOptions;
|
||||
hintlineStyle?: L.PathOptions;
|
||||
pathOptions?: L.PathOptions;
|
||||
}
|
||||
|
||||
export interface EditOptions {
|
||||
draggable?: boolean;
|
||||
snappable?: boolean;
|
||||
snapDistance?: number;
|
||||
}
|
||||
|
||||
export namespace Edit {
|
||||
|
||||
export interface Line {
|
||||
enable(options?: EditOptions): void;
|
||||
disable(poly?: L.Layer): void;
|
||||
toggleEdit(options?: EditOptions): void;
|
||||
enabled(): boolean;
|
||||
}
|
||||
|
||||
export interface Marker {
|
||||
enable(options?: EditOptions): void;
|
||||
disable(): void;
|
||||
toggleEdit(options?: EditOptions): void;
|
||||
enabled(): boolean;
|
||||
}
|
||||
|
||||
export interface LayerGroup {
|
||||
enable(options?: EditOptions): void;
|
||||
disable(): void;
|
||||
toggleEdit(options?: EditOptions): void;
|
||||
enabled(): boolean;
|
||||
findLayers(): L.Layer[];
|
||||
dragging(): boolean;
|
||||
getOptions(): EditOptions;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
68
leaflet.pm/leaflet.pm-tests.ts
Normal file
68
leaflet.pm/leaflet.pm-tests.ts
Normal file
@ -0,0 +1,68 @@
|
||||
var toolbarOptions: L.PM.ToolbarOptions = {
|
||||
position: 'topleft',
|
||||
drawMarker: true,
|
||||
drawPolygon: true,
|
||||
drawPolyline: true,
|
||||
editPolygon: true,
|
||||
deleteLayer: true
|
||||
};
|
||||
|
||||
var drawOptions: L.PM.DrawOptions = {
|
||||
templineStyle: {
|
||||
color: 'red'
|
||||
},
|
||||
hintlineStyle: {
|
||||
color: 'red',
|
||||
dashArray: '5, 5'
|
||||
}
|
||||
};
|
||||
|
||||
var editOptions: L.PM.EditOptions = {
|
||||
draggable: true,
|
||||
snappable: true,
|
||||
snapDistance: 30
|
||||
};
|
||||
|
||||
var pathOptions: L.PathOptions = {
|
||||
color: 'orange',
|
||||
fillColor: 'green',
|
||||
fillOpacity: 0.5
|
||||
};
|
||||
|
||||
var map: L.Map = L.map('map-element');
|
||||
map.pm.addControls(toolbarOptions);
|
||||
map.pm.enableDraw('Poly', drawOptions);
|
||||
map.pm.disableDraw('Poly');
|
||||
map.pm.setPathOptions(pathOptions);
|
||||
map.pm.toggleRemoval(true);
|
||||
var enabled: boolean = map.pm.globalEditEnabled();
|
||||
map.pm.toggleGlobalEditMode(editOptions);
|
||||
|
||||
var shapes: string[] = map.pm.Draw.getShapes();
|
||||
|
||||
var polygon: L.Polygon = L.polygon([ [ 1.0, 1.0], [ 2.0, 1.0], [ 1.0, 2.0] ]);
|
||||
polygon.pm.enable(editOptions);
|
||||
polygon.pm.disable();
|
||||
polygon.pm.toggleEdit(editOptions);
|
||||
enabled = polygon.pm.enabled();
|
||||
|
||||
var polyline: L.Polyline = L.polyline([ [ 1.0, 1.0], [ 2.0, 1.0], [ 1.0, 2.0] ]);
|
||||
polyline.pm.enable(editOptions);
|
||||
polyline.pm.disable();
|
||||
polyline.pm.toggleEdit(editOptions);
|
||||
enabled = polyline.pm.enabled();
|
||||
|
||||
var marker: L.Marker = L.marker([ 3.0, 3.0 ]);
|
||||
marker.pm.enable(editOptions);
|
||||
marker.pm.disable();
|
||||
marker.pm.toggleEdit(editOptions);
|
||||
enabled = marker.pm.enabled();
|
||||
|
||||
var layerGroup: L.LayerGroup = L.layerGroup([ polygon, polyline, marker ]);
|
||||
layerGroup.pm.enable(editOptions);
|
||||
layerGroup.pm.disable();
|
||||
layerGroup.pm.toggleEdit(editOptions);
|
||||
enabled = layerGroup.pm.enabled();
|
||||
var layers: L.Layer[] = layerGroup.pm.findLayers();
|
||||
var dragging: boolean = layerGroup.pm.dragging();
|
||||
var options: L.PM.EditOptions = layerGroup.pm.getOptions();
|
||||
20
leaflet.pm/tsconfig.json
Normal file
20
leaflet.pm/tsconfig.json
Normal file
@ -0,0 +1,20 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"target": "es6",
|
||||
"noImplicitAny": true,
|
||||
"noImplicitThis": true,
|
||||
"strictNullChecks": true,
|
||||
"baseUrl": "../",
|
||||
"typeRoots": [
|
||||
"../"
|
||||
],
|
||||
"types": [],
|
||||
"noEmit": true,
|
||||
"forceConsistentCasingInFileNames": true
|
||||
},
|
||||
"files": [
|
||||
"index.d.ts",
|
||||
"leaflet.pm-tests.ts"
|
||||
]
|
||||
}
|
||||
1
leaflet.pm/tslint.json
Normal file
1
leaflet.pm/tslint.json
Normal file
@ -0,0 +1 @@
|
||||
{ "extends": "../tslint.json" }
|
||||
Loading…
Reference in New Issue
Block a user