1 | import * as React from 'react';
|
2 | import { Map } from 'mapbox-gl';
|
3 | import { Props as MarkerProps } from './marker';
|
4 | import Supercluster from 'supercluster';
|
5 | import * as GeoJSON from 'geojson';
|
6 | export 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 | }
|
22 | export interface State {
|
23 | superC: Supercluster;
|
24 | clusterPoints: Array<GeoJSON.Feature<GeoJSON.Point>>;
|
25 | }
|
26 | export 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 | }
|
51 | declare const _default: <T>(props: T) => JSX.Element;
|
52 | export default _default;
|