UNPKG

@yandex/ymaps3-types

Version:

Types for ymaps3 maps library

103 lines (102 loc) 3.44 kB
import { DrawingStyle, LngLat, YMapComplexEntity, YMapMarkerEventHandler } from "../../imperative"; export declare const TYPE_RULER = "ruler"; export declare const TYPE_PLANIMETER = "planimeter"; export type RulerType = typeof TYPE_RULER | typeof TYPE_PLANIMETER; export type Measurements = RulerMeasurements | PlanimeterMeasurements; export type RulerMeasurements = { type: typeof TYPE_RULER; /** the distance in meters from the first point of the line */ distance: number; /** the distance in meters from the previous point of the line */ segmentDistance: number; /** the total distance of the line in meters */ totalDistance: number; }; export type PlanimeterMeasurements = { type: typeof TYPE_PLANIMETER; /** the area of the closed line shape in square meters */ area: number; }; export type CommonMeasurements = Omit<RulerMeasurements, "distance" | "segmentDistance"> | PlanimeterMeasurements; export type RulerPointState = { index: number; totalCount: number; coordinates: LngLat; measurements: Measurements; editable: boolean; source: string; }; export type RulerCommonState = { measurements: CommonMeasurements; points: LngLat[]; }; export type RenderPointCommon = (params: RenderPointCommonArgs) => RenderPointCommonResult; export type RenderPointCommonArgs = { state: RulerPointState; onDragMove: YMapMarkerEventHandler; onDragStart: YMapMarkerEventHandler; onDragEnd: YMapMarkerEventHandler; onDelete: () => void; }; export type RenderPointCommonResult = { update: (state: RulerPointState) => void; remove: (index: number) => void; }; export type UpdateCommonFn = (commonState: RulerCommonState) => void; export type UpdateStartFn = (commonState: {}) => void; export type UpdateEndFn = (commonState: {}) => void; export type RulerGeometry = { style: DrawingStyle; }; export type YMapRulerCommonProps = { type: RulerType; points: LngLat[]; editable?: boolean; geometry: RulerGeometry; source?: string; zIndex?: number; previewPoint: HTMLElement; point: RenderPointCommon; onUpdate?: UpdateCommonFn; onUpdateStart?: UpdateStartFn; onUpdateEnd?: UpdateEndFn; }; export declare const defaultProps: Readonly<{ editable: true; zIndex: 2600; source: "ymaps3x0-ruler"; }>; export declare class YMapRulerCommon extends YMapComplexEntity<YMapRulerCommonProps, typeof defaultProps> { static defaultProps: Readonly<{ editable: true; zIndex: 2600; source: "ymaps3x0-ruler"; }>; private _lineFeature; private _polygonFeature; private _listener; private _previewPointMarker?; private _dataSource; private _markersLayer; private _featuresLayer; private _blockerLayer; private _rulerPoints; private _measurements; private _totalDistance; private _area; constructor(props: YMapRulerCommonProps); protected _onAttach(): void; protected _onDetach(): void; protected _onUpdate(props: Partial<YMapRulerCommonProps>): void; private _commonUpdate; private _updateRulerCoordinates; private _updateRulerGeometry; private _onMouseMoveHandler; private _onMouseMoveOnPreviewMarker; private _onClickHandler; private _createPreviewPointMarker; private _updateMeasurements; private _getFeaturesCoordinates; private _createNewRulerPoint; private _removeRulerPoint; }