{"version":3,"sources":["jsdelivr-header.js","/npm/globe.gl@2.45.2/dist/globe.gl.mjs"],"names":[],"mappings":"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","file":"/npm/globe.gl@2.45.2/dist/globe.gl.mjs/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.39.0.\n * Original file: /npm/globe.gl@2.45.2/dist/globe.gl.mjs\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { REVISION, Vector2, DirectionalLight, AmbientLight } from 'three';\nimport { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer.js';\nimport ThreeGlobe from 'three-globe';\nimport ThreeRenderObjects from 'three-render-objects';\nimport accessorFn from 'accessor-fn';\nimport Kapsule from 'kapsule';\nimport { Group, Tween, Easing } from '@tweenjs/tween.js';\n\nfunction styleInject(css, ref) {\n  if (ref === void 0) ref = {};\n  var insertAt = ref.insertAt;\n  if (typeof document === 'undefined') {\n    return;\n  }\n  var head = document.head || document.getElementsByTagName('head')[0];\n  var style = document.createElement('style');\n  style.type = 'text/css';\n  if (insertAt === 'top') {\n    if (head.firstChild) {\n      head.insertBefore(style, head.firstChild);\n    } else {\n      head.appendChild(style);\n    }\n  } else {\n    head.appendChild(style);\n  }\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nvar css_248z = \".scene-container .clickable {\\n  cursor: pointer;\\n}\";\nstyleInject(css_248z);\n\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n  return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: true,\n    configurable: true,\n    writable: true\n  }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _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}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = _objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n  if (\"object\" != typeof t || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r);\n    if (\"object\" != typeof i) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n  var i = _toPrimitive(t, \"string\");\n  return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\n\nfunction linkKapsule (kapsulePropName, kapsuleType) {\n  var dummyK = new kapsuleType(); // To extract defaults\n  dummyK._destructor && dummyK._destructor();\n  return {\n    linkProp: function linkProp(prop) {\n      // link property config\n      return {\n        \"default\": dummyK[prop](),\n        onChange: function onChange(v, state) {\n          state[kapsulePropName][prop](v);\n        },\n        triggerUpdate: false\n      };\n    },\n    linkMethod: function linkMethod(method) {\n      // link method pass-through\n      return function (state) {\n        var kapsuleInstance = state[kapsulePropName];\n        for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n          args[_key - 1] = arguments[_key];\n        }\n        var returnVal = kapsuleInstance[method].apply(kapsuleInstance, args);\n        return returnVal === kapsuleInstance ? this // chain based on the parent object, not the inner kapsule\n        : returnVal;\n      };\n    }\n  };\n}\n\nvar _excluded = [\"rendererConfig\", \"waitForGlobeReady\"];\nvar THREE = _objectSpread2(_objectSpread2({}, window.THREE ? window.THREE // Prefer consumption from global THREE, if exists\n: {\n  AmbientLight: AmbientLight,\n  DirectionalLight: DirectionalLight,\n  Vector2: Vector2,\n  REVISION: REVISION\n}), {}, {\n  CSS2DRenderer: CSS2DRenderer\n});\n\n//\n\n// Expose config from ThreeGlobe\nvar bindGlobe = linkKapsule('globe', ThreeGlobe);\nvar linkedGlobeProps = Object.assign.apply(Object, _toConsumableArray(['globeImageUrl', 'bumpImageUrl', 'globeTileEngineUrl', 'globeTileEngineMaxLevel', 'globeCurvatureResolution', 'showGlobe', 'showGraticules', 'showAtmosphere', 'atmosphereColor', 'atmosphereAltitude', 'onGlobeReady', 'pointsData', 'pointLat', 'pointLng', 'pointColor', 'pointAltitude', 'pointRadius', 'pointResolution', 'pointsMerge', 'pointsTransitionDuration', 'arcsData', 'arcStartLat', 'arcStartLng', 'arcStartAltitude', 'arcEndLat', 'arcEndLng', 'arcEndAltitude', 'arcColor', 'arcAltitude', 'arcAltitudeAutoScale', 'arcStroke', 'arcCurveResolution', 'arcCircularResolution', 'arcDashLength', 'arcDashGap', 'arcDashInitialGap', 'arcDashAnimateTime', 'arcsTransitionDuration', 'polygonsData', 'polygonGeoJsonGeometry', 'polygonCapColor', 'polygonCapMaterial', 'polygonSideColor', 'polygonSideMaterial', 'polygonStrokeColor', 'polygonAltitude', 'polygonCapCurvatureResolution', 'polygonsTransitionDuration', 'pathsData', 'pathPoints', 'pathPointLat', 'pathPointLng', 'pathPointAlt', 'pathResolution', 'pathColor', 'pathStroke', 'pathDashLength', 'pathDashGap', 'pathDashInitialGap', 'pathDashAnimateTime', 'pathTransitionDuration', 'heatmapsData', 'heatmapPoints', 'heatmapPointLat', 'heatmapPointLng', 'heatmapPointWeight', 'heatmapBandwidth', 'heatmapColorFn', 'heatmapColorSaturation', 'heatmapBaseAltitude', 'heatmapTopAltitude', 'heatmapsTransitionDuration', 'hexBinPointsData', 'hexBinPointLat', 'hexBinPointLng', 'hexBinPointWeight', 'hexBinResolution', 'hexMargin', 'hexTopCurvatureResolution', 'hexTopColor', 'hexSideColor', 'hexAltitude', 'hexBinMerge', 'hexTransitionDuration', 'hexPolygonsData', 'hexPolygonGeoJsonGeometry', 'hexPolygonColor', 'hexPolygonAltitude', 'hexPolygonResolution', 'hexPolygonMargin', 'hexPolygonUseDots', 'hexPolygonCurvatureResolution', 'hexPolygonDotResolution', 'hexPolygonsTransitionDuration', 'tilesData', 'tileLat', 'tileLng', 'tileAltitude', 'tileWidth', 'tileHeight', 'tileUseGlobeProjection', 'tileMaterial', 'tileCurvatureResolution', 'tilesTransitionDuration', 'particlesData', 'particlesList', 'particleLat', 'particleLng', 'particleAltitude', 'particlesSize', 'particlesSizeAttenuation', 'particlesColor', 'particlesTexture', 'ringsData', 'ringLat', 'ringLng', 'ringAltitude', 'ringColor', 'ringResolution', 'ringMaxRadius', 'ringPropagationSpeed', 'ringRepeatPeriod', 'labelsData', 'labelLat', 'labelLng', 'labelAltitude', 'labelRotation', 'labelText', 'labelSize', 'labelTypeFace', 'labelColor', 'labelResolution', 'labelIncludeDot', 'labelDotRadius', 'labelDotOrientation', 'labelsTransitionDuration', 'htmlElementsData', 'htmlLat', 'htmlLng', 'htmlAltitude', 'htmlElement', 'htmlElementVisibilityModifier', 'htmlTransitionDuration', 'objectsData', 'objectLat', 'objectLng', 'objectAltitude', 'objectRotation', 'objectFacesSurface', 'objectThreeObject', 'customLayerData', 'customThreeObject', 'customThreeObjectUpdate'].map(function (p) {\n  return _defineProperty({}, p, bindGlobe.linkProp(p));\n})));\nvar linkedGlobeMethods = Object.assign.apply(Object, _toConsumableArray(['globeMaterial', 'globeTileEngineClearCache', 'getGlobeRadius', 'getCoords', 'toGeoCoords'].map(function (p) {\n  return _defineProperty({}, p, bindGlobe.linkMethod(p));\n})));\n\n// Expose config from renderObjs\nvar bindRenderObjs = linkKapsule('renderObjs', ThreeRenderObjects);\nvar linkedRenderObjsProps = Object.assign.apply(Object, _toConsumableArray(['width', 'height', 'backgroundColor', 'backgroundImageUrl', 'enablePointerInteraction'].map(function (p) {\n  return _defineProperty({}, p, bindRenderObjs.linkProp(p));\n})));\nvar linkedRenderObjsMethods = Object.assign.apply(Object, _toConsumableArray(['lights', 'postProcessingComposer'].map(function (p) {\n  return _defineProperty({}, p, bindRenderObjs.linkMethod(p));\n})));\n\n//\n\nvar globe = Kapsule({\n  props: _objectSpread2(_objectSpread2({\n    onZoom: {\n      triggerUpdate: false\n    },\n    onGlobeClick: {\n      triggerUpdate: false\n    },\n    onGlobeRightClick: {\n      triggerUpdate: false\n    },\n    pointLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onPointClick: {\n      triggerUpdate: false\n    },\n    onPointRightClick: {\n      triggerUpdate: false\n    },\n    onPointHover: {\n      triggerUpdate: false\n    },\n    arcLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onArcClick: {\n      triggerUpdate: false\n    },\n    onArcRightClick: {\n      triggerUpdate: false\n    },\n    onArcHover: {\n      triggerUpdate: false\n    },\n    polygonLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onPolygonClick: {\n      triggerUpdate: false\n    },\n    onPolygonRightClick: {\n      triggerUpdate: false\n    },\n    onPolygonHover: {\n      triggerUpdate: false\n    },\n    pathLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onPathClick: {\n      triggerUpdate: false\n    },\n    onPathRightClick: {\n      triggerUpdate: false\n    },\n    onPathHover: {\n      triggerUpdate: false\n    },\n    onHeatmapClick: {\n      triggerUpdate: false\n    },\n    onHeatmapRightClick: {\n      triggerUpdate: false\n    },\n    onHeatmapHover: {\n      triggerUpdate: false\n    },\n    hexLabel: {\n      triggerUpdate: false\n    },\n    onHexClick: {\n      triggerUpdate: false\n    },\n    onHexRightClick: {\n      triggerUpdate: false\n    },\n    onHexHover: {\n      triggerUpdate: false\n    },\n    hexPolygonLabel: {\n      triggerUpdate: false\n    },\n    onHexPolygonClick: {\n      triggerUpdate: false\n    },\n    onHexPolygonRightClick: {\n      triggerUpdate: false\n    },\n    onHexPolygonHover: {\n      triggerUpdate: false\n    },\n    tileLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onTileClick: {\n      triggerUpdate: false\n    },\n    onTileRightClick: {\n      triggerUpdate: false\n    },\n    onTileHover: {\n      triggerUpdate: false\n    },\n    particleLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onParticleClick: {\n      triggerUpdate: false\n    },\n    onParticleRightClick: {\n      triggerUpdate: false\n    },\n    onParticleHover: {\n      triggerUpdate: false\n    },\n    labelLabel: {\n      triggerUpdate: false\n    },\n    onLabelClick: {\n      triggerUpdate: false\n    },\n    onLabelRightClick: {\n      triggerUpdate: false\n    },\n    onLabelHover: {\n      triggerUpdate: false\n    },\n    objectLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onObjectClick: {\n      triggerUpdate: false\n    },\n    onObjectRightClick: {\n      triggerUpdate: false\n    },\n    onObjectHover: {\n      triggerUpdate: false\n    },\n    customLayerLabel: {\n      \"default\": 'name',\n      triggerUpdate: false\n    },\n    onCustomLayerClick: {\n      triggerUpdate: false\n    },\n    onCustomLayerRightClick: {\n      triggerUpdate: false\n    },\n    onCustomLayerHover: {\n      triggerUpdate: false\n    },\n    pointerEventsFilter: {\n      \"default\": function _default() {\n        return true;\n      },\n      triggerUpdate: false\n    },\n    lineHoverPrecision: {\n      \"default\": 0.2,\n      triggerUpdate: false,\n      onChange: function onChange(val, state) {\n        state.renderObjs.lineHoverPrecision(val);\n        state.renderObjs.pointsHoverPrecision(val);\n      }\n    },\n    showPointerCursor: {\n      \"default\": true,\n      triggerUpdate: false\n    },\n    globeOffset: {\n      \"default\": [0, 0],\n      triggerUpdate: false,\n      onChange: function onChange(o, state) {\n        return Array.isArray(o) && o.length === 2 && state.renderObjs.viewOffset(o.map(function (v) {\n          return -v;\n        }));\n      }\n    }\n  }, linkedGlobeProps), linkedRenderObjsProps),\n  methods: _objectSpread2(_objectSpread2({\n    pauseAnimation: function pauseAnimation(state) {\n      var _state$globe;\n      if (state.animationFrameRequestId !== null) {\n        cancelAnimationFrame(state.animationFrameRequestId);\n        state.animationFrameRequestId = null;\n      }\n      (_state$globe = state.globe) === null || _state$globe === void 0 || _state$globe.pauseAnimation();\n      return this;\n    },\n    resumeAnimation: function resumeAnimation(state) {\n      var _state$globe2;\n      if (state.animationFrameRequestId === null) {\n        this._animationCycle();\n      }\n      (_state$globe2 = state.globe) === null || _state$globe2 === void 0 || _state$globe2.resumeAnimation();\n      return this;\n    },\n    _animationCycle: function _animationCycle(state) {\n      // Frame cycle\n      state.renderObjs.tick();\n      state.tweenGroup.update();\n      state.animationFrameRequestId = requestAnimationFrame(this._animationCycle);\n    },\n    pointOfView: function pointOfView(state) {\n      var geoCoords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var transitionDuration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n      var curGeoCoords = getGeoCoords();\n\n      // Getter\n      if (geoCoords.lat === undefined && geoCoords.lng === undefined && geoCoords.altitude === undefined) {\n        return curGeoCoords;\n      } else {\n        // Setter\n        var finalGeoCoords = Object.assign({}, curGeoCoords, geoCoords);\n        ['lat', 'lng', 'altitude'].forEach(function (p) {\n          return finalGeoCoords[p] = +finalGeoCoords[p];\n        }); // coerce coords to number\n\n        if (!transitionDuration) {\n          // no animation\n          setCameraPos(finalGeoCoords);\n        } else {\n          // Avoid rotating more than 180deg longitude\n          while (curGeoCoords.lng - finalGeoCoords.lng > 180) curGeoCoords.lng -= 360;\n          while (curGeoCoords.lng - finalGeoCoords.lng < -180) curGeoCoords.lng += 360;\n          state.tweenGroup.add(new Tween(curGeoCoords).to(finalGeoCoords, transitionDuration).easing(Easing.Cubic.InOut).onUpdate(setCameraPos).onComplete(function () {\n            state.tweenGroup.remove(this);\n          }).start());\n        }\n        return this;\n      }\n\n      //\n\n      function getGeoCoords() {\n        return state.globe.toGeoCoords(state.renderObjs.cameraPosition());\n      }\n      function setCameraPos(_ref5) {\n        var lat = _ref5.lat,\n          lng = _ref5.lng,\n          altitude = _ref5.altitude;\n        state.renderObjs.cameraPosition(state.globe.getCoords(lat, lng, altitude));\n        state.globe.setPointOfView(state.renderObjs.camera()); // report position to globe\n      }\n    },\n    getScreenCoords: function getScreenCoords(state) {\n      var _state$globe3;\n      for (var _len = arguments.length, geoCoords = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        geoCoords[_key - 1] = arguments[_key];\n      }\n      var cartesianCoords = (_state$globe3 = state.globe).getCoords.apply(_state$globe3, geoCoords);\n      return state.renderObjs.getScreenCoords(cartesianCoords.x, cartesianCoords.y, cartesianCoords.z);\n    },\n    toGlobeCoords: function toGlobeCoords(state, x, y) {\n      var globeIntersects = state.renderObjs.intersectingObjects(x, y).find(function (d) {\n        return (d.object.__globeObjType || d.object.parent.__globeObjType) === 'globe';\n      });\n      if (!globeIntersects) return null; // coords outside globe\n\n      var _state$globe$toGeoCoo = state.globe.toGeoCoords(globeIntersects.point),\n        lat = _state$globe$toGeoCoo.lat,\n        lng = _state$globe$toGeoCoo.lng;\n      return {\n        lat: lat,\n        lng: lng\n      };\n    },\n    scene: function scene(state) {\n      return state.renderObjs.scene();\n    },\n    // Expose scene\n    camera: function camera(state) {\n      return state.renderObjs.camera();\n    },\n    // Expose camera\n    renderer: function renderer(state) {\n      return state.renderObjs.renderer();\n    },\n    // Expose renderer\n    controls: function controls(state) {\n      return state.renderObjs.controls();\n    },\n    // Expose controls\n    _destructor: function _destructor(state) {\n      state.globe._destructor();\n      this.pauseAnimation();\n      this.pointsData([]);\n      this.arcsData([]);\n      this.polygonsData([]);\n      this.pathsData([]);\n      this.heatmapsData([]);\n      this.hexBinPointsData([]);\n      this.hexPolygonsData([]);\n      this.tilesData([]);\n      this.particlesData([]);\n      this.labelsData([]);\n      this.htmlElementsData([]);\n      this.objectsData([]);\n      this.customLayerData([]);\n    }\n  }, linkedGlobeMethods), linkedRenderObjsMethods),\n  stateInit: function stateInit(_ref6) {\n    var rendererConfig = _ref6.rendererConfig,\n      _ref6$waitForGlobeRea = _ref6.waitForGlobeReady,\n      waitForGlobeReady = _ref6$waitForGlobeRea === void 0 ? true : _ref6$waitForGlobeRea,\n      globeInitConfig = _objectWithoutProperties(_ref6, _excluded);\n    var globe = new ThreeGlobe(_objectSpread2({\n      waitForGlobeReady: waitForGlobeReady\n    }, globeInitConfig));\n    return {\n      globe: globe,\n      renderObjs: ThreeRenderObjects({\n        controlType: 'orbit',\n        rendererConfig: rendererConfig,\n        waitForLoadComplete: waitForGlobeReady,\n        extraRenderers: [new THREE.CSS2DRenderer()] // Used in HTML elements layer\n      }).skyRadius(globe.getGlobeRadius() * 500).showNavInfo(false).objects([globe]) // Populate scene\n      .lights([new THREE.AmbientLight(0xcccccc, Math.PI), new THREE.DirectionalLight(0xffffff, 0.6 * Math.PI)]),\n      tweenGroup: new Group()\n    };\n  },\n  init: function init(domNode, state) {\n    var _this = this;\n    // Wipe DOM\n    domNode.innerHTML = '';\n\n    // Add relative container\n    domNode.appendChild(state.container = document.createElement('div'));\n    state.container.style.position = 'relative';\n\n    // Add renderObjs\n    var roDomNode = document.createElement('div');\n    state.container.appendChild(roDomNode);\n    state.renderObjs(roDomNode);\n\n    // inject renderer size on three-globe\n    state.globe.rendererSize(state.renderObjs.renderer().getSize(new THREE.Vector2()));\n\n    // set initial distance\n    this.pointOfView({\n      altitude: 2.5\n    });\n\n    // calibrate orbit controls\n    var globeR = state.globe.getGlobeRadius();\n    var controls = state.renderObjs.controls();\n    state.renderObjs.camera().near = 0.05; // less will start causing depth z-fighting issues\n    controls.minDistance = globeR + Math.max(0.001, state.renderObjs.camera().near * 1.1); // just above the surface, as much as camera near plane permits\n    controls.maxDistance = globeR * 100;\n    controls.enablePan = false;\n    controls.enableDamping = true;\n    controls.dampingFactor = 0.1;\n    controls.rotateSpeed = 0.3;\n    controls.zoomSpeed = 0.3;\n    controls.zoomToCursor = true;\n    controls.addEventListener('change', function () {\n      controls.target.setScalar(0); // Keep orbit target on center\n\n      // adjust controls speed based on altitude\n      var pov = _this.pointOfView();\n      controls.rotateSpeed = pov.altitude * 0.3;\n      controls.zoomSpeed = Math.sqrt(pov.altitude) * 0.5;\n\n      // Update three-globe pov when camera moves, for proper hiding of elements\n      state.globe.setPointOfView(state.renderObjs.camera());\n      state.onZoom && state.onZoom(pov);\n    });\n\n    // config renderObjs\n    var getGlobeObj = function getGlobeObj(object) {\n      var obj = object;\n      // recurse up object chain until finding the globe object\n      while (obj && !obj.hasOwnProperty('__globeObjType')) {\n        obj = obj.parent;\n      }\n      return obj;\n    };\n    var dataAccessors = {\n      point: function point(d) {\n        return d;\n      },\n      arc: function arc(d) {\n        return d;\n      },\n      polygon: function polygon(d) {\n        return d.data;\n      },\n      path: function path(d) {\n        return d;\n      },\n      heatmap: function heatmap(d) {\n        return d;\n      },\n      hexbin: function hexbin(d) {\n        return d;\n      },\n      hexPolygon: function hexPolygon(d) {\n        return d;\n      },\n      tile: function tile(d) {\n        return d;\n      },\n      particles: function particles(d, intersection) {\n        return !intersection || !intersection.hasOwnProperty('index') || d.length <= intersection.index ? d : d[intersection.index];\n      },\n      label: function label(d) {\n        return d;\n      },\n      object: function object(d) {\n        return d;\n      },\n      custom: function custom(d) {\n        return d;\n      }\n    };\n    THREE.REVISION < 155 && (state.renderObjs.renderer().useLegacyLights = false); // force behavior of three < 155\n    state.renderObjs.hoverFilter(function (obj) {\n      var o = getGlobeObj(obj);\n\n      // ignore non-globe objects\n      if (!o) return false;\n      var type = o.__globeObjType;\n      if (type !== 'globe' && !dataAccessors.hasOwnProperty(type)) return false; // Ignore obj types with no data\n      var d = dataAccessors.hasOwnProperty(type) && o.__data ? dataAccessors[type](o.__data) : null;\n\n      // Ignore merged geometry objects that don't have interaction per point\n      if (['points', 'hexBinPoints'].some(function (t) {\n        return t === type;\n      }) && Array.isArray(d)) return false;\n      return state.pointerEventsFilter(o, d);\n    }).tooltipContent(function (obj, intersection) {\n      var objAccessors = {\n        point: state.pointLabel,\n        arc: state.arcLabel,\n        polygon: state.polygonLabel,\n        path: state.pathLabel,\n        hexbin: state.hexLabel,\n        hexPolygon: state.hexPolygonLabel,\n        tile: state.tileLabel,\n        particles: state.particleLabel,\n        label: state.labelLabel,\n        object: state.objectLabel,\n        custom: state.customLayerLabel\n      };\n      var globeObj = getGlobeObj(obj);\n      var objType = globeObj && globeObj.__globeObjType;\n      return globeObj && objType && objAccessors.hasOwnProperty(objType) && dataAccessors.hasOwnProperty(objType) ? accessorFn(objAccessors[objType])(dataAccessors[objType](globeObj.__data, intersection)) || '' : '';\n    }).onHover(function (obj, _, intersection) {\n      // Update tooltip and trigger onHover events\n      var hoverObjFns = {\n        point: state.onPointHover,\n        arc: state.onArcHover,\n        polygon: state.onPolygonHover,\n        path: state.onPathHover,\n        heatmap: state.onHeatmapHover,\n        hexbin: state.onHexHover,\n        hexPolygon: state.onHexPolygonHover,\n        tile: state.onTileHover,\n        particles: state.onParticleHover,\n        label: state.onLabelHover,\n        object: state.onObjectHover,\n        custom: state.onCustomLayerHover\n      };\n      var clickObjFns = {\n        globe: state.onGlobeClick,\n        point: state.onPointClick,\n        arc: state.onArcClick,\n        polygon: state.onPolygonClick,\n        path: state.onPathClick,\n        heatmap: state.onHeatmapClick,\n        hexbin: state.onHexClick,\n        hexPolygon: state.onHexPolygonClick,\n        tile: state.onTileClick,\n        particles: state.onParticleClick,\n        label: state.onLabelClick,\n        object: state.onObjectClick,\n        custom: state.onCustomLayerClick\n      };\n      var hoverObj = getGlobeObj(obj);\n\n      // ignore non-recognised obj types\n      hoverObj && !hoverObjFns.hasOwnProperty(hoverObj.__globeObjType) && (hoverObj = null);\n      if (hoverObj !== state.hoverObj) {\n        var _hoverObj;\n        var prevObjType = state.hoverObj ? state.hoverObj.__globeObjType : null;\n        var prevObjData = state.hoverData;\n        var objType = hoverObj ? hoverObj.__globeObjType : null;\n        var objData = (_hoverObj = hoverObj) !== null && _hoverObj !== void 0 && _hoverObj.__data ? dataAccessors[objType](hoverObj.__data, intersection) : null;\n        if (prevObjType && prevObjType !== objType) {\n          // Hover out\n          hoverObjFns[prevObjType] && hoverObjFns[prevObjType](null, prevObjData || null);\n        }\n        if (objType) {\n          // Hover in\n          hoverObjFns[objType] && hoverObjFns[objType](objData, prevObjType === objType ? prevObjData : null);\n        }\n\n        // set pointer if hovered object is clickable\n        state.renderObjs.renderer().domElement.classList[objType && clickObjFns[objType] && accessorFn(state.showPointerCursor)(objType, objData) ? 'add' : 'remove']('clickable');\n        state.hoverObj = hoverObj;\n        state.hoverData = objData;\n      }\n    }).onClick(function (obj, ev, intersection) {\n      if (!obj) return; // ignore background clicks\n\n      // Handle click events on objects\n      var objFns = {\n        globe: state.onGlobeClick,\n        point: state.onPointClick,\n        arc: state.onArcClick,\n        polygon: state.onPolygonClick,\n        path: state.onPathClick,\n        heatmap: state.onHeatmapClick,\n        hexbin: state.onHexClick,\n        hexPolygon: state.onHexPolygonClick,\n        tile: state.onTileClick,\n        particles: state.onParticleClick,\n        label: state.onLabelClick,\n        object: state.onObjectClick,\n        custom: state.onCustomLayerClick\n      };\n      var globeObj = getGlobeObj(obj);\n      var objType = globeObj.__globeObjType;\n      if (globeObj && objFns.hasOwnProperty(objType) && objFns[objType]) {\n        var args = [ev];\n\n        // include click coords\n        var point = intersection !== null && intersection !== void 0 && intersection.isVector3 ? intersection : intersection === null || intersection === void 0 ? void 0 : intersection.point;\n        if (objType === 'globe') {\n          var _this$toGeoCoords = _this.toGeoCoords(point),\n            lat = _this$toGeoCoords.lat,\n            lng = _this$toGeoCoords.lng;\n          args.unshift({\n            lat: lat,\n            lng: lng\n          });\n        } else {\n          args.push(_this.toGeoCoords(point));\n        }\n        dataAccessors.hasOwnProperty(objType) && args.unshift(dataAccessors[objType](globeObj.__data, intersection));\n        objFns[objType].apply(objFns, args);\n      }\n    }).onRightClick(function (obj, ev, intersection) {\n      if (!obj) return; // ignore background clicks\n\n      // Handle right-click events\n      var objFns = {\n        globe: state.onGlobeRightClick,\n        point: state.onPointRightClick,\n        arc: state.onArcRightClick,\n        polygon: state.onPolygonRightClick,\n        path: state.onPathRightClick,\n        heatmap: state.onHeatmapRightClick,\n        hexbin: state.onHexRightClick,\n        hexPolygon: state.onHexPolygonRightClick,\n        tile: state.onTileRightClick,\n        particles: state.onParticleRightClick,\n        label: state.onLabelRightClick,\n        object: state.onObjectRightClick,\n        custom: state.onCustomLayerRightClick\n      };\n      var globeObj = getGlobeObj(obj);\n      var objType = globeObj.__globeObjType;\n      if (globeObj && objFns.hasOwnProperty(objType) && objFns[objType]) {\n        var args = [ev];\n\n        // include click coords\n        var point = intersection !== null && intersection !== void 0 && intersection.isVector3 ? intersection : intersection === null || intersection === void 0 ? void 0 : intersection.point;\n        if (objType === 'globe') {\n          var _this$toGeoCoords2 = _this.toGeoCoords(point),\n            lat = _this$toGeoCoords2.lat,\n            lng = _this$toGeoCoords2.lng;\n          args.unshift({\n            lat: lat,\n            lng: lng\n          });\n        } else {\n          args.push(_this.toGeoCoords(point));\n        }\n        dataAccessors.hasOwnProperty(objType) && args.unshift(dataAccessors[objType](globeObj.__data, intersection));\n        objFns[objType].apply(objFns, args);\n      }\n    });\n\n    //\n\n    // Kick-off renderer\n    this._animationCycle();\n  }\n});\n\nexport { globe as default };\n"]}