UNPKG

5.39 kBTypeScriptView Raw
1import * as MapboxGl from 'mapbox-gl';
2import * as React from 'react';
3import { Events, Listeners } from './map-events';
4export interface PaddingOptions {
5 top: number;
6 bottom: number;
7 left: number;
8 right: number;
9}
10export 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}
18export declare type FitBounds = [[number, number], [number, number]];
19export interface AnimationOptions {
20 duration: number;
21 animate: boolean;
22 easing(time: number): number;
23 offset: number[];
24}
25export interface FlyToOptions {
26 curve: number;
27 minZoom: number;
28 speed: number;
29 screenSpeed: number;
30}
31export 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}
48export interface State {
49 map?: MapboxGl.Map;
50 ready: boolean;
51}
52export declare type RequestTransformFunction = (url: string, resourceType: any) => any;
53export 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}
81declare global {
82 namespace mapboxgl {
83 interface MapboxOptions {
84 failIfMajorPerformanceCaveat?: boolean;
85 transformRequest?: MapboxGl.TransformRequestFunction;
86 }
87 }
88}
89declare 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};
145export default ReactMapboxFactory;