UNPKG

1.7 kBTypeScriptView Raw
1import * as React from 'react';
2import { Map } from 'mapbox-gl';
3import { Props as MarkerProps } from './marker';
4import Supercluster from 'supercluster';
5import * as GeoJSON from 'geojson';
6export interface Props {
7 ClusterMarkerFactory(coordinates: GeoJSON.Position, pointCount: number, getLeaves: (limit?: number, offset?: number) => Array<React.ReactElement<MarkerProps> | undefined>): React.ReactElement<MarkerProps>;
8 radius?: number;
9 maxZoom?: number;
10 minZoom?: number;
11 extent?: number;
12 nodeSize?: number;
13 log?: boolean;
14 zoomOnClick?: boolean;
15 zoomOnClickPadding?: number;
16 children?: Array<React.ReactElement<MarkerProps>>;
17 style?: React.CSSProperties;
18 className?: string;
19 tabIndex?: number;
20 map: Map;
21}
22export interface State {
23 superC: Supercluster;
24 clusterPoints: Array<GeoJSON.Feature<GeoJSON.Point>>;
25}
26export declare class Cluster extends React.Component<Props, State> {
27 static defaultProps: {
28 radius: number;
29 minZoom: number;
30 maxZoom: number;
31 extent: number;
32 nodeSize: number;
33 log: boolean;
34 zoomOnClick: boolean;
35 zoomOnClickPadding: number;
36 };
37 state: State;
38 private featureClusterMap;
39 componentDidMount(): void;
40 componentWillUnmount(): void;
41 componentDidUpdate(prevProps: Props): void;
42 private childrenChange;
43 private mapChange;
44 private feature;
45 private childrenToFeatures;
46 private getLeaves;
47 zoomToClusterBounds: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
48 private findMarkerElement;
49 render(): JSX.Element;
50}
51declare const _default: <T>(props: T) => JSX.Element;
52export default _default;