terra-draw
Version:
Frictionless map drawing across mapping provider
65 lines (64 loc) • 2.44 kB
TypeScript
import { TerraDrawMouseEvent, TerraDrawAdapterStyling, NumericStyling, HexColorStyling, Cursor } from "../../common";
import { GeoJSONStoreFeatures, StoreValidation } from "../../store/store";
import { BaseModeOptions, CustomStyling, ModeUpdateOptions, TerraDrawBaseDrawMode } from "../base.mode";
import { BehaviorConfig } from "../base.behavior";
type PointModeStyling = {
pointWidth: NumericStyling;
pointColor: HexColorStyling;
pointOpacity: NumericStyling;
pointOutlineColor: HexColorStyling;
pointOutlineOpacity: NumericStyling;
pointOutlineWidth: NumericStyling;
editedPointColor: HexColorStyling;
editedPointWidth: NumericStyling;
editedPointOutlineColor: HexColorStyling;
editedPointOutlineWidth: NumericStyling;
};
interface Cursors {
create?: Cursor;
dragStart?: Cursor;
dragEnd?: Cursor;
}
interface TerraDrawPointModeOptions<T extends CustomStyling> extends BaseModeOptions<T> {
cursors?: Cursors;
editable?: boolean;
}
export declare class TerraDrawPointMode extends TerraDrawBaseDrawMode<PointModeStyling> {
mode: string;
private cursors;
private editable;
private editedFeatureId;
private pixelDistance;
private clickBoundingBox;
private pointSearch;
private mutateFeature;
constructor(options?: TerraDrawPointModeOptions<PointModeStyling>);
updateOptions(options?: ModeUpdateOptions<TerraDrawPointModeOptions<PointModeStyling>>): void;
/** @internal */
start(): void;
/** @internal */
stop(): void;
/** @internal */
onClick(event: TerraDrawMouseEvent): void;
/** @internal */
onMouseMove(): void;
/** @internal */
onKeyDown(): void;
/** @internal */
onKeyUp(): void;
/** @internal */
cleanUp(): 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;
registerBehaviors(config: BehaviorConfig): void;
/** @internal */
styleFeature(feature: GeoJSONStoreFeatures): TerraDrawAdapterStyling;
validateFeature(feature: unknown): StoreValidation;
private onLeftClick;
private onRightClick;
afterFeatureUpdated(feature: GeoJSONStoreFeatures): void;
}
export {};