terra-draw
Version:
Frictionless map drawing across mapping provider
79 lines (78 loc) • 2.77 kB
TypeScript
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, TerraDrawKeyboardEvent, HexColorStyling, NumericStyling, Cursor } from "../../common";
import { TerraDrawBaseDrawMode, BaseModeOptions, CustomStyling, ModeUpdateOptions } from "../base.mode";
import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
import { BehaviorConfig } from "../base.behavior";
type TerraDrawSensorModeKeyEvents = {
cancel?: KeyboardEvent["key"] | null;
finish?: KeyboardEvent["key"] | null;
};
type SensorPolygonStyling = {
centerPointColor: HexColorStyling;
centerPointWidth: NumericStyling;
centerPointOpacity: NumericStyling;
centerPointOutlineColor: HexColorStyling;
centerPointOutlineWidth: NumericStyling;
centerPointOutlineOpacity: NumericStyling;
outlineColor: HexColorStyling;
outlineWidth: NumericStyling;
outlineOpacity: NumericStyling;
fillColor: HexColorStyling;
fillOpacity: NumericStyling;
};
interface Cursors {
start?: Cursor;
close?: Cursor;
}
interface TerraDrawSensorModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
arcPoints?: number;
pointerDistance?: number;
keyEvents?: TerraDrawSensorModeKeyEvents | null;
cursors?: Cursors;
}
export declare class TerraDrawSensorMode extends TerraDrawBaseDrawMode<SensorPolygonStyling> {
mode: string;
private currentCoordinate;
private currentId;
private currentInitialArcId;
private currentStartingPointId;
private keyEvents;
private direction;
private arcPoints;
private cursors;
private mouseMove;
private readFeature;
private mutateFeature;
constructor(options?: TerraDrawSensorModeOptions<SensorPolygonStyling>);
updateOptions(options?: ModeUpdateOptions<TerraDrawSensorModeOptions<SensorPolygonStyling>>): void;
/** @internal */
start(): void;
/** @internal */
stop(): void;
/** @internal */
onMouseMove(event: TerraDrawMouseEvent): void;
/** @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;
/** @internal */
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
validateFeature(feature: unknown): StoreValidation;
afterFeatureUpdated(feature: GeoJSONStoreFeatures): void;
registerBehaviors(config: BehaviorConfig): void;
private close;
private getUpdatedPolygonCoordinates;
private getUpdatedLineStringCoordinates;
private getDeltaBearing;
private notInSector;
}
export {};