{"version":3,"file":"component---src-pages-index-js-3276c4647744d29cc538.js","mappings":"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AyFL,KAAMA,MAGrGM,GAAU,SAAC,GAAD,QAAG1C,KAAAA,OAAH,MAAU,GAAV,MAAcoC,KAAAA,OAAd,MAAqB,OAArB,SACd,gBAAC,GAAAC,IAAD,CAAKC,MAAM,6BAA6Bz0B,OAAQmyB,EAAMuC,QAAQ,YAAY30B,MAAOoyB,GAC/E,gBAAC,GAAAwC,KAAD,CAAMC,EAAE,gBAAgBL,KAAK,SAC7B,gBAAC,GAAAI,KAAD,CAAMC,EAAE,uLAAuLL,KAAMA,MAInMO,GAAU,CACd,EAAG,aACH,EAAG,OACH,EAAG,MACH,EAAG,QACH,EAAG,OACH,EAAG,QACH,GAAI,MACJ,IAAK,MACL,KAAM,UAGFC,GAAW,CACf,YACA,WACA,UACA,aACA,gBACA,WACA,aACA,YACA,cACA,YACA,aACA,UACA,YACA,YACA,WACA,WACA,cACA,WACA,cACA,SACA,aACA,cACA,WACA,cACA,cACA,WACA,aACA,aACA,cACA,WACA,cACA,eACA,UACA,WACA,aACA,UACA,UACA,YACA,aACA,WACA,aACA,YACA,YACA,aACA,aACA,YACA,WACA,WACA,WACA,aACA,YACA,YACA,aACA,UACA,WACA,YACA,QACA,WACA,UACA,SACA,QACA,QACA,YACA,QACA,YACA,SACA,YACA,WACA,UACA,WACA,aACA,aACA,YACA,YACA,YACA,WACA,SACA,WACA,aACA,UACA,gBACA,UACA,eACA,aACA,WACA,cACA,eACA,aACA,aACA,WACA,UACA,aACA,WACA,YACA,UACA,eACA,UACA,aACA,aACA,WACA,UACA,WACA,eACA,aACA,UACA,aACA,YACA,SACA,WACA,aACA,aACA,SACA,YACA,YACA,YACA,WACA,YACA,SACA,WACA,YACA,cACA,WACA,YACA,YACA,WACA,eACA,eACA,eACA,eACA,aACA,cACA,kBACA,YACA,YACA,YACA,UACA,SACA,QACA,WACA,YACA,eACA,aACA,WACA,WACA,cACA,SACA,WACA,cACA,SACA,SACA,WACA,kBACA,SACA,WACA,aACA,gBACA,WACA,cACA,cACA,SACA,UACA,WACA,U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","sources":["webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/construct.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/createClass.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/get.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/inherits.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/superPropBase.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/toArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/typeof.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/use-map.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/transform.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/style-utils.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/deep-equal.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/mapbox/mapbox.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/mapbox/create-ref.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/use-isomorphic-layout-effect.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/set-globals.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/map.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/apply-react-style.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/marker.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/popup.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/use-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/attribution-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/fullscreen-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/geolocate-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/navigation-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/scale-control.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/utils/assert.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/source.js","webpack://@elemental-zcash/zec-map/./node_modules/react-map-gl/dist/esm/components/layer.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/add-to-unscopables.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/array-species-constructor.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/array-species-create.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/classof.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/flatten-into-array.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/function-bind-context.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/html.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-array.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/is-constructor.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-create.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-define-properties.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/object-keys.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/internals/to-string-tag-support.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/modules/es.array.flat.js","webpack://@elemental-zcash/zec-map/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@elemental-zcash/zec-map/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://@elemental-zcash/zec-map/./node_modules/@loadable/component/dist/loadable.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/swr/dist/index.mjs","webpack://@elemental-zcash/zec-map/./node_modules/kdbush/src/sort.js","webpack://@elemental-zcash/zec-map/./node_modules/kdbush/src/within.js","webpack://@elemental-zcash/zec-map/./node_modules/kdbush/src/index.js","webpack://@elemental-zcash/zec-map/./node_modules/kdbush/src/range.js","webpack://@elemental-zcash/zec-map/./node_modules/supercluster/index.js","webpack://@elemental-zcash/zec-map/./node_modules/dequal/dist/index.mjs","webpack://@elemental-zcash/zec-map/./node_modules/use-deep-compare-effect/dist/use-deep-compare-effect.esm.js","webpack://@elemental-zcash/zec-map/./node_modules/use-supercluster/dist/use-supercluster.esm.js","webpack://@elemental-zcash/zec-map/./src/utils/cipher.js","webpack://@elemental-zcash/zec-map/./src/pages/index.js","webpack://@elemental-zcash/zec-map/./node_modules/mapbox-gl/dist/mapbox-gl-csp-worker.js"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\n\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nvar isNativeFunction = require(\"./isNativeFunction.js\");\n\nvar construct = require(\"./construct.js\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _slicedToArray from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\n\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; }\n\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; }\n\nimport * as React from 'react';\nimport { useState, useCallback, useContext } from 'react';\nexport var MountedMapsContext = React.createContext(null);\nexport var MapProvider = function MapProvider(props) {\n var _useState = useState({}),\n _useState2 = _slicedToArray(_useState, 2),\n maps = _useState2[0],\n setMaps = _useState2[1];\n\n var onMapMount = useCallback(function (map) {\n var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';\n setMaps(function (currMaps) {\n if (currMaps[id]) {\n throw new Error(\"Multiple maps with the same id: \".concat(id));\n }\n\n return _objectSpread(_objectSpread({}, currMaps), {}, _defineProperty({}, id, map));\n });\n }, []);\n var onMapUnmount = useCallback(function () {\n var id = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n setMaps(function (currMaps) {\n if (currMaps[id]) {\n var nextMaps = _objectSpread({}, currMaps);\n\n delete nextMaps[id];\n return nextMaps;\n }\n\n return currMaps;\n });\n }, []);\n return React.createElement(MountedMapsContext.Provider, {\n value: {\n maps: maps,\n onMapMount: onMapMount,\n onMapUnmount: onMapUnmount\n }\n }, props.children);\n};\nexport function useMap() {\n var _useContext = useContext(MountedMapsContext),\n maps = _useContext.maps;\n\n return maps;\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/**\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 */\n\nexport function applyViewStateToTransform(tr, props) {\n var v = props.viewState || props;\n var changed = false;\n\n if ('longitude' in v && 'latitude' in v) {\n var center = tr.center; // @ts-ignore\n\n tr.center = new center.constructor(v.longitude, v.latitude);\n changed = changed || center !== tr.center;\n }\n\n if ('zoom' in v) {\n var zoom = tr.zoom;\n tr.zoom = v.zoom;\n changed = changed || zoom !== tr.zoom;\n }\n\n if ('bearing' in v) {\n var bearing = tr.bearing;\n tr.bearing = v.bearing;\n changed = changed || bearing !== tr.bearing;\n }\n\n if ('pitch' in v) {\n var pitch = tr.pitch;\n tr.pitch = v.pitch;\n changed = changed || pitch !== tr.pitch;\n }\n\n if (v.padding && !tr.isPaddingEqual(v.padding)) {\n changed = true;\n tr.padding = v.padding;\n }\n\n return changed;\n}","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\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; }\n\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; }\n\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\nvar refProps = ['type', 'source', 'source-layer', 'minzoom', 'maxzoom', 'filter', 'layout']; // 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\n\nexport function normalizeStyle(style) {\n if (!style) {\n return null;\n }\n\n if (typeof style === 'string') {\n return style;\n }\n\n if ('toJS' in style) {\n style = style.toJS();\n }\n\n if (!style.layers) {\n return style;\n }\n\n var layerIndex = {};\n\n var _iterator = _createForOfIteratorHelper(style.layers),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var layer = _step.value;\n layerIndex[layer.id] = layer;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n var layers = style.layers.map(function (layer) {\n // @ts-expect-error\n var layerRef = layerIndex[layer.ref];\n var normalizedLayer = null;\n\n if ('interactive' in layer) {\n normalizedLayer = _objectSpread({}, layer); // Breaks style diffing :(\n\n delete normalizedLayer.interactive;\n } // Style diffing doesn't work with refs so expand them out manually before diffing.\n\n\n if (layerRef) {\n normalizedLayer = normalizedLayer || _objectSpread({}, layer);\n delete normalizedLayer.ref; // https://github.com/mapbox/mapbox-gl-js/blob/master/src/style-spec/deref.js\n\n var _iterator2 = _createForOfIteratorHelper(refProps),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var propName = _step2.value;\n\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\n return normalizedLayer || layer;\n }); // Do not mutate the style object provided by the user\n\n return _objectSpread(_objectSpread({}, style), {}, {\n layers: layers\n });\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 var ax = Array.isArray(a) ? a[0] : a ? a.x : 0;\n var ay = Array.isArray(a) ? a[1] : a ? a.y : 0;\n var bx = Array.isArray(b) ? b[0] : b ? b.x : 0;\n var by = Array.isArray(b) ? b[1] : b ? b.y : 0;\n return ax === bx && ay === by;\n}\n/* eslint-disable complexity */\n\n/**\n * Compare any two objects\n * @param a\n * @param b\n * @returns true if the objects are deep equal\n */\n\nexport function deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (!a || !b) {\n return false;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n } else if (Array.isArray(b)) {\n return false;\n }\n\n if (typeof a === 'object' && typeof b === 'object') {\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n\n for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n var key = _aKeys[_i];\n\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _classCallCheck from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\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; }\n\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; }\n\nimport { transformToViewState, applyViewStateToTransform } from '../utils/transform';\nimport { normalizeStyle } from '../utils/style-utils';\nimport { deepEqual } from '../utils/deep-equal';\nvar 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};\nvar 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};\nvar 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};\nvar settingNames = ['minZoom', 'maxZoom', 'minPitch', 'maxPitch', 'maxBounds', 'projection', 'renderWorldCopies'];\nvar handlerNames = ['scrollZoom', 'boxZoom', 'dragRotate', 'dragPan', 'keyboard', 'doubleClickZoom', 'touchZoomRotate', 'touchPitch'];\n/**\n * A wrapper for mapbox-gl's Map class\n */\n\nvar Mapbox = /*#__PURE__*/function () {\n function Mapbox(MapClass, props, container) {\n var _this = this;\n\n _classCallCheck(this, Mapbox);\n\n // mapboxgl.Map instance. Not using type here because we are accessing\n // private members and methods\n this._map = null; // Internal states\n\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\n this._onEvent = function (e) {\n // @ts-ignore\n var cb = _this.props[otherEvents[e.type]];\n\n if (cb) {\n cb(e);\n }\n };\n\n this._onPointerEvent = function (e) {\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n _this._updateHover(e);\n } // @ts-ignore\n\n\n var cb = _this.props[pointerEvents[e.type]];\n\n if (cb) {\n if (_this.props.interactiveLayerIds && e.type !== 'mouseover' && e.type !== 'mouseout') {\n var features = _this._hoveredFeatures || _this._map.queryRenderedFeatures(e.point, {\n layers: _this.props.interactiveLayerIds\n });\n\n if (!features.length) {\n return;\n }\n\n e.features = features;\n }\n\n cb(e);\n delete e.features;\n }\n };\n\n this._onCameraEvent = function (e) {\n if (!_this._internalUpdate) {\n // @ts-ignore\n var cb = _this.props[cameraEvents[e.type]];\n\n if (cb) {\n cb(e);\n }\n }\n\n if (e.type in _this._deferredEvents) {\n _this._deferredEvents[e.type] = false;\n }\n };\n\n this._MapClass = MapClass;\n this.props = props;\n\n this._initialize(container);\n }\n\n _createClass(Mapbox, [{\n key: \"map\",\n get: function get() {\n return this._map;\n }\n }, {\n key: \"transform\",\n get: function get() {\n return this._renderTransform;\n }\n }, {\n key: \"setProps\",\n value: function setProps(props) {\n var oldProps = this.props;\n this.props = props;\n\n var settingsChanged = this._updateSettings(props, oldProps);\n\n if (settingsChanged) {\n this._renderTransform = this._map.transform.clone();\n }\n\n var sizeChanged = this._updateSize(props);\n\n var viewStateChanged = this._updateViewState(props, true);\n\n this._updateStyle(props, oldProps);\n\n this._updateStyleComponents(props, oldProps);\n\n this._updateHandlers(props, oldProps); // 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\n\n if (settingsChanged || sizeChanged || viewStateChanged && !this._map.isMoving()) {\n this.redraw();\n }\n }\n }, {\n key: \"_initialize\",\n value:\n /* eslint-disable complexity,max-statements */\n function _initialize(container) {\n var _this2 = this;\n\n var props = this.props;\n\n var mapOptions = _objectSpread(_objectSpread(_objectSpread({}, props), props.initialViewState), {}, {\n accessToken: props.mapboxAccessToken || getAccessTokenFromEnv() || null,\n container: container,\n style: normalizeStyle(props.mapStyle)\n });\n\n var viewState = mapOptions.initialViewState || mapOptions.viewState || mapOptions;\n Object.assign(mapOptions, {\n center: [viewState.longitude || 0, viewState.latitude || 0],\n zoom: viewState.zoom || 0,\n pitch: viewState.pitch || 0,\n bearing: viewState.bearing || 0\n });\n\n if (props.gl) {\n // eslint-disable-next-line\n var getContext = HTMLCanvasElement.prototype.getContext; // Hijack canvas.getContext to return our own WebGLContext\n // This will be called inside the mapboxgl.Map constructor\n // @ts-expect-error\n\n HTMLCanvasElement.prototype.getContext = function () {\n // Unhijack immediately\n HTMLCanvasElement.prototype.getContext = getContext;\n return props.gl;\n };\n }\n\n var map = new this._MapClass(mapOptions); // Props that are not part of constructor options\n\n if (viewState.padding) {\n map.setPadding(viewState.padding);\n }\n\n if (props.cursor) {\n map.getCanvas().style.cursor = props.cursor;\n }\n\n this._renderTransform = map.transform.clone(); // Hack\n // Insert code into map's render cycle\n\n var renderMap = map._render;\n\n map._render = function (arg) {\n _this2._inRender = true;\n renderMap.call(map, arg);\n _this2._inRender = false;\n };\n\n var runRenderTaskQueue = map._renderTaskQueue.run;\n\n map._renderTaskQueue.run = function (arg) {\n runRenderTaskQueue.call(map._renderTaskQueue, arg);\n\n _this2._onBeforeRepaint();\n };\n\n map.on('render', function () {\n return _this2._onAfterRepaint();\n }); // Insert code into map's event pipeline\n\n var fireEvent = map.fire;\n map.fire = this._fireEvent.bind(this, fireEvent); // add listeners\n\n map.on('resize', function () {\n _this2._renderTransform.resize(map.transform.width, map.transform.height);\n });\n map.on('styledata', function () {\n return _this2._updateStyleComponents(_this2.props, {});\n });\n map.on('sourcedata', function () {\n return _this2._updateStyleComponents(_this2.props, {});\n });\n\n for (var eventName in pointerEvents) {\n map.on(eventName, this._onPointerEvent);\n }\n\n for (var _eventName in cameraEvents) {\n map.on(_eventName, this._onCameraEvent);\n }\n\n for (var _eventName2 in otherEvents) {\n map.on(_eventName2, this._onEvent);\n }\n\n this._map = map;\n }\n /* eslint-enable complexity,max-statements */\n\n }, {\n key: \"recycle\",\n value: function recycle() {\n Mapbox.savedMaps.push(this);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._map.remove();\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\n }, {\n key: \"redraw\",\n value: function redraw() {\n var map = this._map; // 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\n if (!this._inRender && map.style) {\n // cancel the scheduled update\n if (map._frame) {\n map._frame.cancel();\n\n map._frame = null;\n } // the order is important - render() may schedule another update\n\n\n map._render();\n }\n }\n /* Trigger map resize if size is controlled\n @param {object} nextProps\n @returns {bool} true if size has changed\n */\n\n }, {\n key: \"_updateSize\",\n value: function _updateSize(nextProps) {\n // Check if size is controlled\n var viewState = nextProps.viewState;\n\n if (viewState) {\n var map = this._map;\n\n if (viewState.width !== map.transform.width || viewState.height !== map.transform.height) {\n map.resize();\n return true;\n }\n }\n\n return false;\n } // Adapted from map.jumpTo\n\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\n }, {\n key: \"_updateViewState\",\n value: function _updateViewState(nextProps, triggerEvents) {\n if (this._internalUpdate) {\n return false;\n }\n\n var map = this._map;\n var tr = this._renderTransform; // Take a snapshot of the transform before mutation\n\n var zoom = tr.zoom,\n pitch = tr.pitch,\n bearing = tr.bearing;\n var changed = applyViewStateToTransform(tr, _objectSpread(_objectSpread({}, transformToViewState(map.transform)), nextProps));\n\n if (changed && triggerEvents) {\n var deferredEvents = this._deferredEvents; // Delay DOM control updates to the next render cycle\n\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 } // Avoid manipulating the real transform when interaction/animation is ongoing\n // as it would interfere with Mapbox's handlers\n\n\n if (!map.isMoving()) {\n applyViewStateToTransform(map.transform, nextProps);\n }\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\n }, {\n key: \"_updateSettings\",\n value: function _updateSettings(nextProps, currProps) {\n var map = this._map;\n var changed = false;\n\n var _iterator = _createForOfIteratorHelper(settingNames),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var propName = _step.value;\n\n if (propName in nextProps && !deepEqual(nextProps[propName], currProps[propName])) {\n changed = true;\n map[\"set\".concat(propName[0].toUpperCase()).concat(propName.slice(1))](nextProps[propName]);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\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\n }, {\n key: \"_updateStyle\",\n value: function _updateStyle(nextProps, currProps) {\n if (nextProps.cursor !== currProps.cursor) {\n this._map.getCanvas().style.cursor = nextProps.cursor;\n }\n\n if (nextProps.mapStyle !== currProps.mapStyle) {\n var options = {\n diff: nextProps.styleDiffing\n };\n\n if ('localIdeographFontFamily' in nextProps) {\n options.localIdeographFontFamily = nextProps.localIdeographFontFamily;\n }\n\n this._map.setStyle(normalizeStyle(nextProps.mapStyle), options);\n\n return true;\n }\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\n }, {\n key: \"_updateStyleComponents\",\n value: function _updateStyleComponents(nextProps, currProps) {\n var map = this._map;\n var changed = false;\n\n if (map.style.loaded()) {\n if ('light' in nextProps && !deepEqual(nextProps.light, currProps.light)) {\n changed = true;\n map.setLight(nextProps.light);\n }\n\n if ('fog' in nextProps && !deepEqual(nextProps.fog, currProps.fog)) {\n changed = true;\n map.setFog(nextProps.fog);\n }\n\n if ('terrain' in nextProps && !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\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\n }, {\n key: \"_updateHandlers\",\n value: function _updateHandlers(nextProps, currProps) {\n var map = this._map;\n var changed = false;\n\n var _iterator2 = _createForOfIteratorHelper(handlerNames),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var propName = _step2.value;\n var newValue = nextProps[propName];\n\n if (!deepEqual(newValue, currProps[propName])) {\n changed = true;\n\n if (newValue) {\n map[propName].enable(newValue);\n } else {\n map[propName].disable();\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return changed;\n }\n }, {\n key: \"_updateHover\",\n value: function _updateHover(e) {\n var props = this.props;\n var shouldTrackHoveredFeatures = props.interactiveLayerIds && (props.onMouseMove || props.onMouseEnter || props.onMouseLeave);\n\n if (shouldTrackHoveredFeatures) {\n var _this$_hoveredFeature;\n\n var eventType = e.type;\n var wasHovering = ((_this$_hoveredFeature = this._hoveredFeatures) === null || _this$_hoveredFeature === void 0 ? void 0 : _this$_hoveredFeature.length) > 0;\n var features;\n\n if (eventType === 'mousemove') {\n try {\n features = this._map.queryRenderedFeatures(e.point, {\n layers: props.interactiveLayerIds\n });\n } catch (_unused) {\n features = [];\n }\n } else {\n features = [];\n }\n\n var isHovering = features.length > 0;\n\n if (!isHovering && wasHovering) {\n e.type = 'mouseleave';\n\n this._onPointerEvent(e);\n }\n\n this._hoveredFeatures = features;\n\n if (isHovering && !wasHovering) {\n e.type = 'mouseenter';\n\n this._onPointerEvent(e);\n }\n\n e.type = eventType;\n } else {\n this._hoveredFeatures = null;\n }\n }\n }, {\n key: \"_fireEvent\",\n value: function _fireEvent(baseFire, event, properties) {\n var map = this._map;\n var tr = map.transform;\n var eventType = typeof event === 'string' ? event : event.type;\n\n if (eventType === 'move') {\n this._updateViewState(this.props, false);\n }\n\n if (eventType in cameraEvents) {\n if (typeof event === 'object') {\n event.viewState = transformToViewState(tr);\n }\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\n baseFire.call(map, event, properties);\n return map;\n } // All camera manipulations are complete, ready to repaint\n\n }, {\n key: \"_onBeforeRepaint\",\n value: function _onBeforeRepaint() {\n var _this3 = this;\n\n var map = this._map; // If there are camera changes driven by props, invoke camera events so that DOM controls are synced\n\n this._internalUpdate = true;\n\n for (var eventType in this._deferredEvents) {\n if (this._deferredEvents[eventType]) {\n map.fire(eventType);\n }\n }\n\n this._internalUpdate = false;\n var tr = this._map.transform; // Make sure camera matches the current props\n\n this._map.transform = this._renderTransform;\n\n this._onAfterRepaint = function () {\n // Restores camera state before render/load events are fired\n _this3._map.transform = tr;\n };\n }\n }], [{\n key: \"reuse\",\n value: function reuse(props, container) {\n var that = Mapbox.savedMaps.pop();\n\n if (!that) {\n return null;\n }\n\n var map = that.map; // 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 // Step1: reparenting child nodes from old container to new container\n\n var oldContainer = map.getContainer();\n container.className = oldContainer.className;\n\n while (oldContainer.childNodes.length > 0) {\n container.appendChild(oldContainer.childNodes[0]);\n } // Step2: replace the internal container with new container from the react component\n // @ts-ignore\n\n\n map._container = container; // Step 3: apply new props\n\n if (props.initialViewState) {\n that._updateViewState(props.initialViewState, false);\n }\n\n map.resize();\n that.setProps(_objectSpread(_objectSpread({}, props), {}, {\n styleDiffing: false\n })); // Simulate load event\n\n if (map.isStyleLoaded()) {\n map.fire('load');\n } else {\n map.once('styledata', function () {\n return map.fire('load');\n });\n }\n\n return that;\n }\n }]);\n\n return Mapbox;\n}();\n\nexport { Mapbox as default };\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 */\n\nfunction getAccessTokenFromEnv() {\n var accessToken = null;\n /* global location, process */\n\n if (typeof location !== 'undefined') {\n var match = /access_token=([^&\\/]*)/.exec(location.search);\n accessToken = match && match[1];\n } // Note: This depends on bundler plugins (e.g. webpack) importing environment correctly\n\n\n try {\n accessToken = accessToken || process.env.MapboxAccessToken;\n } catch (_unused2) {// ignore\n }\n\n try {\n accessToken = accessToken || process.env.REACT_APP_MAPBOX_ACCESS_TOKEN;\n } catch (_unused3) {// ignore\n }\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\n/** These methods may break the react binding if called directly */\nvar 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, mapLib) {\n if (!mapInstance) {\n return null;\n }\n\n var map = mapInstance.map;\n var result = {\n getMap: function getMap() {\n return map;\n },\n // Overwrite getters to use our shadow transform\n getCenter: function getCenter() {\n return mapInstance.transform.center;\n },\n getZoom: function getZoom() {\n return mapInstance.transform.zoom;\n },\n getBearing: function getBearing() {\n return mapInstance.transform.bearing;\n },\n getPitch: function getPitch() {\n return mapInstance.transform.pitch;\n },\n getPadding: function getPadding() {\n return mapInstance.transform.padding;\n },\n getBounds: function getBounds() {\n return mapInstance.transform.getBounds();\n },\n project: function project(lnglat) {\n return mapInstance.transform.locationPoint(mapLib.LngLat.convert(lnglat));\n },\n unproject: function unproject(point) {\n return mapInstance.transform.pointLocation(mapLib.Point.convert(point));\n }\n };\n\n var _iterator = _createForOfIteratorHelper(getMethodNames(map)),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n\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\n return result;\n}\n\nfunction getMethodNames(obj) {\n var result = new Set();\n var proto = obj;\n\n while (proto) {\n var _iterator2 = _createForOfIteratorHelper(Object.getOwnPropertyNames(proto)),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var key = _step2.value;\n\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\n proto = Object.getPrototypeOf(proto);\n }\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';\nvar 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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\nvar globalSettings = ['baseApiUrl', 'maxParallelImageRequests', 'workerClass', 'workerCount', 'workerUrl'];\nexport default function setGlobals(mapLib, props) {\n var _iterator = _createForOfIteratorHelper(globalSettings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var key = _step.value;\n\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\n if (props.RTLTextPlugin && mapLib.getRTLTextPluginStatus && mapLib.getRTLTextPluginStatus() === 'unavailable') {\n mapLib.setRTLTextPlugin(props.RTLTextPlugin, function (error) {\n if (error) {\n // eslint-disable-next-line\n console.error(error);\n }\n }, false);\n }\n}","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\nimport _slicedToArray from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\n\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; }\n\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; }\n\nimport * as React from 'react';\nimport { useState, useRef, useEffect, useContext, useMemo, forwardRef, 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 var MapContext = React.createContext(null);\nvar defaultProps = {\n // Constraints\n minZoom: 0,\n maxZoom: 22,\n minPitch: 0,\n maxPitch: 60,\n // Interaction handlers\n scrollZoom: true,\n boxZoom: true,\n dragRotate: true,\n dragPan: true,\n keyboard: true,\n doubleClickZoom: true,\n touchZoomRotate: true,\n touchPitch: true,\n // Style\n mapStyle: {\n version: 8,\n sources: {},\n layers: []\n },\n styleDiffing: true,\n projection: 'mercator',\n renderWorldCopies: true,\n // Callbacks\n onError: function onError(e) {\n return console.error(e.error);\n },\n // Globals\n RTLTextPlugin: 'https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js'\n};\nvar Map = forwardRef(function (props, ref) {\n var mountedMapsContext = useContext(MountedMapsContext);\n\n var _useState = useState(null),\n _useState2 = _slicedToArray(_useState, 2),\n mapInstance = _useState2[0],\n setMapInstance = _useState2[1];\n\n var containerRef = useRef();\n\n var _useRef = useRef({\n mapLib: null,\n map: null\n }),\n contextValue = _useRef.current;\n\n useEffect(function () {\n var mapLib = props.mapLib;\n var isMounted = true;\n var mapbox;\n Promise.resolve(mapLib || import('mapbox-gl')).then(function (mapboxgl) {\n if (!isMounted) {\n return;\n }\n\n if (!mapboxgl.Map) {\n // commonjs style\n mapboxgl = mapboxgl.default;\n }\n\n if (!mapboxgl || !mapboxgl.Map) {\n throw new Error('Invalid mapLib');\n }\n\n if (mapboxgl.supported(props)) {\n setGlobals(mapboxgl, props);\n\n if (props.reuseMaps) {\n mapbox = Mapbox.reuse(props, containerRef.current);\n }\n\n if (!mapbox) {\n mapbox = new Mapbox(mapboxgl.Map, props, containerRef.current);\n }\n\n contextValue.map = mapbox.map;\n contextValue.mapLib = mapboxgl;\n setMapInstance(mapbox);\n mountedMapsContext === null || mountedMapsContext === void 0 ? void 0 : mountedMapsContext.onMapMount(createRef(mapbox, mapboxgl), props.id);\n } else {\n throw new Error('Map is not supported by this browser');\n }\n }).catch(function (error) {\n props.onError({\n type: 'error',\n target: null,\n originalEvent: null,\n error: error\n });\n });\n return function () {\n isMounted = false;\n\n if (mapbox) {\n mountedMapsContext === null || mountedMapsContext === void 0 ? void 0 : mountedMapsContext.onMapUnmount(props.id);\n\n if (props.reuseMaps) {\n mapbox.recycle();\n } else {\n mapbox.destroy();\n }\n }\n };\n }, []);\n useIsomorphicLayoutEffect(function () {\n if (mapInstance) {\n mapInstance.setProps(props);\n }\n });\n useImperativeHandle(ref, function () {\n return createRef(mapInstance, contextValue.mapLib);\n }, [mapInstance]);\n var style = useMemo(function () {\n return _objectSpread({\n position: 'relative',\n width: '100%',\n height: '100%'\n }, props.style);\n }, [props.style]);\n return React.createElement(\"div\", {\n id: props.id,\n ref: containerRef,\n style: style\n }, mapInstance && React.createElement(MapContext.Provider, {\n value: contextValue\n }, props.children));\n});\nMap.displayName = 'Map';\nMap.defaultProps = defaultProps;\nexport default Map;","// This is a simplified version of\n// https://github.com/facebook/react/blob/4131af3e4bf52f3a003537ec95a1655147c81270/src/renderers/dom/shared/CSSPropertyOperations.js#L62\nvar unitlessNumber = /box|flex|grid|column|lineHeight|fontWeight|opacity|order|tabSize|zIndex/;\nexport function applyReactStyle(element, styles) {\n if (!element || !styles) {\n return;\n }\n\n var style = element.style;\n\n for (var key in styles) {\n var value = styles[key];\n\n if (Number.isFinite(value) && !unitlessNumber.test(key)) {\n style[key] = \"\".concat(value, \"px\");\n } else {\n style[key] = value;\n }\n }\n}","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\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; }\n\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; }\n\n/* global document */\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useMemo, useRef, useContext } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport { MapContext } from './map';\nimport { arePointsEqual } from '../utils/deep-equal';\nvar defaultProps = {\n draggable: false,\n popup: null,\n rotation: 0,\n rotationAlignment: 'auto',\n pitchAlignment: 'auto'\n};\n/* eslint-disable complexity,max-statements */\n\nfunction Marker(props) {\n var _useContext = useContext(MapContext),\n map = _useContext.map,\n mapLib = _useContext.mapLib;\n\n var thisRef = useRef({\n props: props\n });\n thisRef.current.props = props;\n var marker = useMemo(function () {\n var hasChildren = false;\n React.Children.forEach(props.children, function (el) {\n if (el) {\n hasChildren = true;\n }\n });\n\n var options = _objectSpread(_objectSpread({}, props), {}, {\n element: hasChildren ? document.createElement('div') : null\n });\n\n var mk = new mapLib.Marker(options).setLngLat([props.longitude, props.latitude]);\n mk.on('dragstart', function (e) {\n var _thisRef$current$prop, _thisRef$current$prop2;\n\n var evt = e;\n evt.lngLat = marker.getLngLat();\n (_thisRef$current$prop = (_thisRef$current$prop2 = thisRef.current.props).onDragStart) === null || _thisRef$current$prop === void 0 ? void 0 : _thisRef$current$prop.call(_thisRef$current$prop2, evt);\n });\n mk.on('drag', function (e) {\n var _thisRef$current$prop3, _thisRef$current$prop4;\n\n var evt = e;\n evt.lngLat = marker.getLngLat();\n (_thisRef$current$prop3 = (_thisRef$current$prop4 = thisRef.current.props).onDrag) === null || _thisRef$current$prop3 === void 0 ? void 0 : _thisRef$current$prop3.call(_thisRef$current$prop4, evt);\n });\n mk.on('dragend', function (e) {\n var _thisRef$current$prop5, _thisRef$current$prop6;\n\n var evt = e;\n evt.lngLat = marker.getLngLat();\n (_thisRef$current$prop5 = (_thisRef$current$prop6 = thisRef.current.props).onDragEnd) === null || _thisRef$current$prop5 === void 0 ? void 0 : _thisRef$current$prop5.call(_thisRef$current$prop6, evt);\n });\n return mk;\n }, []);\n useEffect(function () {\n marker.addTo(map);\n return function () {\n marker.remove();\n };\n }, []);\n useEffect(function () {\n applyReactStyle(marker.getElement(), props.style);\n }, [props.style]);\n\n if (marker.getLngLat().lng !== props.longitude || marker.getLngLat().lat !== props.latitude) {\n marker.setLngLat([props.longitude, props.latitude]);\n }\n\n if (props.offset && !arePointsEqual(marker.getOffset(), props.offset)) {\n marker.setOffset(props.offset);\n }\n\n if (marker.isDraggable() !== props.draggable) {\n marker.setDraggable(props.draggable);\n }\n\n if (marker.getRotation() !== props.rotation) {\n marker.setRotation(props.rotation);\n }\n\n if (marker.getRotationAlignment() !== props.rotationAlignment) {\n marker.setRotationAlignment(props.rotationAlignment);\n }\n\n if (marker.getPitchAlignment() !== props.pitchAlignment) {\n marker.setPitchAlignment(props.pitchAlignment);\n }\n\n if (marker.getPopup() !== props.popup) {\n marker.setPopup(props.popup);\n }\n\n return createPortal(props.children, marker.getElement());\n}\n\nMarker.defaultProps = defaultProps; // @ts-ignore\n\nexport default React.memo(Marker);","import _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\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; }\n\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; }\n\n/* global document */\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { useEffect, useMemo, useRef, useContext } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport { MapContext } from './map';\nimport { deepEqual } from '../utils/deep-equal'; // Adapted from https://github.com/mapbox/mapbox-gl-js/blob/v1.13.0/src/ui/popup.js\n\nfunction getClassList(className) {\n return new Set(className ? className.trim().split(/\\s+/) : []);\n}\n/* eslint-disable complexity,max-statements */\n\n\nfunction Popup(props) {\n var _useContext = useContext(MapContext),\n map = _useContext.map,\n mapLib = _useContext.mapLib;\n\n var container = useMemo(function () {\n return document.createElement('div');\n }, []);\n var thisRef = useRef({\n props: props\n });\n thisRef.current.props = props;\n var popup = useMemo(function () {\n var options = _objectSpread({}, props);\n\n var pp = new mapLib.Popup(options).setLngLat([props.longitude, props.latitude]);\n pp.on('open', function (e) {\n var _thisRef$current$prop, _thisRef$current$prop2;\n\n (_thisRef$current$prop = (_thisRef$current$prop2 = thisRef.current.props).onOpen) === null || _thisRef$current$prop === void 0 ? void 0 : _thisRef$current$prop.call(_thisRef$current$prop2, e);\n });\n pp.on('close', function (e) {\n var _thisRef$current$prop3, _thisRef$current$prop4;\n\n (_thisRef$current$prop3 = (_thisRef$current$prop4 = thisRef.current.props).onClose) === null || _thisRef$current$prop3 === void 0 ? void 0 : _thisRef$current$prop3.call(_thisRef$current$prop4, e);\n });\n return pp;\n }, []);\n useEffect(function () {\n popup.setDOMContent(container).addTo(map);\n return function () {\n if (popup.isOpen()) {\n popup.remove();\n }\n };\n }, []);\n useEffect(function () {\n applyReactStyle(popup.getElement(), props.style);\n }, [props.style]);\n\n if (popup.isOpen()) {\n if (popup.getLngLat().lng !== props.longitude || popup.getLngLat().lat !== props.latitude) {\n popup.setLngLat([props.longitude, props.latitude]);\n } // @ts-ignore\n\n\n if (props.offset && !deepEqual(popup.options.offset, props.offset)) {\n popup.setOffset(props.offset);\n } // @ts-ignore\n\n\n if (popup.options.anchor !== props.anchor || popup.options.maxWidth !== props.maxWidth) {\n // @ts-ignore\n popup.options.anchor = props.anchor;\n popup.setMaxWidth(props.maxWidth);\n } // @ts-ignore\n\n\n if (popup.options.className !== props.className) {\n // @ts-ignore\n var prevClassList = getClassList(popup.options.className);\n var nextClassList = getClassList(props.className);\n\n var _iterator = _createForOfIteratorHelper(prevClassList),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var c = _step.value;\n\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\n var _iterator2 = _createForOfIteratorHelper(nextClassList),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _c = _step2.value;\n\n if (!prevClassList.has(_c)) {\n popup.addClassName(_c);\n }\n } // @ts-ignore\n\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n popup.options.className = props.className;\n }\n }\n\n return createPortal(props.children, container);\n} // @ts-ignore\n\n\nexport default React.memo(Popup);","import { useContext, useMemo, useEffect } from 'react';\nimport { MapContext } from './map';\nexport default function useControl(onCreate, onRemove, opts) {\n var context = useContext(MapContext);\n var ctrl = useMemo(function () {\n return onCreate(context);\n }, []);\n useEffect(function () {\n var map = context.map;\n\n if (!map.hasControl(ctrl)) {\n var _ref;\n\n map.addControl(ctrl, (_ref = opts || onRemove) === null || _ref === void 0 ? void 0 : _ref.position);\n }\n\n return function () {\n if (typeof onRemove === 'function') {\n onRemove(context);\n } // Map might have been removed (parent effects are destroyed before child ones)\n\n\n if (map.hasControl(ctrl)) {\n map.removeControl(ctrl);\n }\n };\n }, []);\n return ctrl;\n}","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nfunction AttributionControl(props) {\n var ctrl = useControl(function (_ref) {\n var mapLib = _ref.mapLib;\n return new mapLib.AttributionControl(props);\n }, {\n position: props.position\n });\n useEffect(function () {\n // @ts-ignore\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n return null;\n}\n\nexport default React.memo(AttributionControl);","/* global document */\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nfunction FullscreenControl(props) {\n var ctrl = useControl(function (_ref) {\n var mapLib = _ref.mapLib;\n return new mapLib.FullscreenControl({\n container: props.containerId && document.getElementById(props.containerId)\n });\n }, {\n position: props.position\n });\n useEffect(function () {\n // @ts-ignore\n applyReactStyle(ctrl._controlContainer, props.style);\n }, [props.style]);\n return null;\n}\n\nexport default React.memo(FullscreenControl);","import * as React from 'react';\nimport { forwardRef, useImperativeHandle, useRef, useEffect } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\nvar GeolocateControl = forwardRef(function (props, ref) {\n var thisRef = useRef({\n props: props\n });\n var ctrl = useControl(function (_ref) {\n var mapLib = _ref.mapLib;\n var gc = new mapLib.GeolocateControl(props);\n gc.on('geolocate', function (e) {\n var _thisRef$current$prop, _thisRef$current$prop2;\n\n (_thisRef$current$prop = (_thisRef$current$prop2 = thisRef.current.props).onGeolocate) === null || _thisRef$current$prop === void 0 ? void 0 : _thisRef$current$prop.call(_thisRef$current$prop2, e);\n });\n gc.on('error', function (e) {\n var _thisRef$current$prop3, _thisRef$current$prop4;\n\n (_thisRef$current$prop3 = (_thisRef$current$prop4 = thisRef.current.props).onError) === null || _thisRef$current$prop3 === void 0 ? void 0 : _thisRef$current$prop3.call(_thisRef$current$prop4, e);\n });\n gc.on('outofmaxbounds', function (e) {\n var _thisRef$current$prop5, _thisRef$current$prop6;\n\n (_thisRef$current$prop5 = (_thisRef$current$prop6 = thisRef.current.props).onOutOfMaxBounds) === null || _thisRef$current$prop5 === void 0 ? void 0 : _thisRef$current$prop5.call(_thisRef$current$prop6, e);\n });\n gc.on('trackuserlocationstart', function (e) {\n var _thisRef$current$prop7, _thisRef$current$prop8;\n\n (_thisRef$current$prop7 = (_thisRef$current$prop8 = thisRef.current.props).onTrackUserLocationStart) === null || _thisRef$current$prop7 === void 0 ? void 0 : _thisRef$current$prop7.call(_thisRef$current$prop8, e);\n });\n gc.on('trackuserlocationend', function (e) {\n var _thisRef$current$prop9, _thisRef$current$prop10;\n\n (_thisRef$current$prop9 = (_thisRef$current$prop10 = thisRef.current.props).onTrackUserLocationEnd) === null || _thisRef$current$prop9 === void 0 ? void 0 : _thisRef$current$prop9.call(_thisRef$current$prop10, e);\n });\n return gc;\n }, {\n position: props.position\n });\n thisRef.current.props = props;\n useImperativeHandle(ref, function () {\n return {\n trigger: function trigger() {\n return ctrl.trigger();\n }\n };\n }, []);\n useEffect(function () {\n // @ts-ignore\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n return null;\n});\nGeolocateControl.displayName = 'GeolocateControl';\nexport default React.memo(GeolocateControl);","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\n\nfunction NavigationControl(props) {\n var ctrl = useControl(function (_ref) {\n var mapLib = _ref.mapLib;\n return new mapLib.NavigationControl(props);\n }, {\n position: props.position\n });\n useEffect(function () {\n // @ts-ignore\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n return null;\n}\n\nexport default React.memo(NavigationControl);","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { applyReactStyle } from '../utils/apply-react-style';\nimport useControl from './use-control';\nvar defaultProps = {\n unit: 'metric',\n maxWidth: 100\n};\n\nfunction ScaleControl(props) {\n var ctrl = useControl(function (_ref) {\n var mapLib = _ref.mapLib;\n return new mapLib.ScaleControl(props);\n }, {\n position: props.position\n }); // @ts-ignore\n\n if (ctrl.options.unit !== props.unit || ctrl.options.maxWidth !== props.maxWidth) {\n // @ts-ignore\n ctrl.options.maxWidth = props.maxWidth; // This method will trigger an update\n\n ctrl.setUnit(props.unit);\n }\n\n useEffect(function () {\n // @ts-ignore\n applyReactStyle(ctrl._container, props.style);\n }, [props.style]);\n return null;\n}\n\nScaleControl.defaultProps = defaultProps;\nexport default React.memo(ScaleControl);","export default function assert(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}","import _slicedToArray from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\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; }\n\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; }\n\nimport * as React from 'react';\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { cloneElement } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\nvar sourceCounter = 0;\n\nfunction createSource(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded) {\n var options = _objectSpread({}, props);\n\n delete options.id;\n delete options.children; // @ts-ignore\n\n map.addSource(id, options);\n return map.getSource(id);\n }\n\n return null;\n}\n/* eslint-disable complexity */\n\n\nfunction updateSource(source, props, prevProps) {\n assert(props.id === prevProps.id, 'source id changed');\n assert(props.type === prevProps.type, 'source type changed');\n var changedKey = '';\n var changedKeyCount = 0;\n\n for (var key in props) {\n if (key !== 'children' && key !== 'id' && !deepEqual(prevProps[key], props[key])) {\n changedKey = key;\n changedKeyCount++;\n }\n }\n\n if (!changedKeyCount) {\n return;\n }\n\n var type = props.type;\n\n if (type === 'geojson') {\n source.setData(props.data);\n } else if (type === 'image') {\n source.updateImage({\n url: props.url,\n coordinates: props.coordinates\n });\n } else if ((type === 'canvas' || type === 'video') && changedKeyCount === 1 && changedKey === 'coordinates') {\n source.setCoordinates(props.coordinates);\n } else if (type === 'vector' && 'setUrl' in source) {\n // Added in 1.12.0:\n // vectorTileSource.setTiles\n // vectorTileSource.setUrl\n switch (changedKey) {\n case 'url':\n source.setUrl(props.url);\n break;\n\n case 'tiles':\n source.setTiles(props.tiles);\n break;\n\n default:\n }\n } else {\n // eslint-disable-next-line\n console.warn(\"Unable to update prop: \".concat(changedKey));\n }\n}\n/* eslint-enable complexity */\n\n\nfunction Source(props) {\n var _useContext = useContext(MapContext),\n map = _useContext.map;\n\n var propsRef = useRef(props);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n setStyleLoaded = _useState2[1];\n\n var id = useMemo(function () {\n return props.id || \"jsx-source-\".concat(sourceCounter++);\n }, []);\n useEffect(function () {\n if (map) {\n var forceUpdate = function forceUpdate() {\n return setStyleLoaded(function (version) {\n return version + 1;\n });\n };\n\n map.on('styledata', forceUpdate);\n forceUpdate();\n return function () {\n map.off('styledata', forceUpdate); // Parent effects are destroyed before child ones, see\n // https://github.com/facebook/react/issues/16728\n // Source can only be removed after all child layers are removed\n\n /* global setTimeout */\n\n setTimeout(function () {\n // @ts-ignore\n if (map.style && map.style._loaded && map.getSource(id)) {\n map.removeSource(id);\n }\n }, 0);\n };\n }\n\n return undefined;\n }, [map]); // @ts-ignore\n\n var source = map && map.style && map.getSource(id);\n\n if (source) {\n updateSource(source, props, propsRef.current);\n } else {\n source = createSource(map, id, props);\n }\n\n propsRef.current = props;\n return source && React.Children.map(props.children, function (child) {\n return child && cloneElement(child, {\n source: id\n });\n }) || null;\n}\n\nexport default Source;","import _slicedToArray from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _defineProperty from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\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; }\n\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; }\n\nimport { useContext, useEffect, useMemo, useState, useRef } from 'react';\nimport { MapContext } from './map';\nimport assert from '../utils/assert';\nimport { deepEqual } from '../utils/deep-equal';\n/* eslint-disable complexity, max-statements */\n\nfunction updateLayer(map, id, props, prevProps) {\n assert(props.id === prevProps.id, 'layer id changed');\n assert(props.type === prevProps.type, 'layer type changed');\n\n if (props.type === 'custom' || prevProps.type === 'custom') {\n return;\n }\n\n var _props$layout = props.layout,\n layout = _props$layout === void 0 ? {} : _props$layout,\n _props$paint = props.paint,\n paint = _props$paint === void 0 ? {} : _props$paint,\n filter = props.filter,\n minzoom = props.minzoom,\n maxzoom = props.maxzoom,\n beforeId = props.beforeId;\n\n if (beforeId !== prevProps.beforeId) {\n map.moveLayer(id, beforeId);\n }\n\n if (layout !== prevProps.layout) {\n var prevLayout = prevProps.layout || {};\n\n for (var key in layout) {\n if (!deepEqual(layout[key], prevLayout[key])) {\n map.setLayoutProperty(id, key, layout[key]);\n }\n }\n\n for (var _key in prevLayout) {\n if (!layout.hasOwnProperty(_key)) {\n map.setLayoutProperty(id, _key, undefined);\n }\n }\n }\n\n if (paint !== prevProps.paint) {\n var prevPaint = prevProps.paint || {};\n\n for (var _key2 in paint) {\n if (!deepEqual(paint[_key2], prevPaint[_key2])) {\n map.setPaintProperty(id, _key2, paint[_key2]);\n }\n }\n\n for (var _key3 in prevPaint) {\n if (!paint.hasOwnProperty(_key3)) {\n map.setPaintProperty(id, _key3, undefined);\n }\n }\n }\n\n if (!deepEqual(filter, prevProps.filter)) {\n map.setFilter(id, filter);\n }\n\n if (minzoom !== prevProps.minzoom || maxzoom !== prevProps.maxzoom) {\n map.setLayerZoomRange(id, minzoom, maxzoom);\n }\n}\n\nfunction createLayer(map, id, props) {\n // @ts-ignore\n if (map.style && map.style._loaded && map.getSource(props.source)) {\n var options = _objectSpread(_objectSpread({}, props), {}, {\n id: id\n });\n\n delete options.beforeId; // @ts-ignore\n\n map.addLayer(options, props.beforeId);\n }\n}\n/* eslint-enable complexity, max-statements */\n\n\nvar layerCounter = 0;\n\nfunction Layer(props) {\n var _useContext = useContext(MapContext),\n map = _useContext.map;\n\n var propsRef = useRef(props);\n\n var _useState = useState(0),\n _useState2 = _slicedToArray(_useState, 2),\n setStyleLoaded = _useState2[1];\n\n var id = useMemo(function () {\n return props.id || \"jsx-layer-\".concat(layerCounter++);\n }, []);\n useEffect(function () {\n if (map) {\n var forceUpdate = function forceUpdate() {\n return setStyleLoaded(function (version) {\n return version + 1;\n });\n };\n\n map.on('styledata', forceUpdate);\n forceUpdate();\n return function () {\n map.off('styledata', forceUpdate); // @ts-ignore\n\n if (map.style && map.style._loaded) {\n map.removeLayer(id);\n }\n };\n }\n\n return undefined;\n }, [map]); // @ts-ignore\n\n var layer = map && map.style && map.getLayer(id);\n\n if (layer) {\n try {\n updateLayer(map, id, props, propsRef.current);\n } catch (error) {\n console.warn(error); // eslint-disable-line\n }\n } else {\n createLayer(map, id, props);\n } // Store last rendered props\n\n\n propsRef.current = props;\n return null;\n}\n\nexport default Layer;","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg) : false;\n var element, elementLen;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n elementLen = lengthOfArrayLike(element);\n targetIndex = flattenIntoArray(target, original, element, elementLen, targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = lengthOfArrayLike(O);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toIntegerOrInfinity(depthArg));\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import React from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { isValidElementType } from 'react-is';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\n/* eslint-disable import/prefer-default-export */\n\nfunction invariant(condition, message) {\n if (condition) return;\n var error = new Error(\"loadable: \" + message);\n error.framesToPop = 1;\n error.name = 'Invariant Violation';\n throw error;\n}\n\nfunction warn(message) {\n // eslint-disable-next-line no-console\n console.warn(\"loadable: \" + message);\n}\n\nvar Context = /*#__PURE__*/React.createContext();\nvar LOADABLE_REQUIRED_CHUNKS_KEY = '__LOADABLE_REQUIRED_CHUNKS__';\n\nfunction getRequiredChunkKey(namespace) {\n return \"\" + namespace + LOADABLE_REQUIRED_CHUNKS_KEY;\n}\n\nvar sharedInternals = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getRequiredChunkKey: getRequiredChunkKey,\n invariant: invariant,\n Context: Context\n});\nvar LOADABLE_SHARED = {\n initialChunks: {}\n};\nvar STATUS_PENDING = 'PENDING';\nvar STATUS_RESOLVED = 'RESOLVED';\nvar STATUS_REJECTED = 'REJECTED';\n\nfunction resolveConstructor(ctor) {\n if (typeof ctor === 'function') {\n return {\n requireAsync: ctor,\n resolve: function resolve() {\n return undefined;\n },\n chunkName: function chunkName() {\n return undefined;\n }\n };\n }\n\n return ctor;\n}\n\nvar withChunkExtractor = function withChunkExtractor(Component) {\n var LoadableWithChunkExtractor = function LoadableWithChunkExtractor(props) {\n return React.createElement(Context.Consumer, null, function (extractor) {\n return React.createElement(Component, Object.assign({\n __chunkExtractor: extractor\n }, props));\n });\n };\n\n if (Component.displayName) {\n LoadableWithChunkExtractor.displayName = Component.displayName + \"WithChunkExtractor\";\n }\n\n return LoadableWithChunkExtractor;\n};\n\nvar identity = function identity(v) {\n return v;\n};\n\nfunction createLoadable(_ref) {\n var _ref$defaultResolveCo = _ref.defaultResolveComponent,\n defaultResolveComponent = _ref$defaultResolveCo === void 0 ? identity : _ref$defaultResolveCo,\n _render = _ref.render,\n onLoad = _ref.onLoad;\n\n function loadable(loadableConstructor, options) {\n if (options === void 0) {\n options = {};\n }\n\n var ctor = resolveConstructor(loadableConstructor);\n var cache = {};\n /**\n * Cachekey represents the component to be loaded\n * if key changes - component has to be reloaded\n * @param props\n * @returns {null|Component}\n */\n\n function _getCacheKey(props) {\n if (options.cacheKey) {\n return options.cacheKey(props);\n }\n\n if (ctor.resolve) {\n return ctor.resolve(props);\n }\n\n return 'static';\n }\n /**\n * Resolves loaded `module` to a specific `Component\n * @param module\n * @param props\n * @param Loadable\n * @returns Component\n */\n\n\n function resolve(module, props, Loadable) {\n var Component = options.resolveComponent ? options.resolveComponent(module, props) : defaultResolveComponent(module);\n\n if (options.resolveComponent && !isValidElementType(Component)) {\n throw new Error(\"resolveComponent returned something that is not a React component!\");\n }\n\n hoistNonReactStatics(Loadable, Component, {\n preload: true\n });\n return Component;\n }\n\n var cachedLoad = function cachedLoad(props) {\n var cacheKey = _getCacheKey(props);\n\n var promise = cache[cacheKey];\n\n if (!promise || promise.status === STATUS_REJECTED) {\n promise = ctor.requireAsync(props);\n promise.status = STATUS_PENDING;\n cache[cacheKey] = promise;\n promise.then(function () {\n promise.status = STATUS_RESOLVED;\n }, function (error) {\n console.error('loadable-components: failed to asynchronously load component', {\n fileName: ctor.resolve(props),\n chunkName: ctor.chunkName(props),\n error: error ? error.message : error\n });\n promise.status = STATUS_REJECTED;\n });\n }\n\n return promise;\n };\n\n var InnerLoadable = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerLoadable, _React$Component);\n\n InnerLoadable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n var cacheKey = _getCacheKey(props);\n\n return _extends({}, state, {\n cacheKey: cacheKey,\n // change of a key triggers loading state automatically\n loading: state.loading || state.cacheKey !== cacheKey\n });\n };\n\n function InnerLoadable(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n result: null,\n error: null,\n loading: true,\n cacheKey: _getCacheKey(props)\n };\n invariant(!props.__chunkExtractor || ctor.requireSync, 'SSR requires `@loadable/babel-plugin`, please install it'); // Server-side\n\n if (props.__chunkExtractor) {\n // This module has been marked with no SSR\n if (options.ssr === false) {\n return _assertThisInitialized(_this);\n } // We run load function, we assume that it won't fail and that it\n // triggers a synchronous loading of the module\n\n\n ctor.requireAsync(props)[\"catch\"](function () {\n return null;\n }); // So we can require now the module synchronously\n\n _this.loadSync();\n\n props.__chunkExtractor.addChunk(ctor.chunkName(props));\n\n return _assertThisInitialized(_this);\n } // Client-side with `isReady` method present (SSR probably)\n // If module is already loaded, we use a synchronous loading\n // Only perform this synchronous loading if the component has not\n // been marked with no SSR, else we risk hydration mismatches\n\n\n if (options.ssr !== false && ( // is ready - was loaded in this session\n ctor.isReady && ctor.isReady(props) || // is ready - was loaded during SSR process\n ctor.chunkName && LOADABLE_SHARED.initialChunks[ctor.chunkName(props)])) {\n _this.loadSync();\n }\n\n return _this;\n }\n\n var _proto = InnerLoadable.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true; // retrieve loading promise from a global cache\n\n var cachedPromise = this.getCache(); // if promise exists, but rejected - clear cache\n\n if (cachedPromise && cachedPromise.status === STATUS_REJECTED) {\n this.setCache();\n } // component might be resolved synchronously in the constructor\n\n\n if (this.state.loading) {\n this.loadAsync();\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Component has to be reloaded on cacheKey change\n if (prevState.cacheKey !== this.state.cacheKey) {\n this.loadAsync();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n if (this.mounted) {\n this.setState(nextState, callback);\n }\n }\n /**\n * returns a cache key for the current props\n * @returns {Component|string}\n */\n ;\n\n _proto.getCacheKey = function getCacheKey() {\n return _getCacheKey(this.props);\n }\n /**\n * access the persistent cache\n */\n ;\n\n _proto.getCache = function getCache() {\n return cache[this.getCacheKey()];\n }\n /**\n * sets the cache value. If called without value sets it as undefined\n */\n ;\n\n _proto.setCache = function setCache(value) {\n if (value === void 0) {\n value = undefined;\n }\n\n cache[this.getCacheKey()] = value;\n };\n\n _proto.triggerOnLoad = function triggerOnLoad() {\n var _this2 = this;\n\n if (onLoad) {\n setTimeout(function () {\n onLoad(_this2.state.result, _this2.props);\n });\n }\n }\n /**\n * Synchronously loads component\n * target module is expected to already exists in the module cache\n * or be capable to resolve synchronously (webpack target=node)\n */\n ;\n\n _proto.loadSync = function loadSync() {\n // load sync is expecting component to be in the \"loading\" state already\n // sounds weird, but loading=true is the initial state of InnerLoadable\n if (!this.state.loading) return;\n\n try {\n var loadedModule = ctor.requireSync(this.props);\n var result = resolve(loadedModule, this.props, Loadable);\n this.state.result = result;\n this.state.loading = false;\n } catch (error) {\n console.error('loadable-components: failed to synchronously load component, which expected to be available', {\n fileName: ctor.resolve(this.props),\n chunkName: ctor.chunkName(this.props),\n error: error ? error.message : error\n });\n this.state.error = error;\n }\n }\n /**\n * Asynchronously loads a component.\n */\n ;\n\n _proto.loadAsync = function loadAsync() {\n var _this3 = this;\n\n var promise = this.resolveAsync();\n promise.then(function (loadedModule) {\n var result = resolve(loadedModule, _this3.props, Loadable);\n\n _this3.safeSetState({\n result: result,\n loading: false\n }, function () {\n return _this3.triggerOnLoad();\n });\n })[\"catch\"](function (error) {\n return _this3.safeSetState({\n error: error,\n loading: false\n });\n });\n return promise;\n }\n /**\n * Asynchronously resolves(not loads) a component.\n * Note - this function does not change the state\n */\n ;\n\n _proto.resolveAsync = function resolveAsync() {\n var _this$props = this.props,\n __chunkExtractor = _this$props.__chunkExtractor,\n forwardedRef = _this$props.forwardedRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"__chunkExtractor\", \"forwardedRef\"]);\n\n return cachedLoad(props);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n forwardedRef = _this$props2.forwardedRef,\n propFallback = _this$props2.fallback,\n __chunkExtractor = _this$props2.__chunkExtractor,\n props = _objectWithoutPropertiesLoose(_this$props2, [\"forwardedRef\", \"fallback\", \"__chunkExtractor\"]);\n\n var _this$state = this.state,\n error = _this$state.error,\n loading = _this$state.loading,\n result = _this$state.result;\n\n if (options.suspense) {\n var cachedPromise = this.getCache() || this.loadAsync();\n\n if (cachedPromise.status === STATUS_PENDING) {\n throw this.loadAsync();\n }\n }\n\n if (error) {\n throw error;\n }\n\n var fallback = propFallback || options.fallback || null;\n\n if (loading) {\n return fallback;\n }\n\n return _render({\n fallback: fallback,\n result: result,\n options: options,\n props: _extends({}, props, {\n ref: forwardedRef\n })\n });\n };\n\n return InnerLoadable;\n }(React.Component);\n\n var EnhancedInnerLoadable = withChunkExtractor(InnerLoadable);\n var Loadable = React.forwardRef(function (props, ref) {\n return React.createElement(EnhancedInnerLoadable, Object.assign({\n forwardedRef: ref\n }, props));\n });\n Loadable.displayName = 'Loadable'; // In future, preload could use ``\n\n Loadable.preload = function (props) {\n Loadable.load(props);\n };\n\n Loadable.load = function (props) {\n return cachedLoad(props);\n };\n\n return Loadable;\n }\n\n function lazy(ctor, options) {\n return loadable(ctor, _extends({}, options, {\n suspense: true\n }));\n }\n\n return {\n loadable: loadable,\n lazy: lazy\n };\n}\n\nfunction defaultResolveComponent(loadedModule) {\n // eslint-disable-next-line no-underscore-dangle\n return loadedModule.__esModule ? loadedModule[\"default\"] : loadedModule[\"default\"] || loadedModule;\n}\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\n\nvar _createLoadable = /*#__PURE__*/createLoadable({\n defaultResolveComponent: defaultResolveComponent,\n render: function render(_ref) {\n var Component = _ref.result,\n props = _ref.props;\n return React.createElement(Component, props);\n }\n}),\n loadable = _createLoadable.loadable,\n lazy = _createLoadable.lazy;\n/* eslint-disable no-use-before-define, react/no-multi-comp */\n\n\nvar _createLoadable$1 = /*#__PURE__*/createLoadable({\n onLoad: function onLoad(result, props) {\n if (result && props.forwardedRef) {\n if (typeof props.forwardedRef === 'function') {\n props.forwardedRef(result);\n } else {\n props.forwardedRef.current = result;\n }\n }\n },\n render: function render(_ref) {\n var result = _ref.result,\n props = _ref.props;\n\n if (props.children) {\n return props.children(result);\n }\n\n return null;\n }\n}),\n loadable$1 = _createLoadable$1.loadable,\n lazy$1 = _createLoadable$1.lazy;\n/* eslint-disable no-underscore-dangle, camelcase */\n\n\nvar BROWSER = typeof window !== 'undefined';\n\nfunction loadableReady(done, _temp) {\n if (done === void 0) {\n done = function done() {};\n }\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$namespace = _ref.namespace,\n namespace = _ref$namespace === void 0 ? '' : _ref$namespace,\n _ref$chunkLoadingGlob = _ref.chunkLoadingGlobal,\n chunkLoadingGlobal = _ref$chunkLoadingGlob === void 0 ? '__LOADABLE_LOADED_CHUNKS__' : _ref$chunkLoadingGlob;\n\n if (!BROWSER) {\n warn('`loadableReady()` must be called in browser only');\n done();\n return Promise.resolve();\n }\n\n var requiredChunks = null;\n\n if (BROWSER) {\n var id = getRequiredChunkKey(namespace);\n var dataElement = document.getElementById(id);\n\n if (dataElement) {\n requiredChunks = JSON.parse(dataElement.textContent);\n var extElement = document.getElementById(id + \"_ext\");\n\n if (extElement) {\n var _JSON$parse = JSON.parse(extElement.textContent),\n namedChunks = _JSON$parse.namedChunks;\n\n namedChunks.forEach(function (chunkName) {\n LOADABLE_SHARED.initialChunks[chunkName] = true;\n });\n } else {\n // version mismatch\n throw new Error('loadable-component: @loadable/server does not match @loadable/component');\n }\n }\n }\n\n if (!requiredChunks) {\n warn('`loadableReady()` requires state, please use `getScriptTags` or `getScriptElements` server-side');\n done();\n return Promise.resolve();\n }\n\n var resolved = false;\n return new Promise(function (resolve) {\n window[chunkLoadingGlobal] = window[chunkLoadingGlobal] || [];\n var loadedChunks = window[chunkLoadingGlobal];\n var originalPush = loadedChunks.push.bind(loadedChunks);\n\n function checkReadyState() {\n if (requiredChunks.every(function (chunk) {\n return loadedChunks.some(function (_ref2) {\n var chunks = _ref2[0];\n return chunks.indexOf(chunk) > -1;\n });\n })) {\n if (!resolved) {\n resolved = true;\n resolve();\n }\n }\n }\n\n loadedChunks.push = function () {\n originalPush.apply(void 0, arguments);\n checkReadyState();\n };\n\n checkReadyState();\n }).then(done);\n}\n/* eslint-disable no-underscore-dangle */\n\n\nvar loadable$2 = loadable;\nloadable$2.lib = loadable$1;\nvar lazy$2 = lazy;\nlazy$2.lib = lazy$1;\nvar __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = sharedInternals;\nexport default loadable$2;\nexport { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, lazy$2 as lazy, loadableReady };","import { useEffect, useLayoutEffect, createContext, useContext, useState, createElement, useRef, useCallback, useDebugValue } from 'react';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\n\nvar noop = function noop() {}; // Using noop() as the undefined value as undefined can possibly be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\n\n\nvar UNDEFINED =\n/*#__NOINLINE__*/\nnoop();\nvar OBJECT = Object;\n\nvar isUndefined = function isUndefined(v) {\n return v === UNDEFINED;\n};\n\nvar isFunction = function isFunction(v) {\n return typeof v == 'function';\n};\n\nvar mergeObjects = function mergeObjects(a, b) {\n return OBJECT.assign({}, a, b);\n};\n\nvar STR_UNDEFINED = 'undefined'; // NOTE: Use function to guarantee it's re-evaluated between jsdom and node runtime for tests.\n\nvar hasWindow = function hasWindow() {\n return typeof window != STR_UNDEFINED;\n};\n\nvar hasDocument = function hasDocument() {\n return typeof document != STR_UNDEFINED;\n};\n\nvar hasRequestAnimationFrame = function hasRequestAnimationFrame() {\n return hasWindow() && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\n}; // use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\n\n\nvar table = new WeakMap(); // counter of the key\n\nvar counter = 0; // A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsible.\n\nvar stableHash = function stableHash(arg) {\n var type = typeof arg;\n var constructor = arg && arg.constructor;\n var isDate = constructor == Date;\n var result;\n var index;\n\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result) return result; // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n\n result = ++counter + '~';\n table.set(arg, result);\n\n if (constructor == Array) {\n // Array.\n result = '@';\n\n for (index = 0; index < arg.length; index++) {\n result += stableHash(arg[index]) + ',';\n }\n\n table.set(arg, result);\n }\n\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n var keys = OBJECT.keys(arg).sort();\n\n while (!isUndefined(index = keys.pop())) {\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n\n table.set(arg, result);\n }\n } else {\n result = isDate ? arg.toJSON() : type == 'symbol' ? arg.toString() : type == 'string' ? JSON.stringify(arg) : '' + arg;\n }\n\n return result;\n};\n/**\n * Due to bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a work around, we always assume it's online on first load, and change\n * the status upon `online` or `offline` events.\n */\n\n\nvar online = true;\n\nvar isOnline = function isOnline() {\n return online;\n};\n\nvar hasWin = hasWindow();\nvar hasDoc = hasDocument(); // For node and React Native, `add/removeEventListener` doesn't exist on window.\n\nvar onWindowEvent = hasWin && window.addEventListener ? window.addEventListener.bind(window) : noop;\nvar onDocumentEvent = hasDoc ? document.addEventListener.bind(document) : noop;\nvar offWindowEvent = hasWin && window.removeEventListener ? window.removeEventListener.bind(window) : noop;\nvar offDocumentEvent = hasDoc ? document.removeEventListener.bind(document) : noop;\n\nvar isVisible = function isVisible() {\n var visibilityState = hasDoc && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\n\nvar initFocus = function initFocus(callback) {\n // focus revalidate\n onDocumentEvent('visibilitychange', callback);\n onWindowEvent('focus', callback);\n return function () {\n offDocumentEvent('visibilitychange', callback);\n offWindowEvent('focus', callback);\n };\n};\n\nvar initReconnect = function initReconnect(callback) {\n // revalidate on reconnected\n var onOnline = function onOnline() {\n online = true;\n callback();\n }; // nothing to revalidate, just update the status\n\n\n var onOffline = function onOffline() {\n online = false;\n };\n\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return function () {\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\n\nvar preset = {\n isOnline: isOnline,\n isVisible: isVisible\n};\nvar defaultConfigOptions = {\n initFocus: initFocus,\n initReconnect: initReconnect\n};\nvar IS_SERVER = !hasWindow() || 'Deno' in window; // Polyfill requestAnimationFrame\n\nvar rAF = function rAF(f) {\n return hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n}; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\n\n\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect; // This assignment is to extend the Navigator type to use effectiveType.\n\nvar navigatorConnection = typeof navigator !== 'undefined' && navigator.connection; // Adjust the config based on slow connection status (<= 70Kbps).\n\nvar slowConnection = !IS_SERVER && navigatorConnection && (['slow-2g', '2g'].includes(navigatorConnection.effectiveType) || navigatorConnection.saveData);\n\nvar serialize = function serialize(key) {\n if (isFunction(key)) {\n try {\n key = key();\n } catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n\n var args = [].concat(key); // If key is not falsy, or not an empty array, hash it.\n\n key = typeof key == 'string' ? key : (Array.isArray(key) ? key.length : key) ? stableHash(key) : '';\n var infoKey = key ? '$swr$' + key : '';\n return [key, args, infoKey];\n}; // Global state used to deduplicate requests and store listeners\n\n\nvar SWRGlobalState = new WeakMap();\nvar FOCUS_EVENT = 0;\nvar RECONNECT_EVENT = 1;\nvar MUTATE_EVENT = 2;\n\nvar broadcastState = function broadcastState(cache, key, data, error, isValidating, revalidate, broadcast) {\n if (broadcast === void 0) {\n broadcast = true;\n }\n\n var _a = SWRGlobalState.get(cache),\n EVENT_REVALIDATORS = _a[0],\n STATE_UPDATERS = _a[1],\n FETCH = _a[3];\n\n var revalidators = EVENT_REVALIDATORS[key];\n var updaters = STATE_UPDATERS[key]; // Cache was populated, update states of all hooks.\n\n if (broadcast && updaters) {\n for (var i = 0; i < updaters.length; ++i) {\n updaters[i](data, error, isValidating);\n }\n } // If we also need to revalidate, only do it for the first hook.\n\n\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(function () {\n return cache.get(key);\n });\n }\n }\n\n return cache.get(key);\n}; // Global timestamp.\n\n\nvar __timestamp = 0;\n\nvar getTimestamp = function getTimestamp() {\n return ++__timestamp;\n};\n\nvar internalMutate = function internalMutate() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return __awaiter(void 0, void 0, void 0, function () {\n var cache, _key, _data, _opts, options, populateCache, revalidate, rollbackOnError, optimisticData, _a, key, keyInfo, _b, MUTATION, data, error, beforeMutationTs, hasOptimisticData, rollbackData, res;\n\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n cache = args[0], _key = args[1], _data = args[2], _opts = args[3];\n options = typeof _opts === 'boolean' ? {\n revalidate: _opts\n } : _opts || {};\n populateCache = options.populateCache !== false;\n revalidate = options.revalidate !== false;\n rollbackOnError = options.rollbackOnError !== false;\n optimisticData = options.optimisticData;\n _a = serialize(_key), key = _a[0], keyInfo = _a[2];\n if (!key) return [2\n /*return*/\n ];\n _b = SWRGlobalState.get(cache), MUTATION = _b[2]; // If there is no new data provided, revalidate the key with current state.\n\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return [2\n /*return*/\n , broadcastState(cache, key, cache.get(key), UNDEFINED, UNDEFINED, revalidate, populateCache)];\n }\n\n data = _data;\n beforeMutationTs = getTimestamp();\n MUTATION[key] = [beforeMutationTs, 0];\n hasOptimisticData = !isUndefined(optimisticData);\n rollbackData = cache.get(key); // Do optimistic data update.\n\n if (hasOptimisticData) {\n cache.set(key, optimisticData);\n broadcastState(cache, key, optimisticData);\n }\n\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(cache.get(key));\n } catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n\n if (!(data && isFunction(data.then))) return [3\n /*break*/\n , 2];\n return [4\n /*yield*/\n , data.catch(function (err) {\n error = err;\n }) // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n ];\n\n case 1:\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = _c.sent(); // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error) throw error;\n return [2\n /*return*/\n , data];\n } else if (error && hasOptimisticData && rollbackOnError) {\n // Rollback. Always populate the cache in this case.\n populateCache = true;\n data = rollbackData;\n cache.set(key, rollbackData);\n }\n\n _c.label = 2;\n\n case 2:\n if (populateCache) {\n if (!error) {\n // Only update cached data if there's no error. Data can be `undefined` here.\n cache.set(key, data);\n } // Always update or reset the error.\n\n\n cache.set(keyInfo, mergeObjects(cache.get(keyInfo), {\n error: error\n }));\n } // Reset the timestamp to mark the mutation has ended.\n\n\n MUTATION[key][1] = getTimestamp();\n return [4\n /*yield*/\n , broadcastState(cache, key, data, error, UNDEFINED, revalidate, populateCache) // Throw error or return data\n ];\n\n case 3:\n res = _c.sent(); // Throw error or return data\n\n if (error) throw error;\n return [2\n /*return*/\n , populateCache ? res : data];\n }\n });\n });\n};\n\nvar revalidateAllKeys = function revalidateAllKeys(revalidators, type) {\n for (var key in revalidators) {\n if (revalidators[key][0]) revalidators[key][0](type);\n }\n};\n\nvar initCache = function initCache(provider, options) {\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that bound to\n // the cache.\n // Provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n var opts = mergeObjects(defaultConfigOptions, options); // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n\n var EVENT_REVALIDATORS = {};\n var mutate = internalMutate.bind(UNDEFINED, provider);\n var unmount = noop; // Update the state if it's new, or the provider has been extended.\n\n SWRGlobalState.set(provider, [EVENT_REVALIDATORS, {}, {}, {}, mutate]); // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can possibly be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n var releaseFocus_1 = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n var releaseReconnect_1 = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n\n unmount = function unmount() {\n releaseFocus_1 && releaseFocus_1();\n releaseReconnect_1 && releaseReconnect_1(); // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise when re-mounting we\n // will not re-register those event listeners.\n\n SWRGlobalState.delete(provider);\n };\n } // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n\n\n return [provider, mutate, unmount];\n }\n\n return [provider, SWRGlobalState.get(provider)[4]];\n}; // error retry\n\n\nvar onErrorRetry = function onErrorRetry(_, __, config, revalidate, opts) {\n var maxRetryCount = config.errorRetryCount;\n var currentRetryCount = opts.retryCount; // Exponential backoff\n\n var timeout = ~~((Math.random() + 0.5) * (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n\n setTimeout(revalidate, timeout, opts);\n}; // Default cache provider\n\n\nvar _a = initCache(new Map()),\n cache = _a[0],\n mutate = _a[1]; // Default config\n\n\nvar defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry: onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare: function compare(currentData, newData) {\n return stableHash(currentData) == stableHash(newData);\n },\n isPaused: function isPaused() {\n return false;\n },\n cache: cache,\n mutate: mutate,\n fallback: {}\n}, // use web preset by default\npreset);\n\nvar mergeConfigs = function mergeConfigs(a, b) {\n // Need to create a new object to avoid mutating the original here.\n var v = mergeObjects(a, b); // If two configs are provided, merge their `use` and `fallback` options.\n\n if (b) {\n var u1 = a.use,\n f1 = a.fallback;\n var u2 = b.use,\n f2 = b.fallback;\n\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n\n return v;\n};\n\nvar SWRConfigContext = createContext({});\n\nvar SWRConfig$1 = function SWRConfig$1(props) {\n var value = props.value; // Extend parent context values and middleware.\n\n var extendedConfig = mergeConfigs(useContext(SWRConfigContext), value); // Should not use the inherited provider.\n\n var provider = value && value.provider; // Use a lazy initialized state to create the cache on first access.\n\n var cacheContext = useState(function () {\n return provider ? initCache(provider(extendedConfig.cache || cache), value) : UNDEFINED;\n })[0]; // Override the cache if a new provider is given.\n\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n } // Unsubscribe events.\n\n\n useIsomorphicLayoutEffect(function () {\n return cacheContext ? cacheContext[2] : UNDEFINED;\n }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n/**\n * An implementation of state with dependency-tracking.\n */\n\n\nvar useStateWithDeps = function useStateWithDeps(state, unmountedRef) {\n var rerender = useState({})[1];\n var stateRef = useRef(state); // If a state property (data, error or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n\n var stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */\n\n var setState = useCallback(function (payload) {\n var shouldRerender = false;\n var currentState = stateRef.current;\n\n for (var _ in payload) {\n var k = _; // If the property has changed, update the state and mark rerender as\n // needed.\n\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k]; // If the property is accessed by the component, a rerender should be\n // triggered.\n\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, // config.suspense isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []); // Always update the state reference.\n\n useIsomorphicLayoutEffect(function () {\n stateRef.current = state;\n });\n return [stateRef, stateDependenciesRef.current, setState];\n};\n\nvar normalize = function normalize(args) {\n return isFunction(args[1]) ? [args[0], args[1], args[2] || {}] : [args[0], null, (args[1] === null ? args[2] : args[1]) || {}];\n};\n\nvar useSWRConfig = function useSWRConfig() {\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n}; // It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\n\n\nvar withArgs = function withArgs(hook) {\n return function useSWRArgs() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n } // Get the default and inherited configuration.\n\n\n var fallbackConfig = useSWRConfig(); // Normalize arguments.\n\n var _a = normalize(args),\n key = _a[0],\n fn = _a[1],\n _config = _a[2]; // Merge configurations.\n\n\n var config = mergeConfigs(fallbackConfig, _config); // Apply middleware\n\n var next = hook;\n var use = config.use;\n\n if (use) {\n for (var i = use.length; i-- > 0;) {\n next = use[i](next);\n }\n }\n\n return next(key, fn || config.fetcher, config);\n };\n}; // Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\n\n\nvar subscribeCallback = function subscribeCallback(key, callbacks, callback) {\n var keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return function () {\n var index = keyedRevalidators.indexOf(callback);\n\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\nvar WITH_DEDUPE = {\n dedupe: true\n};\n\nvar useSWRHandler = function useSWRHandler(_key, fetcher, config) {\n var cache = config.cache,\n compare = config.compare,\n fallbackData = config.fallbackData,\n suspense = config.suspense,\n revalidateOnMount = config.revalidateOnMount,\n refreshInterval = config.refreshInterval,\n refreshWhenHidden = config.refreshWhenHidden,\n refreshWhenOffline = config.refreshWhenOffline;\n\n var _a = SWRGlobalState.get(cache),\n EVENT_REVALIDATORS = _a[0],\n STATE_UPDATERS = _a[1],\n MUTATION = _a[2],\n FETCH = _a[3]; // `key` is the identifier of the SWR `data` state, `keyInfo` holds extra\n // states such as `error` and `isValidating` inside,\n // all of them are derived from `_key`.\n // `fnArgs` is an array of arguments parsed from the key, which will be passed\n // to the fetcher.\n\n\n var _b = serialize(_key),\n key = _b[0],\n fnArgs = _b[1],\n keyInfo = _b[2]; // If it's the initial render of this hook.\n\n\n var initialMountedRef = useRef(false); // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n\n var unmountedRef = useRef(false); // Refs to keep the key and config.\n\n var keyRef = useRef(key);\n var fetcherRef = useRef(fetcher);\n var configRef = useRef(config);\n\n var getConfig = function getConfig() {\n return configRef.current;\n };\n\n var isActive = function isActive() {\n return getConfig().isVisible() && getConfig().isOnline();\n };\n\n var patchFetchInfo = function patchFetchInfo(info) {\n return cache.set(keyInfo, mergeObjects(cache.get(keyInfo), info));\n }; // Get the current state that SWR should return.\n\n\n var cached = cache.get(key);\n var fallback = isUndefined(fallbackData) ? config.fallback[key] : fallbackData;\n var data = isUndefined(cached) ? fallback : cached;\n var info = cache.get(keyInfo) || {};\n var error = info.error; // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n\n var shouldRevalidateOnMount = function shouldRevalidateOnMount() {\n // If `revalidateOnMount` is set, we take the value directly.\n if (!isUndefined(revalidateOnMount)) return revalidateOnMount; // If it's paused, we skip revalidation.\n\n if (getConfig().isPaused()) return false;\n return suspense ? // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately on mount again.\n !isUndefined(data) : // If there is no stale data, we need to revalidate on mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n isUndefined(data) || config.revalidateIfStale;\n }; // Resolve the current validating state.\n\n\n var resolveValidating = function resolveValidating() {\n if (!key || !fetcher) return false;\n if (info.isValidating) return true; // If it's not mounted yet and it should revalidate on mount, revalidate.\n\n return !initialMountedRef.current && shouldRevalidateOnMount();\n };\n\n var isValidating = resolveValidating();\n\n var _c = useStateWithDeps({\n data: data,\n error: error,\n isValidating: isValidating\n }, unmountedRef),\n stateRef = _c[0],\n stateDependencies = _c[1],\n setState = _c[2]; // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n\n\n var revalidate = useCallback(function (revalidateOpts) {\n return __awaiter(void 0, void 0, void 0, function () {\n var currentFetcher, newData, startAt, loading, opts, shouldStartNewRequest, isCurrentKeyMounted, cleanupState, newState, finishRequestAndUpdateState, mutationInfo, err_1;\n\n var _a;\n\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n currentFetcher = fetcherRef.current;\n\n if (!key || !currentFetcher || unmountedRef.current || getConfig().isPaused()) {\n return [2\n /*return*/\n , false];\n }\n\n loading = true;\n opts = revalidateOpts || {};\n shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n\n isCurrentKeyMounted = function isCurrentKeyMounted() {\n return !unmountedRef.current && key === keyRef.current && initialMountedRef.current;\n };\n\n cleanupState = function cleanupState() {\n // Check if it's still the same request before deleting.\n var requestInfo = FETCH[key];\n\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n\n newState = {\n isValidating: false\n };\n\n finishRequestAndUpdateState = function finishRequestAndUpdateState() {\n patchFetchInfo({\n isValidating: false\n }); // We can only set state if it's safe (still mounted with the same key).\n\n if (isCurrentKeyMounted()) {\n setState(newState);\n }\n }; // Start fetching. Change the `isValidating` state, update the cache.\n\n\n patchFetchInfo({\n isValidating: true\n });\n setState({\n isValidating: true\n });\n _b.label = 1;\n\n case 1:\n _b.trys.push([1, 3,, 4]);\n\n if (shouldStartNewRequest) {\n // Tell all other hooks to change the `isValidating` state.\n broadcastState(cache, key, stateRef.current.data, stateRef.current.error, true); // If no cache being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n\n if (config.loadingTimeout && !cache.get(key)) {\n setTimeout(function () {\n if (loading && isCurrentKeyMounted()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n } // Start the request and save the timestamp.\n\n\n FETCH[key] = [currentFetcher.apply(void 0, fnArgs), getTimestamp()];\n }\n\n _a = FETCH[key], newData = _a[0], startAt = _a[1];\n return [4\n /*yield*/\n , newData];\n\n case 2:\n newData = _b.sent();\n\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n } // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n\n\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n\n return [2\n /*return*/\n , false];\n } // Clear error.\n\n\n patchFetchInfo({\n error: UNDEFINED\n });\n newState.error = UNDEFINED;\n mutationInfo = MUTATION[key];\n\n if (!isUndefined(mutationInfo) && ( // case 1\n startAt <= mutationInfo[0] || // case 2\n startAt <= mutationInfo[1] || // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n\n return [2\n /*return*/\n , false];\n } // Deep compare with latest state to avoid extra re-renders.\n // For local state, compare and assign.\n\n\n if (!compare(stateRef.current.data, newData)) {\n newState.data = newData;\n } else {\n // data and newData are deeply equal\n // it should be safe to broadcast the stale data\n newState.data = stateRef.current.data; // At the end of this function, `brocastState` invokes the `onStateUpdate` function,\n // which takes care of avoiding the re-render\n } // For global state, it's possible that the key has changed.\n // https://github.com/vercel/swr/pull/1058\n\n\n if (!compare(cache.get(key), newData)) {\n cache.set(key, newData);\n } // Trigger the successful callback if it's the original request.\n\n\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n\n return [3\n /*break*/\n , 4];\n\n case 3:\n err_1 = _b.sent();\n cleanupState(); // Not paused, we continue handling the error. Otherwise discard it.\n\n if (!getConfig().isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n patchFetchInfo({\n error: err_1\n });\n newState.error = err_1; // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n\n if (shouldStartNewRequest && isCurrentKeyMounted()) {\n getConfig().onError(err_1, key, config);\n\n if (typeof config.shouldRetryOnError === 'boolean' && config.shouldRetryOnError || isFunction(config.shouldRetryOnError) && config.shouldRetryOnError(err_1)) {\n // When retrying, dedupe is always enabled\n if (isActive()) {\n // If it's active, stop. It will auto revalidate when refocusing\n // or reconnecting.\n getConfig().onErrorRetry(err_1, key, config, revalidate, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n\n return [3\n /*break*/\n , 4];\n\n case 4:\n // Mark loading as stopped.\n loading = false; // Update the current hook's state.\n\n finishRequestAndUpdateState(); // Here is the source of the request, need to tell all other hooks to\n // update their states.\n\n if (isCurrentKeyMounted() && shouldStartNewRequest) {\n broadcastState(cache, key, newState.data, newState.error, false);\n }\n\n return [2\n /*return*/\n , true];\n }\n });\n });\n }, // `setState` is immutable, and `eventsCallback`, `fnArgs`, `keyInfo`,\n // and `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [key]); // Similar to the global mutate, but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n var boundMutate = useCallback( // By using `bind` we don't need to modify the size of the rest arguments.\n internalMutate.bind(UNDEFINED, cache, function () {\n return keyRef.current;\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n []); // Always update fetcher and config refs.\n\n useIsomorphicLayoutEffect(function () {\n fetcherRef.current = fetcher;\n configRef.current = config;\n }); // After mounted or key changed.\n\n useIsomorphicLayoutEffect(function () {\n if (!key) return; // Not the initial render.\n\n var keyChanged = initialMountedRef.current;\n var softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE); // Expose state updater to global event listeners. So we can update hook's\n // internal state from the outside.\n\n var onStateUpdate = function onStateUpdate(updatedData, updatedError, updatedIsValidating) {\n setState(mergeObjects({\n error: updatedError,\n isValidating: updatedIsValidating\n }, // Since `setState` only shallowly compares states, we do a deep\n // comparison here.\n compare(stateRef.current.data, updatedData) ? UNDEFINED : {\n data: updatedData\n }));\n }; // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n\n\n var nextFocusRevalidatedAt = 0;\n\n var onRevalidate = function onRevalidate(type) {\n if (type == FOCUS_EVENT) {\n var now = Date.now();\n\n if (getConfig().revalidateOnFocus && now > nextFocusRevalidatedAt && isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n } else if (type == RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n } else if (type == MUTATE_EVENT) {\n return revalidate();\n }\n\n return;\n };\n\n var unsubUpdate = subscribeCallback(key, STATE_UPDATERS, onStateUpdate);\n var unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate); // Mark the component as mounted and update corresponding refs.\n\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true; // When `key` updates, reset the state to the initial value\n // and trigger a rerender if necessary.\n\n if (keyChanged) {\n setState({\n data: data,\n error: error,\n isValidating: isValidating\n });\n } // Trigger a revalidation.\n\n\n if (shouldRevalidateOnMount()) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n } else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n\n return function () {\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubUpdate();\n unsubEvents();\n };\n }, [key, revalidate]); // Polling\n\n useIsomorphicLayoutEffect(function () {\n var timer;\n\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n var interval = isFunction(refreshInterval) ? refreshInterval(data) : refreshInterval; // We only start next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online and not errored.\n if (!stateRef.current.error && (refreshWhenHidden || getConfig().isVisible()) && (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n } else {\n // Schedule next interval to check again.\n next();\n }\n }\n\n next();\n return function () {\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [refreshInterval, refreshWhenHidden, refreshWhenOffline, revalidate]); // Display debug info in React DevTools.\n\n useDebugValue(data); // In Suspense mode, we can't return the empty `data` state.\n // If there is `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n\n if (suspense && isUndefined(data) && key) {\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n throw isUndefined(error) ? revalidate(WITH_DEDUPE) : error;\n }\n\n return {\n mutate: boundMutate,\n\n get data() {\n stateDependencies.data = true;\n return data;\n },\n\n get error() {\n stateDependencies.error = true;\n return error;\n },\n\n get isValidating() {\n stateDependencies.isValidating = true;\n return isValidating;\n }\n\n };\n};\n\nvar SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'default', {\n value: defaultConfig\n});\n\nvar unstable_serialize = function unstable_serialize(key) {\n return serialize(key)[0];\n};\n\nvar useSWR = withArgs(useSWRHandler); // useSWR\n\nexport { SWRConfig, useSWR as default, mutate, unstable_serialize, useSWRConfig };","export default function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n var m = left + right >> 1;\n select(ids, coords, m, left, right, depth % 2);\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\n\nfunction select(ids, coords, k, left, right, inc) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n var t = coords[2 * k + inc];\n var i = left;\n var j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n\n while (coords[2 * i + inc] < t) {\n i++;\n }\n\n while (coords[2 * j + inc] > t) {\n j--;\n }\n }\n\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\nfunction swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}","export default function within(ids, coords, qx, qy, r, nodeSize) {\n var stack = [0, ids.length - 1, 0];\n var result = [];\n var r2 = r * r;\n\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n\n continue;\n }\n\n var m = Math.floor((left + right) / 2);\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n var nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction sqDist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n}","import _classCallCheck from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport sort from './sort';\nimport _range from './range';\nimport _within from './within';\n\nvar defaultGetX = function defaultGetX(p) {\n return p[0];\n};\n\nvar defaultGetY = function defaultGetY(p) {\n return p[1];\n};\n\nvar KDBush = /*#__PURE__*/function () {\n function KDBush(points) {\n var getX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetX;\n var getY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultGetY;\n var nodeSize = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 64;\n var ArrayType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Float64Array;\n\n _classCallCheck(this, KDBush);\n\n this.nodeSize = nodeSize;\n this.points = points;\n var IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n var ids = this.ids = new IndexArrayType(points.length);\n var coords = this.coords = new ArrayType(points.length * 2);\n\n for (var i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sort(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n\n _createClass(KDBush, [{\n key: \"range\",\n value: function range(minX, minY, maxX, maxY) {\n return _range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n }, {\n key: \"within\",\n value: function within(x, y, r) {\n return _within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n }]);\n\n return KDBush;\n}();\n\nexport { KDBush as default };","export default function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n var stack = [0, ids.length - 1, 0];\n var result = [];\n var x, y;\n\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n\n continue;\n }\n\n var m = Math.floor((left + right) / 2);\n x = coords[2 * m];\n y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n var nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}","import _slicedToArray from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport _classCallCheck from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/Users/mac/github/elemental-zcash/zec-map/node_modules/@babel/runtime/helpers/esm/createClass.js\";\n\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\nimport KDBush from 'kdbush';\nvar defaultOptions = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: false,\n // whether to log timing info\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n // properties to use for individual points when running the reducer\n map: function map(props) {\n return props;\n } // props => ({sum: props.my_value})\n\n};\n\nvar fround = Math.fround || function (tmp) {\n return function (x) {\n tmp[0] = +x;\n return tmp[0];\n };\n}(new Float32Array(1));\n\nvar Supercluster = /*#__PURE__*/function () {\n function Supercluster(options) {\n _classCallCheck(this, Supercluster);\n\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n _createClass(Supercluster, [{\n key: \"load\",\n value: function load(points) {\n var _this$options = this.options,\n log = _this$options.log,\n minZoom = _this$options.minZoom,\n maxZoom = _this$options.maxZoom,\n nodeSize = _this$options.nodeSize;\n if (log) console.time('total time');\n var timerId = \"prepare \".concat(points.length, \" points\");\n if (log) console.time(timerId);\n this.points = points; // generate a cluster object for each point and index input points into a KD-tree\n\n var clusters = [];\n\n for (var i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.timeEnd(timerId); // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n\n for (var z = maxZoom; z >= minZoom; z--) {\n var now = +Date.now(); // create a new set of clusters for the zoom and index them with a KD-tree\n\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n return this;\n }\n }, {\n key: \"getClusters\",\n value: function getClusters(bbox, zoom) {\n var minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n var minLat = Math.max(-90, Math.min(90, bbox[1]));\n var maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n var maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n var easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n var westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n var tree = this.trees[this._limitZoom(zoom)];\n\n var ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n var clusters = [];\n\n var _iterator = _createForOfIteratorHelper(ids),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var id = _step.value;\n var c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return clusters;\n }\n }, {\n key: \"getChildren\",\n value: function getChildren(clusterId) {\n var originId = this._getOriginId(clusterId);\n\n var originZoom = this._getOriginZoom(clusterId);\n\n var errorMsg = 'No cluster with the specified id.';\n var index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n var origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n var r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n var ids = index.within(origin.x, origin.y, r);\n var children = [];\n\n var _iterator2 = _createForOfIteratorHelper(ids),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var id = _step2.value;\n var c = index.points[id];\n\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n return children;\n }\n }, {\n key: \"getLeaves\",\n value: function getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n var leaves = [];\n\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n }, {\n key: \"getTile\",\n value: function getTile(z, x, y) {\n var tree = this.trees[this._limitZoom(z)];\n\n var z2 = Math.pow(2, z);\n var _this$options2 = this.options,\n extent = _this$options2.extent,\n radius = _this$options2.radius;\n var p = radius / extent;\n var top = (y - p) / z2;\n var bottom = (y + 1 + p) / z2;\n var tile = {\n features: []\n };\n\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.points, z2, y, z2, tile);\n }\n\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n }, {\n key: \"getClusterExpansionZoom\",\n value: function getClusterExpansionZoom(clusterId) {\n var expansionZoom = this._getOriginZoom(clusterId) - 1;\n\n while (expansionZoom <= this.options.maxZoom) {\n var children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n\n return expansionZoom;\n }\n }, {\n key: \"_appendLeaves\",\n value: function _appendLeaves(result, clusterId, limit, offset, skipped) {\n var children = this.getChildren(clusterId);\n\n var _iterator3 = _createForOfIteratorHelper(children),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var child = _step3.value;\n var props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped); // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n\n if (result.length === limit) break;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return skipped;\n }\n }, {\n key: \"_addTileFeatures\",\n value: function _addTileFeatures(ids, points, x, y, z2, tile) {\n var _iterator4 = _createForOfIteratorHelper(ids),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var i = _step4.value;\n var c = points[i];\n var isCluster = c.numPoints;\n var tags = void 0,\n px = void 0,\n py = void 0;\n\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n var p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n var f = {\n type: 1,\n geometry: [[Math.round(this.options.extent * (px * z2 - x)), Math.round(this.options.extent * (py * z2 - y))]],\n tags: tags\n }; // assign id\n\n var id = void 0;\n\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n tile.features.push(f);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }, {\n key: \"_limitZoom\",\n value: function _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(+z, this.options.maxZoom + 1));\n }\n }, {\n key: \"_cluster\",\n value: function _cluster(points, zoom) {\n var clusters = [];\n var _this$options3 = this.options,\n radius = _this$options3.radius,\n extent = _this$options3.extent,\n reduce = _this$options3.reduce,\n minPoints = _this$options3.minPoints;\n var r = radius / (extent * Math.pow(2, zoom)); // loop through each point\n\n for (var i = 0; i < points.length; i++) {\n var p = points[i]; // if we've already visited the point at this zoom level, skip it\n\n if (p.zoom <= zoom) continue;\n p.zoom = zoom; // find all nearby points\n\n var tree = this.trees[zoom + 1];\n var neighborIds = tree.within(p.x, p.y, r);\n var numPointsOrigin = p.numPoints || 1;\n var numPoints = numPointsOrigin; // count the number of points in a potential cluster\n\n var _iterator5 = _createForOfIteratorHelper(neighborIds),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var _neighborId2 = _step5.value;\n var _b2 = tree.points[_neighborId2]; // filter out neighbors that are already processed\n\n if (_b2.zoom > zoom) numPoints += _b2.numPoints || 1;\n } // if there were neighbors to merge, and there are enough points to form a cluster\n\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n var wx = p.x * numPointsOrigin;\n var wy = p.y * numPointsOrigin;\n var clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null; // encode both zoom and point index on which the cluster originated -- offset by total length of features\n\n var id = (i << 5) + (zoom + 1) + this.points.length;\n\n var _iterator6 = _createForOfIteratorHelper(neighborIds),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var neighborId = _step6.value;\n var b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n var numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n\n wy += b.y * numPoints2;\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n } else {\n // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n var _iterator7 = _createForOfIteratorHelper(neighborIds),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var _neighborId = _step7.value;\n var _b = tree.points[_neighborId];\n if (_b.zoom <= zoom) continue;\n _b.zoom = zoom;\n clusters.push(_b);\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }\n }\n\n return clusters;\n } // get index of the point from which the cluster originated\n\n }, {\n key: \"_getOriginId\",\n value: function _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n } // get zoom of the point from which the cluster originated\n\n }, {\n key: \"_getOriginZoom\",\n value: function _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n }, {\n key: \"_map\",\n value: function _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n\n var original = this.points[point.index].properties;\n var result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n }]);\n\n return Supercluster;\n}();\n\nexport { Supercluster as default };\n\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x),\n // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity,\n // the last zoom the cluster was processed at\n id: id,\n // encodes index of the first child of the cluster and its zoom level\n parentId: -1,\n // parent cluster id\n numPoints: numPoints,\n properties: properties\n };\n}\n\nfunction createPointCluster(p, id) {\n var _p$geometry$coordinat = _slicedToArray(p.geometry.coordinates, 2),\n x = _p$geometry$coordinat[0],\n y = _p$geometry$coordinat[1];\n\n return {\n x: fround(lngX(x)),\n // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity,\n // the last zoom the point was processed at\n index: id,\n // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n\n };\n}\n\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\n\nfunction getClusterProperties(cluster) {\n var count = cluster.numPoints;\n var abbrev = count >= 10000 ? \"\".concat(Math.round(count / 1000), \"k\") : count >= 1000 ? \"\".concat(Math.round(count / 100) / 10, \"k\") : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n} // longitude/latitude to spherical mercator in [0..1] range\n\n\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\n\nfunction latY(lat) {\n var sin = Math.sin(lat * Math.PI / 180);\n var y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n} // spherical mercator to longitude/latitude\n\n\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\n\nfunction yLat(y) {\n var y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\nfunction extend(dest, src) {\n for (var id in src) {\n dest[id] = src[id];\n }\n\n return dest;\n}\n\nfunction getX(p) {\n return p.x;\n}\n\nfunction getY(p) {\n return p.y;\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 F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_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 s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\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); }\n\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\nvar has = Object.prototype.hasOwnProperty;\n\nfunction find(iter, tar, key) {\n var _iterator = _createForOfIteratorHelper(iter.keys()),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n key = _step.value;\n if (dequal(key, tar)) return key;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}\n\nexport function dequal(foo, bar) {\n var ctor, len, tmp;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && dequal(foo[len], bar[len])) {\n ;\n }\n }\n\n return len === -1;\n }\n\n if (ctor === Set) {\n if (foo.size !== bar.size) {\n return false;\n }\n\n var _iterator2 = _createForOfIteratorHelper(foo),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n len = _step2.value;\n tmp = len;\n\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n\n if (!bar.has(tmp)) return false;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return true;\n }\n\n if (ctor === Map) {\n if (foo.size !== bar.size) {\n return false;\n }\n\n var _iterator3 = _createForOfIteratorHelper(foo),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n len = _step3.value;\n tmp = len[0];\n\n if (tmp && typeof tmp === 'object') {\n tmp = find(bar, tmp);\n if (!tmp) return false;\n }\n\n if (!dequal(len[1], bar.get(tmp))) {\n return false;\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n return true;\n }\n\n if (ctor === ArrayBuffer) {\n foo = new Uint8Array(foo);\n bar = new Uint8Array(bar);\n } else if (ctor === DataView) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo.getInt8(len) === bar.getInt8(len)) {\n ;\n }\n }\n\n return len === -1;\n }\n\n if (ArrayBuffer.isView(foo)) {\n if ((len = foo.byteLength) === bar.byteLength) {\n while (len-- && foo[len] === bar[len]) {\n ;\n }\n }\n\n return len === -1;\n }\n\n if (!ctor || typeof foo === 'object') {\n len = 0;\n\n for (ctor in foo) {\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor])) return false;\n }\n\n return Object.keys(bar).length === len;\n }\n }\n\n return foo !== foo && bar !== bar;\n}","import * as React from 'react';\nimport { dequal } from 'dequal';\n\nfunction checkDeps(deps) {\n if (!deps || !deps.length) {\n throw new Error('useDeepCompareEffect should not be used with no dependencies. Use React.useEffect instead.');\n }\n\n if (deps.every(isPrimitive)) {\n throw new Error('useDeepCompareEffect should not be used with dependencies that are all primitive values. Use React.useEffect instead.');\n }\n}\n\nfunction isPrimitive(val) {\n return val == null || /^[sbn]/.test(typeof val);\n}\n/**\n * @param value the value to be memoized (usually a dependency list)\n * @returns a momoized version of the value as long as it remains deeply equal\n */\n\n\nfunction useDeepCompareMemoize(value) {\n var ref = React.useRef(value);\n var signalRef = React.useRef(0);\n\n if (!dequal(value, ref.current)) {\n ref.current = value;\n signalRef.current += 1;\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n return React.useMemo(function () {\n return ref.current;\n }, [signalRef.current]);\n}\n\nfunction useDeepCompareEffect(callback, dependencies) {\n if (process.env.NODE_ENV !== 'production') {\n checkDeps(dependencies);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n\n return React.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\nfunction useDeepCompareEffectNoCheck(callback, dependencies) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useEffect(callback, useDeepCompareMemoize(dependencies));\n}\n\nexport { useDeepCompareEffect as default, useDeepCompareEffectNoCheck, useDeepCompareMemoize };","import { useRef, useState } from 'react';\nimport Supercluster from 'supercluster';\nimport { useDeepCompareEffectNoCheck } from 'use-deep-compare-effect';\nimport { dequal } from 'dequal';\n\nvar useSupercluster = function useSupercluster(_ref) {\n var points = _ref.points,\n bounds = _ref.bounds,\n zoom = _ref.zoom,\n options = _ref.options;\n var superclusterRef = useRef();\n var pointsRef = useRef();\n\n var _useState = useState([]),\n clusters = _useState[0],\n setClusters = _useState[1];\n\n var zoomInt = Math.round(zoom);\n useDeepCompareEffectNoCheck(function () {\n if (!superclusterRef.current || !dequal(pointsRef.current, points) || !dequal(superclusterRef.current.options, options)) {\n superclusterRef.current = new Supercluster(options);\n superclusterRef.current.load(points);\n }\n\n if (bounds) {\n setClusters(superclusterRef.current.getClusters(bounds, zoomInt));\n }\n\n pointsRef.current = points;\n }, [points, bounds, zoomInt, options]);\n return {\n clusters: clusters,\n supercluster: superclusterRef.current\n };\n};\n\nexport default useSupercluster;","\n// Yes, this is not cryptographically secure, this is just for isomorphic JS grep protection\nconst cipher = salt => {\n const textToChars = text => text.split('').map(c => c.charCodeAt(0));\n const byteHex = n => (\"0\" + Number(n).toString(16)).substr(-2);\n const applySaltToChar = code => textToChars(salt).reduce((a,b) => a ^ b, code);\n\n return text => text.split('')\n .map(textToChars)\n .map(applySaltToChar)\n .map(byteHex)\n .join('');\n}\n \nconst decipher = salt => {\n const textToChars = text => text.split('').map(c => c.charCodeAt(0));\n const applySaltToChar = code => textToChars(salt).reduce((a,b) => a ^ b, code);\n return encoded => encoded.match(/.{1,2}/g)\n .map(hex => parseInt(hex, 16))\n .map(applySaltToChar)\n .map(charCode => String.fromCharCode(charCode))\n .join('');\n}\n\n// To create a cipher\nexport const cipherString = cipher('128881670697291336385543164');\n\nexport const decipherString = decipher('128881670697291336385543164');\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Link } from 'gatsby';\nimport { Box, Row, Text, useWindowDimensions } from 'elemental-react';\n\nimport loadable from '@loadable/component';\nimport useSwr from 'swr';\nimport useSupercluster from 'use-supercluster';\n\nimport { Svg, Path, G, Rect } from 'react-primitives-svg';\n\n// import { QRCode } from '@elemental-zcash/components';\n\nimport FilledCard from '@elemental-zcash/components/lib/cards/FilledCard';\n\nimport mapboxgl from 'mapbox-gl';\n\nimport 'mapbox-gl/dist/mapbox-gl.css';\n\nimport Layout from '../components/layout';\nimport SEO from '../components/seo';\nimport useWindowViewport from '../hooks/use-window-viewport';\nimport { decipherString } from '../utils/cipher';\nimport { Markers } from '../map/marker';\nimport { HEADER_HEIGHT } from '../components/header';\n\nimport _places from '../map/places-tmp.json';\n\n// const { MapGL, Popup, Marker } = loadable(async () => {\n// // const { default: MapGL, Popup, Marker } = await import('react-map-gl');\n// let MapGL, Popup, Marker = null;\n\n// return { MapGL, Popup, Marker };\n// });\n\nconst MapGL = loadable(() => import('react-map-gl'), {\n resolveComponent: (components) => components.default,\n});\nconst Popup = loadable(() => import('react-map-gl'), {\n resolveComponent: (components) => components.Popup,\n});\nconst Marker = loadable(() => import('react-map-gl'), {\n resolveComponent: (components) => components.Marker,\n});\n// const mapboxgl = loadable(() => import('mapbox-gl'));\n// const { Popup, Marker } = MapGL;\n\nif (mapboxgl && typeof window !== 'undefined') {\n mapboxgl.workerClass =\n require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default\n}\n\nconst ListIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\nconst MapIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\n\nconst tToType = {\n 0: 'restaurant',\n 1: 'food',\n 2: 'bar',\n 3: 'super',\n 4: 'shop',\n 5: 'hotel',\n 99: 'atm',\n 999: 'spa',\n 9999: 'tattoo',\n};\n\nconst tagNames = [\n 'Spicy ๐ŸŒถ๏ธ',\n 'Salty ๐Ÿฅจ',\n 'Sour ๐Ÿ˜œ',\n 'Organic ๐Ÿต',\n 'Vegetarian ๐Ÿฅ•',\n 'Vegan ๐Ÿฎ',\n 'Healthy ๐Ÿ’“',\n 'Burger ๐Ÿ”',\n 'Sandwich ๐Ÿฅช',\n 'Muffin ๐Ÿง', //The muffin icon is invisible\n 'Brownie ๐Ÿฅฎ', //Brownie is invisible too\n 'Cake ๐ŸŽ‚',\n 'Cookie ๐Ÿช',\n 'Arabic ๐Ÿฅ™',\n 'Pizza ๐Ÿ•',\n 'Salad ๐Ÿฅ—',\n 'Smoothie ๐Ÿฅค',\n 'Fruit ๐Ÿ“',\n 'IceCream ๐Ÿฆ',\n 'Raw ๐Ÿฅฆ',\n 'Handbag ๐Ÿ‘œ',\n 'Cosmetic ๐Ÿ’…',\n 'Tattoo โ™ฃ',\n 'Piercing ๐ŸŒ€',\n 'Souvenir ๐ŸŽ',\n 'Hatha ๐Ÿง˜',\n 'Vinyasa ๐Ÿง˜',\n 'Massage ๐Ÿ’†',\n 'Upcycled ๐ŸŒฒ',\n 'Coffee โ˜•',\n 'NoGluten ๐ŸŒฝ',\n 'Cocktails ๐Ÿน',\n 'Beer ๐Ÿบ',\n 'Music ๐ŸŽต',\n 'Chinese ๐Ÿœ',\n 'Duck ๐Ÿฑ',\n 'Rock ๐ŸŽธ',\n 'LiveDJ ๐ŸŽง',\n 'Terrace โ˜€๏ธ',\n 'Seeds ๐ŸŒฑ',\n 'Grinder ๐ŸŒ',\n 'Papers ๐Ÿšฌ',\n 'Advice ๐ŸŒด',\n 'Calzone ๐ŸฅŸ',\n 'Falafel ๐Ÿฅ™',\n 'MakeUp ๐Ÿคก',\n 'Gifts ๐ŸŽ',\n 'Tapas ๐Ÿ ',\n 'Copas ๐Ÿน',\n 'Piadina ๐ŸŒฎ',\n 'Cheese ๐Ÿง€',\n 'Grains ๐ŸŒพ',\n 'Fashion ๐Ÿ‘—',\n 'Fair ๐Ÿค—',\n 'Women ๐Ÿ‘ฉ',\n 'Drinks ๐Ÿน',\n 'TV ๐Ÿ“บ',\n 'Retro ๐Ÿฆ„',\n 'Feta ๐Ÿ',\n 'DASH ร',\n 'BTC โ‚ฟ',\n 'BCH โ‚ฟ',\n 'ANYPAY โ‚ฟ๏ธ',\n 'ETH โ‚ฟ',\n 'HotDog ๐ŸŒญ',\n 'Fast โฉ',\n 'Kosher ๐Ÿฆ„',\n 'Sushi ๐Ÿฃ',\n 'Moto ๐Ÿ›ต',\n 'Coche ๐Ÿš˜',\n 'GOCRYPTO โ‚ฟ',\n 'Chicken ๐Ÿ”',\n 'Rabbit ๐Ÿฐ',\n 'Potato ๐Ÿฅ”',\n 'Kumpir ๐Ÿฅ”',\n 'Kebap ๐Ÿ„',\n 'ATM ๐Ÿฆ',\n 'Gyros ๐Ÿ–',\n 'Coconut ๐Ÿฅฅ',\n 'ToGo ๐Ÿ“ฆ',\n 'Meditation ๐Ÿง˜',\n 'Wine ๐Ÿท',\n 'Champagne ๐Ÿฅ‚',\n 'Alcohol ๐Ÿพ',\n 'Booze ๐Ÿฅƒ',\n 'Pancakes ๐Ÿฅž', //You cant remove because we use fixed indexes, but replace with another string that is unlikely to be typed in by the user\n 'Croissant ๐Ÿฅ',\n 'Popcorn ๐Ÿฟ',\n 'SoftIce ๐Ÿฆ',\n 'Dango ๐Ÿก',\n 'BnB ๐Ÿ›๏ธ',\n 'Haircut โœ‚๏ธ',\n 'Candy ๐Ÿญ',\n 'Beauty ๐Ÿ’…',\n 'Miso ๐Ÿฑ',\n 'Chocolate ๐Ÿซ',\n 'Rice ๐Ÿš',\n 'Seafood ๐Ÿฆ€',\n 'Hostel ๐Ÿ›๏ธ',\n 'Fries ๐ŸŸ',\n 'Fish ๐ŸŸ', //100\n 'Chips ๐ŸŸ',\n 'Italian ๐Ÿ‡ฎ๐Ÿ‡น',\n 'Whiskey ๐Ÿฅƒ',\n ' - - - ', //This is number 104 the no tag indicator, currently not used //TODO hide this field from the suggestions\n 'Bourbon ๐Ÿฅƒ', //105\n 'Liquor ๐Ÿฅƒ',\n 'Men โ™‚๏ธ',\n 'Pasta ๐Ÿ',\n 'Dessert ๐Ÿฌ', //109\n 'Starter ๐Ÿฅ ', //110\n 'BBQ ๐Ÿ—',\n 'Noodle ๐Ÿœ',\n 'Korean ๐ŸฅŸ',\n 'Market ๐Ÿงบ', //invisible item\n 'Bread ๐Ÿฅ–',\n 'Bakery ๐Ÿฅจ',\n 'Cafe โ˜•',\n 'Games ๐ŸŽฎ',\n 'Snacks ๐Ÿฟ',\n 'Elegant ๐Ÿ•ด๏ธ',\n 'Piano ๐ŸŽน',\n 'Brunch ๐Ÿฑ',\n 'Nachos ๐ŸŒฝ',\n 'Lunch ๐Ÿฅก',\n 'Breakfast ๐Ÿฅ',\n 'HappyHour ๐Ÿฅณ', //hidden item\n 'LateNight ๐ŸŒœ',\n 'Mexican ๐Ÿ‡ฒ๐Ÿ‡ฝ',\n 'Burrito ๐ŸŒฏ',\n 'Tortilla ๐ŸŒฎ',\n 'Indonesian ๐Ÿ‡ฎ๐Ÿ‡ฉ',\n 'Sports ๐Ÿ†',\n 'Pastry ๐Ÿฅง',\n 'Bistro ๐Ÿฒ',\n 'Soup ๐Ÿฅฃ',\n 'Tea ๐Ÿต',\n 'Onion',\n 'Steak ๐Ÿฅฉ',\n 'Shakes ๐Ÿฅค',\n 'Empanadas ๐ŸฅŸ',\n 'Dinner ๐Ÿฝ๏ธ',\n 'Sweet ๐Ÿญ',\n 'Fried ๐Ÿณ',\n 'Omelette ๐Ÿฅš',\n 'Gin ๐Ÿธ',\n 'Donut ๐Ÿฉ',\n 'Delivery ๐Ÿšš',\n 'Cups โ˜•',\n 'Filter',\n 'Juice ๐ŸŠ',\n 'Vietnamese ๐Ÿ‡ป๐Ÿ‡ณ',\n 'Pie ๐Ÿฅฎ', //invisible item\n 'Unagi ๐Ÿก',\n 'Greek ๐Ÿ‡ฌ๐Ÿ‡ท',\n 'Japanese ๐Ÿ‡ฏ๐Ÿ‡ต',\n 'Tacos ๐ŸŒฎ',\n 'Kombucha ๐Ÿต',\n 'Indian ๐Ÿ‡ฎ๐Ÿ‡ณ',\n 'Nan ๐Ÿฅช',\n 'Club ๐ŸŽถ',\n 'Honey ๐Ÿฏ',\n 'Pool ๐ŸŽฑ',\n 'Hotel ๐Ÿจ',\n 'Pork ๐Ÿฅ“',\n 'Ribs ๐Ÿ–',\n 'Kava ๐Ÿต',\n 'Chai ๐Ÿต',\n 'Izzy ๐Ÿต',\n 'Matcha ๐Ÿต',\n 'Oden ๐Ÿข',\n 'Latte โ˜•',\n 'DASHText ร',\n 'CoinTigo โ‚ฟ',\n 'CoinText โ‚ฟ',\n 'Salamantex โ‚ฟ',\n 'CryptoBuyer โ‚ฟ',\n 'XPay โ‚ฟ'\n];\n\nconst places = _places.filter(({ p }) => p).map(({ p, t, x, y, n, a }) => {\n const type = tToType[t];\n const lat = x;\n const lng = y;\n const name = n;\n const tags = a.split(\",\").map(n => tagNames[n]);\n const accepts = tags.map((tag) => {\n switch (tag) {\n case 'DASH ร': { return 'DASH' }\n case 'BTC โ‚ฟ': { return 'BTC' }\n case 'BCH โ‚ฟ': { return 'BCH' }\n case 'GOCRYPTO โ‚ฟ': { return 'GOCRYPTO' }\n case 'DASHText ร': { return 'DASHText' }\n case 'CoinTigo โ‚ฟ': { return 'CoinTigo' }\n case 'CoinText โ‚ฟ': { return 'CoinText' }\n case 'Salamantex โ‚ฟ': { return 'Salamantex' }\n case 'CryptoBuyer โ‚ฟ': { return 'CryptoBuyer' }\n case 'XPay โ‚ฟ': { return 'XPay' }\n }\n return null;\n }).filter(i => i);\n\n\n return {\n id: p,\n type,\n name,\n tags,\n location: {\n latitude: lat,\n longitude: lng,\n },\n accepts,\n };\n})\n\nconst decipheredVal123 = decipherString('405b1e55497a01795a5f595267765a5167050052037e5f51776643537766497959475969637906795d7e42555d04496a774801557471017f675349545e764a55747e015577095c515e615956611e5f44776f6f1d7a6251416f66597a755d625304590061');\n\nconst fetcher = (...args) => fetch(...args).then(response => response.json());\n\n// mapboxgl.accessToken = decipheredVal123;\n\nconst ICON = `M20.2,15.7L20.2,15.7c1.1-1.6,1.8-3.6,1.8-5.7c0-5.6-4.5-10-10-10S2,4.5,2,10c0,2,0.6,3.9,1.6,5.4c0,0.1,0.1,0.2,0.2,0.3\n c0,0,0.1,0.1,0.1,0.2c0.2,0.3,0.4,0.6,0.7,0.9c2.6,3.1,7.4,7.6,7.4,7.6s4.8-4.5,7.4-7.5c0.2-0.3,0.5-0.6,0.7-0.9\n C20.1,15.8,20.2,15.8,20.2,15.7z`;\n\nconst pinStyle = {\n cursor: 'pointer',\n fill: '#d00',\n stroke: 'none'\n};\n\n// function Pin({size = 20, onClick}) {\n// return (\n// \n// \n// \n// );\n// }\n\nconst MarkerIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\n\nconst CupIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\n\nconst RestaurantIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\nconst BarIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\nconst SuperIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\nconst ShopIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n \n \n);\n\nconst HotelIcon = ({ size = 24, fill = '#000' }) => (\n \n \n \n \n);\n\n// 'restaurant',\n// 'food',\n// 'bar',\n// 'super',\n// 'shop',\n// 'hotel',\n// 'atm',\n// 'spa',\n// 'tattoo',\nconst categoryIconMap = {\n food: { icon: CupIcon },\n restaurant: { icon: RestaurantIcon },\n bar: { icon: BarIcon },\n super: { icon: SuperIcon },\n shop: { icon: ShopIcon },\n hotel: { icon: HotelIcon },\n}\n\n// const StyledMap = props => (\n// \n// );\n\nconst Map = React.forwardRef(({ viewport, zoom = 9, ...props }, ref) => {\n const mapContainer = useRef(null);\n const map = useRef(null);\n const [lng, setLng] = useState(-1.123107);\n const [lat, setLat] = useState(52.619397);\n // 52.619397, -1.123107 โ€“ Leicester uni\n\n // 51.5286417, -0.1015986 โ€“ London center\n\n // useEffect(() => {\n // if (map.current) return; // initialize map only once\n // map.current = new mapboxgl.Map({\n // container: mapContainer.current,\n // style: 'mapbox://styles/mapbox/streets-v11',\n // center: [lng, lat],\n // zoom: zoom\n // });\n\n // map.current.on('move', () => {\n // setLng(map.current.getCenter().lng.toFixed(4));\n // setLat(map.current.getCenter().lat.toFixed(4));\n // setZoom(map.current.getZoom().toFixed(2));\n // });\n // });\n\n return (\n <>\n \n \n )\n});\n\n\nconst Home = () => {\n // const viewport = useWindowViewport();\n const [pageViewType, setPageViewType] = useState('map');\n const { width, height } = useWindowDimensions();\n const [navOverlayOpen, setNavOverlayOpen] = useState(false);\n const [placesInView, setPlacesInView] = useState();\n const mapRef = useRef();\n // const [zoom, setZoom] = useState(12);\n const [viewport, setViewport] = useState({\n latitude: 51.5286417,\n longitude: -0.1015986,\n // width: \"100vw\",\n // height: \"100vh\",\n zoom: 12\n });\n const [bounds, setBounds] = useState(null);\n\n const [popupInfo, setPopupInfo] = useState(null);\n\n // const url =\n // 'https://data.police.uk/api/crimes-street/all-crime?lat=51.5286417&lng=-0.1015986&date=2019-10';\n // const { data, error } = useSwr(url, { fetcher });\n // const crimes = data && !error ? data : [];\n // const merchants = \n\n const points = places.map((place) => ({\n type: \"Feature\",\n properties: {\n cluster: false, \n placeId: place.id,\n name: place.name,\n tags: place.tags,\n category: place.type,\n accepts: place.accepts,\n },\n geometry: {\n type: \"Point\",\n coordinates: [\n parseFloat(place.location.longitude),\n parseFloat(place.location.latitude)\n ]\n }\n }));\n\n \n\n // useEffect(() => {\n // if (mapRef.current && viewport) {\n // console.log('setBounds');\n // setBounds(mapRef.current.getMap().getBounds().toArray().flat());\n // }\n // }, [mapRef, viewport, setBounds]);\n\n\n // map.current.on('move', () => {\n // setLng(map.current.getCenter().lng.toFixed(4));\n // setLat(map.current.getCenter().lat.toFixed(4));\n // setZoom(map.current.getZoom().toFixed(2));\n // });\n\n const { clusters, supercluster } = useSupercluster({\n points,\n bounds,\n zoom: viewport.zoom,\n options: {\n radius: 75,\n maxZoom: 20,\n },\n });\n\n useEffect(() => {\n const newPlaceList = [];\n\n clusters.forEach((cluster) => {\n const [longitude, latitude] = cluster?.geometry?.coordinates;\n\n if (!cluster?.cluster && !cluster?.properties?.cluster) {\n newPlaceList.push({ longitude, latitude, ...cluster.properties })\n }\n });\n setPlacesInView(newPlaceList);\n }, [clusters])\n\n\n const [markers, setMarkers] = useState([{ longitude: -0.15667150962827356, latitude: 51.50642925407983 } ]);\n\n const tileWidth = 64;\n\n return (\n \n \n {/* */}\n \n \n {/* Welcome to{'\\n'}Elemental Zcash!\n \n \n Get started\n \n */}\n \n {\n if (pageViewType === 'map') {\n setPageViewType('list');\n } else {\n setPageViewType('map');\n }\n }}\n alignItems=\"center\"\n height={64}\n bg=\"greys.9\"\n borderRadius=\"8px\"\n p=\"16px\"\n >\n {pageViewType === 'map' && (\n <>\n \n \n \n View list\n \n )}\n {pageViewType === 'list' && (\n <>\n \n \n \n View map\n \n )}\n \n \n {pageViewType === 'list' && (\n \n \n Data borrowed from https://bmap.app/ for demo purposes.\n \n {placesInView?.map((place) => (\n \n {place.name}\n {place.category}\n \n {place.tags?.map((tag) => (\n \n {tag.match(/[\\p{Emoji}\\u200d]+/gu)}\n \n ))}\n \n {place.accepts?.length > 0 && (\n Accepts: {place.accepts.join(', ')}\n )}\n \n ))}\n \n )}\n {pageViewType === 'map' && (\n {\n if (mapRef.current) {\n setBounds(mapRef.current.getMap().getBounds().toArray().flat());\n }\n }}\n onMove={(event) => {\n setViewport({ ...event.viewState });\n\n if (mapRef.current) {\n setBounds(mapRef.current.getMap().getBounds().toArray().flat());\n }\n }}\n >\n {/* */}\n {/* {markers.map((marker, index) => (\n \n setPopupInfo(marker)} />\n \n ))} */}\n {clusters.map((cluster) => {\n // every cluster point has coordinates\n const [longitude, latitude] = cluster.geometry.coordinates;\n // the point may be either a cluster or a crime point\n const {\n cluster: isCluster,\n point_count: pointCount\n } = cluster.properties;\n\n // we have a cluster to render\n if (isCluster) {\n return (\n \n {\n const expansionZoom = Math.min(\n supercluster.getClusterExpansionZoom(cluster.id),\n 20\n );\n \n mapRef.current.flyTo({\n center: [\n longitude,\n latitude,\n ],\n zoom: expansionZoom,\n essential: true // this animation is considered essential with respect to prefers-reduced-motion\n });\n }}\n >\n \n {pointCount}\n \n \n \n );\n }\n\n const CategoryIconMarker = categoryIconMap[cluster.properties.category]?.icon || 'div';\n\n // we have a single point (crime) to render\n return (\n // \n // \n // \n \n setPopupInfo({ longitude, latitude, ...cluster.properties })}\n style={{ cursor: 'pointer' }}\n >\n \n \n \n \n \n \n );\n })}\n {popupInfo ? (\n setPopupInfo(null)}\n >\n \n \n {popupInfo?.name}\n \n \n {popupInfo?.category}\n \n \n {popupInfo?.tags?.map((tag) => (\n \n {tag.match(/[\\p{Emoji}\\u200d]+/gu)}\n \n ))}\n \n {popupInfo?.accepts?.length > 0 && (\n Accepts: {popupInfo.accepts.join(', ')}\n )}\n {/* \n Pay 0.1 ZEC to\n \n \n {[\n { bg: 'white', linearGradient: ['#00F9F9', '#0054FF'], borderColor: 'black', borderWidth: '4px' },\n ].map(({ bg, stroke, borderColor, borderWidth, linearGradient, svgLogo }) => (\n \n \n ))} */}\n \n \n ) : null}\n \n )}\n \n \n {/* */}\n \n );\n}\n\nexport default Home;\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"mapbox-gl-csp-worker-7a72725c0609bd44ac49.worker.js\");\n}\n"],"names":["module","exports","arr","len","length","i","arr2","Array","__esModule","isArray","arrayLikeToArray","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","args","Class","Reflect","construct","a","push","apply","Function","bind","prototype","arguments","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","obj","value","superPropBase","_get","get","property","receiver","base","desc","getOwnPropertyDescriptor","call","this","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","fn","toString","indexOf","sham","Proxy","Boolean","valueOf","e","iter","Symbol","iterator","from","_i","_s","_e","_arr","_n","_d","next","done","err","_typeof","assertThisInitialized","self","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","object","hasOwnProperty","iterableToArray","arrayWithoutHoles","nonIterableSpread","minLen","n","slice","name","test","isNativeFunction","_wrapNativeSuper","_cache","Map","undefined","has","set","Wrapper","ownKeys","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","_objectSpread","source","forEach","getOwnPropertyDescriptors","defineProperties","MountedMapsContext","MapProvider","_useState","useState","_useState2","maps","setMaps","onMapMount","useCallback","map","id","currMaps","Error","concat","onMapUnmount","nextMaps","Provider","children","useMap","useContext","transformToViewState","tr","longitude","center","lng","latitude","lat","zoom","pitch","bearing","padding","applyViewStateToTransform","v","viewState","changed","isPaddingEqual","_createForOfIteratorHelper","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","F","s","f","normalCompletion","didErr","step","_e2","return","refProps","normalizeStyle","style","toJS","layers","_step","layerIndex","_iterator","layer","layerRef","ref","normalizedLayer","interactive","_step2","_iterator2","propName","deepEqual","b","aKeys","bKeys","_aKeys","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","resize","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","_renderTransform","oldProps","settingsChanged","_updateSettings","transform","clone","sizeChanged","_updateSize","viewStateChanged","_updateViewState","_updateStyle","_updateStyleComponents","_updateHandlers","isMoving","redraw","_this2","mapOptions","initialViewState","accessToken","mapboxAccessToken","getAccessTokenFromEnv","mapStyle","assign","gl","getContext","HTMLCanvasElement","setPadding","cursor","getCanvas","renderMap","_render","arg","runRenderTaskQueue","_renderTaskQueue","run","_onBeforeRepaint","on","_onAfterRepaint","fireEvent","fire","eventName","_fireEvent","width","height","_eventName","_eventName2","savedMaps","_frame","cancel","nextProps","triggerEvents","deferredEvents","currProps","toUpperCase","options","diff","styleDiffing","localIdeographFontFamily","setStyle","loaded","light","setLight","fog","setFog","terrain","getSource","setTerrain","newValue","enable","disable","onMouseMove","onMouseEnter","onMouseLeave","_this$_hoveredFeature","eventType","wasHovering","_unused","isHovering","baseFire","event","properties","_this3","that","pop","oldContainer","getContainer","className","childNodes","appendChild","_container","setProps","isStyleLoaded","once","location","match","exec","search","MapboxAccessToken","_unused2","REACT_APP_MAPBOX_ACCESS_TOKEN","_unused3","skipMethods","createRef","mapInstance","mapLib","result","getMap","getCenter","getZoom","getBearing","getPitch","getPadding","getBounds","project","lnglat","locationPoint","LngLat","convert","unproject","pointLocation","Point","Set","proto","getOwnPropertyNames","add","getMethodNames","includes","document","useLayoutEffect","useEffect","globalSettings","MapContext","defaultProps","minZoom","maxZoom","minPitch","maxPitch","scrollZoom","boxZoom","dragRotate","dragPan","keyboard","doubleClickZoom","touchZoomRotate","touchPitch","version","sources","projection","renderWorldCopies","onError","console","RTLTextPlugin","forwardRef","mountedMapsContext","setMapInstance","containerRef","useRef","contextValue","current","mapbox","isMounted","Promise","resolve","then","mapboxgl","default","supported","getRTLTextPluginStatus","setRTLTextPlugin","setGlobals","reuseMaps","reuse","catch","originalEvent","recycle","destroy","useImperativeHandle","useMemo","position","displayName","unitlessNumber","applyReactStyle","element","styles","Number","isFinite","Marker","_useContext","thisRef","ax","ay","bx","by","marker","hasChildren","el","createElement","mk","setLngLat","_thisRef$current$prop","_thisRef$current$prop2","evt","lngLat","getLngLat","onDragStart","_thisRef$current$prop3","_thisRef$current$prop4","onDrag","_thisRef$current$prop5","_thisRef$current$prop6","onDragEnd","addTo","getElement","offset","getOffset","x","y","setOffset","isDraggable","draggable","setDraggable","getRotation","rotation","setRotation","getRotationAlignment","rotationAlignment","setRotationAlignment","getPitchAlignment","pitchAlignment","setPitchAlignment","getPopup","popup","setPopup","createPortal","getClassList","trim","split","pp","Popup","onOpen","onClose","setDOMContent","isOpen","anchor","maxWidth","setMaxWidth","prevClassList","nextClassList","c","removeClassName","_c","addClassName","useControl","onCreate","onRemove","opts","context","ctrl","_ref","hasControl","addControl","removeControl","AttributionControl","FullscreenControl","containerId","getElementById","_controlContainer","GeolocateControl","gc","onGeolocate","onOutOfMaxBounds","_thisRef$current$prop7","_thisRef$current$prop8","onTrackUserLocationStart","_thisRef$current$prop9","_thisRef$current$prop10","onTrackUserLocationEnd","trigger","NavigationControl","ScaleControl","unit","setUnit","assert","condition","message","sourceCounter","createSource","_loaded","addSource","propsRef","setStyleLoaded","forceUpdate","off","setTimeout","removeSource","prevProps","changedKey","changedKeyCount","setData","updateImage","url","coordinates","setUrl","setTiles","tiles","warn","setCoordinates","updateSource","child","cloneElement","layerCounter","removeLayer","getLayer","_props$layout","layout","_props$paint","paint","minzoom","maxzoom","beforeId","moveLayer","prevLayout","setLayoutProperty","_key","prevPaint","_key2","setPaintProperty","_key3","setFilter","setLayerZoomRange","updateLayer","addLayer","createLayer","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","global","isConstructor","isObject","SPECIES","originalArray","C","arraySpeciesConstructor","TO_STRING_TAG_SUPPORT","isCallable","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","O","tag","tryGet","callee","lengthOfArrayLike","flattenIntoArray","original","sourceLen","start","depth","mapper","thisArg","elementLen","targetIndex","sourceIndex","mapFn","uncurryThis","aCallable","getBuiltIn","classof","argument","fails","inspectSource","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","activeXDocument","anObject","definePropertiesModule","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","display","src","String","contentWindow","open","Properties","DESCRIPTORS","V8_PROTOTYPE_DEFINE_BUG","toIndexedObject","objectKeys","index","internalObjectKeys","$","toObject","toIntegerOrInfinity","arraySpeciesCreate","flat","depthArg","A","addToUnscopables","_extends","_assertThisInitialized","ReferenceError","invariant","framesToPop","Context","LOADABLE_SHARED","initialChunks","STATUS_PENDING","STATUS_REJECTED","identity","createLoadable","_ref$defaultResolveCo","defaultResolveComponent","onLoad","loadable","loadableConstructor","ctor","requireAsync","chunkName","resolveConstructor","cache","_getCacheKey","cacheKey","Loadable","Component","resolveComponent","isValidElementType","preload","LoadableWithChunkExtractor","cachedLoad","promise","status","fileName","InnerLoadable","_React$Component","state","loading","__chunkExtractor","requireSync","ssr","loadSync","addChunk","isReady","getDerivedStateFromProps","_proto","componentDidMount","mounted","cachedPromise","getCache","setCache","loadAsync","componentDidUpdate","prevState","componentWillUnmount","safeSetState","nextState","callback","setState","getCacheKey","triggerOnLoad","resolveAsync","loadedModule","_this$props","forwardedRef","_this$props2","propFallback","fallback","_this$state","suspense","EnhancedInnerLoadable","Consumer","extractor","lazy","_createLoadable","_createLoadable$1","loadable$1","lazy$1","loadable$2","lib","__awaiter","_arguments","P","generator","reject","fulfilled","rejected","__generator","body","t","g","_","label","sent","trys","ops","verb","op","hook","UNDEFINED","OBJECT","isUndefined","isFunction","mergeObjects","STR_UNDEFINED","hasWindow","window","table","WeakMap","counter","stableHash","isDate","Date","RegExp","toJSON","JSON","stringify","sort","online","hasWin","hasDoc","onWindowEvent","addEventListener","onDocumentEvent","offWindowEvent","removeEventListener","offDocumentEvent","preset","isOnline","isVisible","visibilityState","defaultConfigOptions","initFocus","initReconnect","onOnline","onOffline","IS_SERVER","rAF","useIsomorphicLayoutEffect","navigatorConnection","navigator","connection","slowConnection","effectiveType","saveData","serialize","SWRGlobalState","broadcastState","isValidating","revalidate","broadcast","_a","EVENT_REVALIDATORS","STATE_UPDATERS","FETCH","revalidators","updaters","__timestamp","getTimestamp","internalMutate","_data","_opts","populateCache","rollbackOnError","optimisticData","keyInfo","_b","MUTATION","beforeMutationTs","hasOptimisticData","rollbackData","res","revalidateAllKeys","initCache","provider","mutate","unmount","releaseFocus_1","releaseReconnect_1","delete","defaultConfig","onLoadingSlow","onSuccess","onErrorRetry","__","config","maxRetryCount","errorRetryCount","currentRetryCount","retryCount","timeout","Math","random","errorRetryInterval","onDiscarded","revalidateOnFocus","revalidateOnReconnect","revalidateIfStale","shouldRetryOnError","focusThrottleInterval","dedupingInterval","loadingTimeout","compare","currentData","newData","isPaused","mergeConfigs","u1","use","f1","u2","f2","SWRConfigContext","createContext","normalize","useSWRConfig","subscribeCallback","callbacks","keyedRevalidators","WITH_DEDUPE","dedupe","extendedConfig","cacheContext","fetcher","fallbackData","revalidateOnMount","refreshInterval","refreshWhenHidden","refreshWhenOffline","fnArgs","initialMountedRef","unmountedRef","keyRef","fetcherRef","configRef","getConfig","isActive","patchFetchInfo","info","cached","shouldRevalidateOnMount","rerender","stateRef","stateDependenciesRef","payload","shouldRerender","currentState","k","useStateWithDeps","stateDependencies","revalidateOpts","currentFetcher","startAt","shouldStartNewRequest","isCurrentKeyMounted","cleanupState","newState","finishRequestAndUpdateState","mutationInfo","err_1","requestInfo","boundMutate","keyChanged","softRevalidate","nextFocusRevalidatedAt","unsubUpdate","updatedData","updatedError","updatedIsValidating","unsubEvents","now","timer","interval","execute","clearTimeout","useDebugValue","sortKD","ids","coords","nodeSize","left","right","m","inc","z","log","exp","sd","sqrt","max","floor","min","j","swapItem","swap","tmp","sqDist","dx","dy","defaultGetX","p","defaultGetY","KDBush","points","getX","getY","ArrayType","Float64Array","IndexArrayType","Uint16Array","Uint32Array","minX","minY","maxX","maxY","stack","axis","nextAxis","r","qx","qy","r2","defaultOptions","minPoints","radius","extent","generateId","reduce","fround","Float32Array","Supercluster","extend","trees","_this$options","time","timerId","_p$geometry$coordinat","clusters","geometry","lngX","latY","Infinity","parentId","timeEnd","_cluster","bbox","minLng","minLat","maxLng","maxLat","easternHem","getClusters","westernHem","tree","_limitZoom","range","numPoints","getClusterJSON","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","origin","pow","within","limit","leaves","_appendLeaves","z2","_this$options2","top","bottom","tile","_addTileFeatures","expansionZoom","getChildren","cluster_id","skipped","_step3","_iterator3","cluster","point_count","_step4","_iterator4","isCluster","tags","px","py","getClusterProperties","round","_this$options3","_step5","neighborIds","numPointsOrigin","_iterator5","_neighborId2","_b2","_step6","wx","wy","clusterProperties","_iterator6","neighborId","numPoints2","createCluster","_step7","_iterator7","_neighborId","y2","PI","atan","count","abbrev","point_count_abbreviated","sin","dest","find","tar","dequal","foo","bar","getTime","size","ArrayBuffer","Uint8Array","DataView","byteLength","getInt8","isView","useDeepCompareMemoize","signalRef","salt","textToChars","byteHex","applySaltToChar","dependencies","bounds","superclusterRef","pointsRef","setClusters","zoomInt","supercluster","decipherString","text","charCodeAt","substr","code","encoded","hex","parseInt","charCode","fromCharCode","join","decipher","MapGL","components","require","ListIcon","fill","Svg","xmlns","viewBox","Path","d","MapIcon","tToType","tagNames","places","_places","accepts","decipheredVal123","MarkerIcon","categoryIconMap","food","icon","restaurant","super","shop","G","Rect","hotel","React","viewport","minHeight","pageViewType","setPageViewType","useWindowDimensions","placesInView","setPlacesInView","mapRef","setViewport","setBounds","popupInfo","setPopupInfo","place","placeId","category","parseFloat","useSupercluster","newPlaceList","placeItems","title","bg","HEADER_HEIGHT","flex","alignItems","justifyContent","zIndex","as","onPress","borderRadius","mr","color","mb","FilledCard","fontSize","toArray","onMove","pointCount","onClick","getClusterExpansionZoom","flyTo","essential","CategoryIconMarker","pb","closeOnClick","Worker_fn","Worker"],"sourceRoot":""}