1 | import * as MapboxGl from 'mapbox-gl';
|
2 | import * as React from 'react';
|
3 | import { Events, Listeners } from './map-events';
|
4 | export interface PaddingOptions {
|
5 | top: number;
|
6 | bottom: number;
|
7 | left: number;
|
8 | right: number;
|
9 | }
|
10 | export interface FitBoundsOptions {
|
11 | linear?: boolean;
|
12 | easing?: (time: number) => number;
|
13 | padding?: number | PaddingOptions;
|
14 | offset?: MapboxGl.Point | [number, number];
|
15 | maxZoom?: number;
|
16 | duration?: number;
|
17 | }
|
18 | export declare type FitBounds = [[number, number], [number, number]];
|
19 | export interface AnimationOptions {
|
20 | duration: number;
|
21 | animate: boolean;
|
22 | easing(time: number): number;
|
23 | offset: number[];
|
24 | }
|
25 | export interface FlyToOptions {
|
26 | curve: number;
|
27 | minZoom: number;
|
28 | speed: number;
|
29 | screenSpeed: number;
|
30 | }
|
31 | export interface Props {
|
32 | style: string | MapboxGl.Style;
|
33 | center?: [number, number];
|
34 | zoom?: [number];
|
35 | maxBounds?: MapboxGl.LngLatBounds | FitBounds;
|
36 | fitBounds?: FitBounds;
|
37 | fitBoundsOptions?: FitBoundsOptions;
|
38 | bearing?: [number];
|
39 | pitch?: [number];
|
40 | containerStyle?: React.CSSProperties;
|
41 | className?: string;
|
42 | movingMethod?: 'jumpTo' | 'easeTo' | 'flyTo';
|
43 | animationOptions?: Partial<AnimationOptions>;
|
44 | flyToOptions?: Partial<FlyToOptions>;
|
45 | children?: JSX.Element | JSX.Element[] | Array<JSX.Element | undefined>;
|
46 | renderChildrenInPortal?: boolean;
|
47 | }
|
48 | export interface State {
|
49 | map?: MapboxGl.Map;
|
50 | ready: boolean;
|
51 | }
|
52 | export declare type RequestTransformFunction = (url: string, resourceType: any) => any;
|
53 | export interface FactoryParameters {
|
54 | accessToken: string;
|
55 | apiUrl?: string;
|
56 | minZoom?: number;
|
57 | maxZoom?: number;
|
58 | hash?: boolean;
|
59 | preserveDrawingBuffer?: boolean;
|
60 | scrollZoom?: boolean;
|
61 | interactive?: boolean;
|
62 | dragRotate?: boolean;
|
63 | pitchWithRotate?: boolean;
|
64 | attributionControl?: boolean;
|
65 | customAttribution?: string | string[];
|
66 | logoPosition?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
67 | renderWorldCopies?: boolean;
|
68 | trackResize?: boolean;
|
69 | touchZoomRotate?: boolean;
|
70 | doubleClickZoom?: boolean;
|
71 | keyboard?: boolean;
|
72 | dragPan?: boolean;
|
73 | boxZoom?: boolean;
|
74 | refreshExpiredTiles?: boolean;
|
75 | failIfMajorPerformanceCaveat?: boolean;
|
76 | bearingSnap?: number;
|
77 | transformRequest?: RequestTransformFunction;
|
78 | antialias?: boolean;
|
79 | mapInstance?: MapboxGl.Map;
|
80 | }
|
81 | declare global {
|
82 | namespace mapboxgl {
|
83 | interface MapboxOptions {
|
84 | failIfMajorPerformanceCaveat?: boolean;
|
85 | transformRequest?: MapboxGl.TransformRequestFunction;
|
86 | }
|
87 | }
|
88 | }
|
89 | declare const ReactMapboxFactory: ({ accessToken, apiUrl, minZoom, maxZoom, hash, preserveDrawingBuffer, scrollZoom, interactive, dragRotate, pitchWithRotate, attributionControl, customAttribution, logoPosition, renderWorldCopies, trackResize, touchZoomRotate, doubleClickZoom, keyboard, dragPan, boxZoom, refreshExpiredTiles, failIfMajorPerformanceCaveat, bearingSnap, antialias, mapInstance, transformRequest }: FactoryParameters) => {
|
90 | new (props: Readonly<Props & Events>): {
|
91 | state: State;
|
92 | listeners: Listeners;
|
93 | _isMounted: boolean;
|
94 | container?: HTMLElement | undefined;
|
95 | calcCenter: (bounds: [[number, number], [number, number]]) => [number, number];
|
96 | componentDidMount(): void;
|
97 | componentWillUnmount(): void;
|
98 | componentDidUpdate(prevProps: Props & Events): null;
|
99 | setRef: (x: HTMLElement | null) => void;
|
100 | render(): JSX.Element;
|
101 | context: any;
|
102 | setState<K extends "map" | "ready">(state: State | ((prevState: Readonly<State>, props: Readonly<Props & Events>) => State | Pick<State, K> | null) | Pick<State, K> | null, callback?: (() => void) | undefined): void;
|
103 | forceUpdate(callback?: (() => void) | undefined): void;
|
104 | readonly props: Readonly<Props & Events> & Readonly<{
|
105 | children?: React.ReactNode;
|
106 | }>;
|
107 | refs: {
|
108 | [key: string]: React.ReactInstance;
|
109 | };
|
110 | };
|
111 | new (props: Props & Events, context?: any): {
|
112 | state: State;
|
113 | listeners: Listeners;
|
114 | _isMounted: boolean;
|
115 | container?: HTMLElement | undefined;
|
116 | calcCenter: (bounds: [[number, number], [number, number]]) => [number, number];
|
117 | componentDidMount(): void;
|
118 | componentWillUnmount(): void;
|
119 | componentDidUpdate(prevProps: Props & Events): null;
|
120 | setRef: (x: HTMLElement | null) => void;
|
121 | render(): JSX.Element;
|
122 | context: any;
|
123 | setState<K extends "map" | "ready">(state: State | ((prevState: Readonly<State>, props: Readonly<Props & Events>) => State | Pick<State, K> | null) | Pick<State, K> | null, callback?: (() => void) | undefined): void;
|
124 | forceUpdate(callback?: (() => void) | undefined): void;
|
125 | readonly props: Readonly<Props & Events> & Readonly<{
|
126 | children?: React.ReactNode;
|
127 | }>;
|
128 | refs: {
|
129 | [key: string]: React.ReactInstance;
|
130 | };
|
131 | };
|
132 | defaultProps: {
|
133 | onStyleLoad: (map: MapboxGl.Map, evt: any) => null;
|
134 | center: number[];
|
135 | zoom: number[];
|
136 | bearing: number;
|
137 | movingMethod: string;
|
138 | pitch: number;
|
139 | containerStyle: {
|
140 | textAlign: string;
|
141 | };
|
142 | };
|
143 | contextType?: React.Context<any> | undefined;
|
144 | };
|
145 | export default ReactMapboxFactory;
|