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/map.js CHANGED
@@ -332,7 +332,7 @@ var map = function (arg) {
332
332
  * @returns {geo.geoPosition}
333
333
  */
334
334
  this.origin = function () {
335
- return $.extend({}, m_origin);
335
+ return Object.assign({}, m_origin);
336
336
  };
337
337
 
338
338
  /**
@@ -594,7 +594,7 @@ var map = function (arg) {
594
594
  this.center = function (coordinates, gcs, ignoreDiscreteZoom, ignoreClampBounds) {
595
595
  var center;
596
596
  if (coordinates === undefined) {
597
- center = $.extend({}, m_this.worldToGcs(m_center, gcs));
597
+ center = Object.assign({}, m_this.worldToGcs(m_center, gcs));
598
598
  return center;
599
599
  }
600
600
 
@@ -901,7 +901,7 @@ var map = function (arg) {
901
901
  if (typeof readerOrName === 'string') {
902
902
  opts = opts || {};
903
903
  if (!opts.layer) {
904
- opts.layer = m_this.createLayer('feature', $.extend({}, opts));
904
+ opts.layer = m_this.createLayer('feature', Object.assign({}, opts));
905
905
  }
906
906
  opts.renderer = opts.layer.renderer().api();
907
907
  m_fileReader = registry.createFileReader(readerOrName, opts);
@@ -1060,7 +1060,7 @@ var map = function (arg) {
1060
1060
  */
1061
1061
  this.zoomRange = function (arg, noRefresh) {
1062
1062
  if (arg === undefined) {
1063
- return $.extend({}, m_validZoomRange);
1063
+ return Object.assign({}, m_validZoomRange);
1064
1064
  }
1065
1065
  if (arg.max !== undefined) {
1066
1066
  m_validZoomRange.max = arg.max;
@@ -1130,12 +1130,12 @@ var map = function (arg) {
1130
1130
  /* The queued transition needs to combine the current transition's
1131
1131
  * endpoint, any other queued transition, and the new transition to be
1132
1132
  * complete. */
1133
- var transitionEnd = $.extend(true, {}, m_transition.end);
1133
+ var transitionEnd = util.deepMerge({}, m_transition.end);
1134
1134
  if (transitionEnd.center && m_gcs !== m_ingcs) {
1135
1135
  transitionEnd.center = transform.transformCoordinates(
1136
1136
  m_gcs, m_ingcs, transitionEnd.center);
1137
1137
  }
1138
- m_queuedTransition = $.extend(
1138
+ m_queuedTransition = Object.assign(
1139
1139
  {}, transitionEnd || {}, m_queuedTransition || {}, opts);
1140
1140
  return m_this;
1141
1141
  }
@@ -1188,13 +1188,13 @@ var map = function (arg) {
1188
1188
 
1189
1189
  if (opts.center) {
1190
1190
  gcs = (gcs === null ? m_gcs : (gcs === undefined ? m_ingcs : gcs));
1191
- opts = $.extend(true, {}, opts);
1191
+ opts = util.deepMerge({}, opts);
1192
1192
  opts.center = util.normalizeCoordinates(opts.center);
1193
1193
  if (gcs !== m_gcs) {
1194
1194
  opts.center = transform.transformCoordinates(gcs, m_gcs, opts.center);
1195
1195
  }
1196
1196
  }
1197
- opts = $.extend(true, {}, defaultOpts, opts);
1197
+ opts = util.deepMerge({}, defaultOpts, opts);
1198
1198
 
1199
1199
  m_transition = {
1200
1200
  start: {
@@ -1756,7 +1756,7 @@ var map = function (arg) {
1756
1756
  /* if asked to wait, return a Deferred that will do so, calling the
1757
1757
  * screenshot function without waiting once it is done. */
1758
1758
  if (opts.wait) {
1759
- var optsWithoutWait = $.extend({}, opts, {wait: false});
1759
+ var optsWithoutWait = Object.assign({}, opts, {wait: false});
1760
1760
  defer = $.Deferred();
1761
1761
 
1762
1762
  var waitForRAF = function () {
@@ -2228,7 +2228,7 @@ var map = function (arg) {
2228
2228
  }
2229
2229
  var dx, dy, maxBounds = m_maxBounds;
2230
2230
  if (rotation) {
2231
- maxBounds = $.extend({}, m_maxBounds);
2231
+ maxBounds = Object.assign({}, m_maxBounds);
2232
2232
  /* When rotated, expand the maximum bounds so that they will allow the
2233
2233
  * corners to be visible. We know the rotated bounding box, plus the
2234
2234
  * original maximum bounds. To fit the corners of the maximum bounds, we
@@ -2417,7 +2417,7 @@ var map = function (arg) {
2417
2417
  m_zoom = this._fix_zoom(m_zoom);
2418
2418
  m_rotation = fix_rotation(m_rotation);
2419
2419
  // Now update to the correct center and zoom level
2420
- this.center($.extend({}, arg.center || m_center), undefined);
2420
+ this.center(Object.assign({}, arg.center || m_center), undefined);
2421
2421
 
2422
2422
  if (arg.interactor !== null) {
2423
2423
  this.interactor(arg.interactor || mapInteractor({discreteZoom: m_discreteZoom}));
@@ -175,8 +175,7 @@ var mapInteractor = function (args) {
175
175
  }
176
176
 
177
177
  // copy the options object with defaults
178
- m_options = $.extend(
179
- true,
178
+ m_options = util.deepMerge(
180
179
  {},
181
180
  {
182
181
  throttle: 30,
@@ -390,13 +389,13 @@ var mapInteractor = function (args) {
390
389
  /* We don't want to merge the original arrays with arrays passed in the args,
391
390
  * so override that as necessary for actions. */
392
391
  if (args && args.actions) {
393
- m_options.actions = $.extend(true, [], args.actions);
392
+ m_options.actions = util.deepMerge([], args.actions);
394
393
  }
395
394
  if (args && args.momentum && args.momentum.actions) {
396
- m_options.momentum.actions = $.extend(true, [], args.momentum.actions);
395
+ m_options.momentum.actions = util.deepMerge([], args.momentum.actions);
397
396
  }
398
397
  if (args && args.keyboard && args.keyboard.actions !== undefined) {
399
- m_options.keyboard.actions = $.extend(true, {}, args.keyboard.actions);
398
+ m_options.keyboard.actions = util.deepMerge({}, args.keyboard.actions);
400
399
  }
401
400
 
402
401
  // default mouse object
@@ -882,9 +881,9 @@ var mapInteractor = function (args) {
882
881
  */
883
882
  this.options = function (opts) {
884
883
  if (opts === undefined) {
885
- return $.extend({}, m_options);
884
+ return Object.assign({}, m_options);
886
885
  }
887
- $.extend(m_options, opts);
886
+ Object.assign(m_options, opts);
888
887
 
889
888
  // reset event handlers for new options
890
889
  m_this._connectEvents();
@@ -1039,7 +1038,7 @@ var mapInteractor = function (args) {
1039
1038
  display: display,
1040
1039
  gcs: gcs,
1041
1040
  mouse: mouse,
1042
- origin: $.extend({}, m_state.origin)
1041
+ origin: Object.assign({}, m_state.origin)
1043
1042
  };
1044
1043
  };
1045
1044
 
@@ -1119,7 +1118,7 @@ var mapInteractor = function (args) {
1119
1118
  m_this._setClickMaybe({
1120
1119
  x: m_mouse.page.x,
1121
1120
  y: m_mouse.page.y,
1122
- buttons: $.extend({}, m_mouse.buttons)
1121
+ buttons: Object.assign({}, m_mouse.buttons)
1123
1122
  });
1124
1123
  if (m_options.click.duration > 0) {
1125
1124
  m_clickMaybeTimeout = window.setTimeout(function () {
@@ -1153,7 +1152,7 @@ var mapInteractor = function (args) {
1153
1152
  m_state = {
1154
1153
  action: action,
1155
1154
  actionRecord: actionRecord,
1156
- origin: $.extend(true, {}, m_mouse),
1155
+ origin: util.deepMerge({}, m_mouse),
1157
1156
  initialZoom: map.zoom(),
1158
1157
  initialRotation: map.rotation(),
1159
1158
  initialEventRotation: evt.rotation,
@@ -1686,7 +1685,7 @@ var mapInteractor = function (args) {
1686
1685
  function accum(dz, org) {
1687
1686
  var map = m_this.map(), zoom;
1688
1687
 
1689
- origin = $.extend(true, {}, org);
1688
+ origin = util.deepMerge({}, org);
1690
1689
  deltaZ += dz;
1691
1690
  if (targetZoom === undefined) {
1692
1691
  startZoom = targetZoom = map.zoom();
@@ -2004,7 +2003,7 @@ var mapInteractor = function (args) {
2004
2003
  * @returns {object} The current mouse state.
2005
2004
  */
2006
2005
  this.mouse = function () {
2007
- return $.extend(true, {}, m_mouse);
2006
+ return util.deepMerge({}, m_mouse);
2008
2007
  };
2009
2008
 
2010
2009
  /**
@@ -2017,7 +2016,7 @@ var mapInteractor = function (args) {
2017
2016
  */
2018
2017
  this.keyboard = function (newValue) {
2019
2018
  if (newValue === undefined) {
2020
- return $.extend(true, {}, m_options.keyboard || {});
2019
+ return util.deepMerge({}, m_options.keyboard || {});
2021
2020
  }
2022
2021
  return m_this.options({keyboard: newValue});
2023
2022
  };
@@ -2028,7 +2027,7 @@ var mapInteractor = function (args) {
2028
2027
  * @returns {geo.interactorState}
2029
2028
  */
2030
2029
  this.state = function () {
2031
- return $.extend(true, {}, m_state);
2030
+ return util.deepMerge({}, m_state);
2032
2031
  };
2033
2032
 
2034
2033
  /**
@@ -74,7 +74,6 @@ var markerFeature = function (arg) {
74
74
  arg = arg || {};
75
75
  pointFeature.call(this, arg);
76
76
 
77
- var $ = require('jquery');
78
77
  var timestamp = require('./timestamp');
79
78
  var util = require('./util');
80
79
  var KDBush = require('kdbush');
@@ -404,11 +403,10 @@ var markerFeature = function (arg) {
404
403
  * @returns {this}
405
404
  */
406
405
  this._init = function (arg) {
407
- arg = $.extend(
408
- true,
406
+ arg = util.deepMerge(
409
407
  {},
410
408
  {
411
- style: $.extend(
409
+ style: Object.assign(
412
410
  {},
413
411
  {
414
412
  radius: 6.25,
@@ -112,7 +112,6 @@ var meshFeature = function (arg) {
112
112
  return new meshFeature(arg);
113
113
  }
114
114
 
115
- var $ = require('jquery');
116
115
  var util = require('./util');
117
116
 
118
117
  arg = arg || {};
@@ -145,7 +144,7 @@ var meshFeature = function (arg) {
145
144
  return m_mesh[specOrProperty];
146
145
  }
147
146
  if (value === undefined) {
148
- var mesh = $.extend(
147
+ var mesh = Object.assign(
149
148
  {},
150
149
  {
151
150
  gridWidth: function () {
@@ -552,7 +551,7 @@ var meshFeature = function (arg) {
552
551
 
553
552
  /* Initialize from arguments */
554
553
  arg = arg || {};
555
- var style = $.extend({}, {
554
+ var style = Object.assign({}, {
556
555
  position: (d) => Array.isArray(d) ? {x: d[0], y: d[1], z: d[2] || 0} : d
557
556
  }, arg.style || {});
558
557
 
package/src/osmLayer.js CHANGED
@@ -1,8 +1,8 @@
1
- var $ = require('jquery');
2
1
  var inherit = require('./inherit');
3
2
  var tileLayer = require('./tileLayer');
4
3
  var registry = require('./registry');
5
4
  var quadFeature = require('./quadFeature');
5
+ var util = require('./util');
6
6
 
7
7
  /**
8
8
  * Object specification for an OSM layer.
@@ -37,11 +37,10 @@ var osmLayer = function (arg) {
37
37
  }
38
38
  arg = arg || {};
39
39
  if (arg.mapOpacity !== undefined && arg.opacity === undefined) {
40
- arg = $.extend({}, arg);
40
+ arg = Object.assign({}, arg);
41
41
  arg.opacity = arg.mapOpacity;
42
42
  }
43
- arg = $.extend(
44
- true,
43
+ arg = util.deepMerge(
45
44
  {},
46
45
  this.constructor.defaults,
47
46
  osmLayer.tileSources[this.constructor.defaults.source] || {},
@@ -118,7 +117,7 @@ var osmLayer = function (arg) {
118
117
  /**
119
118
  * This object contains the default options used to initialize the osmLayer.
120
119
  */
121
- osmLayer.defaults = $.extend({}, tileLayer.defaults, {
120
+ osmLayer.defaults = Object.assign({}, tileLayer.defaults, {
122
121
  tileOffset : function (level) {
123
122
  var s = Math.pow(2, level - 1) * 256;
124
123
  return {x: s, y: s};
@@ -1,4 +1,3 @@
1
- var $ = require('jquery');
2
1
  var inherit = require('./inherit');
3
2
  var feature = require('./feature');
4
3
 
@@ -79,7 +78,7 @@ var pathFeature = function (arg) {
79
78
  this._init = function (arg) {
80
79
  s_init.call(m_this, arg);
81
80
 
82
- var defaultStyle = $.extend(
81
+ var defaultStyle = Object.assign(
83
82
  {},
84
83
  {
85
84
  strokeWidth: 1,
@@ -274,7 +274,7 @@ var pixelmapFeature = function (arg) {
274
274
  arg = arg || {};
275
275
  s_init.call(m_this, arg);
276
276
 
277
- var style = $.extend(
277
+ var style = Object.assign(
278
278
  {},
279
279
  {
280
280
  color: function (d, idx) {
@@ -1,9 +1,9 @@
1
- var $ = require('jquery');
2
1
  var inherit = require('./inherit');
3
2
  var tileLayer = require('./tileLayer');
4
3
  var registry = require('./registry');
5
4
  var quadFeature = require('./quadFeature');
6
5
  var pixelmapFeature = require('./pixelmapFeature');
6
+ var util = require('./util');
7
7
 
8
8
  /**
9
9
  * Object specification for a pixelmap layer.
@@ -47,8 +47,7 @@ var pixelmapLayer = function (arg) {
47
47
  argdata = arg.data;
48
48
  delete arg.data;
49
49
  }
50
- arg = $.extend(
51
- true,
50
+ arg = util.deepMerge(
52
51
  {},
53
52
  this.constructor.defaults,
54
53
  arg);
@@ -136,7 +135,7 @@ var pixelmapLayer = function (arg) {
136
135
  * This object contains the default options used to initialize the
137
136
  * pixelmapLayer.
138
137
  */
139
- pixelmapLayer.defaults = $.extend({}, tileLayer.defaults, {
138
+ pixelmapLayer.defaults = Object.assign({}, tileLayer.defaults, {
140
139
  features: [quadFeature.capabilities.image, pixelmapFeature.capabilities.lookup],
141
140
  tileOffset : function (level) {
142
141
  var s = Math.pow(2, level - 1) * 256;
@@ -76,7 +76,6 @@ var pointFeature = function (arg) {
76
76
  arg = arg || {};
77
77
  feature.call(this, arg);
78
78
 
79
- var $ = require('jquery');
80
79
  var timestamp = require('./timestamp');
81
80
  var ClusterGroup = require('./util/clustering');
82
81
  var geo_event = require('./event');
@@ -150,7 +149,7 @@ var pointFeature = function (arg) {
150
149
  radiusInGcsAtZoom = Math.pow(Math.pow(offset.y - center.y, 2) + Math.pow(offset.x - center.x, 2), 0.5),
151
150
  zoom = map.zoom(),
152
151
  radiusInGcsAtZoom0 = radiusInGcsAtZoom * Math.pow(2, zoom);
153
- opts = $.extend({}, opts, {radius: radiusInGcsAtZoom0});
152
+ opts = Object.assign({}, opts, {radius: radiusInGcsAtZoom0});
154
153
  m_clusterTree = new ClusterGroup(opts);
155
154
 
156
155
  m_allData.forEach(function (d, i) {
@@ -497,8 +496,7 @@ var pointFeature = function (arg) {
497
496
  arg = arg || {};
498
497
  s_init.call(m_this, arg);
499
498
 
500
- var defaultStyle = $.extend(
501
- true,
499
+ var defaultStyle = util.deepMerge(
502
500
  {},
503
501
  {
504
502
  radius: 5.0,
@@ -1,4 +1,3 @@
1
- var $ = require('jquery');
2
1
  var inherit = require('./inherit');
3
2
  var feature = require('./feature');
4
3
  var transform = require('./transform');
@@ -763,7 +762,7 @@ var polygonFeature = function (arg) {
763
762
  arg = arg || {};
764
763
  s_init.call(m_this, arg);
765
764
 
766
- var style = $.extend(
765
+ var style = Object.assign(
767
766
  {},
768
767
  {
769
768
  // default style
@@ -712,7 +712,7 @@ var quadFeature = function (arg) {
712
712
 
713
713
  m_cacheQuads = (arg.cacheQuads !== false);
714
714
 
715
- var style = $.extend(
715
+ var style = Object.assign(
716
716
  {},
717
717
  {
718
718
  color: { r: 1.0, g: 1, b: 1 },
package/src/registry.js CHANGED
@@ -1,5 +1,6 @@
1
1
  var $ = require('jquery');
2
2
  var geo_action = require('./action');
3
+ var util = require('./util/common');
3
4
 
4
5
  var widgets = {
5
6
  dom: {}
@@ -12,7 +13,7 @@ var featureCapabilities = {};
12
13
  var fileReaders = {};
13
14
  var rendererLayerAdjustments = {};
14
15
  var annotations = {};
15
- var util = {};
16
+ var registry = {};
16
17
 
17
18
  /**
18
19
  * Register a new file reader type.
@@ -22,7 +23,7 @@ var util = {};
22
23
  * exists, the class creation function is replaced.
23
24
  * @param {function} func Class creation function.
24
25
  */
25
- util.registerFileReader = function (name, func) {
26
+ registry.registerFileReader = function (name, func) {
26
27
  fileReaders[name] = func;
27
28
  };
28
29
 
@@ -35,7 +36,7 @@ util.registerFileReader = function (name, func) {
35
36
  * @returns {geo.fileReader|null} The new reader or null if no such name is
36
37
  * registered.
37
38
  */
38
- util.createFileReader = function (name, opts) {
39
+ registry.createFileReader = function (name, opts) {
39
40
  if (fileReaders.hasOwnProperty(name)) {
40
41
  return fileReaders[name](opts);
41
42
  }
@@ -50,7 +51,7 @@ util.createFileReader = function (name, opts) {
50
51
  * exists, the class creation function is replaced.
51
52
  * @param {function} func Class creation function.
52
53
  */
53
- util.registerRenderer = function (name, func) {
54
+ registry.registerRenderer = function (name, func) {
54
55
  renderers[name] = func;
55
56
  };
56
57
 
@@ -66,7 +67,7 @@ util.registerRenderer = function (name, func) {
66
67
  * @returns {geo.renderer|null} The new renderer or null if no such name is
67
68
  * registered.
68
69
  */
69
- util.createRenderer = function (name, layer, canvas, options) {
70
+ registry.createRenderer = function (name, layer, canvas, options) {
70
71
  if (renderers.hasOwnProperty(name)) {
71
72
  var ren = renderers[name](
72
73
  {layer: layer, canvas: canvas, options: options}
@@ -89,7 +90,7 @@ util.createRenderer = function (name, layer, canvas, options) {
89
90
  * @returns {string|null|false} The name of the renderer that should be used
90
91
  * or false if no valid renderer can be determined.
91
92
  */
92
- util.checkRenderer = function (name, noFallback) {
93
+ registry.checkRenderer = function (name, noFallback) {
93
94
  if (name === null) {
94
95
  return name;
95
96
  }
@@ -101,7 +102,7 @@ util.checkRenderer = function (name, noFallback) {
101
102
  if (!ren.fallback || noFallback) {
102
103
  return false;
103
104
  }
104
- var fallback = util.checkRenderer(ren.fallback(), true);
105
+ var fallback = registry.checkRenderer(ren.fallback(), true);
105
106
  if (fallback !== false) {
106
107
  console.warn(name + ' renderer is unavailable, using ' + fallback +
107
108
  ' renderer instead');
@@ -129,13 +130,13 @@ util.checkRenderer = function (name, noFallback) {
129
130
  * @returns {string|null|false} The name of the renderer that should be used
130
131
  * or false if no valid renderer can be determined.
131
132
  */
132
- util.rendererForFeatures = function (featureList) {
133
+ registry.rendererForFeatures = function (featureList) {
133
134
  var preferredRenderers = ['webgl', 'canvas', 'svg', 'vtkjs', null];
134
135
 
135
136
  var renderer, ridx, feature, fidx, capability, available;
136
137
  for (ridx = 0; ridx < preferredRenderers.length; ridx += 1) {
137
138
  renderer = preferredRenderers[ridx];
138
- if (util.checkRenderer(renderer, true) === false) {
139
+ if (registry.checkRenderer(renderer, true) === false) {
139
140
  continue;
140
141
  }
141
142
  if (!featureList) {
@@ -189,7 +190,7 @@ util.rendererForFeatures = function (featureList) {
189
190
  * @returns {object} if this feature replaces an existing one, this was the
190
191
  * feature that was replaced. In this case, a warning is issued.
191
192
  */
192
- util.registerFeature = function (category, name, func, capabilities) {
193
+ registry.registerFeature = function (category, name, func, capabilities) {
193
194
  if (!(category in features)) {
194
195
  features[category] = {};
195
196
  featureCapabilities[category] = {};
@@ -216,12 +217,12 @@ util.registerFeature = function (category, name, func, capabilities) {
216
217
  * @returns {geo.feature|null} The new feature or null if no such name is
217
218
  * registered.
218
219
  */
219
- util.createFeature = function (name, layer, renderer, arg) {
220
+ registry.createFeature = function (name, layer, renderer, arg) {
220
221
  var category = renderer.api(),
221
222
  options = {layer: layer, renderer: renderer};
222
223
  if (category in features && name in features[category]) {
223
224
  if (arg !== undefined) {
224
- $.extend(true, options, arg);
225
+ util.deepMerge(options, arg);
225
226
  }
226
227
  var feature = features[category][name](options);
227
228
  if (layer.gcs === undefined) {
@@ -248,7 +249,7 @@ util.createFeature = function (name, layer, renderer, arg) {
248
249
  * @returns {object} if this layer adjustment replaces an existing one, this
249
250
  * was the value that was replaced. In this case, a warning is issued.
250
251
  */
251
- util.registerLayerAdjustment = function (category, name, func) {
252
+ registry.registerLayerAdjustment = function (category, name, func) {
252
253
  if (!(category in rendererLayerAdjustments)) {
253
254
  rendererLayerAdjustments[category] = {};
254
255
  }
@@ -269,7 +270,7 @@ util.registerLayerAdjustment = function (category, name, func) {
269
270
  * @param {string} name Name of the layer or adjustment.
270
271
  * @param {object} layer Instantiated layer object.
271
272
  */
272
- util.adjustLayerForRenderer = function (name, layer) {
273
+ registry.adjustLayerForRenderer = function (name, layer) {
273
274
  var rendererName = layer.rendererName();
274
275
  if (rendererName) {
275
276
  if (rendererLayerAdjustments &&
@@ -290,7 +291,7 @@ util.adjustLayerForRenderer = function (name, layer) {
290
291
  * @param {string[]} [defaultFeatures] An optional list of feature capabilities
291
292
  * that are required to use this layer.
292
293
  */
293
- util.registerLayer = function (name, func, defaultFeatures) {
294
+ registry.registerLayer = function (name, func, defaultFeatures) {
294
295
  layers[name] = func;
295
296
  layerDefaultFeatures[name] = defaultFeatures;
296
297
  };
@@ -305,7 +306,7 @@ util.registerLayer = function (name, func, defaultFeatures) {
305
306
  * @returns {geo.layer|null} The new layer or null if no such name is
306
307
  * registered.
307
308
  */
308
- util.createLayer = function (name, map, arg) {
309
+ registry.createLayer = function (name, map, arg) {
309
310
  // Default renderer is webgl
310
311
  var options = {map: map},
311
312
  layer = null;
@@ -317,7 +318,7 @@ util.createLayer = function (name, map, arg) {
317
318
  if (arg !== undefined) {
318
319
  const argdata = arg.data;
319
320
  delete arg.data;
320
- $.extend(true, options, arg);
321
+ util.deepMerge(options, arg);
321
322
  if (argdata) {
322
323
  options.data = argdata;
323
324
  }
@@ -342,7 +343,7 @@ util.createLayer = function (name, map, arg) {
342
343
  * @returns {object} If this widget replaces an existing one, this was the
343
344
  * value that was replaced. In this case, a warning is issued.
344
345
  */
345
- util.registerWidget = function (category, name, func) {
346
+ registry.registerWidget = function (category, name, func) {
346
347
  if (!(category in widgets)) {
347
348
  widgets[category] = {};
348
349
  }
@@ -364,14 +365,14 @@ util.registerWidget = function (category, name, func) {
364
365
  * @param {object} arg Options for the new widget.
365
366
  * @returns {geo.widget} The new widget.
366
367
  */
367
- util.createWidget = function (name, layer, arg) {
368
+ registry.createWidget = function (name, layer, arg) {
368
369
  var options = {
369
370
  layer: layer
370
371
  };
371
372
 
372
373
  if (name in widgets.dom) {
373
374
  if (arg !== undefined) {
374
- $.extend(true, options, arg);
375
+ util.deepMerge(options, arg);
375
376
  }
376
377
 
377
378
  return widgets.dom[name](options);
@@ -394,7 +395,7 @@ util.createWidget = function (name, layer, arg) {
394
395
  * @returns {object} if this annotation replaces an existing one, this was the
395
396
  * value that was replaced. In this case, a warning is issued.
396
397
  */
397
- util.registerAnnotation = function (name, func, features) {
398
+ registry.registerAnnotation = function (name, func, features) {
398
399
  var old = annotations[name];
399
400
  if (old) {
400
401
  console.warn('The ' + name + ' annotation is already registered');
@@ -412,7 +413,7 @@ util.registerAnnotation = function (name, func, features) {
412
413
  * @param {object} options The options for the annotation.
413
414
  * @returns {object} the new annotation.
414
415
  */
415
- util.createAnnotation = function (name, options) {
416
+ registry.createAnnotation = function (name, options) {
416
417
  if (!annotations[name]) {
417
418
  console.warn('The ' + name + ' annotation is not registered');
418
419
  return;
@@ -427,7 +428,7 @@ util.createAnnotation = function (name, options) {
427
428
  * @alias geo.listAnnotations
428
429
  * @returns {string[]} A list of registered annotations.
429
430
  */
430
- util.listAnnotations = function () {
431
+ registry.listAnnotations = function () {
431
432
  return Object.keys(annotations);
432
433
  };
433
434
 
@@ -445,7 +446,7 @@ util.listAnnotations = function () {
445
446
  * @returns {string[]} a list of features needed for the specified annotations.
446
447
  * There may be duplicates in the list.
447
448
  */
448
- util.featuresForAnnotations = function (annotationList) {
449
+ registry.featuresForAnnotations = function (annotationList) {
449
450
  var features = [];
450
451
 
451
452
  var annList = Array.isArray(annotationList) ? annotationList : Object.keys(annotationList);
@@ -483,8 +484,8 @@ util.featuresForAnnotations = function (annotationList) {
483
484
  * @returns {string|null|false} the name of the renderer that should be used or
484
485
  * false if no valid renderer can be determined.
485
486
  */
486
- util.rendererForAnnotations = function (annotationList) {
487
- return util.rendererForFeatures(util.featuresForAnnotations(annotationList));
487
+ registry.rendererForAnnotations = function (annotationList) {
488
+ return registry.rendererForFeatures(registry.featuresForAnnotations(annotationList));
488
489
  };
489
490
 
490
491
  /**
@@ -493,7 +494,7 @@ util.rendererForAnnotations = function (annotationList) {
493
494
  *
494
495
  * @namespace geo.registries
495
496
  */
496
- util.registries = {
497
+ registry.registries = {
497
498
  annotations: annotations,
498
499
  features: features,
499
500
  featureCapabilities: featureCapabilities,
@@ -503,4 +504,4 @@ util.registries = {
503
504
  widgets: widgets
504
505
  };
505
506
 
506
- module.exports = util;
507
+ module.exports = registry;
@@ -18,7 +18,6 @@ var svg_pathFeature = function (arg) {
18
18
  return new svg_pathFeature(arg);
19
19
  }
20
20
 
21
- var $ = require('jquery');
22
21
  var object = require('./object');
23
22
  var timestamp = require('../timestamp');
24
23
 
@@ -73,7 +72,7 @@ var svg_pathFeature = function (arg) {
73
72
  m_style.id = m_this._svgid();
74
73
  m_style.append = 'path';
75
74
  m_style.classes = ['svgPathFeature'];
76
- m_style.style = $.extend({
75
+ m_style.style = Object.assign({
77
76
  fill: function () { return false; },
78
77
  fillColor: {r: 0, g: 0, b: 0}
79
78
  }, s_style);
@@ -94,8 +94,6 @@ var textFeature = function (arg) {
94
94
  arg = arg || {};
95
95
  feature.call(this, arg);
96
96
 
97
- var $ = require('jquery');
98
-
99
97
  /**
100
98
  * @private
101
99
  */
@@ -149,7 +147,7 @@ var textFeature = function (arg) {
149
147
  arg = arg || {};
150
148
  s_init.call(m_this, arg);
151
149
 
152
- var style = $.extend(
150
+ var style = Object.assign(
153
151
  {},
154
152
  {
155
153
  font: 'bold 16px sans-serif',