UNPKG

rc-leaflet

Version:
51 lines (50 loc) 2.08 kB
import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import L from 'leaflet'; import { ContextType } from '../RCMap/Context'; declare type RenderProps = (target: any) => React.ReactNode; interface PartialProps { layer: L.Layer; position: L.LatLngExpression; target: any; children: React.ReactNode | RenderProps; onOpen: L.LeafletEventHandlerFn; onClose: L.LeafletEventHandlerFn; } declare type Props = Readonly<Partial<PartialProps>>; export default abstract class DivOverlay<T extends L.Popup | L.Tooltip, P extends L.PopupOptions | L.TooltipOptions> extends PureComponent<Props & P> { static propTypes: { offset: PropTypes.Requireable<number[] | [number, number] | L.Point>; zoomAnimation: PropTypes.Requireable<boolean>; className: PropTypes.Requireable<string>; pane: PropTypes.Requireable<string>; layer: PropTypes.Requireable<L.Layer>; position: PropTypes.Requireable<number[] | L.LatLng | PropTypes.InferProps<{ lat: PropTypes.Validator<number>; lng: PropTypes.Validator<number>; }>>; children: PropTypes.Requireable<PropTypes.ReactNodeLike>; onOpen: PropTypes.Requireable<(...args: any[]) => any>; onClose: PropTypes.Requireable<(...args: any[]) => any>; }; static contextType: React.Context<Readonly<{ map: L.Map; theme: import("../Theme").ContextType; }>>; context: ContextType; protected instance: T; protected constructor(props: Props & P, context: ContextType); componentDidMount(): void; componentDidUpdate(prevProps: Props & P): void; componentWillUnmount(): void; protected abstract createInstance(props: P, context: ContextType): T; protected abstract bindOnLayer(layer: L.Layer): void; protected abstract unbindOnLayer(layer: L.Layer): void; protected abstract openOnMap(): void; protected abstract closeOnMap(): void; private onOpen; private onClose; private update; render(): React.ReactNode; } export {};