@powerportalspro/react-maps 0.0.0-stage → 13.0.0
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/EULA.txt +263 -0
- package/README.md +37 -2
- package/dist/chunk-7HDK44TQ.js +366 -0
- package/dist/chunk-7HDK44TQ.js.map +1 -0
- package/dist/chunk-G723VLPV.js +238 -0
- package/dist/chunk-G723VLPV.js.map +1 -0
- package/dist/google-6EZOUTYI.js +293 -0
- package/dist/google-6EZOUTYI.js.map +1 -0
- package/dist/index.cjs +4990 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +689 -0
- package/dist/index.d.ts +689 -0
- package/dist/index.js +3603 -0
- package/dist/index.js.map +1 -0
- package/dist/maplibre-J3XSEXEJ.js +424 -0
- package/dist/maplibre-J3XSEXEJ.js.map +1 -0
- package/package.json +68 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/providers/google.ts"],"names":["document"],"mappings":"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","file":"google-6EZOUTYI.js","sourcesContent":["/// <reference types=\"google.maps\" />\nimport { approximateBounds } from '../geo.js';\nimport { SUGGESTION_COUNT } from '../geocoders.js';\nimport type {\n GoogleSettings,\n MapAddressQuery,\n MapGeocoder,\n MapOverlay,\n MapProvider,\n MapSurface,\n MapSurfaceContext,\n} from '../provider.js';\nimport type {\n MapAddressSuggestion,\n MapBounds,\n MapCamera,\n MapPlace,\n MapPoint,\n MapPosition,\n MapShape,\n MapStyle,\n MapView,\n} from '../types.js';\n\nconst CALLBACK = '__pppGoogleMapsLoaded';\n\n// Google's script, once per page: every map on it shares the first one's key and language. Kept on\n// the global object, as the provider registry is, so every copy of the map's code on the page — a\n// Blazor bundle and a React one — loads it once between them.\nconst SHARED = Symbol.for('powerportalspro.maps.google');\n\ninterface SharedGoogleMaps {\n loading: Promise<void> | null;\n /** The maps to tell when Google refuses the key, which it reports once, for the page. */\n authFailureListeners: Set<() => void>;\n}\n\ntype GoogleGlobal = typeof globalThis & {\n google?: typeof google;\n gm_authFailure?: () => void;\n [CALLBACK]?: () => void;\n [SHARED]?: SharedGoogleMaps;\n};\n\nfunction shared(): SharedGoogleMaps {\n return ((globalThis as GoogleGlobal)[SHARED] ??= { loading: null, authFailureListeners: new Set() });\n}\n\n/** Loads the Maps JavaScript API, once. */\nexport function loadGoogleMaps(apiKey: string, language: string, document: Document): Promise<void> {\n const global = globalThis as GoogleGlobal;\n if (typeof global.google?.maps?.importLibrary === 'function') return Promise.resolve();\n\n const state = shared();\n state.loading ??= new Promise<void>((resolve, reject) => {\n const previousFailure = global.gm_authFailure;\n global.gm_authFailure = () => {\n previousFailure?.();\n for (const listener of state.authFailureListeners) listener();\n };\n global[CALLBACK] = () => resolve();\n\n const query = new URLSearchParams({ key: apiKey, v: 'weekly', loading: 'async', callback: CALLBACK, language });\n const script = document.createElement('script');\n script.src = `https://maps.googleapis.com/maps/api/js?${query}`;\n script.async = true;\n script.onerror = () => {\n state.loading = null;\n script.remove();\n reject(new Error(\"Google Maps' script could not be loaded.\"));\n };\n document.head.appendChild(script);\n });\n return state.loading;\n}\n\nconst MAP_TYPES: Record<MapStyle, string> = { road: 'roadmap', satellite: 'satellite', hybrid: 'hybrid' };\n\nexport const googleProvider: MapProvider<GoogleSettings> = {\n name: 'google',\n async create(context) {\n if (!context.settings.apiKey) throw new Error(\"Google Maps needs the portal's API key: PowerPortalsPro:Maps:Google:ApiKey.\");\n await loadGoogleMaps(context.settings.apiKey, context.language, context.container.ownerDocument);\n const [maps, core] = await Promise.all([\n google.maps.importLibrary('maps') as Promise<google.maps.MapsLibrary>,\n google.maps.importLibrary('core') as Promise<google.maps.CoreLibrary>,\n ]);\n return new GoogleSurface(context, maps, core);\n },\n};\n\ninterface Placed {\n element: HTMLElement;\n position: google.maps.LatLng;\n anchor: 'bottom' | 'center';\n}\n\nclass GoogleSurface implements MapSurface {\n readonly geocoder: MapGeocoder = new GooglePlaces();\n private readonly map: google.maps.Map;\n private readonly layer: google.maps.OverlayView & { placed: Set<Placed>; place(placed: Placed): void };\n private readonly listeners: google.maps.MapsEventListener[] = [];\n private shapes: { shape: google.maps.Polyline | google.maps.Polygon | google.maps.Circle; listener: google.maps.MapsEventListener }[] = [];\n private readonly onAuthFailure: () => void;\n // Where the map was when it last stopped: a draw anywhere else is a move, one there a redraw.\n private idleView: string | null = null;\n private style: MapStyle;\n private readonly dark: boolean;\n\n constructor(\n private readonly context: MapSurfaceContext<GoogleSettings>,\n private readonly maps: google.maps.MapsLibrary,\n private readonly core: google.maps.CoreLibrary,\n ) {\n this.style = context.style;\n this.dark = context.dark;\n\n this.map = new maps.Map(context.container, {\n center: toLatLngLiteral(context.camera.center),\n zoom: context.camera.zoom,\n mapTypeId: MAP_TYPES[context.style],\n // Google's dark scheme can only be chosen as the map is made: the map is made again when the\n // portal's theme changes (setStyle returns false).\n colorScheme: context.dark ? 'DARK' : 'LIGHT',\n ...(context.settings.mapId ? { mapId: context.settings.mapId } : {}),\n // The map's style is the page's to choose, and a place's own card would cover the popup.\n mapTypeControl: false,\n streetViewControl: false,\n fullscreenControl: false,\n clickableIcons: false,\n // Last, so the host's own options win: Street View, its controls, gesture handling.\n ...(context.nativeOptions as google.maps.MapOptions | undefined),\n });\n\n // Google draws its overlays whenever it likes, moving or not, and only a move ends in an idle: a\n // draw where the map last stopped is a redraw, or the map would count as moving until it next\n // moved and stopped.\n this.layer = createElementLayer(maps, () =>\n this.viewKey() === this.idleView ? context.events.redrawn() : context.events.viewChanging(),\n );\n this.layer.setMap(this.map);\n\n const events = context.events;\n this.listeners.push(\n this.map.addListener('click', (event: google.maps.MapMouseEvent) => {\n if (!event.latLng) return;\n const position = fromLatLng(event.latLng);\n events.click(position, this.project(position));\n }),\n this.map.addListener('bounds_changed', () => events.viewChanging()),\n this.map.addListener('idle', () => {\n this.idleView = this.viewKey();\n events.viewChanged();\n }),\n );\n\n this.onAuthFailure = () => events.error('Google Maps refused the API key.');\n shared().authFailureListeners.add(this.onAuthFailure);\n }\n\n get native(): unknown {\n return this.map;\n }\n\n getView(): MapView {\n const center = this.map.getCenter();\n const zoom = this.map.getZoom() ?? this.context.camera.zoom;\n const position = center ? fromLatLng(center) : this.context.camera.center;\n const bounds = this.map.getBounds();\n const container = this.context.container;\n return {\n center: position,\n zoom,\n // Until the map has drawn once, Google has no bounds to give: worked out from the camera.\n bounds: bounds\n ? {\n north: bounds.getNorthEast().lat(),\n east: bounds.getNorthEast().lng(),\n south: bounds.getSouthWest().lat(),\n west: bounds.getSouthWest().lng(),\n }\n : approximateBounds(position, zoom, container.clientWidth, container.clientHeight),\n };\n }\n\n setCamera(camera: MapCamera, animate: boolean): void {\n if (animate) {\n this.map.panTo(toLatLngLiteral(camera.center));\n this.map.setZoom(camera.zoom);\n } else {\n this.map.moveCamera({ center: toLatLngLiteral(camera.center), zoom: camera.zoom });\n }\n }\n\n fitBounds(bounds: MapBounds, padding: number, maxZoom: number): void {\n this.map.fitBounds(\n { north: bounds.north, south: bounds.south, east: bounds.east, west: bounds.west },\n padding,\n );\n // Google's fitBounds has no ceiling: one close cluster of items would zoom in to the street.\n const listener = this.map.addListener('idle', () => {\n listener.remove();\n if ((this.map.getZoom() ?? 0) > maxZoom) this.map.setZoom(maxZoom);\n });\n }\n\n panBy(x: number, y: number): void {\n this.map.panBy(x, y);\n }\n\n // Where the map is looking, to tell a draw where it last stopped from one somewhere else.\n private viewKey(): string {\n const center = this.map.getCenter();\n return `${center?.lat()},${center?.lng()},${this.map.getZoom()}`;\n }\n\n project(position: MapPosition): MapPoint {\n const point = this.layer\n .getProjection()\n ?.fromLatLngToContainerPixel(new this.core.LatLng(position.latitude, position.longitude));\n if (point) return { x: point.x, y: point.y };\n\n // Before the map has drawn: the container's center is as good as any.\n return { x: this.context.container.clientWidth / 2, y: this.context.container.clientHeight / 2 };\n }\n\n addOverlay(element: HTMLElement, position: MapPosition, anchor: 'bottom' | 'center'): MapOverlay {\n const placed: Placed = { element, anchor, position: new this.core.LatLng(position.latitude, position.longitude) };\n element.style.position = 'absolute';\n element.style.transform = anchor === 'bottom' ? 'translate(-50%, -100%)' : 'translate(-50%, -50%)';\n // Clicks and drags on the element are the element's, not the map's.\n this.maps.OverlayView.preventMapHitsAndGesturesFrom(element);\n this.layer.placed.add(placed);\n this.layer.place(placed);\n\n return {\n setPosition: (next) => {\n placed.position = new this.core.LatLng(next.latitude, next.longitude);\n this.layer.place(placed);\n },\n remove: () => {\n this.layer.placed.delete(placed);\n element.remove();\n },\n };\n }\n\n setShapes(shapes: readonly MapShape[]): void {\n for (const { shape, listener } of this.shapes) {\n listener.remove();\n shape.setMap(null);\n }\n\n this.shapes = shapes.map((item) => {\n const stroke = { strokeColor: item.color ?? '', strokeOpacity: 1, map: this.map, clickable: true };\n const area = { ...stroke, strokeWeight: 2, fillColor: item.color ?? '', fillOpacity: 0.2 };\n const shape =\n item.kind === 'polyline'\n ? new this.maps.Polyline({ ...stroke, strokeWeight: item.width ?? 3, path: item.path.map(toLatLngLiteral) })\n : item.kind === 'polygon'\n ? new this.maps.Polygon({ ...area, paths: item.path.map(toLatLngLiteral) })\n : new this.maps.Circle({ ...area, center: toLatLngLiteral(item.center), radius: item.radius });\n\n const listener = shape.addListener('click', (event: google.maps.MapMouseEvent) => {\n if (!event.latLng) return;\n const position = fromLatLng(event.latLng);\n this.context.events.shapeClick(item.id, position, this.project(position));\n });\n return { shape, listener };\n });\n }\n\n setStyle(style: MapStyle, dark: boolean): boolean {\n if (dark !== this.dark) return false;\n if (style !== this.style) {\n this.style = style;\n this.map.setMapTypeId(MAP_TYPES[style]);\n }\n return true;\n }\n\n resize(): void {\n // Google watches its container's size itself.\n }\n\n dispose(): void {\n shared().authFailureListeners.delete(this.onAuthFailure);\n for (const listener of this.listeners) listener.remove();\n this.setShapes([]);\n this.layer.setMap(null);\n google.maps.event.clearInstanceListeners(this.map);\n this.context.container.replaceChildren();\n }\n}\n\n/**\n * Google's Places autocomplete, which the key needs the Places API (New) enabled for. A search's\n * suggestions and the place chosen from them share a session, which Google bills as one.\n */\n/** Google's Places, for finding a place without a map: its script is loaded first. */\nexport async function googlePlaceFinder(apiKey: string, language: string, document: Document): Promise<MapGeocoder> {\n await loadGoogleMaps(apiKey, language, document);\n return new GooglePlaces();\n}\n\nclass GooglePlaces implements MapGeocoder {\n readonly suggestsAsYouType = true;\n private session: google.maps.places.AutocompleteSessionToken | null = null;\n private readonly predictions = new Map<string, google.maps.places.PlacePrediction>();\n\n async suggest({ text, view, countries, language }: MapAddressQuery): Promise<MapAddressSuggestion[]> {\n const places = (await google.maps.importLibrary('places')) as google.maps.PlacesLibrary;\n this.session ??= new places.AutocompleteSessionToken();\n const { suggestions } = await places.AutocompleteSuggestion.fetchAutocompleteSuggestions({\n input: text,\n sessionToken: this.session,\n language,\n locationBias: { ...view.bounds },\n // Google takes 15 at most.\n ...(countries.length ? { includedRegionCodes: countries.slice(0, 15).map((country) => country.toLowerCase()) } : {}),\n });\n\n if (this.predictions.size > 50) this.predictions.clear();\n return suggestions.slice(0, SUGGESTION_COUNT).flatMap(({ placePrediction: prediction }) => {\n if (!prediction) return [];\n this.predictions.set(prediction.placeId, prediction);\n const detail = prediction.secondaryText?.text;\n return [{ id: prediction.placeId, text: prediction.mainText?.text ?? prediction.text.text, ...(detail ? { detail } : {}) }];\n });\n }\n\n async resolve(suggestion: MapAddressSuggestion): Promise<MapPlace | null> {\n const prediction = this.predictions.get(suggestion.id);\n if (!prediction) return null;\n const place = prediction.toPlace();\n // The session ends with the place it found.\n this.session = null;\n await place.fetchFields({ fields: ['displayName', 'formattedAddress', 'location', 'viewport'] });\n if (!place.location) return null;\n\n const viewport = place.viewport;\n const label = place.formattedAddress ?? place.displayName ?? suggestion.text;\n return {\n label: place.displayName && label && !label.startsWith(place.displayName) ? `${place.displayName}, ${label}` : label,\n position: fromLatLng(place.location),\n ...(viewport\n ? {\n bounds: {\n north: viewport.getNorthEast().lat(),\n east: viewport.getNorthEast().lng(),\n south: viewport.getSouthWest().lat(),\n west: viewport.getSouthWest().lng(),\n },\n }\n : {}),\n };\n }\n}\n\n// The overlay the map's elements sit in: one element of Google's panes, each child kept at its\n// position as Google draws. The class exists only once Google's script has loaded.\nfunction createElementLayer(maps: google.maps.MapsLibrary, onDraw: () => void) {\n class ElementLayer extends maps.OverlayView {\n readonly placed = new Set<Placed>();\n private readonly root = document.createElement('div');\n\n override onAdd(): void {\n this.getPanes()?.overlayMouseTarget.appendChild(this.root);\n for (const placed of this.placed) this.root.appendChild(placed.element);\n }\n\n override draw(): void {\n for (const placed of this.placed) this.place(placed);\n onDraw();\n }\n\n override onRemove(): void {\n this.root.remove();\n }\n\n place(placed: Placed): void {\n if (placed.element.parentElement !== this.root) this.root.appendChild(placed.element);\n const point = this.getProjection()?.fromLatLngToDivPixel(placed.position);\n if (!point) return;\n placed.element.style.left = `${point.x}px`;\n placed.element.style.top = `${point.y}px`;\n }\n }\n return new ElementLayer();\n}\n\nfunction toLatLngLiteral(position: MapPosition): google.maps.LatLngLiteral {\n return { lat: position.latitude, lng: position.longitude };\n}\n\nfunction fromLatLng(latLng: google.maps.LatLng): MapPosition {\n return { latitude: latLng.lat(), longitude: latLng.lng() };\n}\n"]}
|