Blame view

bower_components/d3-scatterplot/src/d3-scatterplot-utils.js 1.26 KB
50380d5a   mwasiluk   d3 scatterplot-da...
1
2
3
  function D3ScatterPlotUtils(){}
  
  // usage example deepExtend({}, objA, objB); => should work similar to $.extend(true, {}, objA, objB);
42187739   mwasiluk   updated d3-scatte...
4
  D3ScatterPlotUtils.prototype.deepExtend = function (out) {
50380d5a   mwasiluk   d3 scatterplot-da...
5
  
42187739   mwasiluk   updated d3-scatte...
6
7
8
9
10
11
12
      var utils = this;
      var emptyOut = {};
  
  
      if (!out && arguments.length > 1 && Array.isArray(arguments[1])) {
          out = [];
      }
50380d5a   mwasiluk   d3 scatterplot-da...
13
14
15
      out = out || {};
  
      for (var i = 1; i < arguments.length; i++) {
42187739   mwasiluk   updated d3-scatte...
16
17
          var source = arguments[i];
          if (!source)
50380d5a   mwasiluk   d3 scatterplot-da...
18
19
              continue;
  
42187739   mwasiluk   updated d3-scatte...
20
21
22
23
24
25
26
27
28
29
30
31
          for (var key in source) {
              if (!source.hasOwnProperty(key)) {
                  continue;
              }
              var isArray = Array.isArray(out[key]);
              var isObject = utils.isObject(out[key]);
              var srcObj = utils.isObject(source[key]);
  
              if (isObject && !isArray && srcObj) {
                  utils.deepExtend(out[key], source[key]);
              } else {
                  out[key] = source[key];
50380d5a   mwasiluk   d3 scatterplot-da...
32
33
34
35
36
37
38
              }
          }
      }
  
      return out;
  };
  
42187739   mwasiluk   updated d3-scatte...
39
40
41
42
43
44
45
46
47
  D3ScatterPlotUtils.prototype.isObject = function(a) {
      return a !== null && typeof a === 'object';
  };
  D3ScatterPlotUtils.prototype.isNumber = function(a) {
      return !isNaN(a) && typeof a === 'number';
  };
  D3ScatterPlotUtils.prototype.isFunction = function(a) {
      return typeof a === 'function';
  };