UNPKG

terra-draw

Version:

Frictionless map drawing across mapping provider

103 lines (102 loc) 3.78 kB
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor, Snapping } from "../../common"; import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, PointerEvents } from "../base.mode"; import { BehaviorConfig } from "../base.behavior"; import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store"; type TerraDrawPolygonModeKeyEvents = { cancel?: KeyboardEvent["key"] | null; finish?: KeyboardEvent["key"] | null; }; type PolygonStyling = { fillColor: HexColorStyling; outlineColor: HexColorStyling; outlineWidth: NumericStyling; fillOpacity: NumericStyling; closingPointWidth: NumericStyling; closingPointColor: HexColorStyling; closingPointOutlineWidth: NumericStyling; closingPointOutlineColor: HexColorStyling; snappingPointWidth: NumericStyling; snappingPointColor: HexColorStyling; snappingPointOutlineWidth: NumericStyling; snappingPointOutlineColor: HexColorStyling; editedPointWidth: NumericStyling; editedPointColor: HexColorStyling; editedPointOutlineWidth: NumericStyling; editedPointOutlineColor: HexColorStyling; coordinatePointWidth: NumericStyling; coordinatePointColor: HexColorStyling; coordinatePointOutlineWidth: NumericStyling; coordinatePointOutlineColor: HexColorStyling; }; interface Cursors { start?: Cursor; close?: Cursor; dragStart?: Cursor; dragEnd?: Cursor; } interface TerraDrawPolygonModeOptions<T extends CustomStyling> extends BaseModeOptions<T> { snapping?: Snapping; pointerDistance?: number; keyEvents?: TerraDrawPolygonModeKeyEvents | null; pointerEvents?: PointerEvents; cursors?: Cursors; editable?: boolean; showCoordinatePoints?: boolean; } export declare class TerraDrawPolygonMode extends TerraDrawBaseDrawMode<PolygonStyling> { mode: "polygon"; private currentCoordinate; private currentId; private keyEvents; private cursors; private mouseMove; private showCoordinatePoints; private snapping; private snappedPointId; private editable; private editedFeatureId; private editedFeatureCoordinateIndex; private editedSnapType; private editedInsertIndex; private editedPointId; private coordinatePoints; private lineSnapping; private coordinateSnapping; private pixelDistance; private closingPoints; private clickBoundingBox; constructor(options?: TerraDrawPolygonModeOptions<PolygonStyling>); updateOptions(options?: TerraDrawPolygonModeOptions<PolygonStyling>): void; private close; /** @internal */ registerBehaviors(config: BehaviorConfig): void; /** @internal */ start(): void; /** @internal */ stop(): void; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; private updatePolygonGeometry; private snapCoordinate; private polygonFilter; private onRightClick; private onLeftClick; /** @internal */ onClick(event: TerraDrawMouseEvent): void; /** @internal */ onKeyUp(event: TerraDrawKeyboardEvent): void; /** @internal */ onKeyDown(): void; onDragStart(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDrag(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ onDragEnd(event: TerraDrawMouseEvent, setMapDraggability: (enabled: boolean) => void): void; /** @internal */ cleanUp(): void; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; afterFeatureAdded(feature: GeoJSONStoreFeatures): void; validateFeature(feature: unknown): StoreValidation; } export {};