terra-draw
Version:
Frictionless map drawing across mapping provider
63 lines (62 loc) • 2.29 kB
TypeScript
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
import { BaseModeOptions, CustomStyling, TerraDrawBaseDrawMode } from "../base.mode";
import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
type TerraDrawFreehandLineStringModeKeyEvents = {
cancel: KeyboardEvent["key"] | null;
finish: KeyboardEvent["key"] | null;
};
type FreehandLineStringStyling = {
lineStringWidth: NumericStyling;
lineStringColor: HexColorStyling;
closingPointColor: HexColorStyling;
closingPointWidth: NumericStyling;
closingPointOutlineColor: HexColorStyling;
closingPointOutlineWidth: NumericStyling;
};
interface Cursors {
start?: Cursor;
close?: Cursor;
}
interface TerraDrawFreehandLineStringModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
minDistance?: number;
keyEvents?: TerraDrawFreehandLineStringModeKeyEvents | null;
cursors?: Cursors;
}
export declare class TerraDrawFreehandLineStringMode extends TerraDrawBaseDrawMode<FreehandLineStringStyling> {
mode: "freehand-linestring";
private startingClick;
private currentId;
private closingPointId;
private minDistance;
private keyEvents;
private cursors;
private preventNewFeature;
constructor(options?: TerraDrawFreehandLineStringModeOptions<FreehandLineStringStyling>);
updateOptions(options?: TerraDrawFreehandLineStringModeOptions<FreehandLineStringStyling> | undefined): void;
private close;
/** @internal */
start(): void;
/** @internal */
stop(): void;
/** @internal */
onMouseMove(event: TerraDrawMouseEvent): void;
/** @internal */
onClick(event: TerraDrawMouseEvent): void;
/** @internal */
onKeyDown(): void;
/** @internal */
onKeyUp(event: TerraDrawKeyboardEvent): void;
/** @internal */
onDragStart(): void;
/** @internal */
onDrag(): void;
/** @internal */
onDragEnd(): void;
/** @internal */
cleanUp(): void;
/** @internal */
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
validateFeature(feature: unknown): StoreValidation;
afterFeatureUpdated(feature: GeoJSONStoreFeatures): void;
}
export {};