@pie-lib/plot 3.1.0-next.0 → 3.1.0-next.2
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.
- package/CHANGELOG.md +32 -0
- package/package.json +4 -4
- package/lib/__tests__/draggable.test.js +0 -48
- package/lib/__tests__/grid-draggable.test.js +0 -773
- package/lib/__tests__/root.test.js +0 -265
- package/lib/__tests__/trig.test.js +0 -168
- package/lib/__tests__/utils.test.js +0 -300
- package/lib/draggable.js +0 -44
- package/lib/draggable.js.map +0 -1
- package/lib/graph-props.js +0 -46
- package/lib/graph-props.js.map +0 -1
- package/lib/grid-draggable.js +0 -307
- package/lib/grid-draggable.js.map +0 -1
- package/lib/index.js +0 -44
- package/lib/index.js.map +0 -1
- package/lib/label.js +0 -150
- package/lib/label.js.map +0 -1
- package/lib/root.js +0 -455
- package/lib/root.js.map +0 -1
- package/lib/trig.js +0 -149
- package/lib/trig.js.map +0 -1
- package/lib/types.js +0 -40
- package/lib/types.js.map +0 -1
- package/lib/utils.js +0 -168
- package/lib/utils.js.map +0 -1
package/lib/trig.js
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.toRadians = exports.toDegrees = exports.hypotenuse = exports.getOpposingSide = exports.edges = exports.diffEdge = exports.angle = exports.acuteYAngle = exports.acuteXAngle = void 0;
|
|
8
|
-
var _utils = require("./utils");
|
|
9
|
-
var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
|
|
10
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
11
|
-
var log = (0, _debug["default"])('pie-lib:plot:trig');
|
|
12
|
-
var toDegrees = exports.toDegrees = function toDegrees(radians) {
|
|
13
|
-
return radians * (180 / Math.PI);
|
|
14
|
-
};
|
|
15
|
-
var toRadians = exports.toRadians = function toRadians(degrees) {
|
|
16
|
-
return degrees * (Math.PI / 180);
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* return angle in radians between 2 points using counting degrees counter clockwise
|
|
20
|
-
*
|
|
21
|
-
* 0,0 + 1,1 = 45 in radians
|
|
22
|
-
* 1,1 + 0,0 = 45?
|
|
23
|
-
* @param {Point} a
|
|
24
|
-
* @param {Point} b
|
|
25
|
-
*/
|
|
26
|
-
var angle = exports.angle = function angle(a, b) {
|
|
27
|
-
var vd = b.y - a.y;
|
|
28
|
-
var hd = b.x - a.x;
|
|
29
|
-
log(a, b, 'vd: ', vd, 'hd: ', hd);
|
|
30
|
-
var radians = Math.atan2(vd, hd);
|
|
31
|
-
return radians < 0 ? radians + Math.PI * 2 : radians;
|
|
32
|
-
};
|
|
33
|
-
var NINETY = Math.PI / 2;
|
|
34
|
-
var ONE_EIGHTY = Math.PI;
|
|
35
|
-
var TWO_SEVENTY = ONE_EIGHTY + NINETY;
|
|
36
|
-
var acuteXAngle = exports.acuteXAngle = function acuteXAngle(a) {
|
|
37
|
-
log(toDegrees(a));
|
|
38
|
-
if (a < NINETY) {
|
|
39
|
-
return a;
|
|
40
|
-
}
|
|
41
|
-
if (a < ONE_EIGHTY) {
|
|
42
|
-
return Math.abs(ONE_EIGHTY - a);
|
|
43
|
-
}
|
|
44
|
-
if (a < TWO_SEVENTY) {
|
|
45
|
-
return Math.abs(ONE_EIGHTY - a);
|
|
46
|
-
}
|
|
47
|
-
return Math.abs(Math.PI * 2 - a);
|
|
48
|
-
};
|
|
49
|
-
var acuteYAngle = exports.acuteYAngle = function acuteYAngle(a) {
|
|
50
|
-
return NINETY - acuteXAngle(a);
|
|
51
|
-
};
|
|
52
|
-
var hypotenuse = exports.hypotenuse = function hypotenuse(a, alpha) {
|
|
53
|
-
var out = Math.abs(a / Math.sin(alpha));
|
|
54
|
-
return out;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* return 2 edge points for a,b within domain + range.
|
|
59
|
-
* - one edge is from following a -> b to the bounds
|
|
60
|
-
* - one edge is from following b -> a to the bounds
|
|
61
|
-
* @param {{min: number, max: number}} domain
|
|
62
|
-
* @param {{min: number, max: number}} range
|
|
63
|
-
* @param {{x: number, y: number}} a
|
|
64
|
-
* @param {{x: number, y: number}} b
|
|
65
|
-
* @returns [{x: number, y: number}, {x: number, y: number}]
|
|
66
|
-
*/
|
|
67
|
-
var edges = exports.edges = function edges(domain, range) {
|
|
68
|
-
return function (a, b) {
|
|
69
|
-
// const xDest =
|
|
70
|
-
var destX = a.x < b.x ? domain.max : domain.min;
|
|
71
|
-
var destY = a.y < b.y ? range.max : range.min;
|
|
72
|
-
var aToB = diffEdge((0, _utils.xy)(destX, destY), a, b);
|
|
73
|
-
var dX = b.x < a.x ? domain.max : domain.min;
|
|
74
|
-
var dY = b.y < a.y ? range.max : range.min;
|
|
75
|
-
var bToA = diffEdge((0, _utils.xy)(dX, dY), b, a);
|
|
76
|
-
return [aToB, bToA];
|
|
77
|
-
};
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
/** get length of side A of a triangle from H and angle Alpha */
|
|
81
|
-
var getOpposingSide = exports.getOpposingSide = function getOpposingSide(hyp, angle) {
|
|
82
|
-
log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);
|
|
83
|
-
return Math.abs(hyp * Math.sin(angle));
|
|
84
|
-
};
|
|
85
|
-
var getShortestSide = function getShortestSide(xh, yh) {
|
|
86
|
-
if (Number.isFinite(xh) && Number.isFinite(yh)) {
|
|
87
|
-
if (xh === 0 && yh > 0) {
|
|
88
|
-
return 'y';
|
|
89
|
-
}
|
|
90
|
-
if (yh === 0 && xh > 0) {
|
|
91
|
-
return 'x';
|
|
92
|
-
}
|
|
93
|
-
return xh < yh ? 'x' : 'y';
|
|
94
|
-
}
|
|
95
|
-
if (isNaN(xh) && !isNaN(yh)) {
|
|
96
|
-
return 'y';
|
|
97
|
-
}
|
|
98
|
-
if (!isNaN(xh) && isNaN(yh)) {
|
|
99
|
-
return 'x';
|
|
100
|
-
}
|
|
101
|
-
if (xh === Infinity) {
|
|
102
|
-
return 'y';
|
|
103
|
-
}
|
|
104
|
-
if (yh === Infinity) {
|
|
105
|
-
return 'x';
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// eslint-disable-next-line no-console
|
|
109
|
-
console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);
|
|
110
|
-
};
|
|
111
|
-
/**
|
|
112
|
-
* return the difference between bounds and a as a Point
|
|
113
|
-
* @param {*} bounds
|
|
114
|
-
*/
|
|
115
|
-
var diffEdge = exports.diffEdge = function diffEdge(bounds, a, b) {
|
|
116
|
-
var l = log.enabled ? log.bind(log, "diffEdge: [".concat(a.x, ",").concat(a.y, " -> ").concat(b.x, ",").concat(b.y, "]")) : function () {};
|
|
117
|
-
var xRadians = angle(a, b);
|
|
118
|
-
l('x angle', toDegrees(xRadians));
|
|
119
|
-
var yRadians = Math.abs(xRadians - toRadians(90));
|
|
120
|
-
l('y angle', toDegrees(yRadians));
|
|
121
|
-
var xSide = Math.abs(a.x - bounds.x);
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Draw 2 triangles:
|
|
125
|
-
* 1 with a horizontal line from a to the graph x edge
|
|
126
|
-
* 1 with a vertical line from a to the graph y edge
|
|
127
|
-
* Calculate the hypotenuse for both, whichever is shorter
|
|
128
|
-
* indicates that we should use that triangle to get the edge point.
|
|
129
|
-
*/
|
|
130
|
-
var xH = hypotenuse(xSide, yRadians);
|
|
131
|
-
var ySide = Math.abs(a.y - bounds.y);
|
|
132
|
-
var yH = hypotenuse(ySide, xRadians);
|
|
133
|
-
l('x: side', xSide, 'h:', xH);
|
|
134
|
-
l('y: side', ySide, 'h:', yH);
|
|
135
|
-
var side = getShortestSide(xH, yH);
|
|
136
|
-
if (side !== 'x' && side !== 'y') {
|
|
137
|
-
throw new Error('Cant decide which hypotenuse to use');
|
|
138
|
-
}
|
|
139
|
-
var point = side === 'x' ? new _pointGeometry["default"](xSide, getOpposingSide(xH, xRadians)) : new _pointGeometry["default"](getOpposingSide(yH, yRadians), ySide);
|
|
140
|
-
l('point:', point);
|
|
141
|
-
var multiplier = new _pointGeometry["default"](b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);
|
|
142
|
-
l('multiplier:', multiplier);
|
|
143
|
-
var out = point.multByPoint(multiplier);
|
|
144
|
-
l('out:', out);
|
|
145
|
-
var normalized = out.add(new _pointGeometry["default"](a.x, a.y));
|
|
146
|
-
l('normalized:', normalized);
|
|
147
|
-
return normalized;
|
|
148
|
-
};
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdXRpbHMiLCJyZXF1aXJlIiwiX3BvaW50R2VvbWV0cnkiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2RlYnVnIiwibG9nIiwiZGVidWciLCJ0b0RlZ3JlZXMiLCJleHBvcnRzIiwicmFkaWFucyIsIk1hdGgiLCJQSSIsInRvUmFkaWFucyIsImRlZ3JlZXMiLCJhbmdsZSIsImEiLCJiIiwidmQiLCJ5IiwiaGQiLCJ4IiwiYXRhbjIiLCJOSU5FVFkiLCJPTkVfRUlHSFRZIiwiVFdPX1NFVkVOVFkiLCJhY3V0ZVhBbmdsZSIsImFicyIsImFjdXRlWUFuZ2xlIiwiaHlwb3RlbnVzZSIsImFscGhhIiwib3V0Iiwic2luIiwiZWRnZXMiLCJkb21haW4iLCJyYW5nZSIsImRlc3RYIiwibWF4IiwibWluIiwiZGVzdFkiLCJhVG9CIiwiZGlmZkVkZ2UiLCJ4eSIsImRYIiwiZFkiLCJiVG9BIiwiZ2V0T3Bwb3NpbmdTaWRlIiwiaHlwIiwiZ2V0U2hvcnRlc3RTaWRlIiwieGgiLCJ5aCIsIk51bWJlciIsImlzRmluaXRlIiwiaXNOYU4iLCJJbmZpbml0eSIsImNvbnNvbGUiLCJ3YXJuIiwiYm91bmRzIiwibCIsImVuYWJsZWQiLCJiaW5kIiwiY29uY2F0IiwieFJhZGlhbnMiLCJ5UmFkaWFucyIsInhTaWRlIiwieEgiLCJ5U2lkZSIsInlIIiwic2lkZSIsIkVycm9yIiwicG9pbnQiLCJQb2ludCIsIm11bHRpcGxpZXIiLCJtdWx0QnlQb2ludCIsIm5vcm1hbGl6ZWQiLCJhZGQiXSwic291cmNlcyI6WyIuLi9zcmMvdHJpZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB4eSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IFBvaW50IGZyb20gJ0BtYXBib3gvcG9pbnQtZ2VvbWV0cnknO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOnBsb3Q6dHJpZycpO1xuXG5leHBvcnQgY29uc3QgdG9EZWdyZWVzID0gKHJhZGlhbnMpID0+IHJhZGlhbnMgKiAoMTgwIC8gTWF0aC5QSSk7XG5leHBvcnQgY29uc3QgdG9SYWRpYW5zID0gKGRlZ3JlZXMpID0+IGRlZ3JlZXMgKiAoTWF0aC5QSSAvIDE4MCk7XG4vKipcbiAqIHJldHVybiBhbmdsZSBpbiByYWRpYW5zIGJldHdlZW4gMiBwb2ludHMgdXNpbmcgY291bnRpbmcgZGVncmVlcyBjb3VudGVyIGNsb2Nrd2lzZVxuICpcbiAqIDAsMCArIDEsMSA9IDQ1IGluIHJhZGlhbnNcbiAqIDEsMSArIDAsMCA9IDQ1P1xuICogQHBhcmFtIHtQb2ludH0gYVxuICogQHBhcmFtIHtQb2ludH0gYlxuICovXG5leHBvcnQgY29uc3QgYW5nbGUgPSAoYSwgYikgPT4ge1xuICBjb25zdCB2ZCA9IGIueSAtIGEueTtcbiAgY29uc3QgaGQgPSBiLnggLSBhLng7XG4gIGxvZyhhLCBiLCAndmQ6ICcsIHZkLCAnaGQ6ICcsIGhkKTtcbiAgY29uc3QgcmFkaWFucyA9IE1hdGguYXRhbjIodmQsIGhkKTtcbiAgcmV0dXJuIHJhZGlhbnMgPCAwID8gcmFkaWFucyArIE1hdGguUEkgKiAyIDogcmFkaWFucztcbn07XG5cbmNvbnN0IE5JTkVUWSA9IE1hdGguUEkgLyAyO1xuY29uc3QgT05FX0VJR0hUWSA9IE1hdGguUEk7XG5jb25zdCBUV09fU0VWRU5UWSA9IE9ORV9FSUdIVFkgKyBOSU5FVFk7XG5cbmV4cG9ydCBjb25zdCBhY3V0ZVhBbmdsZSA9IChhKSA9PiB7XG4gIGxvZyh0b0RlZ3JlZXMoYSkpO1xuXG4gIGlmIChhIDwgTklORVRZKSB7XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBpZiAoYSA8IE9ORV9FSUdIVFkpIHtcbiAgICByZXR1cm4gTWF0aC5hYnMoT05FX0VJR0hUWSAtIGEpO1xuICB9XG5cbiAgaWYgKGEgPCBUV09fU0VWRU5UWSkge1xuICAgIHJldHVybiBNYXRoLmFicyhPTkVfRUlHSFRZIC0gYSk7XG4gIH1cblxuICByZXR1cm4gTWF0aC5hYnMoTWF0aC5QSSAqIDIgLSBhKTtcbn07XG5cbmV4cG9ydCBjb25zdCBhY3V0ZVlBbmdsZSA9IChhKSA9PiBOSU5FVFkgLSBhY3V0ZVhBbmdsZShhKTtcblxuZXhwb3J0IGNvbnN0IGh5cG90ZW51c2UgPSAoYSwgYWxwaGEpID0+IHtcbiAgY29uc3Qgb3V0ID0gTWF0aC5hYnMoYSAvIE1hdGguc2luKGFscGhhKSk7XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbi8qKlxuICogcmV0dXJuIDIgZWRnZSBwb2ludHMgZm9yIGEsYiB3aXRoaW4gZG9tYWluICsgcmFuZ2UuXG4gKiAtIG9uZSBlZGdlIGlzIGZyb20gZm9sbG93aW5nIGEgLT4gYiB0byB0aGUgYm91bmRzXG4gKiAtIG9uZSBlZGdlIGlzIGZyb20gZm9sbG93aW5nIGIgLT4gYSB0byB0aGUgYm91bmRzXG4gKiBAcGFyYW0ge3ttaW46IG51bWJlciwgbWF4OiBudW1iZXJ9fSBkb21haW5cbiAqIEBwYXJhbSB7e21pbjogbnVtYmVyLCBtYXg6IG51bWJlcn19IHJhbmdlXG4gKiBAcGFyYW0ge3t4OiBudW1iZXIsIHk6IG51bWJlcn19IGFcbiAqIEBwYXJhbSB7e3g6IG51bWJlciwgeTogbnVtYmVyfX0gYlxuICogQHJldHVybnMgW3t4OiBudW1iZXIsIHk6IG51bWJlcn0sIHt4OiBudW1iZXIsIHk6IG51bWJlcn1dXG4gKi9cbmV4cG9ydCBjb25zdCBlZGdlcyA9IChkb21haW4sIHJhbmdlKSA9PiAoYSwgYikgPT4ge1xuICAvLyBjb25zdCB4RGVzdCA9XG4gIGNvbnN0IGRlc3RYID0gYS54IDwgYi54ID8gZG9tYWluLm1heCA6IGRvbWFpbi5taW47XG4gIGNvbnN0IGRlc3RZID0gYS55IDwgYi55ID8gcmFuZ2UubWF4IDogcmFuZ2UubWluO1xuICBjb25zdCBhVG9CID0gZGlmZkVkZ2UoeHkoZGVzdFgsIGRlc3RZKSwgYSwgYik7XG5cbiAgY29uc3QgZFggPSBiLnggPCBhLnggPyBkb21haW4ubWF4IDogZG9tYWluLm1pbjtcbiAgY29uc3QgZFkgPSBiLnkgPCBhLnkgPyByYW5nZS5tYXggOiByYW5nZS5taW47XG4gIGNvbnN0IGJUb0EgPSBkaWZmRWRnZSh4eShkWCwgZFkpLCBiLCBhKTtcbiAgcmV0dXJuIFthVG9CLCBiVG9BXTtcbn07XG5cbi8qKiBnZXQgbGVuZ3RoIG9mIHNpZGUgQSBvZiBhIHRyaWFuZ2xlIGZyb20gSCBhbmQgYW5nbGUgQWxwaGEgKi9cbmV4cG9ydCBjb25zdCBnZXRPcHBvc2luZ1NpZGUgPSAoaHlwLCBhbmdsZSkgPT4ge1xuICBsb2coJ1tnZXRPcHBvc2luZ1NpZGVdIGh5cDogJywgaHlwLCAnYW5nbGU6JywgYW5nbGUpO1xuICByZXR1cm4gTWF0aC5hYnMoaHlwICogTWF0aC5zaW4oYW5nbGUpKTtcbn07XG5cbmNvbnN0IGdldFNob3J0ZXN0U2lkZSA9ICh4aCwgeWgpID0+IHtcbiAgaWYgKE51bWJlci5pc0Zpbml0ZSh4aCkgJiYgTnVtYmVyLmlzRmluaXRlKHloKSkge1xuICAgIGlmICh4aCA9PT0gMCAmJiB5aCA+IDApIHtcbiAgICAgIHJldHVybiAneSc7XG4gICAgfVxuICAgIGlmICh5aCA9PT0gMCAmJiB4aCA+IDApIHtcbiAgICAgIHJldHVybiAneCc7XG4gICAgfVxuICAgIHJldHVybiB4aCA8IHloID8gJ3gnIDogJ3knO1xuICB9XG4gIGlmIChpc05hTih4aCkgJiYgIWlzTmFOKHloKSkge1xuICAgIHJldHVybiAneSc7XG4gIH1cbiAgaWYgKCFpc05hTih4aCkgJiYgaXNOYU4oeWgpKSB7XG4gICAgcmV0dXJuICd4JztcbiAgfVxuICBpZiAoeGggPT09IEluZmluaXR5KSB7XG4gICAgcmV0dXJuICd5JztcbiAgfVxuICBpZiAoeWggPT09IEluZmluaXR5KSB7XG4gICAgcmV0dXJuICd4JztcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUud2FybignaHlwb3RlbnVzZSAtIHdoaWNoIGlzIHNob3J0ZXI/IHg6JywgeGgsICd5OicsIHloKTtcbn07XG4vKipcbiAqIHJldHVybiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGJvdW5kcyBhbmQgYSBhcyBhIFBvaW50XG4gKiBAcGFyYW0geyp9IGJvdW5kc1xuICovXG5leHBvcnQgY29uc3QgZGlmZkVkZ2UgPSAoYm91bmRzLCBhLCBiKSA9PiB7XG4gIGxldCBsID0gbG9nLmVuYWJsZWQgPyBsb2cuYmluZChsb2csIGBkaWZmRWRnZTogWyR7YS54fSwke2EueX0gLT4gJHtiLnh9LCR7Yi55fV1gKSA6ICgpID0+IHt9O1xuICBjb25zdCB4UmFkaWFucyA9IGFuZ2xlKGEsIGIpO1xuICBsKCd4IGFuZ2xlJywgdG9EZWdyZWVzKHhSYWRpYW5zKSk7XG4gIGNvbnN0IHlSYWRpYW5zID0gTWF0aC5hYnMoeFJhZGlhbnMgLSB0b1JhZGlhbnMoOTApKTtcbiAgbCgneSBhbmdsZScsIHRvRGVncmVlcyh5UmFkaWFucykpO1xuICBjb25zdCB4U2lkZSA9IE1hdGguYWJzKGEueCAtIGJvdW5kcy54KTtcblxuICAvKipcbiAgICogRHJhdyAyIHRyaWFuZ2xlczpcbiAgICogMSB3aXRoIGEgaG9yaXpvbnRhbCBsaW5lIGZyb20gYSB0byB0aGUgZ3JhcGggeCBlZGdlXG4gICAqIDEgd2l0aCBhIHZlcnRpY2FsIGxpbmUgZnJvbSBhIHRvIHRoZSBncmFwaCB5IGVkZ2VcbiAgICogQ2FsY3VsYXRlIHRoZSBoeXBvdGVudXNlIGZvciBib3RoLCB3aGljaGV2ZXIgaXMgc2hvcnRlclxuICAgKiBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgdXNlIHRoYXQgdHJpYW5nbGUgdG8gZ2V0IHRoZSBlZGdlIHBvaW50LlxuICAgKi9cbiAgY29uc3QgeEggPSBoeXBvdGVudXNlKHhTaWRlLCB5UmFkaWFucyk7XG5cbiAgY29uc3QgeVNpZGUgPSBNYXRoLmFicyhhLnkgLSBib3VuZHMueSk7XG4gIGNvbnN0IHlIID0gaHlwb3RlbnVzZSh5U2lkZSwgeFJhZGlhbnMpO1xuXG4gIGwoJ3g6IHNpZGUnLCB4U2lkZSwgJ2g6JywgeEgpO1xuICBsKCd5OiBzaWRlJywgeVNpZGUsICdoOicsIHlIKTtcbiAgY29uc3Qgc2lkZSA9IGdldFNob3J0ZXN0U2lkZSh4SCwgeUgpO1xuXG4gIGlmIChzaWRlICE9PSAneCcgJiYgc2lkZSAhPT0gJ3knKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW50IGRlY2lkZSB3aGljaCBoeXBvdGVudXNlIHRvIHVzZScpO1xuICB9XG4gIGNvbnN0IHBvaW50ID1cbiAgICBzaWRlID09PSAneCcgPyBuZXcgUG9pbnQoeFNpZGUsIGdldE9wcG9zaW5nU2lkZSh4SCwgeFJhZGlhbnMpKSA6IG5ldyBQb2ludChnZXRPcHBvc2luZ1NpZGUoeUgsIHlSYWRpYW5zKSwgeVNpZGUpO1xuXG4gIGwoJ3BvaW50OicsIHBvaW50KTtcbiAgY29uc3QgbXVsdGlwbGllciA9IG5ldyBQb2ludChiLnggPCBhLnggPyAtMSA6IDEsIGIueSA8IGEueSA/IC0xIDogMSk7XG4gIGwoJ211bHRpcGxpZXI6JywgbXVsdGlwbGllcik7XG4gIGNvbnN0IG91dCA9IHBvaW50Lm11bHRCeVBvaW50KG11bHRpcGxpZXIpO1xuICBsKCdvdXQ6Jywgb3V0KTtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IG91dC5hZGQobmV3IFBvaW50KGEueCwgYS55KSk7XG4gIGwoJ25vcm1hbGl6ZWQ6Jywgbm9ybWFsaXplZCk7XG4gIHJldHVybiBub3JtYWxpemVkO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQU1JLEdBQUcsR0FBRyxJQUFBQyxpQkFBSyxFQUFDLG1CQUFtQixDQUFDO0FBRS9CLElBQU1DLFNBQVMsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLEdBQUcsU0FBWkEsU0FBU0EsQ0FBSUUsT0FBTztFQUFBLE9BQUtBLE9BQU8sSUFBSSxHQUFHLEdBQUdDLElBQUksQ0FBQ0MsRUFB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
|
package/lib/trig.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trig.js","names":["_utils","require","_pointGeometry","_interopRequireDefault","_debug","log","debug","toDegrees","exports","radians","Math","PI","toRadians","degrees","angle","a","b","vd","y","hd","x","atan2","NINETY","ONE_EIGHTY","TWO_SEVENTY","acuteXAngle","abs","acuteYAngle","hypotenuse","alpha","out","sin","edges","domain","range","destX","max","min","destY","aToB","diffEdge","xy","dX","dY","bToA","getOpposingSide","hyp","getShortestSide","xh","yh","Number","isFinite","isNaN","Infinity","console","warn","bounds","l","enabled","bind","concat","xRadians","yRadians","xSide","xH","ySide","yH","side","Error","point","Point","multiplier","multByPoint","normalized","add"],"sources":["../src/trig.js"],"sourcesContent":["import { xy } from './utils';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nconst log = debug('pie-lib:plot:trig');\n\nexport const toDegrees = (radians) => radians * (180 / Math.PI);\nexport const toRadians = (degrees) => degrees * (Math.PI / 180);\n/**\n * return angle in radians between 2 points using counting degrees counter clockwise\n *\n * 0,0 + 1,1 = 45 in radians\n * 1,1 + 0,0 = 45?\n * @param {Point} a\n * @param {Point} b\n */\nexport const angle = (a, b) => {\n const vd = b.y - a.y;\n const hd = b.x - a.x;\n log(a, b, 'vd: ', vd, 'hd: ', hd);\n const radians = Math.atan2(vd, hd);\n return radians < 0 ? radians + Math.PI * 2 : radians;\n};\n\nconst NINETY = Math.PI / 2;\nconst ONE_EIGHTY = Math.PI;\nconst TWO_SEVENTY = ONE_EIGHTY + NINETY;\n\nexport const acuteXAngle = (a) => {\n log(toDegrees(a));\n\n if (a < NINETY) {\n return a;\n }\n\n if (a < ONE_EIGHTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n if (a < TWO_SEVENTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n return Math.abs(Math.PI * 2 - a);\n};\n\nexport const acuteYAngle = (a) => NINETY - acuteXAngle(a);\n\nexport const hypotenuse = (a, alpha) => {\n const out = Math.abs(a / Math.sin(alpha));\n\n return out;\n};\n\n/**\n * return 2 edge points for a,b within domain + range.\n * - one edge is from following a -> b to the bounds\n * - one edge is from following b -> a to the bounds\n * @param {{min: number, max: number}} domain\n * @param {{min: number, max: number}} range\n * @param {{x: number, y: number}} a\n * @param {{x: number, y: number}} b\n * @returns [{x: number, y: number}, {x: number, y: number}]\n */\nexport const edges = (domain, range) => (a, b) => {\n // const xDest =\n const destX = a.x < b.x ? domain.max : domain.min;\n const destY = a.y < b.y ? range.max : range.min;\n const aToB = diffEdge(xy(destX, destY), a, b);\n\n const dX = b.x < a.x ? domain.max : domain.min;\n const dY = b.y < a.y ? range.max : range.min;\n const bToA = diffEdge(xy(dX, dY), b, a);\n return [aToB, bToA];\n};\n\n/** get length of side A of a triangle from H and angle Alpha */\nexport const getOpposingSide = (hyp, angle) => {\n log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);\n return Math.abs(hyp * Math.sin(angle));\n};\n\nconst getShortestSide = (xh, yh) => {\n if (Number.isFinite(xh) && Number.isFinite(yh)) {\n if (xh === 0 && yh > 0) {\n return 'y';\n }\n if (yh === 0 && xh > 0) {\n return 'x';\n }\n return xh < yh ? 'x' : 'y';\n }\n if (isNaN(xh) && !isNaN(yh)) {\n return 'y';\n }\n if (!isNaN(xh) && isNaN(yh)) {\n return 'x';\n }\n if (xh === Infinity) {\n return 'y';\n }\n if (yh === Infinity) {\n return 'x';\n }\n\n // eslint-disable-next-line no-console\n console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);\n};\n/**\n * return the difference between bounds and a as a Point\n * @param {*} bounds\n */\nexport const diffEdge = (bounds, a, b) => {\n let l = log.enabled ? log.bind(log, `diffEdge: [${a.x},${a.y} -> ${b.x},${b.y}]`) : () => {};\n const xRadians = angle(a, b);\n l('x angle', toDegrees(xRadians));\n const yRadians = Math.abs(xRadians - toRadians(90));\n l('y angle', toDegrees(yRadians));\n const xSide = Math.abs(a.x - bounds.x);\n\n /**\n * Draw 2 triangles:\n * 1 with a horizontal line from a to the graph x edge\n * 1 with a vertical line from a to the graph y edge\n * Calculate the hypotenuse for both, whichever is shorter\n * indicates that we should use that triangle to get the edge point.\n */\n const xH = hypotenuse(xSide, yRadians);\n\n const ySide = Math.abs(a.y - bounds.y);\n const yH = hypotenuse(ySide, xRadians);\n\n l('x: side', xSide, 'h:', xH);\n l('y: side', ySide, 'h:', yH);\n const side = getShortestSide(xH, yH);\n\n if (side !== 'x' && side !== 'y') {\n throw new Error('Cant decide which hypotenuse to use');\n }\n const point =\n side === 'x' ? new Point(xSide, getOpposingSide(xH, xRadians)) : new Point(getOpposingSide(yH, yRadians), ySide);\n\n l('point:', point);\n const multiplier = new Point(b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);\n l('multiplier:', multiplier);\n const out = point.multByPoint(multiplier);\n l('out:', out);\n const normalized = out.add(new Point(a.x, a.y));\n l('normalized:', normalized);\n return normalized;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/lib/types.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.SnapType = exports.SizeType = exports.ScaleType = exports.RangeType = exports.PointType = exports.GraphPropsType = exports.DomainType = exports.ChildrenType = exports.BaseDomainRangeType = void 0;
|
|
8
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var BaseDomainRangeType = exports.BaseDomainRangeType = {
|
|
10
|
-
min: _propTypes["default"].number.isRequired,
|
|
11
|
-
max: _propTypes["default"].number.isRequired,
|
|
12
|
-
step: _propTypes["default"].number
|
|
13
|
-
};
|
|
14
|
-
var DomainType = exports.DomainType = _propTypes["default"].shape(BaseDomainRangeType);
|
|
15
|
-
var RangeType = exports.RangeType = _propTypes["default"].shape(BaseDomainRangeType);
|
|
16
|
-
var SizeType = exports.SizeType = _propTypes["default"].shape({
|
|
17
|
-
width: _propTypes["default"].number.isRequired,
|
|
18
|
-
height: _propTypes["default"].number.isRequired
|
|
19
|
-
});
|
|
20
|
-
var PointType = exports.PointType = _propTypes["default"].shape({
|
|
21
|
-
x: _propTypes["default"].number.isRequired,
|
|
22
|
-
y: _propTypes["default"].number.isRequired
|
|
23
|
-
});
|
|
24
|
-
var ChildrenType = exports.ChildrenType = _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired;
|
|
25
|
-
var ScaleType = exports.ScaleType = _propTypes["default"].shape({
|
|
26
|
-
x: _propTypes["default"].func.isRequired,
|
|
27
|
-
y: _propTypes["default"].func.isRequired
|
|
28
|
-
});
|
|
29
|
-
var SnapType = exports.SnapType = _propTypes["default"].shape({
|
|
30
|
-
x: _propTypes["default"].func.isRequired,
|
|
31
|
-
y: _propTypes["default"].func.isRequired
|
|
32
|
-
});
|
|
33
|
-
var GraphPropsType = exports.GraphPropsType = _propTypes["default"].shape({
|
|
34
|
-
scale: ScaleType.isRequired,
|
|
35
|
-
snap: SnapType.isRequired,
|
|
36
|
-
domain: DomainType.isRequired,
|
|
37
|
-
range: RangeType.isRequired,
|
|
38
|
-
size: SizeType.isRequired
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJCYXNlRG9tYWluUmFuZ2VUeXBlIiwiZXhwb3J0cyIsIm1pbiIsIlByb3BUeXBlcyIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJtYXgiLCJzdGVwIiwiRG9tYWluVHlwZSIsInNoYXBlIiwiUmFuZ2VUeXBlIiwiU2l6ZVR5cGUiLCJ3aWR0aCIsImhlaWdodCIsIlBvaW50VHlwZSIsIngiLCJ5IiwiQ2hpbGRyZW5UeXBlIiwib25lT2ZUeXBlIiwiYXJyYXlPZiIsIm5vZGUiLCJTY2FsZVR5cGUiLCJmdW5jIiwiU25hcFR5cGUiLCJHcmFwaFByb3BzVHlwZSIsInNjYWxlIiwic25hcCIsImRvbWFpbiIsInJhbmdlIiwic2l6ZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQmFzZURvbWFpblJhbmdlVHlwZSA9IHtcbiAgbWluOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIG1heDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICBzdGVwOiBQcm9wVHlwZXMubnVtYmVyLFxufTtcblxuZXhwb3J0IGNvbnN0IERvbWFpblR5cGUgPSBQcm9wVHlwZXMuc2hhcGUoQmFzZURvbWFpblJhbmdlVHlwZSk7XG5cbmV4cG9ydCBjb25zdCBSYW5nZVR5cGUgPSBQcm9wVHlwZXMuc2hhcGUoQmFzZURvbWFpblJhbmdlVHlwZSk7XG5cbmV4cG9ydCBjb25zdCBTaXplVHlwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIGhlaWdodDogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxufSk7XG5cbmV4cG9ydCBjb25zdCBQb2ludFR5cGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICB4OiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIHk6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbn0pO1xuXG5leHBvcnQgY29uc3QgQ2hpbGRyZW5UeXBlID0gUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLm5vZGUpLCBQcm9wVHlwZXMubm9kZV0pLmlzUmVxdWlyZWQ7XG5cbmV4cG9ydCBjb25zdCBTY2FsZVR5cGUgPSBQcm9wVHlwZXMuc2hhcGUoe1xuICB4OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB5OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTbmFwVHlwZSA9IFByb3BUeXBlcy5zaGFwZSh7XG4gIHg6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59KTtcblxuZXhwb3J0IGNvbnN0IEdyYXBoUHJvcHNUeXBlID0gUHJvcFR5cGVzLnNoYXBlKHtcbiAgc2NhbGU6IFNjYWxlVHlwZS5pc1JlcXVpcmVkLFxuICBzbmFwOiBTbmFwVHlwZS5pc1JlcXVpcmVkLFxuICBkb21haW46IERvbWFpblR5cGUuaXNSZXF1aXJlZCxcbiAgcmFuZ2U6IFJhbmdlVHlwZS5pc1JlcXVpcmVkLFxuICBzaXplOiBTaXplVHlwZS5pc1JlcXVpcmVkLFxufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFTyxJQUFNQyxtQkFBbUIsR0FBQUMsT0FBQSxDQUFBRCxtQkFBQSxHQUFHO0VBQ2pDRSxHQUFHLEVBQUVDLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUNoQ0MsR0FBRyxFQUFFSCxxQkFBUyxDQUFDQyxNQUFNLENBQUNDLFVBQVU7RUFDaENFLElBQUksRUFBRUoscUJBQVMsQ0FBQ0M7QUFDbEIsQ0FBQztBQUVNLElBQU1JLFVBQVUsR0FBQVAsT0FBQSxDQUFBTyxVQUFBLEdBQUdMLHFCQUFTLENBQUNNLEtBQUssQ0FBQ1QsbUJBQW1CLENBQUM7QUFFdkQsSUFBTVUsU0FBUyxHQUFBVCxPQUFBLENBQUFTLFNBQUEsR0FBR1AscUJBQVMsQ0FBQ00sS0FBSyxDQUFDVCxtQkFBbUIsQ0FBQztBQUV0RCxJQUFNVyxRQUFRLEdBQUFWLE9BQUEsQ0FBQVUsUUFBQSxHQUFHUixxQkFBUyxDQUFDTSxLQUFLLENBQUM7RUFDdENHLEtBQUssRUFBRVQscUJBQVMsQ0FBQ0MsTUFBTSxDQUFDQyxVQUFVO0VBQ2xDUSxNQUFNLEVBQUVWLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0M7QUFDM0IsQ0FBQyxDQUFDO0FBRUssSUFBTVMsU0FBUyxHQUFBYixPQUFBLENBQUFhLFNBQUEsR0FBR1gscUJBQVMsQ0FBQ00sS0FBSyxDQUFDO0VBQ3ZDTSxDQUFDLEVBQUVaLHFCQUFTLENBQUNDLE1BQU0sQ0FBQ0MsVUFBVTtFQUM5QlcsQ0FBQyxFQUFFYixxQkFBUyxDQUFDQyxNQUFNLENBQUNDO0FBQ3RCLENBQUMsQ0FBQztBQUVLLElBQU1ZLFlBQVksR0FBQWhCLE9BQUEsQ0FBQWdCLFlBQUEsR0FBR2QscUJBQVMsQ0FBQ2UsU0FBUyxDQUFDLENBQUNmLHFCQUFTLENBQUNnQixPQUFPLENBQUNoQixxQkFBUyxDQUFDaUIsSUFBSSxDQUFDLEVBQUVqQixxQkFBUyxDQUFDaUIsSUFBSSxDQUFDLENBQUMsQ0FBQ2YsVUFBVTtBQUV4RyxJQUFNZ0IsU0FBUyxHQUFBcEIsT0FBQSxDQUFBb0IsU0FBQSxHQUFHbEIscUJBQVMsQ0FBQ00sS0FBSyxDQUFDO0VBQ3ZDTSxDQUFDLEVBQUVaLHFCQUFTLENBQUNtQixJQUFJLENBQUNqQixVQUFVO0VBQzVCVyxDQUFDLEVBQUViLHFCQUFTLENBQUNtQixJQUFJLENBQUNqQjtBQUNwQixDQUFDLENBQUM7QUFFSyxJQUFNa0IsUUFBUSxHQUFBdEIsT0FBQSxDQUFBc0IsUUFBQSxHQUFHcEIscUJBQVMsQ0FBQ00sS0FBSyxDQUFDO0VBQ3RDTSxDQUFDLEVBQUVaLHFCQUFTLENBQUNtQixJQUFJLENBQUNqQixVQUFVO0VBQzVCVyxDQUFDLEVBQUViLHFCQUFTLENBQUNtQixJQUFJLENBQUNqQjtBQUNwQixDQUFDLENBQUM7QUFFSyxJQUFNbUIsY0FBYyxHQUFBdkIsT0FBQSxDQUFBdUIsY0FBQSxHQUFHckIscUJBQVMsQ0FBQ00sS0FBSyxDQUFDO0VBQzVDZ0IsS0FBSyxFQUFFSixTQUFTLENBQUNoQixVQUFVO0VBQzNCcUIsSUFBSSxFQUFFSCxRQUFRLENBQUNsQixVQUFVO0VBQ3pCc0IsTUFBTSxFQUFFbkIsVUFBVSxDQUFDSCxVQUFVO0VBQzdCdUIsS0FBSyxFQUFFbEIsU0FBUyxDQUFDTCxVQUFVO0VBQzNCd0IsSUFBSSxFQUFFbEIsUUFBUSxDQUFDTjtBQUNqQixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["_propTypes","_interopRequireDefault","require","BaseDomainRangeType","exports","min","PropTypes","number","isRequired","max","step","DomainType","shape","RangeType","SizeType","width","height","PointType","x","y","ChildrenType","oneOfType","arrayOf","node","ScaleType","func","SnapType","GraphPropsType","scale","snap","domain","range","size"],"sources":["../src/types.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nexport const BaseDomainRangeType = {\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n step: PropTypes.number,\n};\n\nexport const DomainType = PropTypes.shape(BaseDomainRangeType);\n\nexport const RangeType = PropTypes.shape(BaseDomainRangeType);\n\nexport const SizeType = PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n});\n\nexport const PointType = PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n});\n\nexport const ChildrenType = PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired;\n\nexport const ScaleType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired,\n});\n\nexport const SnapType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired,\n});\n\nexport const GraphPropsType = PropTypes.shape({\n scale: ScaleType.isRequired,\n snap: SnapType.isRequired,\n domain: DomainType.isRequired,\n range: RangeType.isRequired,\n size: SizeType.isRequired,\n});\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,IAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG;EACjCE,GAAG,EAAEC,qBAAS,CAACC,MAAM,CAACC,UAAU;EAChCC,GAAG,EAAEH,qBAAS,CAACC,MAAM,CAACC,UAAU;EAChCE,IAAI,EAAEJ,qBAAS,CAACC;AAClB,CAAC;AAEM,IAAMI,UAAU,GAAAP,OAAA,CAAAO,UAAA,GAAGL,qBAAS,CAACM,KAAK,CAACT,mBAAmB,CAAC;AAEvD,IAAMU,SAAS,GAAAT,OAAA,CAAAS,SAAA,GAAGP,qBAAS,CAACM,KAAK,CAACT,mBAAmB,CAAC;AAEtD,IAAMW,QAAQ,GAAAV,OAAA,CAAAU,QAAA,GAAGR,qBAAS,CAACM,KAAK,CAAC;EACtCG,KAAK,EAAET,qBAAS,CAACC,MAAM,CAACC,UAAU;EAClCQ,MAAM,EAAEV,qBAAS,CAACC,MAAM,CAACC;AAC3B,CAAC,CAAC;AAEK,IAAMS,SAAS,GAAAb,OAAA,CAAAa,SAAA,GAAGX,qBAAS,CAACM,KAAK,CAAC;EACvCM,CAAC,EAAEZ,qBAAS,CAACC,MAAM,CAACC,UAAU;EAC9BW,CAAC,EAAEb,qBAAS,CAACC,MAAM,CAACC;AACtB,CAAC,CAAC;AAEK,IAAMY,YAAY,GAAAhB,OAAA,CAAAgB,YAAA,GAAGd,qBAAS,CAACe,SAAS,CAAC,CAACf,qBAAS,CAACgB,OAAO,CAAChB,qBAAS,CAACiB,IAAI,CAAC,EAAEjB,qBAAS,CAACiB,IAAI,CAAC,CAAC,CAACf,UAAU;AAExG,IAAMgB,SAAS,GAAApB,OAAA,CAAAoB,SAAA,GAAGlB,qBAAS,CAACM,KAAK,CAAC;EACvCM,CAAC,EAAEZ,qBAAS,CAACmB,IAAI,CAACjB,UAAU;EAC5BW,CAAC,EAAEb,qBAAS,CAACmB,IAAI,CAACjB;AACpB,CAAC,CAAC;AAEK,IAAMkB,QAAQ,GAAAtB,OAAA,CAAAsB,QAAA,GAAGpB,qBAAS,CAACM,KAAK,CAAC;EACtCM,CAAC,EAAEZ,qBAAS,CAACmB,IAAI,CAACjB,UAAU;EAC5BW,CAAC,EAAEb,qBAAS,CAACmB,IAAI,CAACjB;AACpB,CAAC,CAAC;AAEK,IAAMmB,cAAc,GAAAvB,OAAA,CAAAuB,cAAA,GAAGrB,qBAAS,CAACM,KAAK,CAAC;EAC5CgB,KAAK,EAAEJ,SAAS,CAAChB,UAAU;EAC3BqB,IAAI,EAAEH,QAAQ,CAAClB,UAAU;EACzBsB,MAAM,EAAEnB,UAAU,CAACH,UAAU;EAC7BuB,KAAK,EAAElB,SAAS,CAACL,UAAU;EAC3BwB,IAAI,EAAElB,QAAQ,CAACN;AACjB,CAAC,CAAC","ignoreList":[]}
|
package/lib/utils.js
DELETED
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.buildSizeArray = exports.bounds = exports.bandKey = exports.amountToIncreaseWidth = void 0;
|
|
8
|
-
exports.buildTickModel = buildTickModel;
|
|
9
|
-
exports.getDelta = exports.findLongestWord = exports.extractTextFromHTML = void 0;
|
|
10
|
-
exports.getInterval = getInterval;
|
|
11
|
-
exports.polygonToArea = exports.point = exports.lineToArea = exports.isEmptyString = exports.isEmptyObject = exports.isDomainRangeEqual = void 0;
|
|
12
|
-
exports.snapTo = snapTo;
|
|
13
|
-
exports.xy = exports.tickCount = void 0;
|
|
14
|
-
var _invariant = _interopRequireDefault(require("invariant"));
|
|
15
|
-
var _range = _interopRequireDefault(require("lodash/range"));
|
|
16
|
-
var _pointGeometry = _interopRequireDefault(require("@mapbox/point-geometry"));
|
|
17
|
-
var _head = _interopRequireDefault(require("lodash/head"));
|
|
18
|
-
var _tail = _interopRequireDefault(require("lodash/tail"));
|
|
19
|
-
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
20
|
-
var xy = exports.xy = function xy(x, y) {
|
|
21
|
-
return {
|
|
22
|
-
x: x,
|
|
23
|
-
y: y
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
var buildSizeArray = exports.buildSizeArray = function buildSizeArray(size, padding) {
|
|
27
|
-
padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;
|
|
28
|
-
(0, _invariant["default"])(padding < size, 'padding must be less than size');
|
|
29
|
-
var half = Math.round(padding * 0.5);
|
|
30
|
-
return [half, size - half];
|
|
31
|
-
};
|
|
32
|
-
var tickCount = exports.tickCount = function tickCount(min, max, step) {
|
|
33
|
-
(0, _invariant["default"])(min < max, 'min must be less than max');
|
|
34
|
-
var size = Math.abs(min - max);
|
|
35
|
-
return Math.round(size / step);
|
|
36
|
-
};
|
|
37
|
-
function getInterval(domain, ticks) {
|
|
38
|
-
var min = domain.min,
|
|
39
|
-
max = domain.max;
|
|
40
|
-
var major = ticks.major,
|
|
41
|
-
minor = ticks.minor;
|
|
42
|
-
if (min >= max) {
|
|
43
|
-
throw new Error("min is > max: ".concat(min, " > ").concat(max));
|
|
44
|
-
}
|
|
45
|
-
var distance = max - min;
|
|
46
|
-
var minorTicks = minor > 0 ? minor + 1 : 1;
|
|
47
|
-
var normalizedMajor = major - 1;
|
|
48
|
-
if (isNaN(normalizedMajor)) {
|
|
49
|
-
throw new Error('Tick Frequency must be 2 or higher');
|
|
50
|
-
}
|
|
51
|
-
if (normalizedMajor <= 0) {
|
|
52
|
-
throw new Error('Tick Frequency must be 2 or higher');
|
|
53
|
-
}
|
|
54
|
-
var divider = normalizedMajor * minorTicks;
|
|
55
|
-
var raw = distance / divider;
|
|
56
|
-
return parseFloat(Number(raw).toFixed(4));
|
|
57
|
-
}
|
|
58
|
-
var mkRange = function mkRange(min, max, interval) {
|
|
59
|
-
var raw = (0, _range["default"])(min, max, interval);
|
|
60
|
-
/* Fix the last step due to rounding errors */
|
|
61
|
-
raw.splice(raw.length, 1, max);
|
|
62
|
-
return raw;
|
|
63
|
-
};
|
|
64
|
-
function snapTo(min, max, interval, value) {
|
|
65
|
-
if (value >= max) {
|
|
66
|
-
return max;
|
|
67
|
-
}
|
|
68
|
-
if (value <= min) {
|
|
69
|
-
return min;
|
|
70
|
-
}
|
|
71
|
-
var rng = mkRange(min, max, interval);
|
|
72
|
-
rng = rng.filter(function (v) {
|
|
73
|
-
return Math.abs(value - v) <= interval;
|
|
74
|
-
});
|
|
75
|
-
return rng.length && rng.reduce(function (prev, curr) {
|
|
76
|
-
var currentDistance = Math.abs(curr - value);
|
|
77
|
-
var previousDistance = Math.abs(prev - value);
|
|
78
|
-
return currentDistance <= previousDistance ? curr : prev;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
function buildTickModel(domain, ticks, interval, scaleFn) {
|
|
82
|
-
var rng = mkRange(domain.min, domain.max, interval);
|
|
83
|
-
return rng.map(function (r, index) {
|
|
84
|
-
var isMajor = index % (ticks.minor + 1) === 0;
|
|
85
|
-
return {
|
|
86
|
-
value: r,
|
|
87
|
-
major: isMajor,
|
|
88
|
-
x: scaleFn(r)
|
|
89
|
-
};
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
var polygonToArea = exports.polygonToArea = function polygonToArea(points) {
|
|
93
|
-
var h = (0, _head["default"])(points);
|
|
94
|
-
var area = {
|
|
95
|
-
left: h.x,
|
|
96
|
-
top: h.y,
|
|
97
|
-
bottom: h.y,
|
|
98
|
-
right: h.x
|
|
99
|
-
};
|
|
100
|
-
return (0, _tail["default"])(points).reduce(function (a, p) {
|
|
101
|
-
a.left = Math.min(a.left, p.x);
|
|
102
|
-
a.top = Math.max(a.top, p.y);
|
|
103
|
-
a.bottom = Math.min(a.bottom, p.y);
|
|
104
|
-
a.right = Math.max(a.right, p.x);
|
|
105
|
-
return a;
|
|
106
|
-
}, area);
|
|
107
|
-
};
|
|
108
|
-
var lineToArea = exports.lineToArea = function lineToArea(from, to) {
|
|
109
|
-
var left = Math.min(from.x, to.x);
|
|
110
|
-
var top = Math.max(from.y, to.y);
|
|
111
|
-
var bottom = Math.min(from.y, to.y);
|
|
112
|
-
var right = Math.max(from.x, to.x);
|
|
113
|
-
return {
|
|
114
|
-
left: left,
|
|
115
|
-
top: top,
|
|
116
|
-
bottom: bottom,
|
|
117
|
-
right: right
|
|
118
|
-
};
|
|
119
|
-
};
|
|
120
|
-
var bounds = exports.bounds = function bounds(area, domain, range) {
|
|
121
|
-
return {
|
|
122
|
-
left: domain.min - area.left,
|
|
123
|
-
right: Math.abs(area.right - domain.max),
|
|
124
|
-
top: Math.abs(area.top - range.max),
|
|
125
|
-
bottom: range.min - area.bottom
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
var point = exports.point = function point(o) {
|
|
129
|
-
return new _pointGeometry["default"](o.x, o.y);
|
|
130
|
-
};
|
|
131
|
-
var getDelta = exports.getDelta = function getDelta(from, to) {
|
|
132
|
-
return point(to).sub(point(from));
|
|
133
|
-
};
|
|
134
|
-
var bandKey = exports.bandKey = function bandKey(d, index) {
|
|
135
|
-
return "".concat(index, "-").concat(d.label || '-');
|
|
136
|
-
};
|
|
137
|
-
var isDomainRangeEqual = exports.isDomainRangeEqual = function isDomainRangeEqual(graphProps, nextGraphProps) {
|
|
138
|
-
return (0, _isEqual["default"])(graphProps.domain, nextGraphProps.domain) && (0, _isEqual["default"])(graphProps.range, nextGraphProps.range);
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
// findLongestWord is also used in graphing
|
|
142
|
-
var findLongestWord = exports.findLongestWord = function findLongestWord(label) {
|
|
143
|
-
var longestWord = (label || '').replace(/<[^>]+>/g, '').split(' ').sort(function (a, b) {
|
|
144
|
-
return b.length - a.length;
|
|
145
|
-
});
|
|
146
|
-
return longestWord[0].length;
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
// amountToIncreaseWidth is also used in graphing
|
|
150
|
-
var amountToIncreaseWidth = exports.amountToIncreaseWidth = function amountToIncreaseWidth(longestWord) {
|
|
151
|
-
if (!longestWord) {
|
|
152
|
-
return 0;
|
|
153
|
-
}
|
|
154
|
-
return longestWord * 20;
|
|
155
|
-
};
|
|
156
|
-
var extractTextFromHTML = exports.extractTextFromHTML = function extractTextFromHTML(htmlString) {
|
|
157
|
-
var _doc$body;
|
|
158
|
-
var parser = new DOMParser();
|
|
159
|
-
var doc = parser === null || parser === void 0 ? void 0 : parser.parseFromString(htmlString, 'text/html');
|
|
160
|
-
return (doc === null || doc === void 0 || (_doc$body = doc.body) === null || _doc$body === void 0 ? void 0 : _doc$body.textContent) || '';
|
|
161
|
-
};
|
|
162
|
-
var isEmptyObject = exports.isEmptyObject = function isEmptyObject(obj) {
|
|
163
|
-
return obj && Object.keys(obj).length === 0 && obj.constructor === Object;
|
|
164
|
-
};
|
|
165
|
-
var isEmptyString = exports.isEmptyString = function isEmptyString(str) {
|
|
166
|
-
return typeof str === 'string' && str.trim() === '';
|
|
167
|
-
};
|
|
168
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfaW52YXJpYW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcmFuZ2UiLCJfcG9pbnRHZW9tZXRyeSIsIl9oZWFkIiwiX3RhaWwiLCJfaXNFcXVhbCIsInh5IiwiZXhwb3J0cyIsIngiLCJ5IiwiYnVpbGRTaXplQXJyYXkiLCJzaXplIiwicGFkZGluZyIsIk51bWJlciIsImlzRmluaXRlIiwiTWF0aCIsIm1heCIsImludmFyaWFudCIsImhhbGYiLCJyb3VuZCIsInRpY2tDb3VudCIsIm1pbiIsInN0ZXAiLCJhYnMiLCJnZXRJbnRlcnZhbCIsImRvbWFpbiIsInRpY2tzIiwibWFqb3IiLCJtaW5vciIsIkVycm9yIiwiY29uY2F0IiwiZGlzdGFuY2UiLCJtaW5vclRpY2tzIiwibm9ybWFsaXplZE1ham9yIiwiaXNOYU4iLCJkaXZpZGVyIiwicmF3IiwicGFyc2VGbG9hdCIsInRvRml4ZWQiLCJta1JhbmdlIiwiaW50ZXJ2YWwiLCJyYW5nZSIsInNwbGljZSIsImxlbmd0aCIsInNuYXBUbyIsInZhbHVlIiwicm5nIiwiZmlsdGVyIiwidiIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiY3VycmVudERpc3RhbmNlIiwicHJldmlvdXNEaXN0YW5jZSIsImJ1aWxkVGlja01vZGVsIiwic2NhbGVGbiIsIm1hcCIsInIiLCJpbmRleCIsImlzTWFqb3IiLCJwb2x5Z29uVG9BcmVhIiwicG9pbnRzIiwiaCIsImhlYWQiLCJhcmVhIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwidGFpbCIsImEiLCJwIiwibGluZVRvQXJlYSIsImZyb20iLCJ0byIsImJvdW5kcyIsInBvaW50IiwibyIsIlBvaW50IiwiZ2V0RGVsdGEiLCJzdWIiLCJiYW5kS2V5IiwiZCIsImxhYmVsIiwiaXNEb21haW5SYW5nZUVxdWFsIiwiZ3JhcGhQcm9wcyIsIm5leHRHcmFwaFByb3BzIiwiaXNFcXVhbCIsImZpbmRMb25nZXN0V29yZCIsImxvbmdlc3RXb3JkIiwicmVwbGFjZSIsInNwbGl0Iiwic29ydCIsImIiLCJhbW91bnRUb0luY3JlYXNlV2lkdGgiLCJleHRyYWN0VGV4dEZyb21IVE1MIiwiaHRtbFN0cmluZyIsIl9kb2MkYm9keSIsInBhcnNlciIsIkRPTVBhcnNlciIsImRvYyIsInBhcnNlRnJvbVN0cmluZyIsImJvZHkiLCJ0ZXh0Q29udGVudCIsImlzRW1wdHlPYmplY3QiLCJvYmoiLCJPYmplY3QiLCJrZXlzIiwiY29uc3RydWN0b3IiLCJpc0VtcHR5U3RyaW5nIiwic3RyIiwidHJpbSJdLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW52YXJpYW50IGZyb20gJ2ludmFyaWFudCc7XG5pbXBvcnQgcmFuZ2UgZnJvbSAnbG9kYXNoL3JhbmdlJztcbmltcG9ydCBQb2ludCBmcm9tICdAbWFwYm94L3BvaW50LWdlb21ldHJ5JztcbmltcG9ydCBoZWFkIGZyb20gJ2xvZGFzaC9oZWFkJztcbmltcG9ydCB0YWlsIGZyb20gJ2xvZGFzaC90YWlsJztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC9pc0VxdWFsJztcblxuZXhwb3J0IGNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmV4cG9ydCBjb25zdCBidWlsZFNpemVBcnJheSA9IChzaXplLCBwYWRkaW5nKSA9PiB7XG4gIHBhZGRpbmcgPSBOdW1iZXIuaXNGaW5pdGUocGFkZGluZykgPyBNYXRoLm1heChwYWRkaW5nLCAwKSA6IDA7XG4gIGludmFyaWFudChwYWRkaW5nIDwgc2l6ZSwgJ3BhZGRpbmcgbXVzdCBiZSBsZXNzIHRoYW4gc2l6ZScpO1xuICBjb25zdCBoYWxmID0gTWF0aC5yb3VuZChwYWRkaW5nICogMC41KTtcbiAgcmV0dXJuIFtoYWxmLCBzaXplIC0gaGFsZl07XG59O1xuXG5leHBvcnQgY29uc3QgdGlja0NvdW50ID0gKG1pbiwgbWF4LCBzdGVwKSA9PiB7XG4gIGludmFyaWFudChtaW4gPCBtYXgsICdtaW4gbXVzdCBiZSBsZXNzIHRoYW4gbWF4Jyk7XG4gIGNvbnN0IHNpemUgPSBNYXRoLmFicyhtaW4gLSBtYXgpO1xuICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8gc3RlcCk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJ2YWwoZG9tYWluLCB0aWNrcykge1xuICBjb25zdCB7IG1pbiwgbWF4IH0gPSBkb21haW47XG4gIGNvbnN0IHsgbWFqb3IsIG1pbm9yIH0gPSB0aWNrcztcblxuICBpZiAobWluID49IG1heCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgbWluIGlzID4gbWF4OiAke21pbn0gPiAke21heH1gKTtcbiAgfVxuXG4gIGNvbnN0IGRpc3RhbmNlID0gbWF4IC0gbWluO1xuICBjb25zdCBtaW5vclRpY2tzID0gbWlub3IgPiAwID8gbWlub3IgKyAxIDogMTtcbiAgY29uc3Qgbm9ybWFsaXplZE1ham9yID0gbWFqb3IgLSAxO1xuXG4gIGlmIChpc05hTihub3JtYWxpemVkTWFqb3IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaWNrIEZyZXF1ZW5jeSBtdXN0IGJlIDIgb3IgaGlnaGVyJyk7XG4gIH1cblxuICBpZiAobm9ybWFsaXplZE1ham9yIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1RpY2sgRnJlcXVlbmN5IG11c3QgYmUgMiBvciBoaWdoZXInKTtcbiAgfVxuXG4gIGNvbnN0IGRpdmlkZXIgPSBub3JtYWxpemVkTWFqb3IgKiBtaW5vclRpY2tzO1xuICBjb25zdCByYXcgPSBkaXN0YW5jZSAvIGRpdmlkZXI7XG4gIHJldHVybiBwYXJzZUZsb2F0KE51bWJlcihyYXcpLnRvRml4ZWQoNCkpO1xufVxuXG5jb25zdCBta1JhbmdlID0gKG1pbiwgbWF4LCBpbnRlcnZhbCkgPT4ge1xuICBjb25zdCByYXcgPSByYW5nZShtaW4sIG1heCwgaW50ZXJ2YWwpO1xuICAvKiBGaXggdGhlIGxhc3Qgc3RlcCBkdWUgdG8gcm91bmRpbmcgZXJyb3JzICovXG4gIHJhdy5zcGxpY2UocmF3Lmxlbmd0aCwgMSwgbWF4KTtcbiAgcmV0dXJuIHJhdztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzbmFwVG8obWluLCBtYXgsIGludGVydmFsLCB2YWx1ZSkge1xuICBpZiAodmFsdWUgPj0gbWF4KSB7XG4gICAgcmV0dXJuIG1heDtcbiAgfVxuXG4gIGlmICh2YWx1ZSA8PSBtaW4pIHtcbiAgICByZXR1cm4gbWluO1xuICB9XG5cbiAgbGV0IHJuZyA9IG1rUmFuZ2UobWluLCBtYXgsIGludGVydmFsKTtcblxuICBybmcgPSBybmcuZmlsdGVyKCh2KSA9PiB7XG4gICAgcmV0dXJuIE1hdGguYWJzKHZhbHVlIC0gdikgPD0gaW50ZXJ2YWw7XG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgcm5nLmxlbmd0aCAmJlxuICAgIHJuZy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnREaXN0YW5jZSA9IE1hdGguYWJzKGN1cnIgLSB2YWx1ZSk7XG4gICAgICBjb25zdCBwcmV2aW91c0Rpc3RhbmNlID0gTWF0aC5hYnMocHJldiAtIHZhbHVlKTtcbiAgICAgIHJldHVybiBjdXJyZW50RGlzdGFuY2UgPD0gcHJldmlvdXNEaXN0YW5jZSA/IGN1cnIgOiBwcmV2O1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRpY2tNb2RlbChkb21haW4sIHRpY2tzLCBpbnRlcnZhbCwgc2NhbGVGbikge1xuICBjb25zdCBybmcgPSBta1JhbmdlKGRvbWFpbi5taW4sIGRvbWFpbi5tYXgsIGludGVydmFsKTtcblxuICByZXR1cm4gcm5nLm1hcCgociwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpc01ham9yID0gaW5kZXggJSAodGlja3MubWlub3IgKyAxKSA9PT0gMDtcblxuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogcixcbiAgICAgIG1ham9yOiBpc01ham9yLFxuICAgICAgeDogc2NhbGVGbihyKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IHBvbHlnb25Ub0FyZWEgPSAocG9pbnRzKSA9PiB7XG4gIGNvbnN0IGggPSBoZWFkKHBvaW50cyk7XG4gIGNvbnN0IGFyZWEgPSB7XG4gICAgbGVmdDogaC54LFxuICAgIHRvcDogaC55LFxuICAgIGJvdHRvbTogaC55LFxuICAgIHJpZ2h0OiBoLngsXG4gIH07XG4gIHJldHVybiB0YWlsKHBvaW50cykucmVkdWNlKChhLCBwKSA9PiB7XG4gICAgYS5sZWZ0ID0gTWF0aC5taW4oYS5sZWZ0LCBwLngpO1xuICAgIGEudG9wID0gTWF0aC5tYXgoYS50b3AsIHAueSk7XG4gICAgYS5ib3R0b20gPSBNYXRoLm1pbihhLmJvdHRvbSwgcC55KTtcbiAgICBhLnJpZ2h0ID0gTWF0aC5tYXgoYS5yaWdodCwgcC54KTtcbiAgICByZXR1cm4gYTtcbiAgfSwgYXJlYSk7XG59O1xuXG5leHBvcnQgY29uc3QgbGluZVRvQXJlYSA9IChmcm9tLCB0bykgPT4ge1xuICBjb25zdCBsZWZ0ID0gTWF0aC5taW4oZnJvbS54LCB0by54KTtcbiAgY29uc3QgdG9wID0gTWF0aC5tYXgoZnJvbS55LCB0by55KTtcbiAgY29uc3QgYm90dG9tID0gTWF0aC5taW4oZnJvbS55LCB0by55KTtcbiAgY29uc3QgcmlnaHQgPSBNYXRoLm1heChmcm9tLngsIHRvLngpO1xuICByZXR1cm4geyBsZWZ0LCB0b3AsIGJvdHRvbSwgcmlnaHQgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBib3VuZHMgPSAoYXJlYSwgZG9tYWluLCByYW5nZSkgPT4ge1xuICByZXR1cm4ge1xuICAgIGxlZnQ6IGRvbWFpbi5taW4gLSBhcmVhLmxlZnQsXG4gICAgcmlnaHQ6IE1hdGguYWJzKGFyZWEucmlnaHQgLSBkb21haW4ubWF4KSxcbiAgICB0b3A6IE1hdGguYWJzKGFyZWEudG9wIC0gcmFuZ2UubWF4KSxcbiAgICBib3R0b206IHJhbmdlLm1pbiAtIGFyZWEuYm90dG9tLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50ID0gKG8pID0+IG5ldyBQb2ludChvLngsIG8ueSk7XG5leHBvcnQgY29uc3QgZ2V0RGVsdGEgPSAoZnJvbSwgdG8pID0+IHtcbiAgcmV0dXJuIHBvaW50KHRvKS5zdWIocG9pbnQoZnJvbSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGJhbmRLZXkgPSAoZCwgaW5kZXgpID0+IGAke2luZGV4fS0ke2QubGFiZWwgfHwgJy0nfWA7XG5cbmV4cG9ydCBjb25zdCBpc0RvbWFpblJhbmdlRXF1YWwgPSAoZ3JhcGhQcm9wcywgbmV4dEdyYXBoUHJvcHMpID0+IHtcbiAgcmV0dXJuIGlzRXF1YWwoZ3JhcGhQcm9wcy5kb21haW4sIG5leHRHcmFwaFByb3BzLmRvbWFpbikgJiYgaXNFcXVhbChncmFwaFByb3BzLnJhbmdlLCBuZXh0R3JhcGhQcm9wcy5yYW5nZSk7XG59O1xuXG4vLyBmaW5kTG9uZ2VzdFdvcmQgaXMgYWxzbyB1c2VkIGluIGdyYXBoaW5nXG5leHBvcnQgY29uc3QgZmluZExvbmdlc3RXb3JkID0gKGxhYmVsKSA9PiB7XG4gIGxldCBsb25nZXN0V29yZCA9IChsYWJlbCB8fCAnJylcbiAgICAucmVwbGFjZSgvPFtePl0rPi9nLCAnJylcbiAgICAuc3BsaXQoJyAnKVxuICAgIC5zb3J0KChhLCBiKSA9PiBiLmxlbmd0aCAtIGEubGVuZ3RoKTtcblxuICByZXR1cm4gbG9uZ2VzdFdvcmRbMF0ubGVuZ3RoO1xufTtcblxuLy8gYW1vdW50VG9JbmNyZWFzZVdpZHRoIGlzIGFsc28gdXNlZCBpbiBncmFwaGluZ1xuZXhwb3J0IGNvbnN0IGFtb3VudFRvSW5jcmVhc2VXaWR0aCA9IChsb25nZXN0V29yZCkgPT4ge1xuICBpZiAoIWxvbmdlc3RXb3JkKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gbG9uZ2VzdFdvcmQgKiAyMDtcbn07XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0VGV4dEZyb21IVE1MID0gKGh0bWxTdHJpbmcpID0+IHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBjb25zdCBkb2MgPSBwYXJzZXI/LnBhcnNlRnJvbVN0cmluZyhodG1sU3RyaW5nLCAndGV4dC9odG1sJyk7XG4gIHJldHVybiBkb2M/LmJvZHk/LnRleHRDb250ZW50IHx8ICcnO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRW1wdHlPYmplY3QgPSAob2JqKSA9PiB7XG4gIHJldHVybiBvYmogJiYgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDAgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgaXNFbXB0eVN0cmluZyA9IChzdHIpID0+IHtcbiAgcmV0dXJuIHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnICYmIHN0ci50cmltKCkgPT09ICcnO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFFBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUVPLElBQU1NLEVBQUUsR0FBQUMsT0FBQSxDQUFBRCxFQUFBLEdBQUcsU0FBTEEsRUFBRUEsQ0FBSUUsQ0FBQyxFQUFFQyxDQUFDO0VBQUEsT0FBTTtJQUFFRCxDQUFDLEVBQURBLENBQUM7SUFBRUMsQ0FBQyxFQUFEQTtFQUFFLENBQUM7QUFBQSxDQUFDO0FBRS9CLElBQU1DLGNBQWMsR0FBQUgsT0FBQSxDQUFBRyxjQUFBLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLElBQUksRUFBRUMsT0FBTyxFQUFLO0VBQy9DQSxPQUFPLEdBQUdDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRixPQUFPLENBQUMsR0FBR0csSUFBSSxDQUFDQyxHQUFHLENBQUNKLE9B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
|
package/lib/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_invariant","_interopRequireDefault","require","_range","_pointGeometry","_head","_tail","_isEqual","xy","exports","x","y","buildSizeArray","size","padding","Number","isFinite","Math","max","invariant","half","round","tickCount","min","step","abs","getInterval","domain","ticks","major","minor","Error","concat","distance","minorTicks","normalizedMajor","isNaN","divider","raw","parseFloat","toFixed","mkRange","interval","range","splice","length","snapTo","value","rng","filter","v","reduce","prev","curr","currentDistance","previousDistance","buildTickModel","scaleFn","map","r","index","isMajor","polygonToArea","points","h","head","area","left","top","bottom","right","tail","a","p","lineToArea","from","to","bounds","point","o","Point","getDelta","sub","bandKey","d","label","isDomainRangeEqual","graphProps","nextGraphProps","isEqual","findLongestWord","longestWord","replace","split","sort","b","amountToIncreaseWidth","extractTextFromHTML","htmlString","_doc$body","parser","DOMParser","doc","parseFromString","body","textContent","isEmptyObject","obj","Object","keys","constructor","isEmptyString","str","trim"],"sources":["../src/utils.js"],"sourcesContent":["import invariant from 'invariant';\nimport range from 'lodash/range';\nimport Point from '@mapbox/point-geometry';\nimport head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport isEqual from 'lodash/isEqual';\n\nexport const xy = (x, y) => ({ x, y });\n\nexport const buildSizeArray = (size, padding) => {\n padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;\n invariant(padding < size, 'padding must be less than size');\n const half = Math.round(padding * 0.5);\n return [half, size - half];\n};\n\nexport const tickCount = (min, max, step) => {\n invariant(min < max, 'min must be less than max');\n const size = Math.abs(min - max);\n return Math.round(size / step);\n};\n\nexport function getInterval(domain, ticks) {\n const { min, max } = domain;\n const { major, minor } = ticks;\n\n if (min >= max) {\n throw new Error(`min is > max: ${min} > ${max}`);\n }\n\n const distance = max - min;\n const minorTicks = minor > 0 ? minor + 1 : 1;\n const normalizedMajor = major - 1;\n\n if (isNaN(normalizedMajor)) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n if (normalizedMajor <= 0) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n const divider = normalizedMajor * minorTicks;\n const raw = distance / divider;\n return parseFloat(Number(raw).toFixed(4));\n}\n\nconst mkRange = (min, max, interval) => {\n const raw = range(min, max, interval);\n /* Fix the last step due to rounding errors */\n raw.splice(raw.length, 1, max);\n return raw;\n};\n\nexport function snapTo(min, max, interval, value) {\n if (value >= max) {\n return max;\n }\n\n if (value <= min) {\n return min;\n }\n\n let rng = mkRange(min, max, interval);\n\n rng = rng.filter((v) => {\n return Math.abs(value - v) <= interval;\n });\n\n return (\n rng.length &&\n rng.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n}\n\nexport function buildTickModel(domain, ticks, interval, scaleFn) {\n const rng = mkRange(domain.min, domain.max, interval);\n\n return rng.map((r, index) => {\n const isMajor = index % (ticks.minor + 1) === 0;\n\n return {\n value: r,\n major: isMajor,\n x: scaleFn(r),\n };\n });\n}\n\nexport const polygonToArea = (points) => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x,\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => {\n const left = Math.min(from.x, to.x);\n const top = Math.max(from.y, to.y);\n const bottom = Math.min(from.y, to.y);\n const right = Math.max(from.x, to.x);\n return { left, top, bottom, right };\n};\n\nexport const bounds = (area, domain, range) => {\n return {\n left: domain.min - area.left,\n right: Math.abs(area.right - domain.max),\n top: Math.abs(area.top - range.max),\n bottom: range.min - area.bottom,\n };\n};\n\nexport const point = (o) => new Point(o.x, o.y);\nexport const getDelta = (from, to) => {\n return point(to).sub(point(from));\n};\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return isEqual(graphProps.domain, nextGraphProps.domain) && isEqual(graphProps.range, nextGraphProps.range);\n};\n\n// findLongestWord is also used in graphing\nexport const findLongestWord = (label) => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in graphing\nexport const amountToIncreaseWidth = (longestWord) => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 20;\n};\n\nexport const extractTextFromHTML = (htmlString) => {\n const parser = new DOMParser();\n const doc = parser?.parseFromString(htmlString, 'text/html');\n return doc?.body?.textContent || '';\n};\n\nexport const isEmptyObject = (obj) => {\n return obj && Object.keys(obj).length === 0 && obj.constructor === Object;\n};\n\nexport const isEmptyString = (str) => {\n return typeof str === 'string' && str.trim() === '';\n};\n"],"mappings":"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","ignoreList":[]}
|