{"version":3,"file":"js/7767-26902a7cc9ee3c327745.js","mappings":"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","sources":["webpack://uk-b2c/./node_modules/@scandotcom/react/dist/esm/components/Map/Map.js","webpack://uk-b2c/./node_modules/@scandotcom/react/dist/esm/components/Map/MapMarker.js","webpack://uk-b2c/./node_modules/@scandotcom/react/dist/esm/components/Map/MapPopup.js","webpack://uk-b2c/./node_modules/@scandotcom/react/dist/esm/components/Map/useMap.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/use-map.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/deep-equal.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/transform.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/style-utils.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/mapbox/mapbox.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/mapbox/create-ref.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/use-isomorphic-layout-effect.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/set-globals.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/map.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/utils/apply-react-style.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/marker.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/popup.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/use-control.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/components/navigation-control.js","webpack://uk-b2c/./node_modules/react-map-gl/dist/esm/exports-mapbox.js","webpack://uk-b2c/./node_modules/remount/dist/remount.js"],"sourcesContent":["var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from \"classnames\";\nimport React, { forwardRef } from \"react\";\nimport MapBox, { NavigationControl } from \"react-map-gl\";\n/**\n * **Warning**\n *\n * In order for the map to work properly the following css link must be added to the webpage\n *\n * ``````\\\n *\n * A mapboxAccessToken is also required to gain full functionality.\n */\nexport const Map = /*#__PURE__*/forwardRef((_a, ref) => {\n var children = _a.children,\n className = _a.className,\n _a$showNavControl = _a.showNavControl,\n showNavControl = _a$showNavControl === void 0 ? true : _a$showNavControl,\n mapboxAccessToken = _a.mapboxAccessToken,\n _a$attributionControl = _a.attributionControl,\n attributionControl = _a$attributionControl === void 0 ? false : _a$attributionControl,\n _a$style = _a.style,\n style = _a$style === void 0 ? {\n width: \"100%\",\n height: \"100%\"\n } : _a$style,\n _a$initialViewState = _a.initialViewState,\n initialViewState = _a$initialViewState === void 0 ? {\n latitude: 51.5072,\n longitude: 0.1276,\n zoom: 9\n } : _a$initialViewState,\n _a$mapStyle = _a.mapStyle,\n mapStyle = _a$mapStyle === void 0 ? \"mapbox://styles/scandotcom/cl8wv327p004x15n2506gaeis\" : _a$mapStyle,\n props = __rest(_a, [\"children\", \"className\", \"showNavControl\", \"mapboxAccessToken\", \"attributionControl\", \"style\", \"initialViewState\", \"mapStyle\"]);\n if (!mapboxAccessToken) {\n console.log(\"Missing mapboxAccessToken.\");\n }\n const mapStyles = classNames(\"overflow-hidden [&_.mapboxgl-marker:hover]:!z-[3]\", className);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: mapStyles\n }, /*#__PURE__*/React.createElement(MapBox, Object.assign({\n mapboxAccessToken: mapboxAccessToken,\n ref: ref,\n attributionControl: attributionControl,\n initialViewState: initialViewState,\n style: style,\n mapStyle: mapStyle\n }, props), showNavControl && /*#__PURE__*/React.createElement(NavigationControl, {\n position: \"top-right\",\n showCompass: false\n }), children));\n});","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Marker } from \"react-map-gl\";\nconst MarkerStyles = {\n base: \"relative min-w-[2.5rem] rounded-md border px-2 py-1 text-sm hover:scale-110 transition font-semibold\",\n beakBase: \"[--peak-size:0.5rem] before:h-[--peak-size] before:w-[--peak-size] before:bottom-[calc((var(--peak-size)+2px)/-2)] before:block before:absolute before:inset-x-1/2 before:-translate-x-1/2 before:rotate-45 before:border-b before:border-r before:transition\",\n states: {\n default: \"text-neutral-950 bg-white before:bg-white border-neutral-400 before:border-neutral-400 lg:hover:bg-primary-300 lg:hover:before:bg-primary-300 lg:hover:border-neutral-950 lg:hover:before:border-neutral-950\",\n active: \"text-white bg-neutral-950 before:bg-neutral-950 border-neutral-950 before:border-neutral-950\"\n }\n};\nexport const MapMarker = _a => {\n var onClick = _a.onClick,\n children = _a.children,\n _a$anchor = _a.anchor,\n anchor = _a$anchor === void 0 ? \"bottom\" : _a$anchor,\n price = _a.price,\n selected = _a.selected,\n props = __rest(_a, [\"onClick\", \"children\", \"anchor\", \"price\", \"selected\"]);\n return /*#__PURE__*/React.createElement(Marker, Object.assign({}, props, {\n anchor: anchor,\n style: {\n zIndex: selected ? \"2\" : \"1\"\n },\n onClick: e => {\n e.originalEvent.stopPropagation();\n onClick && onClick(e);\n }\n }), price && /*#__PURE__*/React.createElement(\"div\", {\n className: getPopupStyles(selected)\n }, price), children, !price && !children && /*#__PURE__*/React.createElement(\"svg\", {\n className: getPinStyles(selected),\n viewBox: \"0 0 32 32\",\n fill: \"none\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.4854 6.18124C26.6885 8.38409 27.9485 11.3574 27.999 14.4725C28.0496 17.5875 26.8866 20.6001 24.7561 22.8732L24.4854 23.1532L18.8281 28.8092C18.1102 29.5266 17.1466 29.9443 16.1323 29.9777C15.118 30.0112 14.1289 29.6578 13.3654 28.9892L13.1734 28.8092L7.51474 23.1519C5.26429 20.9015 4 17.8492 4 14.6666C4 11.484 5.26429 8.43169 7.51474 6.18124C9.76519 3.93079 12.8175 2.6665 16.0001 2.6665C19.1827 2.6665 22.235 3.93079 24.4854 6.18124ZM16.0001 10.6666C15.4748 10.6666 14.9546 10.77 14.4693 10.9711C13.984 11.1721 13.5431 11.4667 13.1716 11.8382C12.8002 12.2096 12.5056 12.6505 12.3046 13.1358C12.1035 13.6211 12.0001 14.1413 12.0001 14.6666C12.0001 15.1919 12.1035 15.712 12.3046 16.1973C12.5056 16.6826 12.8002 17.1236 13.1716 17.495C13.5431 17.8664 13.984 18.1611 14.4693 18.3621C14.9546 18.5631 15.4748 18.6666 16.0001 18.6666C17.0609 18.6666 18.0784 18.2452 18.8285 17.495C19.5786 16.7449 20.0001 15.7274 20.0001 14.6666C20.0001 13.6057 19.5786 12.5883 18.8285 11.8382C18.0784 11.088 17.0609 10.6666 16.0001 10.6666Z\",\n fill: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nfunction getPopupStyles(selected) {\n const states = MarkerStyles.states;\n return classNames(MarkerStyles.base, MarkerStyles.beakBase, selected ? states.active : states.default);\n}\nfunction getPinStyles(selected) {\n return classNames(\"h-8 w-8 transition-transform hover:scale-125 stroke-neutral-950\", selected ? \"text-neutral-950\" : \"text-primary-300 hover:text-primary-100\");\n}","var __rest = this && this.__rest || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { Popup } from \"react-map-gl\";\nexport const MapPopup = _a => {\n var longitude = _a.longitude,\n latitude = _a.latitude,\n closeButton = _a.closeButton,\n onClose = _a.onClose,\n className = _a.className,\n _a$anchor = _a.anchor,\n anchor = _a$anchor === void 0 ? \"top\" : _a$anchor,\n _a$offset = _a.offset,\n offset = _a$offset === void 0 ? [0, 5] : _a$offset,\n children = _a.children,\n _a$showBeak = _a.showBeak,\n showBeak = _a$showBeak === void 0 ? true : _a$showBeak,\n props = __rest(_a, [\"longitude\", \"latitude\", \"closeButton\", \"onClose\", \"className\", \"anchor\", \"offset\", \"children\", \"showBeak\"]);\n const popupStyles = classNames(\"!max-w-sm px-4 [&>.mapboxgl-popup-content]:rounded-xl [&>.mapboxgl-popup-content]:border [&>.mapboxgl-popup-content]:border-neutral-300 [&>.mapboxgl-popup-content]:p-6 [&>.mapboxgl-popup-content]:shadow-xl z-[3]\", \"[&>.mapboxgl-popup-tip]:-mb-2.5 [&>.mapboxgl-popup-tip]:!border-0 [&>.mapboxgl-popup-tip]:!border-b [&>.mapboxgl-popup-tip]:!border-l [&>.mapboxgl-popup-tip]:!border-neutral-300 [&>.mapboxgl-popup-tip]:!bg-white [&>.mapboxgl-popup-tip]:!bg-white [&>.mapboxgl-popup-tip]:!w-5 [&>.mapboxgl-popup-tip]:!h-5 [&>.mapboxgl-popup-tip]:rotate-[135deg]\", !showBeak && \"[&>.mapboxgl-popup-tip]:!hidden\", className);\n return /*#__PURE__*/React.createElement(Popup, Object.assign({\n offset: offset,\n closeButton: closeButton,\n className: popupStyles,\n anchor: anchor,\n longitude: longitude,\n latitude: latitude,\n onClose: onClose\n }, props), children);\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nconst defaultBounds = [[-0.1695, 51.4901], [-0.0905, 51.5305]];\nexport function useMap(locations) {\n const mapRef = useRef(null);\n const bounds = useMemo(() => getBounds(locations), [JSON.stringify(locations)]);\n const _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n selectedLocation = _useState2[0],\n setSelectedLocation = _useState2[1];\n function setLocation(location) {\n let adjustMap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n setSelectedLocation(location);\n if (!adjustMap) return;\n if (location) {\n panTo(location.longitude, location.latitude);\n } else {\n fitToBounds();\n }\n }\n function fitToBounds() {\n var _a, _b;\n if (!mapRef.current) return;\n (_a = mapRef.current) === null || _a === void 0 ? void 0 : _a.resize();\n (_b = mapRef.current) === null || _b === void 0 ? void 0 : _b.fitBounds(bounds, {\n padding: 40,\n maxZoom: locations.length ? 16 : 10\n });\n }\n function panTo(longitude, latitude) {\n var _a;\n (_a = mapRef === null || mapRef === void 0 ? void 0 : mapRef.current) === null || _a === void 0 ? void 0 : _a.panTo([longitude, latitude]);\n }\n function getBounds(locations) {\n if (!locations.length) return defaultBounds;\n // Calculate corner values of bounds\n const longs = locations.map(_ref => {\n let longitude = _ref.longitude;\n return longitude;\n });\n const lats = locations.map(_ref2 => {\n let latitude = _ref2.latitude;\n return latitude;\n });\n const southWest = [Math.min(...longs), Math.min(...lats)];\n const northEast = [Math.max(...longs), Math.max(...lats)];\n return [southWest, northEast];\n }\n useEffect(fitToBounds, [bounds]);\n return {\n bounds,\n mapRef,\n fitToBounds,\n panTo,\n setLocation,\n selectedLocation\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport * as React from 'react';\nimport { useState, useCallback, useMemo, useContext } from 'react';\nimport { MapContext } from './map';\nexport const MountedMapsContext = /*#__PURE__*/React.createContext(null);\nexport const MapProvider = props => {\n const _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n maps = _useState2[0],\n setMaps = _useState2[1];\n const onMapMount = useCallback(function (map) {\n let id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n setMaps(currMaps => {\n if (id === 'current') {\n throw new Error(\"'current' cannot be used as map id\");\n }\n if (currMaps[id]) {\n throw new Error(`Multiple maps with the same id: ${id}`);\n }\n return _objectSpread(_objectSpread({}, currMaps), {}, {\n [id]: map\n });\n });\n }, []);\n const onMapUnmount = useCallback(function () {\n let id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n setMaps(currMaps => {\n if (currMaps[id]) {\n const nextMaps = _objectSpread({}, currMaps);\n delete nextMaps[id];\n return nextMaps;\n }\n return currMaps;\n });\n }, []);\n return /*#__PURE__*/React.createElement(MountedMapsContext.Provider, {\n value: {\n maps,\n onMapMount,\n onMapUnmount\n }\n }, props.children);\n};\nexport function useMap() {\n var _a;\n const maps = (_a = useContext(MountedMapsContext)) === null || _a === void 0 ? void 0 : _a.maps;\n const currentMap = useContext(MapContext);\n const mapsWithCurrent = useMemo(() => {\n return _objectSpread(_objectSpread({}, maps), {}, {\n current: currentMap === null || currentMap === void 0 ? void 0 : currentMap.map\n });\n }, [maps, currentMap]);\n return mapsWithCurrent;\n}","/**\n * Compare two points\n * @param a\n * @param b\n * @returns true if the points are equal\n */\nexport function arePointsEqual(a, b) {\n const ax = Array.isArray(a) ? a[0] : a ? a.x : 0;\n const ay = Array.isArray(a) ? a[1] : a ? a.y : 0;\n const bx = Array.isArray(b) ? b[0] : b ? b.x : 0;\n const by = Array.isArray(b) ? b[1] : b ? b.y : 0;\n return ax === bx && ay === by;\n}\n/* eslint-disable complexity */\n/**\n * Compare any two objects\n * @param a\n * @param b\n * @returns true if the objects are deep equal\n */\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n if (typeof a === 'object' && typeof b === 'object') {\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n const key = _aKeys[_i];\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return false;\n}","import { deepEqual } from './deep-equal';\n/**\n * Make a copy of a transform\n * @param tr\n */\nexport function cloneTransform(tr) {\n const newTransform = tr.clone();\n // Work around mapbox bug - this value is not assigned in clone(), only in resize()\n newTransform.pixelsToGLUnits = tr.pixelsToGLUnits;\n return newTransform;\n}\n/**\n * Copy projection from one transform to another. This only applies to mapbox-gl transforms\n * @param src the transform to copy projection settings from\n * @param dest to transform to copy projection settings to\n */\nexport function syncProjection(src, dest) {\n if (!src.getProjection) {\n return;\n }\n const srcProjection = src.getProjection();\n const destProjection = dest.getProjection();\n if (!deepEqual(srcProjection, destProjection)) {\n dest.setProjection(srcProjection);\n }\n}\n/**\n * Capture a transform's current state\n * @param transform\n * @returns descriptor of the view state\n */\nexport function transformToViewState(tr) {\n return {\n longitude: tr.center.lng,\n latitude: tr.center.lat,\n zoom: tr.zoom,\n pitch: tr.pitch,\n bearing: tr.bearing,\n padding: tr.padding\n };\n}\n/* eslint-disable complexity */\n/**\n * Mutate a transform to match the given view state\n * @param transform\n * @param viewState\n * @returns true if the transform has changed\n */\nexport function applyViewStateToTransform(tr, props) {\n const v = props.viewState || props;\n let changed = false;\n if ('longitude' in v && 'latitude' in v) {\n const center = tr.center;\n // @ts-ignore\n tr.center = new center.constructor(v.longitude, v.latitude);\n changed = changed || center !== tr.center;\n }\n if ('zoom' in v) {\n const zoom = tr.zoom;\n tr.zoom = v.zoom;\n changed = changed || zoom !== tr.zoom;\n }\n if ('bearing' in v) {\n const bearing = tr.bearing;\n tr.bearing = v.bearing;\n changed = changed || bearing !== tr.bearing;\n }\n if ('pitch' in v) {\n const pitch = tr.pitch;\n tr.pitch = v.pitch;\n changed = changed || pitch !== tr.pitch;\n }\n if (v.padding && !tr.isPaddingEqual(v.padding)) {\n changed = true;\n tr.padding = v.padding;\n }\n return changed;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nconst refProps = ['type', 'source', 'source-layer', 'minzoom', 'maxzoom', 'filter', 'layout'];\n// Prepare a map style object for diffing\n// If immutable - convert to plain object\n// Work around some issues in older styles that would fail Mapbox's diffing\nexport function normalizeStyle(style) {\n if (!style) {\n return null;\n }\n if (typeof style === 'string') {\n return style;\n }\n if ('toJS' in style) {\n style = style.toJS();\n }\n if (!style.layers) {\n return style;\n }\n const layerIndex = {};\n var _iterator = _createForOfIteratorHelper(style.layers),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n const layer = _step.value;\n layerIndex[layer.id] = layer;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n const layers = style.layers.map(layer => {\n let normalizedLayer = null;\n if ('interactive' in layer) {\n normalizedLayer = Object.assign({}, layer);\n // Breaks style diffing :(\n // @ts-ignore legacy field not typed\n delete normalizedLayer.interactive;\n }\n // Style diffing doesn't work with refs so expand them out manually before diffing.\n // @ts-ignore legacy field not typed\n const layerRef = layerIndex[layer.ref];\n if (layerRef) {\n normalizedLayer = normalizedLayer || Object.assign({}, layer);\n // @ts-ignore\n delete normalizedLayer.ref;\n // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/deref.js\n var _iterator2 = _createForOfIteratorHelper(refProps),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n const propName = _step2.value;\n if (propName in layerRef) {\n normalizedLayer[propName] = layerRef[propName];\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n return normalizedLayer || layer;\n });\n // Do not mutate the style object provided by the user\n return _objectSpread(_objectSpread({}, style), {}, {\n layers\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { transformToViewState, applyViewStateToTransform, cloneTransform, syncProjection } from '../utils/transform';\nimport { normalizeStyle } from '../utils/style-utils';\nimport { deepEqual } from '../utils/deep-equal';\nconst DEFAULT_STYLE = {\n version: 8,\n sources: {},\n layers: []\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 = ['minZoom', 'maxZoom', 'minPitch', 'maxPitch', 'maxBounds', 'projection', 'renderWorldCopies'];\nconst handlerNames = ['scrollZoom', 'boxZoom', 'dragRotate', 'dragPan', 'keyboard', 'doubleClickZoom', 'touchZoomRotate', 'touchPitch'];\n/**\n * A wrapper for mapbox-gl's Map class\n */\nexport default class Mapbox {\n constructor(MapClass, props, container) {\n // mapboxgl.Map instance\n this._map = null;\n // Internal states\n this._internalUpdate = false;\n this._inRender = false;\n this._hoveredFeatures = null;\n this._deferredEvents = {\n move: false,\n zoom: false,\n pitch: false,\n rotate: false\n };\n this._onEvent = e => {\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.error); // eslint-disable-line\n }\n };\n\n this._onPointerEvent = e => {\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n this._updateHover(e);\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 this._onCameraEvent = e => {\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 this._MapClass = MapClass;\n this.props = props;\n this._initialize(container);\n }\n get map() {\n return this._map;\n }\n get transform() {\n return this._renderTransform;\n }\n setProps(props) {\n const oldProps = this.props;\n this.props = props;\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 // 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 static reuse(props, container) {\n const that = Mapbox.savedMaps.pop();\n if (!that) {\n return null;\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 // 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 // Step 4: apply new props\n that.setProps(_objectSpread(_objectSpread({}, props), {}, {\n styleDiffing: false\n }));\n map.resize();\n const initialViewState = props.initialViewState;\n if (initialViewState) {\n if (initialViewState.bounds) {\n map.fitBounds(initialViewState.bounds, _objectSpread(_objectSpread({}, initialViewState.fitBoundsOptions), {}, {\n duration: 0\n }));\n } else {\n that._updateViewState(initialViewState, false);\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 // Force reload\n // @ts-ignore\n map._update();\n return that;\n }\n /* eslint-disable complexity,max-statements */\n _initialize(container) {\n const props = this.props;\n const _props$mapStyle = props.mapStyle,\n mapStyle = _props$mapStyle === void 0 ? DEFAULT_STYLE : _props$mapStyle;\n const mapOptions = _objectSpread(_objectSpread(_objectSpread({}, props), props.initialViewState), {}, {\n accessToken: props.mapboxAccessToken || getAccessTokenFromEnv() || null,\n container,\n style: normalizeStyle(mapStyle)\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 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 const map = new this._MapClass(mapOptions);\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 // Hack\n // Insert code into map's render cycle\n const renderMap = map._render;\n map._render = arg => {\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 => {\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 // 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 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 === null || children === void 0 ? void 0 : children.remove();\n Mapbox.savedMaps.push(this);\n }\n destroy() {\n this._map.remove();\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;\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 _createShadowTransform(map) {\n const renderTransform = cloneTransform(map.transform);\n map.painter.transform = renderTransform;\n this._renderTransform = renderTransform;\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) {\n // Check if size is controlled\n const viewState = nextProps.viewState;\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 // 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, triggerEvents) {\n if (this._internalUpdate) {\n return false;\n }\n const map = this._map;\n const tr = this._renderTransform;\n // Take a snapshot of the transform before mutation\n const zoom = tr.zoom,\n pitch = tr.pitch,\n bearing = tr.bearing;\n const isMoving = map.isMoving();\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, _objectSpread(_objectSpread({}, transformToViewState(map.transform)), nextProps));\n if (isMoving) {\n // Reset camera reference\n tr.cameraElevationReference = 'ground';\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 || (deferredEvents.zoom = zoom !== tr.zoom);\n deferredEvents.rotate || (deferredEvents.rotate = bearing !== tr.bearing);\n deferredEvents.pitch || (deferredEvents.pitch = pitch !== tr.pitch);\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 return changed;\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, currProps) {\n const map = this._map;\n let changed = false;\n for (var _i = 0, _settingNames = settingNames; _i < _settingNames.length; _i++) {\n const propName = _settingNames[_i];\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 === null || setter === void 0 ? void 0 : setter.call(map, nextProps[propName]);\n }\n }\n return changed;\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, currProps) {\n if (nextProps.cursor !== currProps.cursor) {\n this._map.getCanvas().style.cursor = nextProps.cursor;\n }\n if (nextProps.mapStyle !== currProps.mapStyle) {\n const _nextProps$mapStyle = nextProps.mapStyle,\n mapStyle = _nextProps$mapStyle === void 0 ? DEFAULT_STYLE : _nextProps$mapStyle,\n _nextProps$styleDiffi = nextProps.styleDiffing,\n styleDiffing = _nextProps$styleDiffi === void 0 ? true : _nextProps$styleDiffi;\n const options = {\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 /* 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, currProps) {\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 ('terrain' in nextProps && map.setTerrain && !deepEqual(nextProps.terrain, currProps.terrain)) {\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 /* 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, currProps) {\n var _a, _b;\n const map = this._map;\n let changed = false;\n for (var _i2 = 0, _handlerNames = handlerNames; _i2 < _handlerNames.length; _i2++) {\n const propName = _handlerNames[_i2];\n const newValue = (_a = nextProps[propName]) !== null && _a !== void 0 ? _a : true;\n const oldValue = (_b = currProps[propName]) !== null && _b !== void 0 ? _b : 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 _queryRenderedFeatures(point) {\n const map = this._map;\n const _this$props$interacti = this.props.interactiveLayerIds,\n interactiveLayerIds = _this$props$interacti === void 0 ? [] : _this$props$interacti;\n try {\n return map.queryRenderedFeatures(point, {\n layers: interactiveLayerIds.filter(map.getLayer.bind(map))\n });\n } catch (_a) {\n // May fail if style is not loaded\n return [];\n }\n }\n _updateHover(e) {\n var _a;\n const props = this.props;\n const shouldTrackHoveredFeatures = props.interactiveLayerIds && (props.onMouseMove || props.onMouseEnter || props.onMouseLeave);\n if (shouldTrackHoveredFeatures) {\n const eventType = e.type;\n const wasHovering = ((_a = this._hoveredFeatures) === null || _a === void 0 ? void 0 : _a.length) > 0;\n const features = this._queryRenderedFeatures(e.point);\n const isHovering = features.length > 0;\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 _fireEvent(baseFire, event, properties) {\n const map = this._map;\n const tr = map.transform;\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.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 return map;\n }\n }\n baseFire.call(map, event, properties);\n return map;\n }\n // All camera manipulations are complete, ready to repaint\n _onBeforeRepaint() {\n const map = this._map;\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 const tr = this._map.transform;\n // Make sure camera matches the current props\n map.transform = this._renderTransform;\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}\nMapbox.savedMaps = [];\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() {\n let accessToken = null;\n /* global location, process */\n if (typeof location !== 'undefined') {\n const match = /access_token=([^&\\/]*)/.exec(location.search);\n accessToken = match && match[1];\n }\n // Note: This depends on bundler plugins (e.g. webpack) importing environment correctly\n try {\n accessToken = accessToken || process.env.MapboxAccessToken;\n } catch (_a) {\n // ignore\n }\n try {\n accessToken = accessToken || process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\n } catch (_b) {\n // ignore\n }\n return accessToken;\n}","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/** These methods may break the react binding if called directly */\nconst skipMethods = ['setMaxBounds', 'setMinZoom', 'setMaxZoom', 'setMinPitch', 'setMaxPitch', 'setRenderWorldCopies', 'setProjection', 'setStyle', 'addSource', 'removeSource', 'addLayer', 'removeLayer', 'setLayerZoomRange', 'setFilter', 'setPaintProperty', 'setLayoutProperty', 'setLight', 'setTerrain', 'setFog', 'remove'];\nexport default function createRef(mapInstance) {\n if (!mapInstance) {\n return null;\n }\n const map = mapInstance.map;\n const result = {\n getMap: () => map,\n // Overwrite getters to use our shadow transform\n getCenter: () => mapInstance.transform.center,\n getZoom: () => mapInstance.transform.zoom,\n getBearing: () => mapInstance.transform.bearing,\n getPitch: () => mapInstance.transform.pitch,\n getPadding: () => mapInstance.transform.padding,\n getBounds: () => mapInstance.transform.getBounds(),\n project: lnglat => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.project(lnglat);\n map.transform = tr;\n return result;\n },\n unproject: point => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.unproject(point);\n map.transform = tr;\n return result;\n },\n // options diverge between mapbox and maplibre\n queryTerrainElevation: (lnglat, options) => {\n const tr = map.transform;\n map.transform = mapInstance.transform;\n const result = map.queryTerrainElevation(lnglat, options);\n map.transform = tr;\n return result;\n }\n };\n var _iterator = _createForOfIteratorHelper(getMethodNames(map)),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n const key = _step.value;\n // @ts-expect-error\n if (!(key in result) && !skipMethods.includes(key)) {\n result[key] = map[key].bind(map);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return result;\n}\nfunction getMethodNames(obj) {\n const result = new Set();\n let proto = obj;\n while (proto) {\n var _iterator2 = _createForOfIteratorHelper(Object.getOwnPropertyNames(proto)),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n const key = _step2.value;\n if (key[0] !== '_' && typeof obj[key] === 'function' && key !== 'fire' && key !== 'setEventedParent') {\n result.add(key);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n proto = Object.getPrototypeOf(proto);\n }\n return Array.from(result);\n}","// From https://github.com/streamich/react-use/blob/master/src/useIsomorphicLayoutEffect.ts\n// useLayoutEffect but does not trigger warning in server-side rendering\nimport { useEffect, useLayoutEffect } from 'react';\nconst useIsomorphicLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nconst globalSettings = ['baseApiUrl', 'maxParallelImageRequests', 'workerClass', 'workerCount', 'workerUrl'];\nexport default function setGlobals(mapLib, props) {\n var _iterator = _createForOfIteratorHelper(globalSettings),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n const key = _step.value;\n if (key in props) {\n mapLib[key] = props[key];\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n const _props$RTLTextPlugin = props.RTLTextPlugin,\n RTLTextPlugin = _props$RTLTextPlugin === void 0 ? 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js' : _props$RTLTextPlugin;\n if (RTLTextPlugin && mapLib.getRTLTextPluginStatus && mapLib.getRTLTextPluginStatus() === 'unavailable') {\n mapLib.setRTLTextPlugin(RTLTextPlugin, error => {\n if (error) {\n // eslint-disable-next-line\n console.error(error);\n }\n }, false);\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport * as React from 'react';\nimport { useState, useRef, useEffect, useContext, useMemo, useImperativeHandle } from 'react';\nimport { MountedMapsContext } from './use-map';\nimport Mapbox from '../mapbox/mapbox';\nimport createRef from '../mapbox/create-ref';\nimport useIsomorphicLayoutEffect from '../utils/use-isomorphic-layout-effect';\nimport setGlobals from '../utils/set-globals';\nexport const MapContext = /*#__PURE__*/React.createContext(null);\nexport default function Map(props, ref, defaultLib) {\n const mountedMapsContext = useContext(MountedMapsContext);\n const _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mapInstance = _useState2[0],\n setMapInstance = _useState2[1];\n const containerRef = useRef();\n const _useRef = useRef({\n mapLib: null,\n map: null\n }),\n contextValue = _useRef.current;\n useEffect(() => {\n const mapLib = props.mapLib;\n let isMounted = true;\n let mapbox;\n Promise.resolve(mapLib || defaultLib).then(module => {\n if (!isMounted) {\n return;\n }\n if (!module) {\n throw new Error('Invalid mapLib');\n }\n const mapboxgl = 'Map' in module ? module : module.default;\n if (!mapboxgl.Map) {\n throw new Error('Invalid mapLib');\n }\n // workerUrl & workerClass may change the result of supported()\n // https://github.com/visgl/react-map-gl/discussions/2027\n setGlobals(mapboxgl, props);\n if (!mapboxgl.supported || mapboxgl.supported(props)) {\n if (props.reuseMaps) {\n mapbox = Mapbox.reuse(props, containerRef.current);\n }\n if (!mapbox) {\n mapbox = new Mapbox(mapboxgl.Map, props, containerRef.current);\n }\n contextValue.map = createRef(mapbox);\n contextValue.mapLib = mapboxgl;\n setMapInstance(mapbox);\n mountedMapsContext === null || mountedMapsContext === void 0 ? void 0 : mountedMapsContext.onMapMount(contextValue.map, props.id);\n } else {\n throw new Error('Map is not supported by this browser');\n }\n }).catch(error => {\n const onError = props.onError;\n if (onError) {\n onError({\n type: 'error',\n target: null,\n originalEvent: null,\n error\n });\n } else {\n console.error(error); // eslint-disable-line\n }\n });\n\n return () => {\n isMounted = false;\n if (mapbox) {\n mountedMapsContext === null || mountedMapsContext === void 0 ? void 0 : mountedMapsContext.onMapUnmount(props.id);\n if (props.reuseMaps) {\n mapbox.recycle();\n } else {\n mapbox.destroy();\n }\n }\n };\n }, []);\n useIsomorphicLayoutEffect(() => {\n if (mapInstance) {\n mapInstance.setProps(props);\n }\n });\n useImperativeHandle(ref, () => contextValue.map, [mapInstance]);\n const style = useMemo(() => _objectSpread({\n position: 'relative',\n width: '100%',\n height: '100%'\n }, props.style), [props.style]);\n const CHILD_CONTAINER_STYLE = {\n height: '100%'\n };\n return /*#__PURE__*/React.createElement(\"div\", {\n id: props.id,\n ref: containerRef,\n style: style\n }, mapInstance && /*#__PURE__*/React.createElement(MapContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(\"div\", {\n \"mapboxgl-children\": \"\",\n style: CHILD_CONTAINER_STYLE\n }, props.children)));\n}","// This is a simplified version of\n// https://github.com/facebook/react/blob/4131af3e4bf52f3a003537ec95a1655147c81270/src/renderers/dom/shared/CSSPropertyOperations.js#L62\nconst unitlessNumber = /box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;\nexport function applyReactStyle(element, styles) {\n if (!element || !styles) {\n return;\n }\n const style = element.style;\n for (const key in styles) {\n const value = styles[key];\n if (Number.isFinite(value) && !unitlessNumber.test(key)) {\n style[key] = `${value}px`;\n } else {\n style[key] = value;\n }\n }\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* global document */\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useImperativeHandle, useEffect, useMemo, useRef, useContext, forwardRef, memo } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport { MapContext } from './map';\nimport { arePointsEqual } from '../utils/deep-equal';\n/* eslint-disable complexity,max-statements */\nfunction Marker(props, ref) {\n const _useContext = useContext(MapContext),\n map = _useContext.map,\n mapLib = _useContext.mapLib;\n const thisRef = useRef({\n props\n });\n thisRef.current.props = props;\n const marker = useMemo(() => {\n let hasChildren = false;\n React.Children.forEach(props.children, el => {\n if (el) {\n hasChildren = true;\n }\n });\n const options = _objectSpread(_objectSpread({}, props), {}, {\n element: hasChildren ? document.createElement('div') : null\n });\n const mk = new mapLib.Marker(options);\n mk.setLngLat([props.longitude, props.latitude]);\n mk.getElement().addEventListener('click', e => {\n var _a, _b;\n (_b = (_a = thisRef.current.props).onClick) === null || _b === void 0 ? void 0 : _b.call(_a, {\n type: 'click',\n target: mk,\n originalEvent: e\n });\n });\n mk.on('dragstart', e => {\n var _a, _b;\n const evt = e;\n evt.lngLat = marker.getLngLat();\n (_b = (_a = thisRef.current.props).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, evt);\n });\n mk.on('drag', e => {\n var _a, _b;\n const evt = e;\n evt.lngLat = marker.getLngLat();\n (_b = (_a = thisRef.current.props).onDrag) === null || _b === void 0 ? void 0 : _b.call(_a, evt);\n });\n mk.on('dragend', e => {\n var _a, _b;\n const evt = e;\n evt.lngLat = marker.getLngLat();\n (_b = (_a = thisRef.current.props).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, evt);\n });\n return mk;\n }, []);\n useEffect(() => {\n marker.addTo(map.getMap());\n return () => {\n marker.remove();\n };\n }, []);\n const longitude = props.longitude,\n latitude = props.latitude,\n offset = props.offset,\n style = props.style,\n _props$draggable = props.draggable,\n draggable = _props$draggable === void 0 ? false : _props$draggable,\n _props$popup = props.popup,\n popup = _props$popup === void 0 ? null : _props$popup,\n _props$rotation = props.rotation,\n rotation = _props$rotation === void 0 ? 0 : _props$rotation,\n _props$rotationAlignm = props.rotationAlignment,\n rotationAlignment = _props$rotationAlignm === void 0 ? 'auto' : _props$rotationAlignm,\n _props$pitchAlignment = props.pitchAlignment,\n pitchAlignment = _props$pitchAlignment === void 0 ? 'auto' : _props$pitchAlignment;\n useEffect(() => {\n applyReactStyle(marker.getElement(), style);\n }, [style]);\n useImperativeHandle(ref, () => marker, []);\n if (marker.getLngLat().lng !== longitude || marker.getLngLat().lat !== latitude) {\n marker.setLngLat([longitude, latitude]);\n }\n if (offset && !arePointsEqual(marker.getOffset(), offset)) {\n marker.setOffset(offset);\n }\n if (marker.isDraggable() !== draggable) {\n marker.setDraggable(draggable);\n }\n if (marker.getRotation() !== rotation) {\n marker.setRotation(rotation);\n }\n if (marker.getRotationAlignment() !== rotationAlignment) {\n marker.setRotationAlignment(rotationAlignment);\n }\n if (marker.getPitchAlignment() !== pitchAlignment) {\n marker.setPitchAlignment(pitchAlignment);\n }\n if (marker.getPopup() !== popup) {\n marker.setPopup(popup);\n }\n return /*#__PURE__*/createPortal(props.children, marker.getElement());\n}\nexport default /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Marker));","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { createPortal } from 'react-dom';\nimport { useImperativeHandle, useEffect, useMemo, useRef, useContext, forwardRef, memo } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport { MapContext } from './map';\nimport { deepEqual } from '../utils/deep-equal';\n// Adapted from https://github.com/mapbox/mapbox-gl-js/blob/v1.13.0/src/ui/popup.js\nfunction getClassList(className) {\n return new Set(className ? className.trim().split(/\\s+/) : []);\n}\n/* eslint-disable complexity,max-statements */\nfunction Popup(props, ref) {\n const _useContext = useContext(MapContext),\n map = _useContext.map,\n mapLib = _useContext.mapLib;\n const container = useMemo(() => {\n return document.createElement('div');\n }, []);\n const thisRef = useRef({\n props\n });\n thisRef.current.props = props;\n const popup = useMemo(() => {\n const options = _objectSpread({}, props);\n const pp = new mapLib.Popup(options);\n pp.setLngLat([props.longitude, props.latitude]);\n pp.once('open', e => {\n var _a, _b;\n (_b = (_a = thisRef.current.props).onOpen) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n });\n return pp;\n }, []);\n useEffect(() => {\n const onClose = e => {\n var _a, _b;\n (_b = (_a = thisRef.current.props).onClose) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n };\n popup.on('close', onClose);\n popup.setDOMContent(container).addTo(map.getMap());\n return () => {\n // https://github.com/visgl/react-map-gl/issues/1825\n // onClose should not be fired if the popup is removed by unmounting\n // When using React strict mode, the component is mounted twice.\n // Firing the onClose callback here would be a false signal to remove the component.\n popup.off('close', onClose);\n if (popup.isOpen()) {\n popup.remove();\n }\n };\n }, []);\n useEffect(() => {\n applyReactStyle(popup.getElement(), props.style);\n }, [props.style]);\n useImperativeHandle(ref, () => popup, []);\n if (popup.isOpen()) {\n if (popup.getLngLat().lng !== props.longitude || popup.getLngLat().lat !== props.latitude) {\n popup.setLngLat([props.longitude, props.latitude]);\n }\n if (props.offset && !deepEqual(popup.options.offset, props.offset)) {\n popup.setOffset(props.offset);\n }\n if (popup.options.anchor !== props.anchor || popup.options.maxWidth !== props.maxWidth) {\n popup.options.anchor = props.anchor;\n popup.setMaxWidth(props.maxWidth);\n }\n if (popup.options.className !== props.className) {\n const prevClassList = getClassList(popup.options.className);\n const nextClassList = getClassList(props.className);\n var _iterator = _createForOfIteratorHelper(prevClassList),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n const c = _step.value;\n if (!nextClassList.has(c)) {\n popup.removeClassName(c);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n var _iterator2 = _createForOfIteratorHelper(nextClassList),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n const c = _step2.value;\n if (!prevClassList.has(c)) {\n popup.addClassName(c);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n popup.options.className = props.className;\n }\n }\n return /*#__PURE__*/createPortal(props.children, container);\n}\nexport default /*#__PURE__*/memo( /*#__PURE__*/forwardRef(Popup));","import { useContext, useMemo, useEffect } from 'react';\nimport { MapContext } from './map';\nfunction useControl(onCreate, arg1, arg2, arg3) {\n const context = useContext(MapContext);\n const ctrl = useMemo(() => onCreate(context), []);\n useEffect(() => {\n const opts = arg3 || arg2 || arg1;\n const onAdd = typeof arg1 === 'function' && typeof arg2 === 'function' ? arg1 : null;\n const onRemove = typeof arg2 === 'function' ? arg2 : typeof arg1 === 'function' ? arg1 : null;\n const map = context.map;\n if (!map.hasControl(ctrl)) {\n map.addControl(ctrl, opts === null || opts === void 0 ? void 0 : opts.position);\n if (onAdd) {\n onAdd(context);\n }\n }\n return () => {\n if (onRemove) {\n onRemove(context);\n }\n // Map might have been removed (parent effects are destroyed before child ones)\n if (map.hasControl(ctrl)) {\n map.removeControl(ctrl);\n }\n };\n }, []);\n return ctrl;\n}\nexport default useControl;","import { useEffect, memo } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\nfunction NavigationControl(props) {\n const ctrl = useControl(_ref => {\n let mapLib = _ref.mapLib;\n return new mapLib.NavigationControl(props);\n }, {\n position: props.position\n });\n useEffect(() => {\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n return null;\n}\nexport default /*#__PURE__*/memo(NavigationControl);","import * as React from 'react';\nimport { default as _Map } from './components/map';\nimport { default as _Marker } from './components/marker';\nimport { default as _Popup } from './components/popup';\nimport { default as _AttributionControl } from './components/attribution-control';\nimport { default as _FullscreenControl } from './components/fullscreen-control';\nimport { default as _GeolocateControl } from './components/geolocate-control';\nimport { default as _NavigationControl } from './components/navigation-control';\nimport { default as _ScaleControl } from './components/scale-control';\nimport { useMap as _useMap } from './components/use-map';\nexport function useMap() {\n return _useMap();\n}\nconst mapLib = import('mapbox-gl');\nexport const Map = (() => {\n return /*#__PURE__*/React.forwardRef(function Map(props, ref) {\n return _Map(props, ref, mapLib);\n });\n})();\nexport const Marker = _Marker;\nexport const Popup = _Popup;\nexport const AttributionControl = _AttributionControl;\nexport const FullscreenControl = _FullscreenControl;\nexport const NavigationControl = _NavigationControl;\nexport const GeolocateControl = _GeolocateControl;\nexport const ScaleControl = _ScaleControl;\nexport { default as Source } from './components/source';\nexport { default as Layer } from './components/layer';\nexport { default as useControl } from './components/use-control';\nexport { MapProvider } from './components/use-map';\nexport default Map;\n// Types\nexport * from './types/public';","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom/client';\n\n/* global HTMLElement */\n\n/*\n * Adapted from https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2.0.4/custom-elements-es5-adapter.js\n * Rolling this in so we don't need another polyfill.\n */\n\nfunction inject() {\n if (window.HTMLElement && window.HTMLElement._babelES5Adapter || void 0 === window.Reflect || void 0 === window.customElements || window.customElements.hasOwnProperty('polyfillWrapFlushCallback')) {\n return;\n }\n const a = HTMLElement;\n window.HTMLElement = function () {\n return Reflect.construct(a, [], this.constructor);\n };\n HTMLElement.prototype = a.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, a);\n HTMLElement._babelES5Adapter = true;\n}\n\n// @ts-check\n\n/**\n * The name of this strategy.\n * @type string\n */\n\nconst name$1 = 'CustomElements';\n\n/**\n * Registers a custom element.\n *\n * This creates a custom element (ie, a subclass of `window.HTMLElement`) and\n * registers it (ie, `window.customElements.define`).\n *\n * Events will be triggered when something interesting happens.\n *\n * @example\n * defineElement(\n * { component: Tooltip },\n * 'x-tooltip',\n * { onUpdate, onUnmount }\n * )\n *\n * @private\n * @param {ElementSpec} elSpec\n * @param {string} elName\n * @param {ElementEvents} events\n */\n\nfunction defineElement$1(elSpec, elName, events) {\n const onUpdate = events.onUpdate,\n onUnmount = events.onUnmount,\n onMount = events.onMount;\n inject();\n const attributes = elSpec.attributes || [];\n class ComponentElement extends HTMLElement {\n static get observedAttributes() {\n return ['props-json', ...attributes];\n }\n connectedCallback() {\n this._mountPoint = createMountPoint(this, elSpec);\n onMount(this, this._mountPoint);\n }\n disconnectedCallback() {\n if (!this._mountPoint) {\n return;\n }\n onUnmount(this, this._mountPoint);\n }\n attributeChangedCallback() {\n if (!this._mountPoint) {\n return;\n }\n onUpdate(this, this._mountPoint);\n }\n }\n\n // Supress warning when quiet mode is on\n if (elSpec.quiet && window.customElements.get(elName)) {\n return;\n }\n window.customElements.define(elName, ComponentElement);\n}\nfunction isSupported$1() {\n return !!(window.customElements && window.customElements.define);\n}\n\n/**\n * Creates a `` element that serves as the mounting point for React\n * components. If `shadow: true` is requested, it'll attach a shadow node.\n *\n * @private\n * @param {HTMLElement} element\n * @param {ElementSpec} elSpec\n */\n\nfunction createMountPoint(element, elSpec) {\n const shadow = elSpec.shadow;\n if (shadow && element.attachShadow) {\n const mountPoint = document.createElement('span');\n element.attachShadow({\n mode: 'open'\n }).appendChild(mountPoint);\n return mountPoint;\n } else {\n return element;\n }\n}\n\n/**\n * Check if Shadow DOM is supported.\n */\n\nfunction supportsShadow$1() {\n return !!(document && document.body && document.body.attachShadow);\n}\nvar CustomElementsStrategy = /*#__PURE__*/Object.freeze({\n __proto__: null,\n name: name$1,\n defineElement: defineElement$1,\n isSupported: isSupported$1,\n supportsShadow: supportsShadow$1\n});\n\n// @ts-check\n\n/**\n * Some implementations of MutationObserver don't have .forEach,\n * so we need our own `forEach` shim. This is usually the case with\n * polyfilled environments.\n *\n * @type { import('./types').Each }\n */\n\nfunction each( /** @type any */list, /** @type any */fn) {\n for (let i = 0, len = list.length; i < len; i++) {\n fn(list[i]);\n }\n}\n\n// @ts-check\n\n/**\n * The name of this strategy.\n * @type string\n */\n\nconst name = 'MutationObserver';\n\n/**\n * List of observers tags.\n * @type ObserverList\n */\n\nconst observers = {};\nfunction isSupported() {\n return 'MutationObserver' in window;\n}\n\n/**\n * Defines a custom element.\n *\n * @example\n * defineElement(\n * { component: MyComponent },\n * 'my-div',\n * {\n * onMount: () => {},\n * onUpdate: () => {},\n * onUnmount: () => {},\n * }\n * )\n *\n * @private\n * @param {ElementSpec} elSpec\n * @param {string} elName\n * @param {ElementEvents} events\n */\n\nfunction defineElement(elSpec, elName, events) {\n elName = elName.toLowerCase();\n\n // Maintain parity with what would happen in Custom Elements mode\n if (!isValidName(elName)) {\n if (elSpec.quiet) {\n return;\n }\n throw new Error(`Remount: \"${elName}\" is not a valid custom element elName`);\n }\n if (observers[elName]) {\n if (elSpec.quiet) {\n return;\n }\n throw new Error(`Remount: \"${elName}\" is already registered`);\n }\n const observer = new MutationObserver( /** @type MutationCallback */mutations => {\n each(mutations, ( /** @type MutationRecord */mutation) => {\n each(mutation.addedNodes, ( /** @type Node */node) => {\n if (isElement(node)) {\n checkForMount(node, elName, events);\n }\n });\n });\n });\n observer.observe(document.body, {\n childList: true,\n subtree: true\n });\n observers[elName] = /* true */observer;\n function mountElementsInDOM() {\n const nodes = document.getElementsByTagName(elName);\n each(nodes, ( /** @type HTMLElement */node) => checkForMount(node, elName, events));\n }\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n mountElementsInDOM();\n } else {\n window.addEventListener('DOMContentLoaded', mountElementsInDOM);\n }\n}\n\n/**\n * Checks if this new element should fire an `onUpdate` hook.\n * Recurses down to its descendant nodes.\n *\n * @param {HTMLElement} node\n * @param {string} elName\n * @param {ElementEvents} events\n */\n\nfunction checkForMount(node, elName, events) {\n if (node.nodeName.toLowerCase() === elName) {\n // It's a match!\n events.onMount(node, node);\n observeForUpdates(node, events);\n observeForRemoval(node, events);\n } else if (node.children && node.children.length) {\n // Recurse down into the other additions\n each(node.children, ( /** @type HTMLElement */subnode) => {\n if (isElement(subnode)) {\n checkForMount(subnode, elName, events);\n }\n });\n }\n}\n\n/**\n * Observes for any changes in attributes.\n *\n * @param {Element} node\n * @param {ElementEvents} events\n */\n\nfunction observeForUpdates(node, events) {\n const onUpdate = events.onUpdate;\n const observer = new MutationObserver( /** @type MutationCallback */mutations => {\n each(mutations, ( /** @type MutationRecord */mutation) => {\n const targetNode = mutation.target;\n if (isElement(targetNode)) {\n onUpdate(targetNode, targetNode);\n }\n });\n });\n observer.observe(node, {\n attributes: true\n });\n}\n\n/**\n * Observes a node's parent to wait until the node is removed\n * @param {HTMLElement} node\n * @param {ElementEvents} events\n */\n\nfunction observeForRemoval(node, events) {\n const onUnmount = events.onUnmount;\n const parent = node.parentNode;\n\n // Not sure when this can happen, but let's add this for type safety\n if (!parent) {\n return;\n }\n const observer = new MutationObserver( /** @type MutationCallback */mutations => {\n each(mutations, ( /** @type MutationRecord */mutation) => {\n each(mutation.removedNodes, ( /** @type Node */subnode) => {\n if (node !== subnode) {\n return;\n }\n if (isElement(node)) {\n // @ts-ignore TypeScript expects 0 arguments...?\n observer.disconnect(parent);\n onUnmount(node, node);\n }\n });\n });\n });\n observer.observe(parent, {\n childList: true,\n subtree: true\n });\n}\n\n/**\n * Validate a custom tag.\n *\n * Since Remount can work with either Custom Elements or MutationObserver API's,\n * it'd be wise if we rejected element names that won't work in Custom Elements\n * mode (even if we're using MutationObserver mode).\n *\n * @param {string} elName\n * @returns {boolean}\n *\n * @example\n * isValidName('div') // => false\n * isValidName('my-div') // => true\n * isValidName('123-456') // => false\n * isValidName('my-123') // => true\n *\n * @private\n */\n\nfunction isValidName(elName) {\n return !!(elName.indexOf('-') !== -1 && elName.match(/^[a-z][a-z0-9-]*$/));\n}\n\n/**\n * Shadow DOM is not supported with the Mutation Observer strategy.\n */\n\nfunction supportsShadow() {\n return false;\n}\n\n/**\n * Checks if a given Node is an HTMLElement.\n *\n * It's possible that a mutation's `addedNodes` return something that isn't an\n * HTMLElement.\n *\n * @param {any} node\n * @returns {node is HTMLElement}\n */\n\nfunction isElement(node) {\n if (node) {\n return true;\n }\n return false;\n}\nvar MutationObserverStrategy = /*#__PURE__*/Object.freeze({\n __proto__: null,\n name: name,\n observers: observers,\n isSupported: isSupported,\n defineElement: defineElement,\n supportsShadow: supportsShadow\n});\n\n// @ts-check\n\n/**\n * Cache of the strategy determined by `getStrategy()`.\n * @type {Strategy | null | undefined}\n */\n\nlet cachedStrategy;\n\n/**\n * Detect what API can be used.\n *\n * @example\n * Remount.getStrategy().name\n */\n\nfunction getStrategy() {\n if (cachedStrategy) {\n return cachedStrategy;\n }\n const StrategyUsed = [CustomElementsStrategy, MutationObserverStrategy].find(strategy => !!strategy.isSupported());\n if (!StrategyUsed) {\n console.warn(\"Remount: This browser doesn't support the \" + 'MutationObserver API or the Custom Elements API. Including ' + 'polyfills might fix this. Remount elements will not work. ' + 'https://github.com/rstacruz/remount');\n }\n cachedStrategy = StrategyUsed;\n return StrategyUsed;\n}\n\n/**\n * Registers custom elements and links them to React components.\n * @param {ElementMap} components\n * @param {Defaults=} defaults\n *\n * @example\n * define({ 'x-tooltip': Tooltip })\n *\n * @example\n * define(\n * { 'x-tooltip': Tooltip },\n * { attributes: ['title', 'body'] }\n * )\n */\n\nfunction define(components, defaults) {\n const Strategy = getStrategy();\n if (!Strategy) {\n return;\n }\n Object.keys(components).forEach(( /** @type string */name) => {\n // Construct the specs for the element.\n // (eg, { component: Tooltip, attributes: ['title'] })\n /** @type ElementSpec */\n const elSpec = Object.assign({}, defaults, toElementSpec(components[name]));\n\n /** @type Adapter | null | undefined */\n const adapter = elSpec.adapter;\n if (!adapter) throw new Error('No suitable adapter found');\n\n // Define a custom element.\n Strategy.defineElement(elSpec, name, {\n onMount(element, mountPoint) {\n const props = getProps(element, elSpec.attributes);\n if (elSpec.shadow && elSpec.retarget) {\n adapter.mount(elSpec, mountPoint, props, element);\n } else {\n adapter.mount(elSpec, mountPoint, props, null);\n }\n },\n onUpdate(element, mountPoint) {\n const props = getProps(element, elSpec.attributes);\n adapter.update(elSpec, mountPoint, props, null);\n },\n onUnmount(element, mountPoint) {\n adapter.unmount(elSpec, mountPoint);\n }\n });\n });\n}\n\n/**\n * Coerces something into an `ElementSpec` type.\n *\n * @param {ElementSpec | Component} thing\n * @returns {ElementSpec}\n * @private\n *\n * @example\n * toElementSpec(Tooltip)\n * // => { component: Tooltip }\n *\n * toElementSpec({ component: Tooltip })\n * // => { component: Tooltip }\n */\n\nfunction toElementSpec(thing) {\n if (isElementSpec(thing)) {\n return thing;\n }\n return {\n component: thing\n };\n}\n\n/**\n * Checks if a given `spec` is an ElementSpec.\n *\n * @param {any} spec\n * @returns {spec is ElementSpec}\n */\n\nfunction isElementSpec(spec) {\n return typeof spec === 'object' && spec.component;\n}\n\n/**\n * Returns properties for a given HTML element.\n *\n * @private\n * @param {HTMLElement} element\n * @param {string[] | null | undefined} attributes\n *\n * @example\n * getProps(div, ['name'])\n * // => { name: 'Romeo' }\n */\n\nfunction getProps(element, attributes) {\n const rawJson = element.getAttribute('props-json');\n if (rawJson) {\n return JSON.parse(rawJson);\n }\n const names = attributes || [];\n return names.reduce(( /** @type PropertyMap */result, /** @type string */attribute) => {\n result[attribute] = element.getAttribute(attribute);\n return result;\n }, {});\n}\n\n// @ts-check\n\n/** @type {Map} */\nconst roots = new Map();\n\n/**\n * @param {ElementSpec} elSpec\n * @param {HTMLElement} mountPoint\n * @param {object} props\n * @param {HTMLElement | null} element\n */\n\nfunction mount(elSpec, mountPoint, props, element) {\n const reactElement = /*#__PURE__*/React.createElement(elSpec.component, props);\n const root = ReactDOM.createRoot(mountPoint);\n roots.set(mountPoint, root);\n root.render(reactElement);\n}\n\n/**\n * Updates a custom element by calling `ReactDOM.render()`.\n * @private\n *\n * @param {ElementSpec} elSpec\n * @param {HTMLElement} mountPoint\n * @param {object} props\n * @param {HTMLElement | null} element\n */\n\nfunction update(elSpec, mountPoint, props, element) {\n const reactElement = /*#__PURE__*/React.createElement(elSpec.component, props);\n const root = roots.get(mountPoint);\n if (root) root.render(reactElement);\n}\n\n/**\n * Unmounts a component.\n * @private\n *\n * @param {ElementSpec} elSpec\n * @param {HTMLElement} mountPoint\n */\n\nfunction unmount(elSpec, mountPoint) {\n const root = roots.get(mountPoint);\n if (!root) return;\n root.unmount();\n roots.delete(mountPoint);\n}\nvar ReactAdapter = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mount: mount,\n update: update,\n unmount: unmount\n});\n\n/** @typedef { import('./types').ElementMap } ElementMap */\n\n/**\n * @param {ElementMap} components\n * @param {Defaults=} defaults\n */\n\nfunction defineReact() {\n let components = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return define(components, _objectSpread({\n adapter: ReactAdapter\n }, options));\n}\nexport { defineReact as define, getStrategy };"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","Map","forwardRef","_a","ref","children","className","_a$showNavControl","showNavControl","mapboxAccessToken","_a$attributionControl","attributionControl","_a$style","style","width","height","_a$initialViewState","initialViewState","latitude","longitude","zoom","_a$mapStyle","mapStyle","props","console","log","mapStyles","assign","position","showCompass","MarkerStyles","default","active","MapMarker","onClick","_a$anchor","anchor","price","selected","zIndex","originalEvent","stopPropagation","getPopupStyles","getPinStyles","viewBox","fill","d","strokeLinecap","strokeLinejoin","states","MapPopup","closeButton","onClose","_a$offset","offset","_a$showBeak","showBeak","popupStyles","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","defaultBounds","useMap","locations","mapRef","useRef","bounds","useMemo","longs","map","_ref","lats","_ref2","southWest","Math","min","northEast","max","getBounds","JSON","stringify","_useState2","useState","selectedLocation","setSelectedLocation","fitToBounds","_b","current","resize","fitBounds","padding","maxZoom","panTo","useEffect","setLocation","location","adjustMap","arguments","undefined","MountedMapsContext","a","b","aKeys","keys","bKeys","_aKeys","key","syncProjection","src","dest","getProjection","srcProjection","setProjection","transformToViewState","tr","center","lng","lat","pitch","bearing","applyViewStateToTransform","v","viewState","changed","isPaddingEqual","object","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","target","source","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","arg","input","hint","prim","toPrimitive","res","String","Number","configurable","writable","_createForOfIteratorHelper","allowArrayLike","it","F","f","normalCompletion","didErr","step","refProps","normalizeStyle","toJS","layers","layerIndex","_step","_iterator","layer","id","normalizedLayer","interactive","layerRef","_step2","_iterator2","propName","DEFAULT_STYLE","version","sources","pointerEvents","mousedown","mouseup","mouseover","mousemove","click","dblclick","mouseenter","mouseleave","mouseout","contextmenu","touchstart","touchend","touchmove","touchcancel","cameraEvents","movestart","move","moveend","dragstart","drag","dragend","zoomstart","zoomend","rotatestart","rotate","rotateend","pitchstart","pitchend","otherEvents","wheel","boxzoomstart","boxzoomend","boxzoomcancel","load","render","idle","remove","data","styledata","sourcedata","error","settingNames","handlerNames","Mapbox","MapClass","container","this","_map","_internalUpdate","_inRender","_hoveredFeatures","_deferredEvents","_onEvent","cb","type","_onPointerEvent","_updateHover","interactiveLayerIds","features","_queryRenderedFeatures","point","_onCameraEvent","_MapClass","_initialize","transform","_renderTransform","setProps","oldProps","settingsChanged","_updateSettings","_createShadowTransform","sizeChanged","_updateSize","viewStateChanged","_updateViewState","_updateStyle","_updateStyleComponents","_updateHandlers","isMoving","redraw","reuse","that","savedMaps","pop","oldContainer","getContainer","childNodes","appendChild","_container","resizeObserver","_resizeObserver","disconnect","observe","styleDiffing","fitBoundsOptions","duration","isStyleLoaded","fire","once","_update","_props$mapStyle","mapOptions","accessToken","getAccessTokenFromEnv","gl","getContext","HTMLCanvasElement","setPadding","cursor","getCanvas","renderMap","_render","runRenderTaskQueue","_renderTaskQueue","run","_onBeforeRepaint","on","_onAfterRepaint","fireEvent","_fireEvent","bind","eventName","recycle","querySelector","destroy","_frame","cancel","renderTransform","newTransform","clone","pixelsToGLUnits","cloneTransform","painter","nextProps","triggerEvents","cameraElevationReference","deferredEvents","currProps","_settingNames","setter","toUpperCase","_nextProps$mapStyle","_nextProps$styleDiffi","options","diff","localIdeographFontFamily","setStyle","setLight","light","setFog","fog","setTerrain","terrain","getSource","_i2","_handlerNames","newValue","enable","disable","_this$props$interacti","queryRenderedFeatures","getLayer","onMouseMove","onMouseEnter","onMouseLeave","eventType","wasHovering","isHovering","baseFire","event","properties","match","exec","search","process","env","MapboxAccessToken","REACT_APP_MAPBOX_ACCESS_TOKEN","skipMethods","createRef","mapInstance","result","getMap","getCenter","getZoom","getBearing","getPitch","getPadding","project","lnglat","unproject","queryTerrainElevation","Set","proto","getOwnPropertyNames","add","getPrototypeOf","getMethodNames","includes","document","useLayoutEffect","globalSettings","defaultLib","mountedMapsContext","useContext","setMapInstance","containerRef","contextValue","mapLib","mapbox","isMounted","Promise","resolve","then","module","Error","mapboxgl","_props$RTLTextPlugin","RTLTextPlugin","getRTLTextPluginStatus","setRTLTextPlugin","setGlobals","supported","reuseMaps","onMapMount","catch","onError","onMapUnmount","useImperativeHandle","Provider","unitlessNumber","element","styles","isFinite","Marker","_useContext","thisRef","marker","hasChildren","el","createElement","mk","setLngLat","getElement","addEventListener","evt","lngLat","getLngLat","onDragStart","onDrag","onDragEnd","addTo","_props$draggable","draggable","_props$popup","popup","_props$rotation","rotation","_props$rotationAlignm","rotationAlignment","_props$pitchAlignment","pitchAlignment","ax","x","ay","y","bx","by","arePointsEqual","getOffset","setOffset","isDraggable","setDraggable","getRotation","setRotation","getRotationAlignment","setRotationAlignment","getPitchAlignment","setPitchAlignment","getPopup","setPopup","createPortal","memo","getClassList","trim","split","Popup","pp","onOpen","setDOMContent","off","isOpen","maxWidth","setMaxWidth","prevClassList","nextClassList","c","has","removeClassName","addClassName","onCreate","arg1","arg2","arg3","context","ctrl","opts","onAdd","onRemove","hasControl","addControl","removeControl","NavigationControl","ownKeys","_defineProperty","_toPrimitive","_toPropertyKey","CustomElementsStrategy","freeze","__proto__","defineElement","elSpec","elName","events","onUpdate","onUnmount","onMount","window","HTMLElement","_babelES5Adapter","Reflect","customElements","construct","setPrototypeOf","inject","attributes","ComponentElement","observedAttributes","connectedCallback","_mountPoint","shadow","attachShadow","mountPoint","mode","createMountPoint","disconnectedCallback","attributeChangedCallback","quiet","get","define","isSupported","supportsShadow","body","each","list","fn","observers","checkForMount","node","nodeName","toLowerCase","MutationObserver","mutations","mutation","targetNode","isElement","observeForUpdates","parent","parentNode","observer","removedNodes","subnode","childList","subtree","observeForRemoval","MutationObserverStrategy","isValidName","addedNodes","mountElementsInDOM","getElementsByTagName","readyState","cachedStrategy","components","defaults","Strategy","StrategyUsed","find","strategy","warn","getStrategy","thing","spec","component","toElementSpec","adapter","getProps","retarget","mount","update","unmount","rawJson","getAttribute","parse","reduce","attribute","roots","ReactAdapter","reactElement","root","set","delete","defineReact","_objectSpread"],"sourceRoot":""}