UNPKG

paths-js

Version:
131 lines (111 loc) 3.56 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })(); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _linear = require('./linear'); var _linear2 = _interopRequireDefault(_linear); var _ops = require('./ops'); var epsilon = 1e-5; var box = function box(datum, accessor, sort) { var points = datum.map(accessor); var sorted = sort ? points.sort(function (_ref, _ref3) { var _ref2 = _slicedToArray(_ref, 2); var a = _ref2[0]; var b = _ref2[1]; var _ref32 = _slicedToArray(_ref3, 2); var c = _ref32[0]; var d = _ref32[1]; return a - c; }) : points; var l = sorted.length; var xmin = sorted[0][0]; var xmax = sorted[l - 1][0]; var ymin = (0, _ops.minBy)(sorted, function (p) { return p[1]; }); var ymax = (0, _ops.maxBy)(sorted, function (p) { return p[1]; }); if (xmin == xmax) { xmax += epsilon; } if (ymin == ymax) { ymax += epsilon; } return { points: sorted, xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax }; }; exports['default'] = function (_ref4) { var data = _ref4.data; var xaccessor = _ref4.xaccessor; var yaccessor = _ref4.yaccessor; var width = _ref4.width; var height = _ref4.height; var closed = _ref4.closed; var min = _ref4.min; var max = _ref4.max; var _ref4$sort = _ref4.sort; var sort = _ref4$sort === undefined ? true : _ref4$sort; if (!xaccessor) { xaccessor = function (_ref5) { var _ref52 = _slicedToArray(_ref5, 2); var x = _ref52[0]; var y = _ref52[1]; return x; }; } if (!yaccessor) { yaccessor = function (_ref6) { var _ref62 = _slicedToArray(_ref6, 2); var x = _ref62[0]; var y = _ref62[1]; return y; }; } var f = function f(i) { return [xaccessor(i), yaccessor(i)]; }; var arranged = data.map(function (datum) { return box(datum, f, sort); }); var xmin = (0, _ops.minBy)(arranged, function (d) { return d.xmin; }); var xmax = (0, _ops.maxBy)(arranged, function (d) { return d.xmax; }); var ymin = min == null ? (0, _ops.minBy)(arranged, function (d) { return d.ymin; }) : min; var ymax = max == null ? (0, _ops.maxBy)(arranged, function (d) { return d.ymax; }) : max; if (closed) { ymin = Math.min(ymin, 0); ymax = Math.max(ymax, 0); } var base = closed ? 0 : ymin; var xscale = (0, _linear2['default'])([xmin, xmax], [0, width]); var yscale = (0, _linear2['default'])([ymin, ymax], [height, 0]); var scale = function scale(_ref7) { var _ref72 = _slicedToArray(_ref7, 2); var x = _ref72[0]; var y = _ref72[1]; return [xscale(x), yscale(y)]; }; return { arranged: arranged, scale: scale, xscale: xscale, yscale: yscale, base: base }; }; module.exports = exports['default'];