NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/adjust/build/adjust.js
2023-09-14 14:47:11 +08:00

1131 lines
26 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["adjust"] = factory();
else
root["adjust"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 10);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(12);
var isArray = __webpack_require__(1);
var each = function each(elements, func) {
if (!elements) {
return;
}
var rst = void 0;
if (isArray(elements)) {
for (var i = 0, len = elements.length; i < len; i++) {
rst = func(elements[i], i);
if (rst === false) {
break;
}
}
} else if (isObject(elements)) {
for (var k in elements) {
if (elements.hasOwnProperty(k)) {
rst = func(elements[k], k);
if (rst === false) {
break;
}
}
}
}
};
module.exports = each;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
var isType = __webpack_require__(5);
var isArray = Array.isArray ? Array.isArray : function (value) {
return isType(value, 'Array');
};
module.exports = isArray;
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
var mix = __webpack_require__(3);
var Adjust =
/*#__PURE__*/
function () {
var _proto = Adjust.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
this.adjustNames = ['x', 'y']; // 调整的维度,默认,x,y都做调整
};
function Adjust(cfg) {
this._initDefaultCfg();
mix(this, cfg);
}
/**
* @override
*/
_proto.processAdjust = function processAdjust()
/* dataArray */
{};
return Adjust;
}();
module.exports = Adjust;
/***/ }),
/* 3 */
/***/ (function(module, exports) {
function _mix(dist, obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key) && key !== 'constructor' && obj[key] !== undefined) {
dist[key] = obj[key];
}
}
}
var mix = function mix(dist, src1, src2, src3) {
if (src1) _mix(dist, src1);
if (src2) _mix(dist, src2);
if (src3) _mix(dist, src3);
return dist;
};
module.exports = mix;
/***/ }),
/* 4 */
/***/ (function(module, exports) {
var merge = function merge(dataArray) {
var rst = [];
for (var i = 0; i < dataArray.length; i++) {
rst = rst.concat(dataArray[i]);
}
return rst;
};
module.exports = merge;
/***/ }),
/* 5 */
/***/ (function(module, exports) {
var toString = {}.toString;
var isType = function isType(value, type) {
return toString.call(value) === '[object ' + type + ']';
};
module.exports = isType;
/***/ }),
/* 6 */
/***/ (function(module, exports) {
// isFinite,
var isNil = function isNil(value) {
/**
* isNil(null) => true
* isNil() => true
*/
return value === null || value === undefined;
};
module.exports = isNil;
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
var DEFAULT_Y = 0; // 默认的y的值
var each = __webpack_require__(0);
var ArrayUtil = {
values: __webpack_require__(8)
};
module.exports = {
/**
* 对应的维度是否可以调整
* @protected
* @param {String} dimName 可以调整的维度 x,y
* @return {Boolean} 是否可以调整
*/
isAdjust: function isAdjust(dimName) {
return this.adjustNames.indexOf(dimName) >= 0;
},
/**
* @protected
* 获取可调整度量对应的值
* @param {Frame} mergeData 数据
* @return {Object} 值的映射
*/
_getDimValues: function _getDimValues(mergeData) {
var self = this;
var valuesMap = {};
var dims = [];
if (self.xField && self.isAdjust('x')) {
dims.push(self.xField);
}
if (self.yField && self.isAdjust('y')) {
dims.push(self.yField);
}
each(dims, function (dim) {
var values = ArrayUtil.values(mergeData, dim);
values.sort(function (v1, v2) {
return v1 - v2;
});
valuesMap[dim] = values;
});
if (!self.yField && self.isAdjust('y')) {
// 只有一维的情况下,同时调整y
var dim = 'y';
var values = [DEFAULT_Y, 1]; // 默认分布在y轴的 0.1 与 0.2 之间
valuesMap[dim] = values;
}
return valuesMap;
},
adjustData: function adjustData(dataArray, mergeData) {
var self = this;
var valuesMap = self._getDimValues(mergeData);
each(dataArray, function (data, index) {
// 遍历所有数据集合
each(valuesMap, function (values, dim) {
// 根据不同的度量分别调整位置
self.adjustDim(dim, values, data, dataArray.length, index);
});
});
},
getAdjustRange: function getAdjustRange(dim, key, values) {
var self = this;
var index = values.indexOf(key);
var length = values.length;
var pre;
var next;
if (!self.yField && self.isAdjust('y')) {
pre = 0;
next = 1;
} else if (length > 1) {
pre = index === 0 ? values[0] : values[index - 1];
next = index === length - 1 ? values[length - 1] : values[index + 1];
if (index !== 0) {
pre += (key - pre) / 2;
} else {
pre -= (next - key) / 2;
}
if (index !== length - 1) {
next -= (next - key) / 2;
} else {
next += (key - values[length - 2]) / 2;
}
} else {
pre = key === 0 ? 0 : key - 0.5;
next = key === 0 ? 1 : key + 0.5;
}
return {
pre: pre,
next: next
};
},
/**
* 对数据进行分组
* @param {Array} data 数据
* @param {String} dim 分组的字段
* @return {Object} 分组的键值对映射
*/
groupData: function groupData(data, dim) {
var groups = {};
each(data, function (record) {
var value = record[dim];
if (value === undefined) {
value = record[dim] = DEFAULT_Y;
}
if (!groups[value]) {
groups[value] = [];
}
groups[value].push(record);
});
return groups;
}
};
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
var isNil = __webpack_require__(6);
var isArray = __webpack_require__(1);
var each = __webpack_require__(0);
module.exports = function valuesOfKey(data, name) {
var rst = [];
var tmpMap = {};
for (var i = 0; i < data.length; i++) {
var obj = data[i];
var value = obj[name];
if (!isNil(value)) {
if (!isArray(value)) {
value = [value];
}
each(value, function (val) {
if (!tmpMap[val]) {
rst.push(val);
tmpMap[val] = true;
}
});
}
}
return rst;
};
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
/**
* 是否为函数
* @param {*} fn 对象
* @return {Boolean} 是否函数
*/
var isType = __webpack_require__(5);
var isFunction = function isFunction(value) {
return isType(value, 'Function');
};
module.exports = isFunction;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
// 完整版下使用支持按照某个字段进行分组的 dodge
var mix = __webpack_require__(3);
var Adjust = __webpack_require__(2);
var Dodge = __webpack_require__(11);
var Stack = __webpack_require__(13);
var AdjustMixin = __webpack_require__(7);
var DodgeMixin = __webpack_require__(14);
var StackMixin = __webpack_require__(18);
mix(Adjust.prototype, AdjustMixin);
mix(Dodge.prototype, AdjustMixin, DodgeMixin);
mix(Stack.prototype, StackMixin);
Adjust.Jitter = __webpack_require__(19);
Adjust.Symmetric = __webpack_require__(20);
Adjust.Dodge = Dodge;
Adjust.Stack = Stack;
module.exports = Adjust;
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var Adjust = __webpack_require__(2);
var each = __webpack_require__(0);
var MARGIN_RATIO = 1 / 2;
var DODGE_RATIO = 1 / 2;
var Dodge =
/*#__PURE__*/
function (_Adjust) {
_inheritsLoose(Dodge, _Adjust);
function Dodge() {
return _Adjust.apply(this, arguments) || this;
}
var _proto = Dodge.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
/**
* 调整过程中,2个数据的间距
* @type {Number}
*/
this.marginRatio = MARGIN_RATIO;
/**
* 调整占单位宽度的比例,例如占2个分类间距的 1/2
* @type {Number}
*/
this.dodgeRatio = DODGE_RATIO;
this.adjustNames = ['x', 'y']; // 调整的维度,默认,x,y都做调整
};
_proto.getDodgeOffset = function getDodgeOffset(range, index, count) {
var self = this;
var pre = range.pre;
var next = range.next;
var tickLength = next - pre;
var width = tickLength * self.dodgeRatio / count;
var margin = self.marginRatio * width;
var offset = 1 / 2 * (tickLength - count * width - (count - 1) * margin) + ((index + 1) * width + index * margin) - 1 / 2 * width - 1 / 2 * tickLength;
return (pre + next) / 2 + offset;
};
_proto.processAdjust = function processAdjust(dataArray) {
var self = this;
var count = dataArray.length;
var xField = self.xField;
each(dataArray, function (data, index) {
for (var i = 0, len = data.length; i < len; i++) {
var obj = data[i];
var value = obj[xField];
var range = {
pre: len === 1 ? value - 1 : value - 0.5,
next: len === 1 ? value + 1 : value + 0.5
};
var dodgeValue = self.getDodgeOffset(range, index, count);
obj[xField] = dodgeValue;
}
});
};
return Dodge;
}(Adjust);
Adjust.Dodge = Dodge;
module.exports = Dodge;
/***/ }),
/* 12 */
/***/ (function(module, exports) {
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
return typeof obj;
} : function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
var isObject = function isObject(value) {
/**
* isObject({}) => true
* isObject([1, 2, 3]) => true
* isObject(Function) => true
* isObject(null) => false
*/
var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);
return value !== null && type === 'object' || type === 'function';
};
module.exports = isObject;
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var isArray = __webpack_require__(1);
var isNil = __webpack_require__(6);
var Adjust = __webpack_require__(2);
var Stack =
/*#__PURE__*/
function (_Adjust) {
_inheritsLoose(Stack, _Adjust);
function Stack() {
return _Adjust.apply(this, arguments) || this;
}
var _proto = Stack.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
this.xField = null; // 调整对应的 x 方向对应的字段名称
this.yField = null; // 调整对应的 y 方向对应的字段名称
};
_proto.processAdjust = function processAdjust(dataArray) {
this.processStack(dataArray);
};
_proto.processStack = function processStack(dataArray) {
var self = this;
var xField = self.xField;
var yField = self.yField;
var count = dataArray.length;
var stackCache = {
positive: {},
negative: {}
}; // 层叠顺序翻转
if (self.reverseOrder) {
dataArray = dataArray.slice(0).reverse();
}
for (var i = 0; i < count; i++) {
var data = dataArray[i];
for (var j = 0, len = data.length; j < len; j++) {
var item = data[j];
var x = item[xField] || 0;
var y = item[yField];
var xkey = x.toString();
y = isArray(y) ? y[1] : y;
if (!isNil(y)) {
var direction = y >= 0 ? 'positive' : 'negative';
if (!stackCache[direction][xkey]) {
stackCache[direction][xkey] = 0;
}
item[yField] = [stackCache[direction][xkey], y + stackCache[direction][xkey]];
stackCache[direction][xkey] += y;
}
}
}
};
return Stack;
}(Adjust);
Adjust.Stack = Stack;
module.exports = Stack;
/***/ }),
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
var ArrayUtil = {
merge: __webpack_require__(4),
values: __webpack_require__(8)
};
var group = __webpack_require__(15);
var each = __webpack_require__(0);
module.exports = {
/**
* @protected
* @override
*/
processAdjust: function processAdjust(dataArray) {
var self = this;
var mergeData = ArrayUtil.merge(dataArray);
var dodgeDim = self.dodgeBy;
var adjDataArray = dataArray;
if (dodgeDim) {
// 如果指定了分组dim的字段
adjDataArray = group(mergeData, dodgeDim);
}
self.cacheMap = {};
self.adjDataArray = adjDataArray;
self.mergeData = mergeData;
self.adjustData(adjDataArray, mergeData);
self.adjDataArray = null;
self.mergeData = null;
},
getDistribution: function getDistribution(dim) {
var self = this;
var dataArray = self.adjDataArray;
var cacheMap = self.cacheMap;
var map = cacheMap[dim];
if (!map) {
map = {};
each(dataArray, function (data, index) {
var values = ArrayUtil.values(data, dim);
if (!values.length) {
values.push(0);
}
each(values, function (val) {
if (!map[val]) {
map[val] = [];
}
map[val].push(index);
});
});
cacheMap[dim] = map;
}
return map;
},
adjustDim: function adjustDim(dim, values, data, frameCount, frameIndex) {
var self = this;
var map = self.getDistribution(dim);
var groupData = self.groupData(data, dim); // 根据值分组
each(groupData, function (group, key) {
key = parseFloat(key);
var range;
if (values.length === 1) {
range = {
pre: values[0] - 1,
next: values[0] + 1
};
} else {
range = self.getAdjustRange(dim, key, values);
}
each(group, function (record) {
var value = record[dim];
var valueArr = map[value];
var valIndex = valueArr.indexOf(frameIndex);
record[dim] = self.getDodgeOffset(range, valIndex, valueArr.length);
});
});
}
};
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
var groupToMap = __webpack_require__(16);
var group = function group(data, condition) {
if (!condition) {
return [data];
}
var groups = groupToMap(data, condition);
var array = [];
for (var i in groups) {
array.push(groups[i]);
}
return array;
};
module.exports = group;
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
var isFunction = __webpack_require__(9);
var isArray = __webpack_require__(1);
var groupBy = __webpack_require__(17);
var groupToMap = function groupToMap(data, condition) {
if (!condition) {
return {
0: data
};
}
if (!isFunction(condition)) {
var paramsCondition = isArray(condition) ? condition : condition.replace(/\s+/g, '').split('*');
condition = function condition(row) {
var unique = '_'; // 避免出现数字作为Key的情况会进行按照数字的排序
for (var i = 0, l = paramsCondition.length; i < l; i++) {
unique += row[paramsCondition[i]] && row[paramsCondition[i]].toString();
}
return unique;
};
}
var groups = groupBy(data, condition);
return groups;
};
module.exports = groupToMap;
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
var each = __webpack_require__(0);
var isArray = __webpack_require__(1);
var hasOwnProperty = Object.prototype.hasOwnProperty;
var groupBy = function groupBy(data, condition) {
if (!condition || !isArray(data)) {
return data;
}
var result = {};
var key = null;
each(data, function (item) {
key = condition(item);
if (hasOwnProperty.call(result, key)) {
result[key].push(item);
} else {
result[key] = [item];
}
});
return result;
};
module.exports = groupBy;
/***/ }),
/* 18 */
/***/ (function(module, exports) {
module.exports = {
_initDefaultCfg: function _initDefaultCfg() {
this.xField = null; // 调整对应的 x 方向对应的字段名称
this.yField = null; // 调整对应的 y 方向对应的字段名称
this.height = null; // 仅有一个维度调整时,总的高度
this.size = 10; // 单个点的大小
this.reverseOrder = false; // 是否反序进行层叠
this.adjustNames = ['y']; // Only support stack y
},
processOneDimStack: function processOneDimStack(dataArray) {
var self = this;
var xField = self.xField;
var yField = self.yField || 'y';
var height = self.height;
var stackY = {}; // 如果层叠的顺序翻转
if (self.reverseOrder) {
dataArray = dataArray.slice(0).reverse();
}
for (var i = 0, len = dataArray.length; i < len; i++) {
var data = dataArray[i]; // cates
for (var j = 0, dataLen = data.length; j < dataLen; j++) {
var item = data[j];
var size = item.size || self.size;
var stackHeight = size * 2 / height;
var x = item[xField];
if (!stackY[x]) {
stackY[x] = stackHeight / 2;
}
item[yField] = stackY[x];
stackY[x] += stackHeight;
}
}
},
processAdjust: function processAdjust(dataArray) {
if (this.yField) {
this.processStack(dataArray);
} else {
this.processOneDimStack(dataArray);
}
}
};
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var each = __webpack_require__(0);
var mix = __webpack_require__(3);
var ArrayUtil = {
merge: __webpack_require__(4)
};
var Adjust = __webpack_require__(2);
var AdjustMixin = __webpack_require__(7);
var Jitter =
/*#__PURE__*/
function (_Adjust) {
_inheritsLoose(Jitter, _Adjust);
function Jitter() {
return _Adjust.apply(this, arguments) || this;
}
var _proto = Jitter.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
this.xField = null; // 调整对应的 x 方向对应的字段名称
this.yField = null; // 调整对应的 y 方向对应的字段名称
this.adjustNames = ['x', 'y']; // 指x,y
this.groupFields = null; // 参与分组的数据维度
};
_proto.processAdjust = function processAdjust(dataArray) {
var self = this;
var mergeData = ArrayUtil.merge(dataArray);
self.adjDataArray = dataArray;
self.mergeData = mergeData;
self.adjustData(dataArray, mergeData);
self.adjFrames = null;
self.mergeData = null;
};
_proto.getAdjustOffset = function getAdjustOffset(pre, next) {
var r = Math.random(); // 随机位置,均匀分布
var avg = next - pre; // * length
var append = avg * 0.05;
return pre + append + avg * 0.9 * r;
}; // adjust group data
_proto._adjustGroup = function _adjustGroup(group, dim, key, values) {
var self = this;
var range = self.getAdjustRange(dim, key, values);
each(group, function (record) {
record[dim] = self.getAdjustOffset(range.pre, range.next); // 获取调整的位置
});
};
_proto.adjustDim = function adjustDim(dim, values, data) {
var self = this;
var groupData = self.groupData(data, dim);
each(groupData, function (group, key) {
key = parseFloat(key);
self._adjustGroup(group, dim, key, values);
});
};
return Jitter;
}(Adjust);
mix(Jitter.prototype, AdjustMixin);
Adjust.Jitter = Jitter;
module.exports = Jitter;
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
var each = __webpack_require__(0);
var maxBy = __webpack_require__(21);
var isArray = __webpack_require__(1);
var ArrayUtil = {
merge: __webpack_require__(4)
};
var Adjust = __webpack_require__(2);
var Symmetric =
/*#__PURE__*/
function (_Adjust) {
_inheritsLoose(Symmetric, _Adjust);
function Symmetric() {
return _Adjust.apply(this, arguments) || this;
}
var _proto = Symmetric.prototype;
_proto._initDefaultCfg = function _initDefaultCfg() {
this.xField = null; // 调整对应的 x 方向对应的字段名称
this.yField = null; // 调整对应的 y 方向对应的字段名称
this.cacheMax = null; // 缓存的最大值
this.adjustNames = ['y']; // Only support stack y
this.groupFields = null; // 参与分组的数据维度
}; // 获取最大的y值
_proto._getMax = function _getMax(dim) {
var self = this;
var mergeData = self.mergeData;
var maxRecord = maxBy(mergeData, function (obj) {
var value = obj[dim];
if (isArray(value)) {
return Math.max.apply(null, value);
}
return value;
});
var maxValue = maxRecord[dim];
var max = isArray(maxValue) ? Math.max.apply(null, maxValue) : maxValue;
return max;
}; // 获取每个字段最大的值
_proto._getXValuesMax = function _getXValuesMax() {
var self = this;
var yField = self.yField;
var xField = self.xField;
var cache = {};
var mergeData = self.mergeData;
each(mergeData, function (obj) {
var xValue = obj[xField];
var yValue = obj[yField];
var max = isArray(yValue) ? Math.max.apply(null, yValue) : yValue;
cache[xValue] = cache[xValue] || 0;
if (cache[xValue] < max) {
cache[xValue] = max;
}
});
return cache;
}; // 入口函数
_proto.processAdjust = function processAdjust(dataArray) {
var self = this;
var mergeData = ArrayUtil.merge(dataArray);
self.mergeData = mergeData;
self._processSymmetric(dataArray);
self.mergeData = null;
}; // 处理对称
_proto._processSymmetric = function _processSymmetric(dataArray) {
var self = this;
var xField = self.xField;
var yField = self.yField;
var max = self._getMax(yField);
var first = dataArray[0][0];
var cache;
if (first && isArray(first[yField])) {
cache = self._getXValuesMax();
}
each(dataArray, function (data) {
each(data, function (obj) {
var value = obj[yField];
var offset;
if (isArray(value)) {
var xValue = obj[xField];
var valueMax = cache[xValue];
offset = (max - valueMax) / 2;
var tmp = [];
/* eslint-disable no-loop-func */
each(value, function (subVal) {
// 多个字段
tmp.push(offset + subVal);
});
/* eslint-enable no-loop-func */
obj[yField] = tmp;
} else {
offset = (max - value) / 2;
obj[yField] = [offset, value + offset];
}
});
});
};
return Symmetric;
}(Adjust);
Adjust.Symmetric = Symmetric;
module.exports = Symmetric;
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
var isArray = __webpack_require__(1);
var isFunction = __webpack_require__(9);
var each = __webpack_require__(0);
/**
* @param {Array} arr The array to iterate over.
* @param {Function} [fn] The iteratee invoked per element.
* @return {*} Returns the maximum value.
* @example
*
* var objects = [{ 'n': 1 }, { 'n': 2 }];
*
* maxBy(objects, function(o) { return o.n; });
* // => { 'n': 2 }
*
* maxBy(objects, 'n');
* // => { 'n': 2 }
*/
var maxBy = function maxBy(arr, fn) {
if (!isArray(arr)) {
return undefined;
}
var max = arr[0];
var maxData = void 0;
if (isFunction(fn)) {
maxData = fn(arr[0]);
} else {
maxData = arr[0][fn];
}
var data = void 0;
each(arr, function (val) {
if (isFunction(fn)) {
data = fn(val);
} else {
data = val[fn];
}
if (data > maxData) {
max = val;
maxData = data;
}
});
return max;
};
module.exports = maxBy;
/***/ })
/******/ ]);
});
//# sourceMappingURL=adjust.js.map