UNPKG

terra-draw

Version:

Frictionless map drawing across mapping provider

93 lines (92 loc) 3.34 kB
import { TerraDrawAdapterStyling, TerraDrawKeyboardEvent, TerraDrawMouseEvent, HexColorStyling, NumericStyling, Cursor, Snapping } from "../../common"; import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode"; import { BehaviorConfig } from "../base.behavior"; import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store"; type TerraDrawPolyLineModeKeyEvents = { cancel: KeyboardEvent["key"] | null; finish: KeyboardEvent["key"] | null; }; type PolyLineStyling = { lineStringWidth: NumericStyling; lineStringColor: HexColorStyling; lineStringOpacity: NumericStyling; polygonFillColor: HexColorStyling; polygonFillOpacity: NumericStyling; polygonOutlineColor: HexColorStyling; polygonOutlineWidth: NumericStyling; polygonOutlineOpacity: NumericStyling; closingPointColor: HexColorStyling; closingPointWidth: NumericStyling; closingPointOpacity: NumericStyling; closingPointOutlineColor: HexColorStyling; closingPointOutlineWidth: NumericStyling; closingPointOutlineOpacity: NumericStyling; snappingPointColor: HexColorStyling; snappingPointWidth: NumericStyling; snappingPointOpacity: NumericStyling; snappingPointOutlineColor: HexColorStyling; snappingPointOutlineWidth: NumericStyling; snappingPointOutlineOpacity: NumericStyling; }; interface Cursors { start?: Cursor; close?: Cursor; } interface TerraDrawPolyLineModeOptions<T extends CustomStyling> extends BaseModeOptions<T> { snapping?: Snapping; keyEvents?: TerraDrawPolyLineModeKeyEvents | null; cursors?: Cursors; } export declare class TerraDrawPolyLineMode extends TerraDrawBaseDrawMode<PolyLineStyling> { mode: string; private currentCoordinate; private currentId; private keyEvents; private cursors; private mouseMove; private snapping; private snappedPointId; private mutateFeature; private readFeature; private pixelDistance; private closingPoints; private clickBoundingBox; private lineSnapping; private coordinateSnapping; constructor(options?: TerraDrawPolyLineModeOptions<PolyLineStyling>); updateOptions(options?: ModeUpdateOptions<TerraDrawPolyLineModeOptions<PolyLineStyling>>): void; /** @internal */ registerBehaviors(config: BehaviorConfig): void; /** @internal */ start(): void; /** @internal */ stop(): void; private finishLine; private toPolygonLikeCoordinates; private closeAsPolygon; /** @internal */ onMouseMove(event: TerraDrawMouseEvent): void; private onLeftClick; /** @internal */ onClick(event: TerraDrawMouseEvent): void; /** @internal */ onKeyUp(event: TerraDrawKeyboardEvent): void; /** @internal */ onKeyDown(): void; /** @internal */ onDragStart(): void; /** @internal */ onDrag(): void; /** @internal */ onDragEnd(): void; /** @internal */ cleanUp(): void; private updateSnappedCoordinate; private snapCoordinate; /** @internal */ styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling; afterFeatureAdded(_feature: GeoJSONStoreFeatures): void; afterFeatureUpdated(feature: GeoJSONStoreFeatures): void; validateFeature(feature: unknown): StoreValidation; } export {};