geojs 1.12.4 → 1.12.6

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.
Files changed (47) hide show
  1. package/geo.js +823 -856
  2. package/geo.lean.js +823 -856
  3. package/geo.lean.min.js +3 -3
  4. package/geo.min.js +4 -4
  5. package/package.json +1 -1
  6. package/src/annotation/annotation.js +17 -18
  7. package/src/annotation/circleAnnotation.js +3 -3
  8. package/src/annotation/ellipseAnnotation.js +4 -4
  9. package/src/annotation/lineAnnotation.js +3 -3
  10. package/src/annotation/pointAnnotation.js +3 -4
  11. package/src/annotation/polygonAnnotation.js +2 -3
  12. package/src/annotation/rectangleAnnotation.js +8 -8
  13. package/src/annotation/squareAnnotation.js +3 -3
  14. package/src/annotationLayer.js +4 -4
  15. package/src/choroplethFeature.js +2 -3
  16. package/src/contourFeature.js +2 -3
  17. package/src/feature.js +2 -2
  18. package/src/graphFeature.js +3 -3
  19. package/src/gridFeature.js +2 -3
  20. package/src/heatmapFeature.js +1 -2
  21. package/src/index.js +1 -1
  22. package/src/isolineFeature.js +3 -4
  23. package/src/layer.js +1 -1
  24. package/src/lineFeature.js +1 -3
  25. package/src/map.js +11 -11
  26. package/src/mapInteractor.js +13 -14
  27. package/src/markerFeature.js +2 -4
  28. package/src/meshFeature.js +2 -3
  29. package/src/osmLayer.js +4 -5
  30. package/src/pathFeature.js +1 -2
  31. package/src/pixelmapFeature.js +1 -1
  32. package/src/pixelmapLayer.js +3 -4
  33. package/src/pointFeature.js +2 -4
  34. package/src/polygonFeature.js +1 -2
  35. package/src/quadFeature.js +1 -1
  36. package/src/registry.js +29 -28
  37. package/src/svg/pathFeature.js +1 -2
  38. package/src/textFeature.js +1 -3
  39. package/src/tileLayer.js +5 -4
  40. package/src/trackFeature.js +7 -14
  41. package/src/ui/scaleWidget.js +3 -3
  42. package/src/ui/widget.js +1 -2
  43. package/src/util/clustering.js +1 -1
  44. package/src/util/common.js +38 -1
  45. package/src/util/mesh.js +3 -4
  46. package/src/util/mockVGL.js +1 -2
  47. package/src/vectorFeature.js +1 -3
package/src/tileLayer.js CHANGED
@@ -1,5 +1,6 @@
1
1
  var inherit = require('./inherit');
2
2
  var featureLayer = require('./featureLayer');
3
+ var util = require('./util');
3
4
 
4
5
  /**
5
6
  * Object specification for a tile layer.
@@ -194,7 +195,7 @@ var tileLayer = function (arg) {
194
195
  var adjustLayerForRenderer = require('./registry').adjustLayerForRenderer;
195
196
  var Tile = require('./tile');
196
197
 
197
- arg = $.extend(true, {}, this.constructor.defaults, arg || {});
198
+ arg = util.deepMerge({}, this.constructor.defaults, arg || {});
198
199
  if (!arg.cacheSize) {
199
200
  // this size should be sufficient for a 4k display
200
201
  // where display size is (w, h), minimum tile dimension is ts, and total
@@ -236,7 +237,7 @@ var tileLayer = function (arg) {
236
237
  m_this = this;
237
238
 
238
239
  // copy the options into a private variable
239
- this._options = $.extend(true, {}, arg);
240
+ this._options = util.deepMerge({}, arg);
240
241
 
241
242
  // set the layer attribution text
242
243
  this.attribution(arg.attribution);
@@ -282,7 +283,7 @@ var tileLayer = function (arg) {
282
283
  * @name geo.tileLayer#options
283
284
  */
284
285
  Object.defineProperty(this, 'options', {get: function () {
285
- return $.extend({}, m_this._options);
286
+ return Object.assign({}, m_this._options);
286
287
  }});
287
288
 
288
289
  /**
@@ -303,7 +304,7 @@ var tileLayer = function (arg) {
303
304
  * @name geo.tileLayer#activeTiles
304
305
  */
305
306
  Object.defineProperty(this, 'activeTiles', {get: function () {
306
- return $.extend({}, m_this._activeTiles); // copy on output
307
+ return Object.assign({}, m_this._activeTiles); // copy on output
307
308
  }});
308
309
 
309
310
  /**
@@ -66,7 +66,6 @@ var trackFeature = function (arg) {
66
66
  return new trackFeature(arg);
67
67
  }
68
68
 
69
- var $ = require('jquery');
70
69
  var transform = require('./transform');
71
70
 
72
71
  arg = arg || {};
@@ -480,7 +479,7 @@ var trackFeature = function (arg) {
480
479
  m_styles[styleType] = {};
481
480
  }
482
481
  if (arg2 === undefined) {
483
- m_styles[styleType] = $.extend(true, m_styles[styleType], arg1);
482
+ m_styles[styleType] = util.deepMerge(m_styles[styleType], arg1);
484
483
  } else {
485
484
  m_styles[styleType][arg1] = arg2;
486
485
  }
@@ -810,8 +809,7 @@ var trackFeature = function (arg) {
810
809
  arg = arg || {};
811
810
  s_init.call(m_this, arg);
812
811
 
813
- var style = $.extend(
814
- true,
812
+ var style = util.deepMerge(
815
813
  {},
816
814
  {
817
815
  track: util.identityFunction,
@@ -822,8 +820,7 @@ var trackFeature = function (arg) {
822
820
  },
823
821
  arg.style === undefined ? {} : arg.style
824
822
  );
825
- var markerStyle = $.extend(
826
- true,
823
+ var markerStyle = util.deepMerge(
827
824
  {},
828
825
  {
829
826
  rotateWithMap: true,
@@ -831,8 +828,7 @@ var trackFeature = function (arg) {
831
828
  },
832
829
  arg.markerStyle === undefined ? {} : arg.markerStyle
833
830
  );
834
- var textStyle = $.extend(
835
- true,
831
+ var textStyle = util.deepMerge(
836
832
  {},
837
833
  {
838
834
  rotateWithMap: true,
@@ -840,24 +836,21 @@ var trackFeature = function (arg) {
840
836
  },
841
837
  arg.textStyle === undefined ? {} : arg.textStyle
842
838
  );
843
- var pastStyle = $.extend(
844
- true,
839
+ var pastStyle = util.deepMerge(
845
840
  {},
846
841
  {
847
842
  strokeOpacity: 0.25
848
843
  },
849
844
  arg.pastStyle === undefined ? {} : arg.pastStyle
850
845
  );
851
- var currentStyle = $.extend(
852
- true,
846
+ var currentStyle = util.deepMerge(
853
847
  {},
854
848
  {
855
849
  // defaults go here
856
850
  },
857
851
  arg.currentStyle === undefined ? {} : arg.currentStyle
858
852
  );
859
- var futureStyle = $.extend(
860
- true,
853
+ var futureStyle = util.deepMerge(
861
854
  {},
862
855
  {
863
856
  strokeOpacity: 0.25
@@ -93,7 +93,7 @@ var scaleWidget = function (arg) {
93
93
 
94
94
  var m_this = this,
95
95
  s_exit = this._exit,
96
- m_options = $.extend({}, {
96
+ m_options = Object.assign({}, {
97
97
  scale: 1,
98
98
  maxWidth: 200,
99
99
  maxHeight: arg.orientation === 'left' || arg.orientation === 'right' ? 200 : 20,
@@ -299,7 +299,7 @@ var scaleWidget = function (arg) {
299
299
  */
300
300
  this.options = function (arg1, arg2) {
301
301
  if (arg1 === undefined) {
302
- var result = $.extend({}, m_options);
302
+ var result = Object.assign({}, m_options);
303
303
  result.position = m_this.position(undefined, true);
304
304
  return result;
305
305
  }
@@ -307,7 +307,7 @@ var scaleWidget = function (arg) {
307
307
  return arg1 === 'position' ? m_this.position(undefined, true) : m_options[arg1];
308
308
  }
309
309
  if (arg2 === undefined) {
310
- m_options = $.extend(true, m_options, arg1);
310
+ m_options = util.deepMerge(m_options, arg1);
311
311
  } else {
312
312
  m_options[arg1] = arg2;
313
313
  }
package/src/ui/widget.js CHANGED
@@ -1,6 +1,5 @@
1
1
  var inherit = require('../inherit');
2
2
  var sceneObject = require('../sceneObject');
3
- var $ = require('jquery');
4
3
 
5
4
  /**
6
5
  * @typedef {object} geo.gui.widget.position
@@ -164,7 +163,7 @@ var widget = function (arg) {
164
163
  if (m_position.hasOwnProperty('x') && m_position.hasOwnProperty('y')) {
165
164
  m_this.layer().geoOn(geo_event.pan, m_this.repositionEvent);
166
165
  }
167
- m_this.reposition($.extend(clearPosition, m_this.position()));
166
+ m_this.reposition(Object.assign(clearPosition, m_this.position()));
168
167
  return m_this;
169
168
  }
170
169
  if (m_position.hasOwnProperty('x') && m_position.hasOwnProperty('y') && !actualValue) {
@@ -144,7 +144,7 @@ function C(opts) {
144
144
  var DistanceGrid = require('./distanceGrid');
145
145
 
146
146
  // store the options
147
- this._opts = $.extend({
147
+ this._opts = Object.assign({
148
148
  maxZoom: 18,
149
149
  radius: 5
150
150
  }, opts);
@@ -522,7 +522,7 @@ var util = {
522
522
  * @example <caption>The returned objects can be modified or
523
523
  * extended.</caption>
524
524
  * var results = pixelCoordinateParams('#map', 10000, 9000);
525
- * var map = geo.map($.extend(results.map, {clampZoom: false}));
525
+ * var map = geo.map(Object.assign(results.map, {clampZoom: false}));
526
526
  * map.createLayer('osm', results.layer);
527
527
  *
528
528
  * @param {string?} node DOM selector for the map container.
@@ -991,6 +991,43 @@ var util = {
991
991
  });
992
992
  },
993
993
 
994
+ /**
995
+ * Recursively merge two objects. This is intended to replace
996
+ * util.deepMerge(target, ...sources).
997
+ *
998
+ * @param {object} target target object to modify.
999
+ * @param {object} sources object(s) to merge into the target.
1000
+ * @returns {object} The merged object.
1001
+ * @member geo.util
1002
+ */
1003
+ deepMerge: function (target, ...sources) {
1004
+ for (const source of sources) {
1005
+ if (source === null || source === undefined) {
1006
+ continue;
1007
+ }
1008
+ for (const key in source) {
1009
+ if (key === '__proto__' || target === source[key]) {
1010
+ continue;
1011
+ }
1012
+ const copy = source[key];
1013
+ if (copy && typeof copy === 'object' && copy && (copy.constructor === undefined || copy.constructor === Object || Array.isArray(copy))) {
1014
+ let src = target[key];
1015
+ if (!Array.isArray(copy)) {
1016
+ if (typeof src !== 'object' || Array.isArray(src)) {
1017
+ src = {};
1018
+ }
1019
+ } else if (!Array.isArray(src)) {
1020
+ src = [];
1021
+ }
1022
+ target[key] = util.deepMerge(src, copy);
1023
+ } else if (copy !== undefined) {
1024
+ target[key] = copy;
1025
+ }
1026
+ }
1027
+ }
1028
+ return target;
1029
+ },
1030
+
994
1031
  /**
995
1032
  * Check svg image and html img tags. If the source is set, load images
996
1033
  * explicitly and convert them to local data:image references.
package/src/util/mesh.js CHANGED
@@ -35,7 +35,6 @@
35
35
  * information.
36
36
  */
37
37
  function createColoredMesh(feature, elementValues) {
38
- var $ = require('jquery');
39
38
  var util = require('../util');
40
39
 
41
40
  var mesh = feature.mesh,
@@ -62,14 +61,14 @@ function createColoredMesh(feature, elementValues) {
62
61
  result.stepped = stepped === undefined || stepped ? true : false;
63
62
  /* Create the min/max colors and the color array */
64
63
  result.colorMap = [];
65
- result.minColor = $.extend(
64
+ result.minColor = Object.assign(
66
65
  {a: mesh.get('minOpacity')(result) || 0},
67
66
  util.convertColor(mesh.get('minColor')(result)));
68
- result.maxColor = $.extend(
67
+ result.maxColor = Object.assign(
69
68
  {a: mesh.get('maxOpacity')(result) || 0},
70
69
  util.convertColor(mesh.get('maxColor')(result)));
71
70
  mesh.get('colorRange')(result).forEach(function (clr, idx) {
72
- result.colorMap.push($.extend({
71
+ result.colorMap.push(Object.assign({
73
72
  a: opacityRange && opacityRange[idx] !== undefined ? opacityRange[idx] : 1
74
73
  }, util.convertColor(clr)));
75
74
  });
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable camelcase */
2
2
 
3
- var $ = require('jquery');
4
3
  var webglRenderer = require('../webgl/webglRenderer');
5
4
 
6
5
  var _renderWindow, _supported;
@@ -152,7 +151,7 @@ module.exports.mockWebglRenderer = function mockWebglRenderer(supported) {
152
151
  wsize = m_this.windowSize(),
153
152
  wpos = m_this.windowPosition();
154
153
 
155
- m_context = $.extend({}, vgl.GL, default_context);
154
+ m_context = Object.assign({}, vgl.GL, default_context);
156
155
 
157
156
  for (i = 0; i < renderers.length; i += 1) {
158
157
  if ((renderers[i].width() > wsize[0]) ||
@@ -52,8 +52,6 @@ var vectorFeature = function (arg) {
52
52
  return new vectorFeature(arg);
53
53
  }
54
54
 
55
- var $ = require('jquery');
56
-
57
55
  arg = arg || {};
58
56
  feature.call(this, arg);
59
57
 
@@ -112,7 +110,7 @@ var vectorFeature = function (arg) {
112
110
  this._init = function (arg) {
113
111
  s_init.call(m_this, arg);
114
112
 
115
- var defaultStyle = $.extend(
113
+ var defaultStyle = Object.assign(
116
114
  {},
117
115
  {
118
116
  strokeColor: 'black',