react-bkoi-gl 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -0
- package/bkoi-gl/package.json +6 -0
- package/dist/components/attribution-control.d.ts +11 -0
- package/dist/components/attribution-control.js +19 -0
- package/dist/components/attribution-control.js.map +1 -0
- package/dist/components/fullscreen-control.d.ts +14 -0
- package/dist/components/fullscreen-control.js +21 -0
- package/dist/components/fullscreen-control.js.map +1 -0
- package/dist/components/geolocate-control.d.ts +37 -0
- package/dist/components/geolocate-control.js +51 -0
- package/dist/components/geolocate-control.js.map +1 -0
- package/dist/components/layer.d.ts +17 -0
- package/dist/components/layer.js +99 -0
- package/dist/components/layer.js.map +1 -0
- package/dist/components/map.d.ts +23 -0
- package/dist/components/map.js +102 -0
- package/dist/components/map.js.map +1 -0
- package/dist/components/marker.d.ts +41 -0
- package/dist/components/marker.js +102 -0
- package/dist/components/marker.js.map +1 -0
- package/dist/components/navigation-control.d.ts +11 -0
- package/dist/components/navigation-control.js +19 -0
- package/dist/components/navigation-control.js.map +1 -0
- package/dist/components/popup.d.ts +33 -0
- package/dist/components/popup.js +81 -0
- package/dist/components/popup.js.map +1 -0
- package/dist/components/scale-control.d.ts +13 -0
- package/dist/components/scale-control.js +31 -0
- package/dist/components/scale-control.js.map +1 -0
- package/dist/components/source.d.ts +7 -0
- package/dist/components/source.js +98 -0
- package/dist/components/source.js.map +1 -0
- package/dist/components/use-control.d.ts +9 -0
- package/dist/components/use-control.js +31 -0
- package/dist/components/use-control.js.map +1 -0
- package/dist/components/use-map.d.ts +20 -0
- package/dist/components/use-map.js +55 -0
- package/dist/components/use-map.js.map +1 -0
- package/dist/exports-bkoi-gl.cjs +1512 -0
- package/dist/exports-bkoi-gl.d.ts +89 -0
- package/dist/exports-bkoi-gl.js +36 -0
- package/dist/exports-bkoi-gl.js.map +1 -0
- package/dist/exports-mapbox.d.ts +139 -0
- package/dist/exports-mapbox.js +36 -0
- package/dist/exports-mapbox.js.map +1 -0
- package/dist/index.cjs +1514 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/mapbox/create-ref.d.ts +9 -0
- package/dist/mapbox/create-ref.js +64 -0
- package/dist/mapbox/create-ref.js.map +1 -0
- package/dist/mapbox/mapbox.d.ts +81 -0
- package/dist/mapbox/mapbox.js +477 -0
- package/dist/mapbox/mapbox.js.map +1 -0
- package/dist/styles/react-bkoi-gl.css +1 -0
- package/dist/types/common.d.ts +78 -0
- package/dist/types/common.js +2 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/events-bkoi-gl.d.ts +49 -0
- package/dist/types/events-bkoi-gl.js +2 -0
- package/dist/types/events-bkoi-gl.js.map +1 -0
- package/dist/types/events-mapbox.d.ts +49 -0
- package/dist/types/events-mapbox.js +2 -0
- package/dist/types/events-mapbox.js.map +1 -0
- package/dist/types/events.d.ts +39 -0
- package/dist/types/events.js +2 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/index.d.ts +70 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lib.d.ts +224 -0
- package/dist/types/lib.js +2 -0
- package/dist/types/lib.js.map +1 -0
- package/dist/types/public.d.ts +2 -0
- package/dist/types/public.js +2 -0
- package/dist/types/public.js.map +1 -0
- package/dist/types/style-spec-bkoi-gl.d.ts +9 -0
- package/dist/types/style-spec-bkoi-gl.js +2 -0
- package/dist/types/style-spec-bkoi-gl.js.map +1 -0
- package/dist/types/style-spec-mapbox.d.ts +7 -0
- package/dist/types/style-spec-mapbox.js +2 -0
- package/dist/types/style-spec-mapbox.js.map +1 -0
- package/dist/utils/apply-react-style.d.ts +2 -0
- package/dist/utils/apply-react-style.js +16 -0
- package/dist/utils/apply-react-style.js.map +1 -0
- package/dist/utils/assert.d.ts +1 -0
- package/dist/utils/assert.js +6 -0
- package/dist/utils/assert.js.map +1 -0
- package/dist/utils/deep-equal.d.ts +15 -0
- package/dist/utils/deep-equal.js +46 -0
- package/dist/utils/deep-equal.js.map +1 -0
- package/dist/utils/set-globals.d.ts +22 -0
- package/dist/utils/set-globals.js +19 -0
- package/dist/utils/set-globals.js.map +1 -0
- package/dist/utils/style-utils.d.ts +2 -0
- package/dist/utils/style-utils.js +42 -0
- package/dist/utils/style-utils.js.map +1 -0
- package/dist/utils/transform.d.ts +26 -0
- package/dist/utils/transform.js +56 -0
- package/dist/utils/transform.js.map +1 -0
- package/dist/utils/use-isomorphic-layout-effect.d.ts +3 -0
- package/dist/utils/use-isomorphic-layout-effect.js +4 -0
- package/dist/utils/use-isomorphic-layout-effect.js.map +1 -0
- package/package.json +78 -0
- package/src/components/attribution-control.ts +32 -0
- package/src/components/fullscreen-control.tsx +37 -0
- package/src/components/geolocate-control.ts +90 -0
- package/src/components/layer.ts +133 -0
- package/src/components/map.tsx +155 -0
- package/src/components/marker.ts +137 -0
- package/src/components/navigation-control.ts +29 -0
- package/src/components/popup.ts +116 -0
- package/src/components/scale-control.ts +46 -0
- package/src/components/source.ts +158 -0
- package/src/components/use-control.ts +64 -0
- package/src/components/use-map.tsx +69 -0
- package/src/exports-bkoi-gl.ts +156 -0
- package/src/exports-mapbox.ts +159 -0
- package/src/index.ts +2 -0
- package/src/mapbox/create-ref.ts +118 -0
- package/src/mapbox/mapbox.ts +742 -0
- package/src/types/common.ts +94 -0
- package/src/types/events-bkoi-gl.ts +78 -0
- package/src/types/events-mapbox.ts +76 -0
- package/src/types/events.ts +73 -0
- package/src/types/index.ts +93 -0
- package/src/types/lib.ts +279 -0
- package/src/types/public.ts +9 -0
- package/src/types/style-spec-bkoi-gl.ts +81 -0
- package/src/types/style-spec-mapbox.ts +80 -0
- package/src/utils/apply-react-style.ts +20 -0
- package/src/utils/assert.ts +5 -0
- package/src/utils/deep-equal.ts +61 -0
- package/src/utils/set-globals.ts +57 -0
- package/src/utils/style-utils.ts +59 -0
- package/src/utils/transform.ts +86 -0
- package/src/utils/use-isomorphic-layout-effect.ts +7 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapbox.js","names":["transformToViewState","applyViewStateToTransform","cloneTransform","syncProjection","normalizeStyle","deepEqual","DEFAULT_STYLE","version","sources","layers","pointerEvents","mousedown","mouseup","mouseover","mousemove","click","dblclick","mouseenter","mouseleave","mouseout","contextmenu","touchstart","touchend","touchmove","touchcancel","cameraEvents","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoom","zoomend","rotatestart","rotate","rotateend","pitchstart","pitch","pitchend","otherEvents","wheel","boxzoomstart","boxzoomend","boxzoomcancel","resize","load","render","idle","remove","data","styledata","sourcedata","error","settingNames","handlerNames","Mapbox","_map","_internalUpdate","_inRender","_hoveredFeatures","_deferredEvents","savedMaps","constructor","MapClass","props","container","_MapClass","_initialize","map","transform","_renderTransform","setProps","oldProps","settingsChanged","_updateSettings","_createShadowTransform","sizeChanged","_updateSize","viewStateChanged","_updateViewState","_updateStyle","_updateStyleComponents","_updateHandlers","isMoving","redraw","reuse","that","pop","oldContainer","getContainer","className","childNodes","length","appendChild","_container","resizeObserver","_resizeObserver","disconnect","observe","styleDiffing","initialViewState","bounds","fitBounds","fitBoundsOptions","duration","isStyleLoaded","fire","once","_update","mapStyle","mapOptions","accessToken","mapboxAccessToken","getAccessTokenFromEnv","style","viewState","Object","assign","center","longitude","latitude","bearing","gl","getContext","HTMLCanvasElement","prototype","padding","setPadding","cursor","getCanvas","renderMap","_render","arg","call","runRenderTaskQueue","_renderTaskQueue","run","_onBeforeRepaint","on","_onAfterRepaint","fireEvent","_fireEvent","bind","width","height","eventName","_onPointerEvent","_onCameraEvent","_onEvent","recycle","children","querySelector","push","destroy","_frame","cancel","renderTransform","painter","nextProps","triggerEvents","tr","cameraElevationReference","changed","deferredEvents","currProps","propName","setter","toUpperCase","slice","options","diff","localIdeographFontFamily","setStyle","setLight","light","setFog","fog","setTerrain","terrain","getSource","source","newValue","oldValue","enable","disable","e","cb","type","console","_queryRenderedFeatures","point","interactiveLayerIds","queryRenderedFeatures","filter","getLayer","_updateHover","shouldTrackHoveredFeatures","onMouseMove","onMouseEnter","onMouseLeave","_this$_hoveredFeature","eventType","wasHovering","features","isHovering","baseFire","event","properties","location","match","exec","search","process","env","MapboxAccessToken","REACT_APP_MAPBOX_ACCESS_TOKEN"],"sources":["../../src/mapbox/mapbox.ts"],"sourcesContent":["import {\n transformToViewState,\n applyViewStateToTransform,\n cloneTransform,\n syncProjection\n} from '../utils/transform';\nimport {normalizeStyle} from '../utils/style-utils';\nimport {deepEqual} from '../utils/deep-equal';\n\nimport type {\n Transform,\n ViewState,\n ViewStateChangeEvent,\n Point,\n PointLike,\n PaddingOptions,\n MapStyle,\n ImmutableLike,\n LngLatBoundsLike,\n Callbacks,\n MapEvent,\n ErrorEvent,\n MapMouseEvent,\n MapGeoJSONFeature,\n MapInstance,\n MapInstanceInternal\n} from '../types';\n\nexport type MapboxProps<\n StyleT extends MapStyle = MapStyle,\n CallbacksT extends Callbacks = {}\n> = Partial<ViewState> &\n CallbacksT & {\n // Init options\n mapboxAccessToken?: string;\n\n /** Camera options used when constructing the Map instance */\n initialViewState?: Partial<ViewState> & {\n /** The initial bounds of the map. If bounds is specified, it overrides longitude, latitude and zoom options. */\n bounds?: LngLatBoundsLike;\n /** A fitBounds options object to use only when setting the bounds option. */\n fitBoundsOptions?: {\n offset?: PointLike;\n minZoom?: number;\n maxZoom?: number;\n padding?: number | PaddingOptions;\n };\n };\n\n /** If provided, render into an external WebGL context */\n gl?: WebGLRenderingContext;\n\n /** For external controller to override the camera state */\n viewState?: ViewState & {\n width: number;\n height: number;\n };\n\n // Styling\n\n /** Mapbox style */\n mapStyle?: string | StyleT | ImmutableLike<StyleT>;\n /** Enable diffing when the map style changes\n * @default true\n */\n styleDiffing?: boolean;\n /** The fog property of the style. Must conform to the Fog Style Specification .\n * If `undefined` is provided, removes the fog from the map. */\n fog?: StyleT['fog'];\n /** Light properties of the map. */\n light?: StyleT['light'];\n /** Terrain property of the style. Must conform to the Terrain Style Specification .\n * If `undefined` is provided, removes terrain from the map. */\n terrain?: StyleT['terrain'];\n\n /** Default layers to query on pointer events */\n interactiveLayerIds?: string[];\n /** CSS cursor */\n cursor?: string;\n };\n\nconst DEFAULT_STYLE = {version: 8, sources: {}, layers: []} as MapStyle;\n\nconst pointerEvents = {\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n click: 'onClick',\n dblclick: 'onDblClick',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n mouseout: 'onMouseOut',\n contextmenu: 'onContextMenu',\n touchstart: 'onTouchStart',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchcancel: 'onTouchCancel'\n};\nconst cameraEvents = {\n movestart: 'onMoveStart',\n move: 'onMove',\n moveend: 'onMoveEnd',\n dragstart: 'onDragStart',\n drag: 'onDrag',\n dragend: 'onDragEnd',\n zoomstart: 'onZoomStart',\n zoom: 'onZoom',\n zoomend: 'onZoomEnd',\n rotatestart: 'onRotateStart',\n rotate: 'onRotate',\n rotateend: 'onRotateEnd',\n pitchstart: 'onPitchStart',\n pitch: 'onPitch',\n pitchend: 'onPitchEnd'\n};\nconst otherEvents = {\n wheel: 'onWheel',\n boxzoomstart: 'onBoxZoomStart',\n boxzoomend: 'onBoxZoomEnd',\n boxzoomcancel: 'onBoxZoomCancel',\n resize: 'onResize',\n load: 'onLoad',\n render: 'onRender',\n idle: 'onIdle',\n remove: 'onRemove',\n data: 'onData',\n styledata: 'onStyleData',\n sourcedata: 'onSourceData',\n error: 'onError'\n};\nconst settingNames = [\n 'minZoom',\n 'maxZoom',\n 'minPitch',\n 'maxPitch',\n 'maxBounds',\n 'projection',\n 'renderWorldCopies'\n];\nconst handlerNames = [\n 'scrollZoom',\n 'boxZoom',\n 'dragRotate',\n 'dragPan',\n 'keyboard',\n 'doubleClickZoom',\n 'touchZoomRotate',\n 'touchPitch'\n];\n\n/**\n * A wrapper for mapbox-gl's Map class\n */\nexport default class Mapbox<\n StyleT extends MapStyle = MapStyle,\n CallbacksT extends Callbacks = {},\n MapT extends MapInstance = MapInstance\n> {\n private _MapClass: {new (options: any): MapInstance};\n // mapboxgl.Map instance\n private _map: MapInstanceInternal<MapT> = null;\n // User-supplied props\n props: MapboxProps<StyleT, CallbacksT>;\n\n // Mapbox map is stateful.\n // During method calls/user interactions, map.transform is mutated and\n // deviate from user-supplied props.\n // In order to control the map reactively, we shadow the transform\n // with the one below, which reflects the view state resolved from\n // both user-supplied props and the underlying state\n private _renderTransform: Transform;\n\n // Internal states\n private _internalUpdate: boolean = false;\n private _inRender: boolean = false;\n private _hoveredFeatures: MapGeoJSONFeature[] = null;\n private _deferredEvents: {\n move: boolean;\n zoom: boolean;\n pitch: boolean;\n rotate: boolean;\n } = {\n move: false,\n zoom: false,\n pitch: false,\n rotate: false\n };\n\n static savedMaps: Mapbox[] = [];\n\n constructor(\n MapClass: {new (options: any): MapInstance},\n props: MapboxProps<StyleT, CallbacksT>,\n container: HTMLDivElement\n ) {\n this._MapClass = MapClass;\n this.props = props;\n this._initialize(container);\n }\n\n get map(): MapT {\n return this._map;\n }\n\n get transform(): Transform {\n return this._renderTransform;\n }\n\n setProps(props: MapboxProps<StyleT, CallbacksT>) {\n const oldProps = this.props;\n this.props = props;\n\n const settingsChanged = this._updateSettings(props, oldProps);\n if (settingsChanged) {\n this._createShadowTransform(this._map);\n }\n const sizeChanged = this._updateSize(props);\n const viewStateChanged = this._updateViewState(props, true);\n this._updateStyle(props, oldProps);\n this._updateStyleComponents(props, oldProps);\n this._updateHandlers(props, oldProps);\n\n // If 1) view state has changed to match props and\n // 2) the props change is not triggered by map events,\n // it's driven by an external state change. Redraw immediately\n if (settingsChanged || sizeChanged || (viewStateChanged && !this._map.isMoving())) {\n this.redraw();\n }\n }\n\n static reuse<StyleT extends MapStyle, CallbacksT extends Callbacks, MapT extends MapInstance>(\n props: MapboxProps<StyleT, CallbacksT>,\n container: HTMLDivElement\n ): Mapbox<StyleT, CallbacksT, MapT> {\n const that = Mapbox.savedMaps.pop() as Mapbox<StyleT, CallbacksT, MapT>;\n if (!that) {\n return null;\n }\n\n const map = that.map;\n // When reusing the saved map, we need to reparent the map(canvas) and other child nodes\n // intoto the new container from the props.\n // Step 1: reparenting child nodes from old container to new container\n const oldContainer = map.getContainer();\n container.className = oldContainer.className;\n while (oldContainer.childNodes.length > 0) {\n container.appendChild(oldContainer.childNodes[0]);\n }\n // Step 2: replace the internal container with new container from the react component\n // @ts-ignore\n map._container = container;\n\n // With maplibre-gl as mapLib, map uses ResizeObserver to observe when its container resizes.\n // When reusing the saved map, we need to disconnect the observer and observe the new container.\n // Step 3: telling the ResizeObserver to disconnect and observe the new container\n // @ts-ignore\n const resizeObserver = map._resizeObserver;\n if (resizeObserver) {\n resizeObserver.disconnect();\n resizeObserver.observe(container);\n }\n\n // Step 4: apply new props\n that.setProps({...props, styleDiffing: false});\n map.resize();\n const {initialViewState} = props;\n if (initialViewState) {\n if (initialViewState.bounds) {\n map.fitBounds(initialViewState.bounds, {...initialViewState.fitBoundsOptions, duration: 0});\n } else {\n that._updateViewState(initialViewState, false);\n }\n }\n\n // Simulate load event\n if (map.isStyleLoaded()) {\n map.fire('load');\n } else {\n map.once('styledata', () => map.fire('load'));\n }\n\n // Force reload\n // @ts-ignore\n map._update();\n return that;\n }\n\n /* eslint-disable complexity,max-statements */\n _initialize(container: HTMLDivElement) {\n const {props} = this;\n const {mapStyle = DEFAULT_STYLE} = props;\n const mapOptions = {\n ...props,\n ...props.initialViewState,\n accessToken: props.mapboxAccessToken || getAccessTokenFromEnv() || null,\n container,\n style: normalizeStyle(mapStyle)\n };\n\n const viewState = mapOptions.initialViewState || mapOptions.viewState || mapOptions;\n Object.assign(mapOptions, {\n center: [viewState.longitude || 0, viewState.latitude || 0],\n zoom: viewState.zoom || 0,\n pitch: viewState.pitch || 0,\n bearing: viewState.bearing || 0\n });\n\n if (props.gl) {\n // eslint-disable-next-line\n const getContext = HTMLCanvasElement.prototype.getContext;\n // Hijack canvas.getContext to return our own WebGLContext\n // This will be called inside the mapboxgl.Map constructor\n // @ts-expect-error\n HTMLCanvasElement.prototype.getContext = () => {\n // Unhijack immediately\n HTMLCanvasElement.prototype.getContext = getContext;\n return props.gl;\n };\n }\n\n const map = new this._MapClass(mapOptions) as MapInstanceInternal<MapT>;\n // Props that are not part of constructor options\n if (viewState.padding) {\n map.setPadding(viewState.padding);\n }\n if (props.cursor) {\n map.getCanvas().style.cursor = props.cursor;\n }\n this._createShadowTransform(map);\n\n // Hack\n // Insert code into map's render cycle\n const renderMap = map._render;\n map._render = (arg: number) => {\n this._inRender = true;\n renderMap.call(map, arg);\n this._inRender = false;\n };\n const runRenderTaskQueue = map._renderTaskQueue.run;\n map._renderTaskQueue.run = (arg: number) => {\n runRenderTaskQueue.call(map._renderTaskQueue, arg);\n this._onBeforeRepaint();\n };\n map.on('render', () => this._onAfterRepaint());\n // Insert code into map's event pipeline\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const fireEvent = map.fire;\n map.fire = this._fireEvent.bind(this, fireEvent);\n\n // add listeners\n map.on('resize', () => {\n this._renderTransform.resize(map.transform.width, map.transform.height);\n });\n map.on('styledata', () => {\n this._updateStyleComponents(this.props, {});\n // Projection can be set in stylesheet\n syncProjection(map.transform, this._renderTransform);\n });\n map.on('sourcedata', () => this._updateStyleComponents(this.props, {}));\n for (const eventName in pointerEvents) {\n map.on(eventName, this._onPointerEvent);\n }\n for (const eventName in cameraEvents) {\n map.on(eventName, this._onCameraEvent);\n }\n for (const eventName in otherEvents) {\n map.on(eventName, this._onEvent);\n }\n this._map = map;\n }\n /* eslint-enable complexity,max-statements */\n\n recycle() {\n // Clean up unnecessary elements before storing for reuse.\n const container = this.map.getContainer();\n const children = container.querySelector('[mapboxgl-children]');\n children?.remove();\n\n Mapbox.savedMaps.push(this);\n }\n\n destroy() {\n this._map.remove();\n }\n\n // Force redraw the map now. Typically resize() and jumpTo() is reflected in the next\n // render cycle, which is managed by Mapbox's animation loop.\n // This removes the synchronization issue caused by requestAnimationFrame.\n redraw() {\n const map = this._map as any;\n // map._render will throw error if style does not exist\n // https://github.com/mapbox/mapbox-gl-js/blob/fb9fc316da14e99ff4368f3e4faa3888fb43c513\n // /src/ui/map.js#L1834\n if (!this._inRender && map.style) {\n // cancel the scheduled update\n if (map._frame) {\n map._frame.cancel();\n map._frame = null;\n }\n // the order is important - render() may schedule another update\n map._render();\n }\n }\n\n _createShadowTransform(map: any) {\n const renderTransform = cloneTransform(map.transform);\n map.painter.transform = renderTransform;\n\n this._renderTransform = renderTransform;\n }\n\n /* Trigger map resize if size is controlled\n @param {object} nextProps\n @returns {bool} true if size has changed\n */\n _updateSize(nextProps: MapboxProps<StyleT>): boolean {\n // Check if size is controlled\n const {viewState} = nextProps;\n if (viewState) {\n const map = this._map;\n if (viewState.width !== map.transform.width || viewState.height !== map.transform.height) {\n map.resize();\n return true;\n }\n }\n return false;\n }\n\n // Adapted from map.jumpTo\n /* Update camera to match props\n @param {object} nextProps\n @param {bool} triggerEvents - should fire camera events\n @returns {bool} true if anything is changed\n */\n _updateViewState(nextProps: MapboxProps<StyleT>, triggerEvents: boolean): boolean {\n if (this._internalUpdate) {\n return false;\n }\n const map = this._map;\n\n const tr = this._renderTransform;\n // Take a snapshot of the transform before mutation\n const {zoom, pitch, bearing} = tr;\n const isMoving = map.isMoving();\n\n if (isMoving) {\n // All movement of the camera is done relative to the sea level\n tr.cameraElevationReference = 'sea';\n }\n const changed = applyViewStateToTransform(tr, {\n ...transformToViewState(map.transform),\n ...nextProps\n });\n if (isMoving) {\n // Reset camera reference\n tr.cameraElevationReference = 'ground';\n }\n\n if (changed && triggerEvents) {\n const deferredEvents = this._deferredEvents;\n // Delay DOM control updates to the next render cycle\n deferredEvents.move = true;\n deferredEvents.zoom ||= zoom !== tr.zoom;\n deferredEvents.rotate ||= bearing !== tr.bearing;\n deferredEvents.pitch ||= pitch !== tr.pitch;\n }\n\n // Avoid manipulating the real transform when interaction/animation is ongoing\n // as it would interfere with Mapbox's handlers\n if (!isMoving) {\n applyViewStateToTransform(map.transform, nextProps);\n }\n\n return changed;\n }\n\n /* Update camera constraints and projection settings to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateSettings(nextProps: MapboxProps<StyleT>, currProps: MapboxProps<StyleT>): boolean {\n const map = this._map;\n let changed = false;\n for (const propName of settingNames) {\n if (propName in nextProps && !deepEqual(nextProps[propName], currProps[propName])) {\n changed = true;\n const setter = map[`set${propName[0].toUpperCase()}${propName.slice(1)}`];\n setter?.call(map, nextProps[propName]);\n }\n }\n return changed;\n }\n\n /* Update map style to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if style is changed\n */\n _updateStyle(nextProps: MapboxProps<StyleT>, currProps: MapboxProps<StyleT>): boolean {\n if (nextProps.cursor !== currProps.cursor) {\n this._map.getCanvas().style.cursor = nextProps.cursor || '';\n }\n if (nextProps.mapStyle !== currProps.mapStyle) {\n const {mapStyle = DEFAULT_STYLE, styleDiffing = true} = nextProps;\n const options: any = {\n diff: styleDiffing\n };\n if ('localIdeographFontFamily' in nextProps) {\n // @ts-ignore Mapbox specific prop\n options.localIdeographFontFamily = nextProps.localIdeographFontFamily;\n }\n this._map.setStyle(normalizeStyle(mapStyle), options);\n return true;\n }\n return false;\n }\n\n /* Update fog, light and terrain to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateStyleComponents(nextProps: MapboxProps<StyleT>, currProps: MapboxProps<StyleT>): boolean {\n const map = this._map;\n let changed = false;\n if (map.isStyleLoaded()) {\n if ('light' in nextProps && map.setLight && !deepEqual(nextProps.light, currProps.light)) {\n changed = true;\n map.setLight(nextProps.light);\n }\n if ('fog' in nextProps && map.setFog && !deepEqual(nextProps.fog, currProps.fog)) {\n changed = true;\n map.setFog(nextProps.fog);\n }\n if (\n 'terrain' in nextProps &&\n map.setTerrain &&\n !deepEqual(nextProps.terrain, currProps.terrain)\n ) {\n if (!nextProps.terrain || map.getSource(nextProps.terrain.source)) {\n changed = true;\n map.setTerrain(nextProps.terrain);\n }\n }\n }\n return changed;\n }\n\n /* Update interaction handlers to match props\n @param {object} nextProps\n @param {object} currProps\n @returns {bool} true if anything is changed\n */\n _updateHandlers(nextProps: MapboxProps<StyleT>, currProps: MapboxProps<StyleT>): boolean {\n const map = this._map;\n let changed = false;\n for (const propName of handlerNames) {\n const newValue = nextProps[propName] ?? true;\n const oldValue = currProps[propName] ?? true;\n if (!deepEqual(newValue, oldValue)) {\n changed = true;\n if (newValue) {\n map[propName].enable(newValue);\n } else {\n map[propName].disable();\n }\n }\n }\n return changed;\n }\n\n _onEvent = (e: MapEvent<MapT>) => {\n // @ts-ignore\n const cb = this.props[otherEvents[e.type]];\n if (cb) {\n cb(e);\n } else if (e.type === 'error') {\n console.error((e as ErrorEvent<MapT>).error); // eslint-disable-line\n }\n };\n\n private _queryRenderedFeatures(point: Point) {\n const map = this._map;\n const tr = map.transform;\n const {interactiveLayerIds = []} = this.props;\n try {\n map.transform = this._renderTransform;\n return map.queryRenderedFeatures(point, {\n layers: interactiveLayerIds.filter(map.getLayer.bind(map))\n });\n } catch {\n // May fail if style is not loaded\n return [];\n } finally {\n map.transform = tr;\n }\n }\n\n _updateHover(e: MapMouseEvent<MapT>) {\n const {props} = this;\n const shouldTrackHoveredFeatures =\n props.interactiveLayerIds && (props.onMouseMove || props.onMouseEnter || props.onMouseLeave);\n\n if (shouldTrackHoveredFeatures) {\n const eventType = e.type;\n const wasHovering = this._hoveredFeatures?.length > 0;\n const features = this._queryRenderedFeatures(e.point);\n const isHovering = features.length > 0;\n\n if (!isHovering && wasHovering) {\n e.type = 'mouseleave';\n this._onPointerEvent(e);\n }\n this._hoveredFeatures = features;\n if (isHovering && !wasHovering) {\n e.type = 'mouseenter';\n this._onPointerEvent(e);\n }\n e.type = eventType;\n } else {\n this._hoveredFeatures = null;\n }\n }\n\n _onPointerEvent = (e: MapMouseEvent<MapT> | MapMouseEvent<MapT>) => {\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n this._updateHover(e);\n }\n\n // @ts-ignore\n const cb = this.props[pointerEvents[e.type]];\n if (cb) {\n if (this.props.interactiveLayerIds && e.type !== 'mouseover' && e.type !== 'mouseout') {\n e.features = this._hoveredFeatures || this._queryRenderedFeatures(e.point);\n }\n cb(e);\n delete e.features;\n }\n };\n\n _onCameraEvent = (e: ViewStateChangeEvent<MapT>) => {\n if (!this._internalUpdate) {\n // @ts-ignore\n const cb = this.props[cameraEvents[e.type]];\n if (cb) {\n cb(e);\n }\n }\n if (e.type in this._deferredEvents) {\n this._deferredEvents[e.type] = false;\n }\n };\n\n _fireEvent(baseFire: Function, event: string | MapEvent<MapT>, properties?: object) {\n const map = this._map;\n const tr = map.transform;\n\n const eventType = typeof event === 'string' ? event : event.type;\n if (eventType === 'move') {\n this._updateViewState(this.props, false);\n }\n if (eventType in cameraEvents) {\n if (typeof event === 'object') {\n (event as unknown as ViewStateChangeEvent<MapT>).viewState = transformToViewState(tr);\n }\n if (this._map.isMoving()) {\n // Replace map.transform with ours during the callbacks\n map.transform = this._renderTransform;\n baseFire.call(map, event, properties);\n map.transform = tr;\n\n return map;\n }\n }\n baseFire.call(map, event, properties);\n\n return map;\n }\n\n // All camera manipulations are complete, ready to repaint\n _onBeforeRepaint() {\n const map = this._map;\n\n // If there are camera changes driven by props, invoke camera events so that DOM controls are synced\n this._internalUpdate = true;\n for (const eventType in this._deferredEvents) {\n if (this._deferredEvents[eventType]) {\n map.fire(eventType);\n }\n }\n this._internalUpdate = false;\n\n const tr = this._map.transform;\n // Make sure camera matches the current props\n map.transform = this._renderTransform;\n\n this._onAfterRepaint = () => {\n // Mapbox transitions between non-mercator projection and mercator during render time\n // Copy it back to the other\n syncProjection(this._renderTransform, tr);\n // Restores camera state before render/load events are fired\n map.transform = tr;\n };\n }\n\n _onAfterRepaint: () => void;\n}\n\n/**\n * Access token can be provided via one of:\n * mapboxAccessToken prop\n * access_token query parameter\n * MapboxAccessToken environment variable\n * REACT_APP_MAPBOX_ACCESS_TOKEN environment variable\n * @returns access token\n */\nfunction getAccessTokenFromEnv(): string {\n let accessToken = null;\n\n /* global location, process */\n if (typeof location !== 'undefined') {\n const match = /access_token=([^&\\/]*)/.exec(location.search);\n accessToken = match && match[1];\n }\n\n // Note: This depends on bundler plugins (e.g. webpack) importing environment correctly\n try {\n accessToken = accessToken || process.env.MapboxAccessToken;\n } catch {\n // ignore\n }\n\n try {\n accessToken = accessToken || process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\n } catch {\n // ignore\n }\n\n return accessToken;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){-moz-box-shadow:0 0 2px rgba(0,0,0,.1);-webkit-box-shadow:0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl button::-moz-focus-inner{border:0;padding:0}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;-moz-animation:mapboxgl-spin 2s infinite linear;-o-animation:mapboxgl-spin 2s infinite linear;-ms-animation:mapboxgl-spin 2s infinite linear;animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@-moz-keyframes mapboxgl-spin{0%{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(1turn)}}@-o-keyframes mapboxgl-spin{0%{-o-transform:rotate(0deg)}to{-o-transform:rotate(1turn)}}@-ms-keyframes mapboxgl-spin{0%{-ms-transform:rotate(0deg)}to{-ms-transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:-webkit-flex;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{-webkit-flex-direction:column;flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.mapboxgl-popup-anchor-left{-webkit-flex-direction:row;flex-direction:row}.mapboxgl-popup-anchor-right{-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;-moz-animation:mapboxgl-user-location-dot-pulse 2s infinite;-ms-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);opacity:0}to{-webkit-transform:scale(1);opacity:0}}@-ms-keyframes mapboxgl-user-location-dot-pulse{0%{-ms-transform:scale(1);opacity:1}70%{-ms-transform:scale(3);opacity:0}to{-ms-transform:scale(1);opacity:0}}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type GeoJSON from 'geojson';
|
|
2
|
+
/** @mapbox/point-geometry */
|
|
3
|
+
export interface Point {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
}
|
|
7
|
+
export declare type PointLike = Point | [number, number];
|
|
8
|
+
export interface LngLat {
|
|
9
|
+
lng: number;
|
|
10
|
+
lat: number;
|
|
11
|
+
wrap(): LngLat;
|
|
12
|
+
/** Return a LngLat as an array */
|
|
13
|
+
toArray(): number[];
|
|
14
|
+
/** Return a LngLat as a string */
|
|
15
|
+
toString(): string;
|
|
16
|
+
/** Returns the approximate distance between a pair of coordinates in meters
|
|
17
|
+
* Uses the Haversine Formula (from R.W. Sinnott, "Virtues of the Haversine", Sky and Telescope, vol. 68, no. 2, 1984, p. 159) */
|
|
18
|
+
distanceTo(lngLat: LngLat): number;
|
|
19
|
+
}
|
|
20
|
+
export declare type LngLatLike = [number, number] | LngLat | {
|
|
21
|
+
lng: number;
|
|
22
|
+
lat: number;
|
|
23
|
+
} | {
|
|
24
|
+
lon: number;
|
|
25
|
+
lat: number;
|
|
26
|
+
};
|
|
27
|
+
export interface LngLatBounds {
|
|
28
|
+
contains(lnglat: LngLatLike): boolean;
|
|
29
|
+
setNorthEast(ne: LngLatLike): this;
|
|
30
|
+
setSouthWest(sw: LngLatLike): this;
|
|
31
|
+
extend(obj: LngLatLike | LngLatBoundsLike): this;
|
|
32
|
+
getCenter(): LngLat;
|
|
33
|
+
getSouthWest(): LngLat;
|
|
34
|
+
getNorthEast(): LngLat;
|
|
35
|
+
getNorthWest(): LngLat;
|
|
36
|
+
getSouthEast(): LngLat;
|
|
37
|
+
getWest(): number;
|
|
38
|
+
getSouth(): number;
|
|
39
|
+
getEast(): number;
|
|
40
|
+
getNorth(): number;
|
|
41
|
+
toArray(): number[][];
|
|
42
|
+
toString(): string;
|
|
43
|
+
isEmpty(): boolean;
|
|
44
|
+
}
|
|
45
|
+
export declare type LngLatBoundsLike = LngLatBounds | [LngLatLike, LngLatLike] | [number, number, number, number] | LngLatLike;
|
|
46
|
+
export declare type MapGeoJSONFeature = GeoJSON.Feature<GeoJSON.Geometry> & {
|
|
47
|
+
layer: any;
|
|
48
|
+
source: string;
|
|
49
|
+
sourceLayer: string;
|
|
50
|
+
state: {
|
|
51
|
+
[key: string]: any;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export declare type PaddingOptions = {
|
|
55
|
+
top: number;
|
|
56
|
+
bottom: number;
|
|
57
|
+
left: number;
|
|
58
|
+
right: number;
|
|
59
|
+
};
|
|
60
|
+
/** Describes the camera's state */
|
|
61
|
+
export declare type ViewState = {
|
|
62
|
+
/** Longitude at map center */
|
|
63
|
+
longitude: number;
|
|
64
|
+
/** Latitude at map center */
|
|
65
|
+
latitude: number;
|
|
66
|
+
/** Map zoom level */
|
|
67
|
+
zoom: number;
|
|
68
|
+
/** Map rotation bearing in degrees counter-clockwise from north */
|
|
69
|
+
bearing: number;
|
|
70
|
+
/** Map angle in degrees at which the camera is looking at the ground */
|
|
71
|
+
pitch: number;
|
|
72
|
+
/** Dimensions in pixels applied on each side of the viewport for shifting the vanishing point. */
|
|
73
|
+
padding: PaddingOptions;
|
|
74
|
+
};
|
|
75
|
+
export declare type ControlPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
|
|
76
|
+
export interface ImmutableLike<T> {
|
|
77
|
+
toJS: () => T;
|
|
78
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","names":[],"sources":["../../src/types/common.ts"],"sourcesContent":["import type GeoJSON from 'geojson';\n\n/* Data types that are compatible with both mapbox and maplibre. Not exposed to the end user. */\n\n/** @mapbox/point-geometry */\nexport interface Point {\n x: number;\n y: number;\n}\nexport type PointLike = Point | [number, number];\n\nexport interface LngLat {\n lng: number;\n lat: number;\n\n wrap(): LngLat;\n /** Return a LngLat as an array */\n toArray(): number[];\n /** Return a LngLat as a string */\n toString(): string;\n /** Returns the approximate distance between a pair of coordinates in meters\n * Uses the Haversine Formula (from R.W. Sinnott, \"Virtues of the Haversine\", Sky and Telescope, vol. 68, no. 2, 1984, p. 159) */\n distanceTo(lngLat: LngLat): number;\n}\nexport type LngLatLike =\n | [number, number]\n | LngLat\n | {lng: number; lat: number}\n | {lon: number; lat: number};\n\nexport interface LngLatBounds {\n contains(lnglat: LngLatLike): boolean;\n setNorthEast(ne: LngLatLike): this;\n setSouthWest(sw: LngLatLike): this;\n extend(obj: LngLatLike | LngLatBoundsLike): this;\n\n getCenter(): LngLat;\n getSouthWest(): LngLat;\n getNorthEast(): LngLat;\n getNorthWest(): LngLat;\n getSouthEast(): LngLat;\n\n getWest(): number;\n getSouth(): number;\n getEast(): number;\n getNorth(): number;\n\n toArray(): number[][];\n toString(): string;\n isEmpty(): boolean;\n}\nexport type LngLatBoundsLike =\n | LngLatBounds\n | [LngLatLike, LngLatLike]\n | [number, number, number, number]\n | LngLatLike;\n\nexport type MapGeoJSONFeature = GeoJSON.Feature<GeoJSON.Geometry> & {\n layer: any;\n source: string;\n sourceLayer: string;\n state: {[key: string]: any};\n};\n\nexport type PaddingOptions = {\n top: number;\n bottom: number;\n left: number;\n right: number;\n};\n\n/* Public */\n\n/** Describes the camera's state */\nexport type ViewState = {\n /** Longitude at map center */\n longitude: number;\n /** Latitude at map center */\n latitude: number;\n /** Map zoom level */\n zoom: number;\n /** Map rotation bearing in degrees counter-clockwise from north */\n bearing: number;\n /** Map angle in degrees at which the camera is looking at the ground */\n pitch: number;\n /** Dimensions in pixels applied on each side of the viewport for shifting the vanishing point. */\n padding: PaddingOptions;\n};\n\nexport type ControlPosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';\n\nexport interface ImmutableLike<T> {\n toJS: () => T;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Map, MapLibreEvent as MapEvent, MapMouseEvent, MapLayerMouseEvent, MapTouchEvent, MapLayerTouchEvent, MapStyleDataEvent, MapSourceDataEvent, MapWheelEvent, MapLibreZoomEvent as MapBoxZoomEvent } from 'bkoi-gl';
|
|
2
|
+
import { ErrorEvent as _ErrorEvent, ViewStateChangeEvent as _ViewStateChangeEvent } from './events';
|
|
3
|
+
export type { MapEvent, MapMouseEvent, MapLayerMouseEvent, MapTouchEvent, MapLayerTouchEvent, MapStyleDataEvent, MapSourceDataEvent, MapWheelEvent, MapBoxZoomEvent };
|
|
4
|
+
export declare type ErrorEvent = _ErrorEvent<Map>;
|
|
5
|
+
export declare type ViewStateChangeEvent = _ViewStateChangeEvent<Map>;
|
|
6
|
+
export declare type MapCallbacks = {
|
|
7
|
+
onMouseDown?: (e: MapLayerMouseEvent) => void;
|
|
8
|
+
onMouseUp?: (e: MapLayerMouseEvent) => void;
|
|
9
|
+
onMouseOver?: (e: MapLayerMouseEvent) => void;
|
|
10
|
+
onMouseMove?: (e: MapLayerMouseEvent) => void;
|
|
11
|
+
onClick?: (e: MapLayerMouseEvent) => void;
|
|
12
|
+
onDblClick?: (e: MapLayerMouseEvent) => void;
|
|
13
|
+
onMouseEnter?: (e: MapLayerMouseEvent) => void;
|
|
14
|
+
onMouseLeave?: (e: MapLayerMouseEvent) => void;
|
|
15
|
+
onMouseOut?: (e: MapLayerMouseEvent) => void;
|
|
16
|
+
onContextMenu?: (e: MapLayerMouseEvent) => void;
|
|
17
|
+
onTouchStart?: (e: MapLayerTouchEvent) => void;
|
|
18
|
+
onTouchEnd?: (e: MapLayerTouchEvent) => void;
|
|
19
|
+
onTouchMove?: (e: MapLayerTouchEvent) => void;
|
|
20
|
+
onTouchCancel?: (e: MapLayerTouchEvent) => void;
|
|
21
|
+
onMoveStart?: (e: ViewStateChangeEvent) => void;
|
|
22
|
+
onMove?: (e: ViewStateChangeEvent) => void;
|
|
23
|
+
onMoveEnd?: (e: ViewStateChangeEvent) => void;
|
|
24
|
+
onDragStart?: (e: ViewStateChangeEvent) => void;
|
|
25
|
+
onDrag?: (e: ViewStateChangeEvent) => void;
|
|
26
|
+
onDragEnd?: (e: ViewStateChangeEvent) => void;
|
|
27
|
+
onZoomStart?: (e: ViewStateChangeEvent) => void;
|
|
28
|
+
onZoom?: (e: ViewStateChangeEvent) => void;
|
|
29
|
+
onZoomEnd?: (e: ViewStateChangeEvent) => void;
|
|
30
|
+
onRotateStart?: (e: ViewStateChangeEvent) => void;
|
|
31
|
+
onRotate?: (e: ViewStateChangeEvent) => void;
|
|
32
|
+
onRotateEnd?: (e: ViewStateChangeEvent) => void;
|
|
33
|
+
onPitchStart?: (e: ViewStateChangeEvent) => void;
|
|
34
|
+
onPitch?: (e: ViewStateChangeEvent) => void;
|
|
35
|
+
onPitchEnd?: (e: ViewStateChangeEvent) => void;
|
|
36
|
+
onWheel?: (e: MapWheelEvent) => void;
|
|
37
|
+
onBoxZoomStart?: (e: MapBoxZoomEvent) => void;
|
|
38
|
+
onBoxZoomEnd?: (e: MapBoxZoomEvent) => void;
|
|
39
|
+
onBoxZoomCancel?: (e: MapBoxZoomEvent) => void;
|
|
40
|
+
onResize?: (e: MapEvent) => void;
|
|
41
|
+
onLoad?: (e: MapEvent) => void;
|
|
42
|
+
onRender?: (e: MapEvent) => void;
|
|
43
|
+
onIdle?: (e: MapEvent) => void;
|
|
44
|
+
onError?: (e: ErrorEvent) => void;
|
|
45
|
+
onRemove?: (e: MapEvent) => void;
|
|
46
|
+
onData?: (e: MapStyleDataEvent | MapSourceDataEvent) => void;
|
|
47
|
+
onStyleData?: (e: MapStyleDataEvent) => void;
|
|
48
|
+
onSourceData?: (e: MapSourceDataEvent) => void;
|
|
49
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events-bkoi-gl.js","names":[],"sources":["../../src/types/events-bkoi-gl.ts"],"sourcesContent":["import {\n Map,\n MapLibreEvent as MapEvent,\n MapMouseEvent,\n MapLayerMouseEvent,\n MapTouchEvent,\n MapLayerTouchEvent,\n MapStyleDataEvent,\n MapSourceDataEvent,\n MapWheelEvent,\n MapLibreZoomEvent as MapBoxZoomEvent\n // @ts-ignore\n// eslint-disable-next-line import/no-unresolved\n} from 'bkoi-gl';\nimport {ErrorEvent as _ErrorEvent, ViewStateChangeEvent as _ViewStateChangeEvent} from './events';\n\nexport type {\n MapEvent,\n MapMouseEvent,\n MapLayerMouseEvent,\n MapTouchEvent,\n MapLayerTouchEvent,\n MapStyleDataEvent,\n MapSourceDataEvent,\n MapWheelEvent,\n MapBoxZoomEvent\n};\n\nexport type ErrorEvent = _ErrorEvent<Map>;\nexport type ViewStateChangeEvent = _ViewStateChangeEvent<Map>;\n\nexport type MapCallbacks = {\n onMouseDown?: (e: MapLayerMouseEvent) => void;\n onMouseUp?: (e: MapLayerMouseEvent) => void;\n onMouseOver?: (e: MapLayerMouseEvent) => void;\n onMouseMove?: (e: MapLayerMouseEvent) => void;\n onClick?: (e: MapLayerMouseEvent) => void;\n onDblClick?: (e: MapLayerMouseEvent) => void;\n onMouseEnter?: (e: MapLayerMouseEvent) => void;\n onMouseLeave?: (e: MapLayerMouseEvent) => void;\n onMouseOut?: (e: MapLayerMouseEvent) => void;\n onContextMenu?: (e: MapLayerMouseEvent) => void;\n onTouchStart?: (e: MapLayerTouchEvent) => void;\n onTouchEnd?: (e: MapLayerTouchEvent) => void;\n onTouchMove?: (e: MapLayerTouchEvent) => void;\n onTouchCancel?: (e: MapLayerTouchEvent) => void;\n\n onMoveStart?: (e: ViewStateChangeEvent) => void;\n onMove?: (e: ViewStateChangeEvent) => void;\n onMoveEnd?: (e: ViewStateChangeEvent) => void;\n onDragStart?: (e: ViewStateChangeEvent) => void;\n onDrag?: (e: ViewStateChangeEvent) => void;\n onDragEnd?: (e: ViewStateChangeEvent) => void;\n onZoomStart?: (e: ViewStateChangeEvent) => void;\n onZoom?: (e: ViewStateChangeEvent) => void;\n onZoomEnd?: (e: ViewStateChangeEvent) => void;\n onRotateStart?: (e: ViewStateChangeEvent) => void;\n onRotate?: (e: ViewStateChangeEvent) => void;\n onRotateEnd?: (e: ViewStateChangeEvent) => void;\n onPitchStart?: (e: ViewStateChangeEvent) => void;\n onPitch?: (e: ViewStateChangeEvent) => void;\n onPitchEnd?: (e: ViewStateChangeEvent) => void;\n\n onWheel?: (e: MapWheelEvent) => void;\n onBoxZoomStart?: (e: MapBoxZoomEvent) => void;\n onBoxZoomEnd?: (e: MapBoxZoomEvent) => void;\n onBoxZoomCancel?: (e: MapBoxZoomEvent) => void;\n\n onResize?: (e: MapEvent) => void;\n onLoad?: (e: MapEvent) => void;\n onRender?: (e: MapEvent) => void;\n onIdle?: (e: MapEvent) => void;\n onError?: (e: ErrorEvent) => void;\n onRemove?: (e: MapEvent) => void;\n onData?: (e: MapStyleDataEvent | MapSourceDataEvent) => void;\n onStyleData?: (e: MapStyleDataEvent) => void;\n onSourceData?: (e: MapSourceDataEvent) => void;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Map, MapboxEvent as MapEvent, MapMouseEvent, MapLayerMouseEvent, MapTouchEvent, MapLayerTouchEvent, MapStyleDataEvent, MapSourceDataEvent, MapWheelEvent, MapBoxZoomEvent } from 'mapbox-gl';
|
|
2
|
+
import { ErrorEvent as _ErrorEvent, ViewStateChangeEvent as _ViewStateChangeEvent } from './events';
|
|
3
|
+
export type { MapEvent, MapMouseEvent, MapLayerMouseEvent, MapTouchEvent, MapLayerTouchEvent, MapStyleDataEvent, MapSourceDataEvent, MapWheelEvent, MapBoxZoomEvent };
|
|
4
|
+
export declare type ErrorEvent = _ErrorEvent<Map>;
|
|
5
|
+
export declare type ViewStateChangeEvent = _ViewStateChangeEvent<Map>;
|
|
6
|
+
export declare type MapCallbacks = {
|
|
7
|
+
onMouseDown?: (e: MapLayerMouseEvent) => void;
|
|
8
|
+
onMouseUp?: (e: MapLayerMouseEvent) => void;
|
|
9
|
+
onMouseOver?: (e: MapLayerMouseEvent) => void;
|
|
10
|
+
onMouseMove?: (e: MapLayerMouseEvent) => void;
|
|
11
|
+
onClick?: (e: MapLayerMouseEvent) => void;
|
|
12
|
+
onDblClick?: (e: MapLayerMouseEvent) => void;
|
|
13
|
+
onMouseEnter?: (e: MapLayerMouseEvent) => void;
|
|
14
|
+
onMouseLeave?: (e: MapLayerMouseEvent) => void;
|
|
15
|
+
onMouseOut?: (e: MapLayerMouseEvent) => void;
|
|
16
|
+
onContextMenu?: (e: MapLayerMouseEvent) => void;
|
|
17
|
+
onTouchStart?: (e: MapLayerTouchEvent) => void;
|
|
18
|
+
onTouchEnd?: (e: MapLayerTouchEvent) => void;
|
|
19
|
+
onTouchMove?: (e: MapLayerTouchEvent) => void;
|
|
20
|
+
onTouchCancel?: (e: MapLayerTouchEvent) => void;
|
|
21
|
+
onMoveStart?: (e: ViewStateChangeEvent) => void;
|
|
22
|
+
onMove?: (e: ViewStateChangeEvent) => void;
|
|
23
|
+
onMoveEnd?: (e: ViewStateChangeEvent) => void;
|
|
24
|
+
onDragStart?: (e: ViewStateChangeEvent) => void;
|
|
25
|
+
onDrag?: (e: ViewStateChangeEvent) => void;
|
|
26
|
+
onDragEnd?: (e: ViewStateChangeEvent) => void;
|
|
27
|
+
onZoomStart?: (e: ViewStateChangeEvent) => void;
|
|
28
|
+
onZoom?: (e: ViewStateChangeEvent) => void;
|
|
29
|
+
onZoomEnd?: (e: ViewStateChangeEvent) => void;
|
|
30
|
+
onRotateStart?: (e: ViewStateChangeEvent) => void;
|
|
31
|
+
onRotate?: (e: ViewStateChangeEvent) => void;
|
|
32
|
+
onRotateEnd?: (e: ViewStateChangeEvent) => void;
|
|
33
|
+
onPitchStart?: (e: ViewStateChangeEvent) => void;
|
|
34
|
+
onPitch?: (e: ViewStateChangeEvent) => void;
|
|
35
|
+
onPitchEnd?: (e: ViewStateChangeEvent) => void;
|
|
36
|
+
onWheel?: (e: MapWheelEvent) => void;
|
|
37
|
+
onBoxZoomStart?: (e: MapBoxZoomEvent) => void;
|
|
38
|
+
onBoxZoomEnd?: (e: MapBoxZoomEvent) => void;
|
|
39
|
+
onBoxZoomCancel?: (e: MapBoxZoomEvent) => void;
|
|
40
|
+
onResize?: (e: MapEvent) => void;
|
|
41
|
+
onLoad?: (e: MapEvent) => void;
|
|
42
|
+
onRender?: (e: MapEvent) => void;
|
|
43
|
+
onIdle?: (e: MapEvent) => void;
|
|
44
|
+
onError?: (e: ErrorEvent) => void;
|
|
45
|
+
onRemove?: (e: MapEvent) => void;
|
|
46
|
+
onData?: (e: MapStyleDataEvent | MapSourceDataEvent) => void;
|
|
47
|
+
onStyleData?: (e: MapStyleDataEvent) => void;
|
|
48
|
+
onSourceData?: (e: MapSourceDataEvent) => void;
|
|
49
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events-mapbox.js","names":[],"sources":["../../src/types/events-mapbox.ts"],"sourcesContent":["import {\n Map,\n MapboxEvent as MapEvent,\n MapMouseEvent,\n MapLayerMouseEvent,\n MapTouchEvent,\n MapLayerTouchEvent,\n MapStyleDataEvent,\n MapSourceDataEvent,\n MapWheelEvent,\n MapBoxZoomEvent\n} from 'mapbox-gl';\nimport {ErrorEvent as _ErrorEvent, ViewStateChangeEvent as _ViewStateChangeEvent} from './events';\n\nexport type {\n MapEvent,\n MapMouseEvent,\n MapLayerMouseEvent,\n MapTouchEvent,\n MapLayerTouchEvent,\n MapStyleDataEvent,\n MapSourceDataEvent,\n MapWheelEvent,\n MapBoxZoomEvent\n};\n\nexport type ErrorEvent = _ErrorEvent<Map>;\nexport type ViewStateChangeEvent = _ViewStateChangeEvent<Map>;\n\nexport type MapCallbacks = {\n onMouseDown?: (e: MapLayerMouseEvent) => void;\n onMouseUp?: (e: MapLayerMouseEvent) => void;\n onMouseOver?: (e: MapLayerMouseEvent) => void;\n onMouseMove?: (e: MapLayerMouseEvent) => void;\n onClick?: (e: MapLayerMouseEvent) => void;\n onDblClick?: (e: MapLayerMouseEvent) => void;\n onMouseEnter?: (e: MapLayerMouseEvent) => void;\n onMouseLeave?: (e: MapLayerMouseEvent) => void;\n onMouseOut?: (e: MapLayerMouseEvent) => void;\n onContextMenu?: (e: MapLayerMouseEvent) => void;\n onTouchStart?: (e: MapLayerTouchEvent) => void;\n onTouchEnd?: (e: MapLayerTouchEvent) => void;\n onTouchMove?: (e: MapLayerTouchEvent) => void;\n onTouchCancel?: (e: MapLayerTouchEvent) => void;\n\n onMoveStart?: (e: ViewStateChangeEvent) => void;\n onMove?: (e: ViewStateChangeEvent) => void;\n onMoveEnd?: (e: ViewStateChangeEvent) => void;\n onDragStart?: (e: ViewStateChangeEvent) => void;\n onDrag?: (e: ViewStateChangeEvent) => void;\n onDragEnd?: (e: ViewStateChangeEvent) => void;\n onZoomStart?: (e: ViewStateChangeEvent) => void;\n onZoom?: (e: ViewStateChangeEvent) => void;\n onZoomEnd?: (e: ViewStateChangeEvent) => void;\n onRotateStart?: (e: ViewStateChangeEvent) => void;\n onRotate?: (e: ViewStateChangeEvent) => void;\n onRotateEnd?: (e: ViewStateChangeEvent) => void;\n onPitchStart?: (e: ViewStateChangeEvent) => void;\n onPitch?: (e: ViewStateChangeEvent) => void;\n onPitchEnd?: (e: ViewStateChangeEvent) => void;\n\n onWheel?: (e: MapWheelEvent) => void;\n onBoxZoomStart?: (e: MapBoxZoomEvent) => void;\n onBoxZoomEnd?: (e: MapBoxZoomEvent) => void;\n onBoxZoomCancel?: (e: MapBoxZoomEvent) => void;\n\n onResize?: (e: MapEvent) => void;\n onLoad?: (e: MapEvent) => void;\n onRender?: (e: MapEvent) => void;\n onIdle?: (e: MapEvent) => void;\n onError?: (e: ErrorEvent) => void;\n onRemove?: (e: MapEvent) => void;\n onData?: (e: MapStyleDataEvent | MapSourceDataEvent) => void;\n onStyleData?: (e: MapStyleDataEvent) => void;\n onSourceData?: (e: MapSourceDataEvent) => void;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ViewState, Point, LngLat, MapGeoJSONFeature } from './common';
|
|
2
|
+
import type { MapInstance, Evented, MarkerInstance, PopupInstance, GeolocateControlInstance } from './lib';
|
|
3
|
+
export interface Callbacks {
|
|
4
|
+
[key: `on${string}`]: Function;
|
|
5
|
+
}
|
|
6
|
+
export interface MapEvent<SourceT extends Evented, OriginalEventT = undefined> {
|
|
7
|
+
type: string;
|
|
8
|
+
target: SourceT;
|
|
9
|
+
originalEvent: OriginalEventT;
|
|
10
|
+
}
|
|
11
|
+
export declare type ErrorEvent<MapT extends MapInstance> = MapEvent<MapT> & {
|
|
12
|
+
type: 'error';
|
|
13
|
+
error: Error;
|
|
14
|
+
};
|
|
15
|
+
export declare type MapMouseEvent<MapT extends MapInstance> = MapEvent<MapT, MouseEvent> & {
|
|
16
|
+
point: Point;
|
|
17
|
+
lngLat: LngLat;
|
|
18
|
+
features?: MapGeoJSONFeature[];
|
|
19
|
+
};
|
|
20
|
+
export declare type ViewStateChangeEvent<MapT extends MapInstance> = (MapEvent<MapT, MouseEvent | TouchEvent | WheelEvent | undefined> & {
|
|
21
|
+
type: 'movestart' | 'move' | 'moveend' | 'zoomstart' | 'zoom' | 'zoomend';
|
|
22
|
+
viewState: ViewState;
|
|
23
|
+
}) | (MapEvent<MapT, MouseEvent | TouchEvent | undefined> & {
|
|
24
|
+
type: 'rotatestart' | 'rotate' | 'rotateend' | 'dragstart' | 'drag' | 'dragend' | 'pitchstart' | 'pitch' | 'pitchend';
|
|
25
|
+
viewState: ViewState;
|
|
26
|
+
});
|
|
27
|
+
export declare type PopupEvent<PopupT extends PopupInstance> = {
|
|
28
|
+
type: 'open' | 'close';
|
|
29
|
+
target: PopupT;
|
|
30
|
+
};
|
|
31
|
+
export declare type MarkerEvent<MarkerT extends MarkerInstance, OriginalEventT = undefined> = MapEvent<MarkerT, OriginalEventT>;
|
|
32
|
+
export declare type MarkerDragEvent<MarkerT extends MarkerInstance> = MarkerEvent<MarkerT> & {
|
|
33
|
+
type: 'dragstart' | 'drag' | 'dragend';
|
|
34
|
+
target: MarkerT;
|
|
35
|
+
lngLat: LngLat;
|
|
36
|
+
};
|
|
37
|
+
export declare type GeolocateEvent<GeolocateControlT extends GeolocateControlInstance> = MapEvent<GeolocateControlT>;
|
|
38
|
+
export declare type GeolocateResultEvent<GeolocateControlT extends GeolocateControlInstance> = GeolocateEvent<GeolocateControlT> & GeolocationPosition;
|
|
39
|
+
export declare type GeolocateErrorEvent<GeolocateControlT extends GeolocateControlInstance> = GeolocateEvent<GeolocateControlT> & GeolocationPositionError;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","names":[],"sources":["../../src/types/events.ts"],"sourcesContent":["import type {ViewState, Point, LngLat, MapGeoJSONFeature} from './common';\nimport type {\n MapInstance,\n Evented,\n MarkerInstance,\n PopupInstance,\n GeolocateControlInstance\n} from './lib';\n\nexport interface Callbacks {\n [key: `on${string}`]: Function;\n}\n\nexport interface MapEvent<SourceT extends Evented, OriginalEventT = undefined> {\n type: string;\n target: SourceT;\n originalEvent: OriginalEventT;\n}\n\nexport type ErrorEvent<MapT extends MapInstance> = MapEvent<MapT> & {\n type: 'error';\n error: Error;\n};\n\nexport type MapMouseEvent<MapT extends MapInstance> = MapEvent<MapT, MouseEvent> & {\n point: Point;\n lngLat: LngLat;\n features?: MapGeoJSONFeature[];\n};\n\nexport type ViewStateChangeEvent<MapT extends MapInstance> =\n | (MapEvent<MapT, MouseEvent | TouchEvent | WheelEvent | undefined> & {\n type: 'movestart' | 'move' | 'moveend' | 'zoomstart' | 'zoom' | 'zoomend';\n viewState: ViewState;\n })\n | (MapEvent<MapT, MouseEvent | TouchEvent | undefined> & {\n type:\n | 'rotatestart'\n | 'rotate'\n | 'rotateend'\n | 'dragstart'\n | 'drag'\n | 'dragend'\n | 'pitchstart'\n | 'pitch'\n | 'pitchend';\n viewState: ViewState;\n });\n\nexport type PopupEvent<PopupT extends PopupInstance> = {\n type: 'open' | 'close';\n target: PopupT;\n};\n\nexport type MarkerEvent<MarkerT extends MarkerInstance, OriginalEventT = undefined> = MapEvent<\n MarkerT,\n OriginalEventT\n>;\n\nexport type MarkerDragEvent<MarkerT extends MarkerInstance> = MarkerEvent<MarkerT> & {\n type: 'dragstart' | 'drag' | 'dragend';\n target: MarkerT;\n lngLat: LngLat;\n};\n\nexport type GeolocateEvent<GeolocateControlT extends GeolocateControlInstance> =\n MapEvent<GeolocateControlT>;\n\nexport type GeolocateResultEvent<GeolocateControlT extends GeolocateControlInstance> =\n GeolocateEvent<GeolocateControlT> & GeolocationPosition;\n\nexport type GeolocateErrorEvent<GeolocateControlT extends GeolocateControlInstance> =\n GeolocateEvent<GeolocateControlT> & GeolocationPositionError;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export * from './common';
|
|
2
|
+
export * from './lib';
|
|
3
|
+
export * from './events';
|
|
4
|
+
import type GeoJSON from 'geojson';
|
|
5
|
+
import type { CustomSourceImplementation } from './lib';
|
|
6
|
+
export interface ISource {
|
|
7
|
+
type: string;
|
|
8
|
+
}
|
|
9
|
+
export interface ILayer {
|
|
10
|
+
id: string;
|
|
11
|
+
type: string;
|
|
12
|
+
metadata?: any;
|
|
13
|
+
source?: unknown;
|
|
14
|
+
minzoom?: number;
|
|
15
|
+
maxzoom?: number;
|
|
16
|
+
filter?: any;
|
|
17
|
+
layout?: {
|
|
18
|
+
[property: string]: any;
|
|
19
|
+
};
|
|
20
|
+
paint?: {
|
|
21
|
+
[property: string]: any;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface MapStyle {
|
|
25
|
+
name?: string;
|
|
26
|
+
metadata?: unknown;
|
|
27
|
+
version: number;
|
|
28
|
+
layers: ILayer[];
|
|
29
|
+
sources: {
|
|
30
|
+
[sourceName: string]: object;
|
|
31
|
+
};
|
|
32
|
+
fog?: any;
|
|
33
|
+
terrain?: any;
|
|
34
|
+
light?: any;
|
|
35
|
+
}
|
|
36
|
+
export interface GeoJSONSourceImplementation {
|
|
37
|
+
type: 'geojson';
|
|
38
|
+
setData(data: GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry> | String): this;
|
|
39
|
+
}
|
|
40
|
+
export interface ImageSourceImplemtation {
|
|
41
|
+
type: 'image';
|
|
42
|
+
updateImage(options: {
|
|
43
|
+
url?: string;
|
|
44
|
+
coordinates?: number[][];
|
|
45
|
+
}): this;
|
|
46
|
+
setCoordinates(coordinates: number[][]): this;
|
|
47
|
+
}
|
|
48
|
+
export interface CanvasSourceImplemtation {
|
|
49
|
+
type: 'canvas';
|
|
50
|
+
play(): void;
|
|
51
|
+
pause(): void;
|
|
52
|
+
getCanvas(): HTMLCanvasElement;
|
|
53
|
+
setCoordinates(coordinates: number[][]): this;
|
|
54
|
+
}
|
|
55
|
+
export interface VectorSourceImplementation {
|
|
56
|
+
type: 'vector';
|
|
57
|
+
setTiles(tiles: ReadonlyArray<string>): this;
|
|
58
|
+
setUrl(url: string): this;
|
|
59
|
+
}
|
|
60
|
+
export interface RasterSourceImplementation {
|
|
61
|
+
type: 'raster' | 'raster-dem';
|
|
62
|
+
setTiles(tiles: ReadonlyArray<string>): this;
|
|
63
|
+
setUrl(url: string): this;
|
|
64
|
+
}
|
|
65
|
+
export interface VideoSourceImplementation {
|
|
66
|
+
type: 'video';
|
|
67
|
+
getVideo(): HTMLVideoElement;
|
|
68
|
+
setCoordinates(coordinates: number[][]): this;
|
|
69
|
+
}
|
|
70
|
+
export declare type AnySourceImplementation = GeoJSONSourceImplementation | VideoSourceImplementation | ImageSourceImplemtation | CanvasSourceImplemtation | VectorSourceImplementation | RasterSourceImplementation | CustomSourceImplementation<HTMLImageElement | ImageData | ImageBitmap>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/types/index.ts"],"sourcesContent":["export * from './common';\nexport * from './lib';\nexport * from './events';\n\nimport type GeoJSON from 'geojson';\nimport type {CustomSourceImplementation} from './lib';\n\n// Internal: source implementations\n\nexport interface ISource {\n type: string;\n}\n\nexport interface ILayer {\n id: string;\n type: string;\n\n metadata?: any;\n source?: unknown;\n\n minzoom?: number;\n maxzoom?: number;\n\n filter?: any;\n layout?: {\n [property: string]: any;\n };\n paint?: {\n [property: string]: any;\n };\n}\n\nexport interface MapStyle {\n name?: string;\n metadata?: unknown;\n version: number;\n layers: ILayer[];\n sources: {\n [sourceName: string]: object;\n };\n\n fog?: any;\n terrain?: any;\n light?: any;\n}\n\nexport interface GeoJSONSourceImplementation {\n type: 'geojson';\n setData(\n data: GeoJSON.Feature<GeoJSON.Geometry> | GeoJSON.FeatureCollection<GeoJSON.Geometry> | String\n ): this;\n}\n\nexport interface ImageSourceImplemtation {\n type: 'image';\n updateImage(options: {url?: string; coordinates?: number[][]}): this;\n setCoordinates(coordinates: number[][]): this;\n}\n\nexport interface CanvasSourceImplemtation {\n type: 'canvas';\n play(): void;\n pause(): void;\n getCanvas(): HTMLCanvasElement;\n setCoordinates(coordinates: number[][]): this;\n}\n\nexport interface VectorSourceImplementation {\n type: 'vector';\n setTiles(tiles: ReadonlyArray<string>): this;\n setUrl(url: string): this;\n}\n\nexport interface RasterSourceImplementation {\n type: 'raster' | 'raster-dem';\n setTiles(tiles: ReadonlyArray<string>): this;\n setUrl(url: string): this;\n}\n\nexport interface VideoSourceImplementation {\n type: 'video';\n getVideo(): HTMLVideoElement;\n setCoordinates(coordinates: number[][]): this;\n}\n\nexport type AnySourceImplementation =\n | GeoJSONSourceImplementation\n | VideoSourceImplementation\n | ImageSourceImplemtation\n | CanvasSourceImplemtation\n | VectorSourceImplementation\n | RasterSourceImplementation\n | CustomSourceImplementation<HTMLImageElement | ImageData | ImageBitmap>;\n"],"mappings":"","ignoreList":[]}
|