globe.gl 2.26.6 → 2.26.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,26 +8,15 @@ var accessorFn = require('accessor-fn');
8
8
  var Kapsule = require('kapsule');
9
9
  var TWEEN = require('@tweenjs/tween.js');
10
10
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
-
13
- var ThreeGlobe__default = /*#__PURE__*/_interopDefaultLegacy(ThreeGlobe);
14
- var ThreeRenderObjects__default = /*#__PURE__*/_interopDefaultLegacy(ThreeRenderObjects);
15
- var accessorFn__default = /*#__PURE__*/_interopDefaultLegacy(accessorFn);
16
- var Kapsule__default = /*#__PURE__*/_interopDefaultLegacy(Kapsule);
17
- var TWEEN__default = /*#__PURE__*/_interopDefaultLegacy(TWEEN);
18
-
19
11
  function styleInject(css, ref) {
20
12
  if (ref === void 0) ref = {};
21
13
  var insertAt = ref.insertAt;
22
-
23
14
  if (!css || typeof document === 'undefined') {
24
15
  return;
25
16
  }
26
-
27
17
  var head = document.head || document.getElementsByTagName('head')[0];
28
18
  var style = document.createElement('style');
29
19
  style.type = 'text/css';
30
-
31
20
  if (insertAt === 'top') {
32
21
  if (head.firstChild) {
33
22
  head.insertBefore(style, head.firstChild);
@@ -37,7 +26,6 @@ function styleInject(css, ref) {
37
26
  } else {
38
27
  head.appendChild(style);
39
28
  }
40
-
41
29
  if (style.styleSheet) {
42
30
  style.styleSheet.cssText = css;
43
31
  } else {
@@ -50,17 +38,14 @@ styleInject(css_248z);
50
38
 
51
39
  function ownKeys(object, enumerableOnly) {
52
40
  var keys = Object.keys(object);
53
-
54
41
  if (Object.getOwnPropertySymbols) {
55
42
  var symbols = Object.getOwnPropertySymbols(object);
56
43
  enumerableOnly && (symbols = symbols.filter(function (sym) {
57
44
  return Object.getOwnPropertyDescriptor(object, sym).enumerable;
58
45
  })), keys.push.apply(keys, symbols);
59
46
  }
60
-
61
47
  return keys;
62
48
  }
63
-
64
49
  function _objectSpread2(target) {
65
50
  for (var i = 1; i < arguments.length; i++) {
66
51
  var source = null != arguments[i] ? arguments[i] : {};
@@ -70,10 +55,8 @@ function _objectSpread2(target) {
70
55
  Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
71
56
  });
72
57
  }
73
-
74
58
  return target;
75
59
  }
76
-
77
60
  function _defineProperty(obj, key, value) {
78
61
  if (key in obj) {
79
62
  Object.defineProperty(obj, key, {
@@ -85,35 +68,26 @@ function _defineProperty(obj, key, value) {
85
68
  } else {
86
69
  obj[key] = value;
87
70
  }
88
-
89
71
  return obj;
90
72
  }
91
-
92
73
  function _objectWithoutPropertiesLoose(source, excluded) {
93
74
  if (source == null) return {};
94
75
  var target = {};
95
76
  var sourceKeys = Object.keys(source);
96
77
  var key, i;
97
-
98
78
  for (i = 0; i < sourceKeys.length; i++) {
99
79
  key = sourceKeys[i];
100
80
  if (excluded.indexOf(key) >= 0) continue;
101
81
  target[key] = source[key];
102
82
  }
103
-
104
83
  return target;
105
84
  }
106
-
107
85
  function _objectWithoutProperties(source, excluded) {
108
86
  if (source == null) return {};
109
-
110
87
  var target = _objectWithoutPropertiesLoose(source, excluded);
111
-
112
88
  var key, i;
113
-
114
89
  if (Object.getOwnPropertySymbols) {
115
90
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
116
-
117
91
  for (i = 0; i < sourceSymbolKeys.length; i++) {
118
92
  key = sourceSymbolKeys[i];
119
93
  if (excluded.indexOf(key) >= 0) continue;
@@ -121,22 +95,17 @@ function _objectWithoutProperties(source, excluded) {
121
95
  target[key] = source[key];
122
96
  }
123
97
  }
124
-
125
98
  return target;
126
99
  }
127
-
128
100
  function _toConsumableArray(arr) {
129
101
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
130
102
  }
131
-
132
103
  function _arrayWithoutHoles(arr) {
133
104
  if (Array.isArray(arr)) return _arrayLikeToArray(arr);
134
105
  }
135
-
136
106
  function _iterableToArray(iter) {
137
107
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
138
108
  }
139
-
140
109
  function _unsupportedIterableToArray(o, minLen) {
141
110
  if (!o) return;
142
111
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
@@ -145,15 +114,11 @@ function _unsupportedIterableToArray(o, minLen) {
145
114
  if (n === "Map" || n === "Set") return Array.from(o);
146
115
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
147
116
  }
148
-
149
117
  function _arrayLikeToArray(arr, len) {
150
118
  if (len == null || len > arr.length) len = arr.length;
151
-
152
119
  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
153
-
154
120
  return arr2;
155
121
  }
156
-
157
122
  function _nonIterableSpread() {
158
123
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
159
124
  }
@@ -176,11 +141,9 @@ function linkKapsule (kapsulePropName, kapsuleType) {
176
141
  // link method pass-through
177
142
  return function (state) {
178
143
  var kapsuleInstance = state[kapsulePropName];
179
-
180
144
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
181
145
  args[_key - 1] = arguments[_key];
182
146
  }
183
-
184
147
  var returnVal = kapsuleInstance[method].apply(kapsuleInstance, args);
185
148
  return returnVal === kapsuleInstance ? this // chain based on the parent object, not the inner kapsule
186
149
  : returnVal;
@@ -190,7 +153,6 @@ function linkKapsule (kapsulePropName, kapsuleType) {
190
153
  }
191
154
 
192
155
  var _excluded = ["rendererConfig", "waitForGlobeReady"];
193
-
194
156
  var THREE = _objectSpread2(_objectSpread2({}, window.THREE ? window.THREE // Prefer consumption from global THREE, if exists
195
157
  : {
196
158
  AmbientLight: three.AmbientLight,
@@ -199,25 +161,30 @@ var THREE = _objectSpread2(_objectSpread2({}, window.THREE ? window.THREE // Pre
199
161
  }), {}, {
200
162
  CSS2DRenderer: CSS2DRenderer_js.CSS2DRenderer
201
163
  });
202
- // Expose config from ThreeGlobe
203
164
 
204
- var bindGlobe = linkKapsule('globe', ThreeGlobe__default["default"]);
165
+ //
166
+
167
+ // Expose config from ThreeGlobe
168
+ var bindGlobe = linkKapsule('globe', ThreeGlobe);
205
169
  var linkedGlobeProps = Object.assign.apply(Object, _toConsumableArray(['globeImageUrl', 'bumpImageUrl', 'showGlobe', 'showGraticules', 'showAtmosphere', 'atmosphereColor', 'atmosphereAltitude', 'globeMaterial', 'onGlobeReady', 'pointsData', 'pointLat', 'pointLng', 'pointColor', 'pointAltitude', 'pointRadius', 'pointResolution', 'pointsMerge', 'pointsTransitionDuration', 'arcsData', 'arcStartLat', 'arcStartLng', 'arcEndLat', 'arcEndLng', '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', 'hexBinPointsData', 'hexBinPointLat', 'hexBinPointLng', 'hexBinPointWeight', 'hexBinResolution', 'hexMargin', 'hexTopCurvatureResolution', 'hexTopColor', 'hexSideColor', 'hexAltitude', 'hexBinMerge', 'hexTransitionDuration', 'hexPolygonsData', 'hexPolygonGeoJsonGeometry', 'hexPolygonColor', 'hexPolygonAltitude', 'hexPolygonResolution', 'hexPolygonMargin', 'hexPolygonCurvatureResolution', 'hexPolygonsTransitionDuration', 'tilesData', 'tileLat', 'tileLng', 'tileAltitude', 'tileWidth', 'tileHeight', 'tileUseGlobeProjection', 'tileMaterial', 'tileCurvatureResolution', 'tilesTransitionDuration', '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', 'htmlTransitionDuration', 'objectsData', 'objectLat', 'objectLng', 'objectAltitude', 'objectThreeObject', 'customLayerData', 'customThreeObject', 'customThreeObjectUpdate'].map(function (p) {
206
170
  return _defineProperty({}, p, bindGlobe.linkProp(p));
207
171
  })));
208
172
  var linkedGlobeMethods = Object.assign.apply(Object, _toConsumableArray(['getGlobeRadius', 'getCoords', 'toGeoCoords'].map(function (p) {
209
173
  return _defineProperty({}, p, bindGlobe.linkMethod(p));
210
- }))); // Expose config from renderObjs
174
+ })));
211
175
 
212
- var bindRenderObjs = linkKapsule('renderObjs', ThreeRenderObjects__default["default"]);
176
+ // Expose config from renderObjs
177
+ var bindRenderObjs = linkKapsule('renderObjs', ThreeRenderObjects);
213
178
  var linkedRenderObjsProps = Object.assign.apply(Object, _toConsumableArray(['width', 'height', 'backgroundColor', 'backgroundImageUrl', 'enablePointerInteraction'].map(function (p) {
214
179
  return _defineProperty({}, p, bindRenderObjs.linkProp(p));
215
180
  })));
216
181
  var linkedRenderObjsMethods = Object.assign.apply(Object, _toConsumableArray(['postProcessingComposer'].map(function (p) {
217
182
  return _defineProperty({}, p, bindRenderObjs.linkMethod(p));
218
- }))); //
183
+ })));
219
184
 
220
- var globe = Kapsule__default["default"]({
185
+ //
186
+
187
+ var globe = Kapsule({
221
188
  props: _objectSpread2(_objectSpread2({
222
189
  onZoom: {
223
190
  triggerUpdate: false
@@ -380,14 +347,12 @@ var globe = Kapsule__default["default"]({
380
347
  cancelAnimationFrame(state.animationFrameRequestId);
381
348
  state.animationFrameRequestId = null;
382
349
  }
383
-
384
350
  return this;
385
351
  },
386
352
  resumeAnimation: function resumeAnimation(state) {
387
353
  if (state.animationFrameRequestId === null) {
388
354
  this._animationCycle();
389
355
  }
390
-
391
356
  return this;
392
357
  },
393
358
  _animationCycle: function _animationCycle(state) {
@@ -398,8 +363,9 @@ var globe = Kapsule__default["default"]({
398
363
  pointOfView: function pointOfView(state) {
399
364
  var geoCoords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
400
365
  var transitionDuration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
401
- var curGeoCoords = getGeoCoords(); // Getter
366
+ var curGeoCoords = getGeoCoords();
402
367
 
368
+ // Getter
403
369
  if (geoCoords.lat === undefined && geoCoords.lng === undefined && geoCoords.altitude === undefined) {
404
370
  return curGeoCoords;
405
371
  } else {
@@ -417,38 +383,32 @@ var globe = Kapsule__default["default"]({
417
383
  while (curGeoCoords.lng - finalGeoCoords.lng > 180) {
418
384
  curGeoCoords.lng -= 360;
419
385
  }
420
-
421
386
  while (curGeoCoords.lng - finalGeoCoords.lng < -180) {
422
387
  curGeoCoords.lng += 360;
423
388
  }
424
-
425
- new TWEEN__default["default"].Tween(curGeoCoords).to(finalGeoCoords, transitionDuration).easing(TWEEN__default["default"].Easing.Cubic.InOut).onUpdate(setCameraPos).start();
389
+ new TWEEN.Tween(curGeoCoords).to(finalGeoCoords, transitionDuration).easing(TWEEN.Easing.Cubic.InOut).onUpdate(setCameraPos).start();
426
390
  }
427
-
428
391
  return this;
429
- } //
392
+ }
430
393
 
394
+ //
431
395
 
432
396
  function getGeoCoords() {
433
397
  return state.globe.toGeoCoords(state.renderObjs.cameraPosition());
434
398
  }
435
-
436
399
  function setCameraPos(_ref5) {
437
400
  var lat = _ref5.lat,
438
- lng = _ref5.lng,
439
- altitude = _ref5.altitude;
401
+ lng = _ref5.lng,
402
+ altitude = _ref5.altitude;
440
403
  state.renderObjs.cameraPosition(state.globe.getCoords(lat, lng, altitude));
441
404
  }
442
405
  },
443
406
  getScreenCoords: function getScreenCoords(state) {
444
407
  var _state$globe;
445
-
446
408
  for (var _len = arguments.length, geoCoords = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
447
409
  geoCoords[_key - 1] = arguments[_key];
448
410
  }
449
-
450
411
  var cartesianCoords = (_state$globe = state.globe).getCoords.apply(_state$globe, geoCoords);
451
-
452
412
  return state.renderObjs.getScreenCoords(cartesianCoords.x, cartesianCoords.y, cartesianCoords.z);
453
413
  },
454
414
  toGlobeCoords: function toGlobeCoords(state, x, y) {
@@ -458,9 +418,8 @@ var globe = Kapsule__default["default"]({
458
418
  if (!globeIntersects) return null; // coords outside globe
459
419
 
460
420
  var _state$globe$toGeoCoo = state.globe.toGeoCoords(globeIntersects.point),
461
- lat = _state$globe$toGeoCoo.lat,
462
- lng = _state$globe$toGeoCoo.lng;
463
-
421
+ lat = _state$globe$toGeoCoo.lat,
422
+ lng = _state$globe$toGeoCoo.lng;
464
423
  return {
465
424
  lat: lat,
466
425
  lng: lng
@@ -499,47 +458,48 @@ var globe = Kapsule__default["default"]({
499
458
  }, linkedGlobeMethods), linkedRenderObjsMethods),
500
459
  stateInit: function stateInit(_ref6) {
501
460
  var rendererConfig = _ref6.rendererConfig,
502
- _ref6$waitForGlobeRea = _ref6.waitForGlobeReady,
503
- waitForGlobeReady = _ref6$waitForGlobeRea === void 0 ? true : _ref6$waitForGlobeRea,
504
- globeInitConfig = _objectWithoutProperties(_ref6, _excluded);
505
-
506
- var globe = new ThreeGlobe__default["default"](_objectSpread2({
461
+ _ref6$waitForGlobeRea = _ref6.waitForGlobeReady,
462
+ waitForGlobeReady = _ref6$waitForGlobeRea === void 0 ? true : _ref6$waitForGlobeRea,
463
+ globeInitConfig = _objectWithoutProperties(_ref6, _excluded);
464
+ var globe = new ThreeGlobe(_objectSpread2({
507
465
  waitForGlobeReady: waitForGlobeReady
508
466
  }, globeInitConfig));
509
467
  return {
510
468
  globe: globe,
511
- renderObjs: ThreeRenderObjects__default["default"]({
469
+ renderObjs: ThreeRenderObjects({
512
470
  controlType: 'orbit',
513
471
  rendererConfig: rendererConfig,
514
472
  waitForLoadComplete: waitForGlobeReady,
515
473
  extraRenderers: [new THREE.CSS2DRenderer()] // Used in HTML elements layer
516
-
517
474
  }).skyRadius(globe.getGlobeRadius() * 500).showNavInfo(false)
518
475
  };
519
476
  },
520
477
  init: function init(domNode, state) {
521
478
  var _this = this;
522
-
523
479
  // Wipe DOM
524
- domNode.innerHTML = ''; // Add relative container
480
+ domNode.innerHTML = '';
525
481
 
482
+ // Add relative container
526
483
  domNode.appendChild(state.container = document.createElement('div'));
527
- state.container.style.position = 'relative'; // Add renderObjs
484
+ state.container.style.position = 'relative';
528
485
 
486
+ // Add renderObjs
529
487
  var roDomNode = document.createElement('div');
530
488
  state.container.appendChild(roDomNode);
531
- state.renderObjs(roDomNode); // inject renderer size on three-globe
489
+ state.renderObjs(roDomNode);
532
490
 
533
- state.globe.rendererSize(state.renderObjs.renderer().getSize(new THREE.Vector2())); // set initial distance
491
+ // inject renderer size on three-globe
492
+ state.globe.rendererSize(state.renderObjs.renderer().getSize(new THREE.Vector2()));
534
493
 
494
+ // set initial distance
535
495
  this.pointOfView({
536
496
  altitude: 2.5
537
- }); // calibrate orbit controls
497
+ });
538
498
 
499
+ // calibrate orbit controls
539
500
  var globeR = state.globe.getGlobeRadius();
540
501
  var controls = state.renderObjs.controls();
541
502
  controls.minDistance = globeR * 1.01; // just above the surface
542
-
543
503
  controls.maxDistance = globeR * 100;
544
504
  controls.enablePan = false;
545
505
  controls.enableDamping = true;
@@ -549,26 +509,23 @@ var globe = Kapsule__default["default"]({
549
509
  controls.addEventListener('change', function () {
550
510
  // adjust controls speed based on altitude
551
511
  var pov = _this.pointOfView();
552
-
553
512
  controls.rotateSpeed = pov.altitude * 0.2; // Math.pow(pov.altitude + 1, 2) * 0.025;
554
-
555
513
  controls.zoomSpeed = (pov.altitude + 1) * 0.1; // Math.sqrt(pov.altitude) * 0.2;
556
- // Update three-globe pov when camera moves, for proper hiding of elements
557
514
 
515
+ // Update three-globe pov when camera moves, for proper hiding of elements
558
516
  state.globe.setPointOfView(state.renderObjs.camera().position);
559
517
  state.onZoom && state.onZoom(pov);
560
- }); // config renderObjs
518
+ });
561
519
 
520
+ // config renderObjs
562
521
  var getGlobeObj = function getGlobeObj(object) {
563
- var obj = object; // recurse up object chain until finding the globe object
564
-
522
+ var obj = object;
523
+ // recurse up object chain until finding the globe object
565
524
  while (obj && !obj.hasOwnProperty('__globeObjType')) {
566
525
  obj = obj.parent;
567
526
  }
568
-
569
527
  return obj;
570
528
  };
571
-
572
529
  var dataAccessors = {
573
530
  point: function point(d) {
574
531
  return d;
@@ -601,16 +558,16 @@ var globe = Kapsule__default["default"]({
601
558
  return d;
602
559
  }
603
560
  };
604
- state.renderObjs.objects([// Populate scene
561
+ state.renderObjs.objects([
562
+ // Populate scene
605
563
  new THREE.AmbientLight(0xbbbbbb), new THREE.DirectionalLight(0xffffff, 0.6), state.globe]).hoverOrderComparator(function (a, b) {
606
564
  var aObj = getGlobeObj(a);
607
- var bObj = getGlobeObj(b); // de-prioritize background / non-globe objects
565
+ var bObj = getGlobeObj(b);
608
566
 
567
+ // de-prioritize background / non-globe objects
609
568
  var isBackground = function isBackground(o) {
610
569
  return !o;
611
570
  }; // || o.__globeObjType === 'globe' || o.__globeObjType === 'atmosphere';
612
-
613
-
614
571
  return isBackground(aObj) - isBackground(bObj);
615
572
  }).tooltipContent(function (obj) {
616
573
  var objAccessors = {
@@ -627,7 +584,7 @@ var globe = Kapsule__default["default"]({
627
584
  };
628
585
  var globeObj = getGlobeObj(obj);
629
586
  var objType = globeObj && globeObj.__globeObjType;
630
- return globeObj && objType && objAccessors.hasOwnProperty(objType) && dataAccessors.hasOwnProperty(objType) ? accessorFn__default["default"](objAccessors[objType])(dataAccessors[objType](globeObj.__data)) || '' : '';
587
+ return globeObj && objType && objAccessors.hasOwnProperty(objType) && dataAccessors.hasOwnProperty(objType) ? accessorFn(objAccessors[objType])(dataAccessors[objType](globeObj.__data)) || '' : '';
631
588
  }).onHover(function (obj) {
632
589
  // Update tooltip and trigger onHover events
633
590
  var hoverObjFns = {
@@ -655,34 +612,32 @@ var globe = Kapsule__default["default"]({
655
612
  object: state.onObjectClick,
656
613
  custom: state.onCustomLayerClick
657
614
  };
658
- var hoverObj = getGlobeObj(obj); // ignore non-recognised obj types
615
+ var hoverObj = getGlobeObj(obj);
659
616
 
617
+ // ignore non-recognised obj types
660
618
  hoverObj && !hoverObjFns.hasOwnProperty(hoverObj.__globeObjType) && (hoverObj = null);
661
-
662
619
  if (hoverObj !== state.hoverObj) {
663
620
  var prevObjType = state.hoverObj ? state.hoverObj.__globeObjType : null;
664
621
  var prevObjData = state.hoverObj ? dataAccessors[prevObjType](state.hoverObj.__data) : null;
665
622
  var objType = hoverObj ? hoverObj.__globeObjType : null;
666
623
  var objData = hoverObj ? dataAccessors[objType](hoverObj.__data) : null;
667
-
668
624
  if (prevObjType && prevObjType !== objType) {
669
625
  // Hover out
670
626
  hoverObjFns[prevObjType] && hoverObjFns[prevObjType](null, prevObjData);
671
627
  }
672
-
673
628
  if (objType) {
674
629
  // Hover in
675
630
  hoverObjFns[objType] && hoverObjFns[objType](objData, prevObjType === objType ? prevObjData : null);
676
- } // set pointer if hovered object is clickable
677
-
631
+ }
678
632
 
633
+ // set pointer if hovered object is clickable
679
634
  state.renderObjs.renderer().domElement.classList[objType && clickObjFns[objType] ? 'add' : 'remove']('clickable');
680
635
  state.hoverObj = hoverObj;
681
636
  }
682
637
  }).onClick(function (obj, ev, point) {
683
638
  if (!obj) return; // ignore background clicks
684
- // Handle click events on objects
685
639
 
640
+ // Handle click events on objects
686
641
  var objFns = {
687
642
  globe: state.onGlobeClick,
688
643
  point: state.onPointClick,
@@ -698,15 +653,14 @@ var globe = Kapsule__default["default"]({
698
653
  };
699
654
  var globeObj = getGlobeObj(obj);
700
655
  var objType = globeObj.__globeObjType;
701
-
702
656
  if (globeObj && objFns.hasOwnProperty(objType) && objFns[objType]) {
703
- var args = [ev]; // include click coords
657
+ var args = [ev];
704
658
 
659
+ // include click coords
705
660
  if (objType === 'globe') {
706
661
  var _this$toGeoCoords = _this.toGeoCoords(point),
707
- lat = _this$toGeoCoords.lat,
708
- lng = _this$toGeoCoords.lng;
709
-
662
+ lat = _this$toGeoCoords.lat,
663
+ lng = _this$toGeoCoords.lng;
710
664
  args.unshift({
711
665
  lat: lat,
712
666
  lng: lng
@@ -714,14 +668,13 @@ var globe = Kapsule__default["default"]({
714
668
  } else {
715
669
  args.push(_this.toGeoCoords(point));
716
670
  }
717
-
718
671
  dataAccessors.hasOwnProperty(objType) && args.unshift(dataAccessors[objType](globeObj.__data));
719
672
  objFns[objType].apply(objFns, args);
720
673
  }
721
674
  }).onRightClick(function (obj, ev, point) {
722
675
  if (!obj) return; // ignore background clicks
723
- // Handle right-click events
724
676
 
677
+ // Handle right-click events
725
678
  var objFns = {
726
679
  globe: state.onGlobeRightClick,
727
680
  point: state.onPointRightClick,
@@ -737,15 +690,14 @@ var globe = Kapsule__default["default"]({
737
690
  };
738
691
  var globeObj = getGlobeObj(obj);
739
692
  var objType = globeObj.__globeObjType;
740
-
741
693
  if (globeObj && objFns.hasOwnProperty(objType) && objFns[objType]) {
742
- var args = [ev]; // include click coords
694
+ var args = [ev];
743
695
 
696
+ // include click coords
744
697
  if (objType === 'globe') {
745
698
  var _this$toGeoCoords2 = _this.toGeoCoords(point),
746
- lat = _this$toGeoCoords2.lat,
747
- lng = _this$toGeoCoords2.lng;
748
-
699
+ lat = _this$toGeoCoords2.lat,
700
+ lng = _this$toGeoCoords2.lng;
749
701
  args.unshift({
750
702
  lat: lat,
751
703
  lng: lng
@@ -753,13 +705,14 @@ var globe = Kapsule__default["default"]({
753
705
  } else {
754
706
  args.push(_this.toGeoCoords(point));
755
707
  }
756
-
757
708
  dataAccessors.hasOwnProperty(objType) && args.unshift(dataAccessors[objType](globeObj.__data));
758
709
  objFns[objType].apply(objFns, args);
759
710
  }
760
- }); //
761
- // Kick-off renderer
711
+ });
762
712
 
713
+ //
714
+
715
+ // Kick-off renderer
763
716
  this._animationCycle();
764
717
  }
765
718
  });
@@ -1,4 +1,5 @@
1
1
  import { WebGLRendererParameters, Scene, Camera, WebGLRenderer, Object3D } from 'three';
2
+ import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
2
3
  import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer.js';
3
4
  import { ConfigOptions as ConfigOptions$1, ThreeGlobeGeneric } from 'three-globe';
4
5
 
@@ -112,7 +113,7 @@ interface GlobeGenericInstance<ChainableInstance>
112
113
  camera(): Camera;
113
114
  renderer(): WebGLRenderer;
114
115
  postProcessingComposer(): EffectComposer;
115
- controls(): object;
116
+ controls(): OrbitControls;
116
117
 
117
118
  // Utility
118
119
  getScreenCoords(lat: number, lng: number, altitude?: number): { x: number, y: number };