docs: function mergeScaleConfig(/* config objects ... */) {
  	return helpers$1.merge({}, [].slice.call(arguments), {
  		merger: function(key, target, source, options) {
  			if (key === 'xAxes' || key === 'yAxes') {
  				var slen = source[key].length;
  				var i, type, scale;
  
  				if (!target[key]) {
  					target[key] = [];
  				}
  
  				for (i = 0; i < slen; ++i) {
  					scale = source[key][i];
  					type = valueOrDefault$8(scale.type, key === 'xAxes' ? 'category' : 'linear');
  
  					if (i >= target[key].length) {
  						target[key].push({});
  					}
  
  					if (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {
  						// new/untyped scale or type changed: let's apply the new defaults
  						// then merge source scale to correctly overwrite the defaults.
  						helpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]);
  					} else {
  						// scales type are the same
  						helpers$1.merge(target[key][i], scale);
  					}
  				}
  			} else {
  				helpers$1._merger(key, target, source, options);
  			}
  		}
  	});
  }