@pie-element/number-line 6.6.0 → 6.6.1-beta.1

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.
Files changed (75) hide show
  1. package/configure/package.json +3 -3
  2. package/controller/package.json +3 -3
  3. package/package.json +8 -7
  4. package/configure/lib/arrows.js +0 -117
  5. package/configure/lib/arrows.js.map +0 -1
  6. package/configure/lib/card-bar.js +0 -79
  7. package/configure/lib/card-bar.js.map +0 -1
  8. package/configure/lib/defaults.js +0 -68
  9. package/configure/lib/defaults.js.map +0 -1
  10. package/configure/lib/domain.js +0 -106
  11. package/configure/lib/domain.js.map +0 -1
  12. package/configure/lib/index.js +0 -148
  13. package/configure/lib/index.js.map +0 -1
  14. package/configure/lib/main.js +0 -630
  15. package/configure/lib/main.js.map +0 -1
  16. package/configure/lib/number-text-field.js +0 -97
  17. package/configure/lib/number-text-field.js.map +0 -1
  18. package/configure/lib/point-config.js +0 -145
  19. package/configure/lib/point-config.js.map +0 -1
  20. package/configure/lib/size.js +0 -58
  21. package/configure/lib/size.js.map +0 -1
  22. package/configure/lib/ticks.js +0 -92
  23. package/configure/lib/ticks.js.map +0 -1
  24. package/configure/lib/utils.js +0 -14
  25. package/configure/lib/utils.js.map +0 -1
  26. package/controller/lib/defaults.js +0 -47
  27. package/controller/lib/defaults.js.map +0 -1
  28. package/controller/lib/index.js +0 -443
  29. package/controller/lib/index.js.map +0 -1
  30. package/lib/data-converter.js +0 -100
  31. package/lib/data-converter.js.map +0 -1
  32. package/lib/draggable/index.js +0 -53
  33. package/lib/draggable/index.js.map +0 -1
  34. package/lib/index.js +0 -241
  35. package/lib/index.js.map +0 -1
  36. package/lib/number-line/colors.js +0 -21
  37. package/lib/number-line/colors.js.map +0 -1
  38. package/lib/number-line/feedback.js +0 -108
  39. package/lib/number-line/feedback.js.map +0 -1
  40. package/lib/number-line/graph/arrow.js +0 -63
  41. package/lib/number-line/graph/arrow.js.map +0 -1
  42. package/lib/number-line/graph/elements/base.js +0 -26
  43. package/lib/number-line/graph/elements/base.js.map +0 -1
  44. package/lib/number-line/graph/elements/builder.js +0 -38
  45. package/lib/number-line/graph/elements/builder.js.map +0 -1
  46. package/lib/number-line/graph/elements/line.js +0 -317
  47. package/lib/number-line/graph/elements/line.js.map +0 -1
  48. package/lib/number-line/graph/elements/point.js +0 -233
  49. package/lib/number-line/graph/elements/point.js.map +0 -1
  50. package/lib/number-line/graph/elements/ray.js +0 -227
  51. package/lib/number-line/graph/elements/ray.js.map +0 -1
  52. package/lib/number-line/graph/index.js +0 -326
  53. package/lib/number-line/graph/index.js.map +0 -1
  54. package/lib/number-line/graph/line.js +0 -48
  55. package/lib/number-line/graph/line.js.map +0 -1
  56. package/lib/number-line/graph/stacks.js +0 -101
  57. package/lib/number-line/graph/stacks.js.map +0 -1
  58. package/lib/number-line/graph/tick-utils.js +0 -295
  59. package/lib/number-line/graph/tick-utils.js.map +0 -1
  60. package/lib/number-line/graph/ticks.js +0 -244
  61. package/lib/number-line/graph/ticks.js.map +0 -1
  62. package/lib/number-line/index.js +0 -401
  63. package/lib/number-line/index.js.map +0 -1
  64. package/lib/number-line/point-chooser/button.js +0 -74
  65. package/lib/number-line/point-chooser/button.js.map +0 -1
  66. package/lib/number-line/point-chooser/img.js +0 -9
  67. package/lib/number-line/point-chooser/img.js.map +0 -1
  68. package/lib/number-line/point-chooser/index.js +0 -181
  69. package/lib/number-line/point-chooser/index.js.map +0 -1
  70. package/lib/number-line/point-chooser/styles.js +0 -98
  71. package/lib/number-line/point-chooser/styles.js.map +0 -1
  72. package/lib/number-line/transitions/fade.js +0 -67
  73. package/lib/number-line/transitions/fade.js.map +0 -1
  74. package/lib/number-line/transitions/index.js +0 -16
  75. package/lib/number-line/transitions/index.js.map +0 -1
@@ -1,101 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Stack = Stack;
7
- exports["default"] = Stacks;
8
-
9
- function Stacks(domain) {
10
- var stacks = [new Stack(domain)];
11
-
12
- this.add = function (el) {
13
- var stack = stacks.find(function (s) {
14
- return s.add(el);
15
- });
16
-
17
- if (stacks.indexOf(stack) === -1) {
18
- stack = new Stack(domain);
19
- stacks.push(stack);
20
- stack.add(el);
21
- }
22
-
23
- return stacks.indexOf(stack);
24
- };
25
- }
26
-
27
- function Stack(domain) {
28
- var elements = [];
29
- /**
30
- * Try to add the element to the stack.
31
- * @return boolean true if added, else false
32
- */
33
-
34
- this.add = function (el)
35
- /*boolean*/
36
- {
37
- var elementRange = getRange(el);
38
-
39
- if (elementRange.left < domain.min || elementRange.right > domain.max) {
40
- return false;
41
- }
42
-
43
- var touchesExisting = elements.some(function (e) {
44
- return touchesRange(e, elementRange);
45
- });
46
-
47
- if (touchesExisting) {
48
- return false;
49
- } else {
50
- elements.push(el);
51
- return true;
52
- }
53
- };
54
-
55
- this.elements = function () {
56
- return elements;
57
- };
58
-
59
- var touchesRange = function touchesRange(el, candidate) {
60
- var existing = getRange(el);
61
- var leftOf = candidate.left < existing.left && candidate.right < existing.left;
62
- var rightOf = candidate.left > existing.right && candidate.right > existing.right;
63
- return !(leftOf || rightOf);
64
- };
65
-
66
- var getRange = function getRange(el) {
67
- var type = el.type,
68
- position = el.position;
69
-
70
- switch (type) {
71
- case 'point':
72
- {
73
- return {
74
- left: position,
75
- right: position
76
- };
77
- }
78
-
79
- case 'line':
80
- {
81
- return position;
82
- }
83
-
84
- case 'ray':
85
- {
86
- if (el.direction === 'positive') {
87
- return {
88
- left: position,
89
- right: domain.max
90
- };
91
- } else {
92
- return {
93
- left: domain.min,
94
- right: position
95
- };
96
- }
97
- }
98
- }
99
- };
100
- }
101
- //# sourceMappingURL=stacks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/stacks.js"],"names":["Stacks","domain","stacks","Stack","add","el","stack","find","s","indexOf","push","elements","elementRange","getRange","left","min","right","max","touchesExisting","some","e","touchesRange","candidate","existing","leftOf","rightOf","type","position","direction"],"mappings":"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","sourcesContent":["export default function Stacks(domain) {\n let stacks = [new Stack(domain)];\n\n this.add = function (el) {\n let stack = stacks.find((s) => s.add(el));\n if (stacks.indexOf(stack) === -1) {\n stack = new Stack(domain);\n stacks.push(stack);\n stack.add(el);\n }\n return stacks.indexOf(stack);\n };\n}\n\nexport function Stack(domain) {\n let elements = [];\n /**\n * Try to add the element to the stack.\n * @return boolean true if added, else false\n */\n this.add = function (el) /*boolean*/ {\n let elementRange = getRange(el);\n if (elementRange.left < domain.min || elementRange.right > domain.max) {\n return false;\n }\n\n let touchesExisting = elements.some((e) => touchesRange(e, elementRange));\n\n if (touchesExisting) {\n return false;\n } else {\n elements.push(el);\n return true;\n }\n };\n\n this.elements = function () {\n return elements;\n };\n\n let touchesRange = (el, candidate) => {\n let existing = getRange(el);\n let leftOf = candidate.left < existing.left && candidate.right < existing.left;\n let rightOf = candidate.left > existing.right && candidate.right > existing.right;\n return !(leftOf || rightOf);\n };\n\n let getRange = (el) => {\n let { type, position } = el;\n\n switch (type) {\n case 'point': {\n return { left: position, right: position };\n }\n case 'line': {\n return position;\n }\n case 'ray': {\n if (el.direction === 'positive') {\n return {\n left: position,\n right: domain.max,\n };\n } else {\n return {\n left: domain.min,\n right: position,\n };\n }\n }\n }\n };\n}\n"],"file":"stacks.js"}
@@ -1,295 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.zeroBasedRange = exports.zbrErrorMessage = exports.snapTo = exports.snapElements = exports.simpleRange = exports.normalizeTicks = exports.minorLimits = exports.isMultiple = exports.fractionSnapTo = exports.fractionRange = exports.fraction = exports.closeTo = exports.buildTickDataAsFractions = exports.buildTickData = void 0;
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var math = _interopRequireWildcard(require("mathjs"));
15
-
16
- var _uniqWith = _interopRequireDefault(require("lodash/uniqWith"));
17
-
18
- var _isObject = _interopRequireDefault(require("lodash/isObject"));
19
-
20
- var _isNumber = _interopRequireDefault(require("lodash/isNumber"));
21
-
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
-
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
-
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
-
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
-
30
- var fractionSnapTo = function fractionSnapTo(min, max, interval, value) {
31
- value = fmax(fmin(value, max), min);
32
- var mod = value.mod(interval);
33
- var v;
34
- var half = interval.div(2);
35
-
36
- if (math.largerEq(math.abs(mod), half)) {
37
- var d = interval.sub(math.abs(mod));
38
- var fn = math.largerEq(value, 0) ? 'add' : 'sub';
39
- v = value[fn](d);
40
- } else {
41
- var fn2 = math.largerEq(value, 0) ? 'sub' : 'add';
42
- v = value[fn2](math.abs(mod));
43
- }
44
-
45
- return v;
46
- };
47
-
48
- exports.fractionSnapTo = fractionSnapTo;
49
-
50
- var snapTo = function snapTo(min, max, interval, value) {
51
- var out = fractionSnapTo(math.fraction(min), math.fraction(max), math.fraction(interval), math.fraction(value));
52
- return math.number(out);
53
- };
54
-
55
- exports.snapTo = snapTo;
56
-
57
- var fractionRange = function fractionRange(start, end, interval) {
58
- var m = math.mod(math.abs(start), math.abs(interval));
59
-
60
- if (!math.equal(m, 0)) {
61
- throw new Error('start point must be divisible by interval');
62
- }
63
-
64
- if (math.equal(start, end)) {
65
- return [];
66
- }
67
-
68
- var e = math.subtract(end, math.mod(end, math.abs(interval)));
69
- var direction = math.larger(interval, 0) ? 'positive' : 'negative';
70
-
71
- if (direction === 'negative' && math.largerEq(end, start)) {
72
- throw new Error('start must be > than end when doing a negative decrement');
73
- }
74
-
75
- if (direction === 'positive' && math.smallerEq(end, start)) {
76
- throw new Error('start must be < end when doing increments');
77
- }
78
-
79
- var compareFn = direction === 'positive' ? math.smallerEq : math.equal(e, end) ? math.largerEq : math.larger;
80
- var out = [];
81
- var next = start;
82
-
83
- while (compareFn(next, e)) {
84
- out.push(next);
85
- next = math.add(next, interval);
86
- }
87
-
88
- return out;
89
- };
90
-
91
- exports.fractionRange = fractionRange;
92
-
93
- var zbrErrorMessage = function zbrErrorMessage(start, end) {
94
- return "Can only do a positive or negative range, but got: start: ".concat(start, " and end:").concat(end);
95
- };
96
-
97
- exports.zbrErrorMessage = zbrErrorMessage;
98
-
99
- var zeroBasedRange = function zeroBasedRange(start, end, interval) {
100
- start = math.fraction(start);
101
- end = math.fraction(end);
102
- interval = math.fraction(interval);
103
- var length = math.abs(math.subtract(end, start));
104
-
105
- if (math.larger(length, math.abs(end))) {
106
- throw new Error(zbrErrorMessage(start, end));
107
- }
108
-
109
- var a = {
110
- start: math.abs(start),
111
- end: math.abs(end),
112
- interval: math.abs(interval),
113
- multiplier: math.smaller(interval, 0) ? -1 : 1
114
- };
115
- var m = math.mod(a.start, a.interval);
116
- var s = math.larger(m, 0) ? math.add(math.subtract(a.start, m), a.interval) : a.start;
117
- var r = fractionRange(s, a.end, a.interval);
118
- var out = a.multiplier === -1 ? r.map(function (v) {
119
- return math.multiply(v, -1);
120
- }) : r;
121
-
122
- if (math.smaller(interval, 0)) {
123
- out.reverse();
124
- }
125
-
126
- return out;
127
- };
128
-
129
- exports.zeroBasedRange = zeroBasedRange;
130
-
131
- var fmin = function fmin(a, b) {
132
- a = math.fraction(a);
133
- b = math.fraction(b);
134
- return math.smaller(a, b) ? a : b;
135
- };
136
-
137
- var fmax = function fmax(a, b) {
138
- a = math.fraction(a);
139
- b = math.fraction(b);
140
- return math.larger(a, b) ? a : b;
141
- };
142
- /**
143
- * the lodash range was causing too much variance in the rounding errors
144
- * such that it was hard to round the numbers.
145
- * This is a more simplistic version but makes rounding work.
146
- */
147
-
148
-
149
- var simpleRange = function simpleRange(start, end, interval) {
150
- start = math.fraction(start);
151
- end = math.fraction(end);
152
- interval = math.fraction(interval);
153
- var positiveRange = math.larger(end, 0) ? zeroBasedRange(fmax(0, start), end, interval) : [];
154
- var negativeRange = math.smaller(start, 0) ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1)) : [];
155
- var together = negativeRange.concat(positiveRange);
156
- var out = (0, _uniqWith["default"])(together, math.equal);
157
- return out;
158
- };
159
-
160
- exports.simpleRange = simpleRange;
161
-
162
- var closeTo = function closeTo(a, b, precision) {
163
- precision = precision || 2;
164
- var expectedDiff = Math.pow(10, -precision) / 2;
165
- var receivedDiff = Math.abs(a - b);
166
- return receivedDiff < expectedDiff;
167
- };
168
-
169
- exports.closeTo = closeTo;
170
-
171
- var limit = function limit(v, min, max) {
172
- if (math.smaller(v, min)) {
173
- return min;
174
- }
175
-
176
- if (math.larger(v, max)) {
177
- return max;
178
- }
179
-
180
- return v;
181
- };
182
-
183
- var minorLimits = function minorLimits(domain) {
184
- var end = domain.max - domain.min;
185
- return {
186
- min: math.divide(math.fraction(end), 100),
187
- max: math.divide(math.fraction(end), 3)
188
- };
189
- };
190
-
191
- exports.minorLimits = minorLimits;
192
-
193
- var isMultiple = function isMultiple(multiple, src) {
194
- var mod = math.mod(multiple, src);
195
- return math.equal(mod, 0);
196
- };
197
- /**
198
- * Accepts a fraction object {n,d,s} or number.
199
- * @param {*} v
200
- * @return mathjs.fraction
201
- */
202
-
203
-
204
- exports.isMultiple = isMultiple;
205
-
206
- var fraction = function fraction(v) {
207
- if ((0, _isObject["default"])(v)) {
208
- return math.fraction(v.n * v.s, v.d);
209
- } else if ((0, _isNumber["default"])(v)) {
210
- return math.fraction(v);
211
- }
212
- };
213
-
214
- exports.fraction = fraction;
215
-
216
- var normalizeTicks = function normalizeTicks(domain, ticks, opts) {
217
- var l = opts ? opts.limit !== false : true;
218
- var end = fraction(domain.max - domain.min);
219
- var minor = l ? limit(fraction(ticks.minor), math.divide(end, 100), math.divide(end, 3)) : math.fraction(ticks.minor);
220
- var major = l ? limit(fraction(ticks.major), minor, math.multiply(minor, 10)) : math.fraction(ticks.major);
221
- var m = isMultiple(major, minor);
222
-
223
- if (!m) {
224
- return {
225
- minor: minor,
226
- major: math.multiply(minor, 2)
227
- };
228
- }
229
-
230
- return {
231
- major: major,
232
- minor: minor
233
- };
234
- };
235
- /**
236
- * Build ticks as an array of mathjs Fractions
237
- */
238
-
239
-
240
- exports.normalizeTicks = normalizeTicks;
241
-
242
- var buildTickDataAsFractions = function buildTickDataAsFractions(domain, ticks, opts) {
243
- ticks = normalizeTicks(domain, ticks, opts);
244
- var rng = simpleRange(domain.min, domain.max, ticks.minor);
245
- var o = rng.filter(function (x) {
246
- return math.smallerEq(x, math.fraction(domain.max));
247
- }).map(function (x) {
248
- var type = 'minor';
249
- var modulo = math.mod(x, ticks.major);
250
-
251
- if (closeTo(math.number(modulo), 0)) {
252
- type = 'major';
253
- }
254
-
255
- return {
256
- x: x,
257
- type: type
258
- };
259
- });
260
- return o;
261
- };
262
-
263
- exports.buildTickDataAsFractions = buildTickDataAsFractions;
264
-
265
- var buildTickData = function buildTickData(domain, ticks, opts) {
266
- var result = buildTickDataAsFractions(domain, ticks, opts);
267
- var out = result.map(function (o) {
268
- return opts.fraction ? o : _objectSpread(_objectSpread({}, o), {}, {
269
- x: math.number(o.x) || 0
270
- });
271
- });
272
- return out;
273
- };
274
-
275
- exports.buildTickData = buildTickData;
276
-
277
- var snapElements = function snapElements(domain, ticks, elements) {
278
- return elements.map(function (e) {
279
- var size = Number.isFinite(e.size) ? snapTo(0, e.size, ticks.minor, e.size) : undefined;
280
- var domainPosition = snapTo(domain.min, domain.max, ticks.minor, e.domainPosition);
281
-
282
- var out = _objectSpread(_objectSpread({}, e), {}, {
283
- domainPosition: domainPosition
284
- });
285
-
286
- if (Number.isFinite(size)) {
287
- out.size = size;
288
- }
289
-
290
- return out;
291
- });
292
- };
293
-
294
- exports.snapElements = snapElements;
295
- //# sourceMappingURL=tick-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/tick-utils.js"],"names":["fractionSnapTo","min","max","interval","value","fmax","fmin","mod","v","half","div","math","largerEq","abs","d","sub","fn","fn2","snapTo","out","fraction","number","fractionRange","start","end","m","equal","Error","e","subtract","direction","larger","smallerEq","compareFn","next","push","add","zbrErrorMessage","zeroBasedRange","length","a","multiplier","smaller","s","r","map","multiply","reverse","b","simpleRange","positiveRange","negativeRange","together","concat","closeTo","precision","expectedDiff","Math","pow","receivedDiff","limit","minorLimits","domain","divide","isMultiple","multiple","src","n","normalizeTicks","ticks","opts","l","minor","major","buildTickDataAsFractions","rng","o","filter","x","type","modulo","buildTickData","result","snapElements","elements","size","Number","isFinite","undefined","domainPosition"],"mappings":"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","sourcesContent":["import * as math from 'mathjs';\nimport uniqWith from 'lodash/uniqWith';\nimport isObject from 'lodash/isObject';\nimport isNumber from 'lodash/isNumber';\n\nexport const fractionSnapTo = (min, max, interval, value) => {\n value = fmax(fmin(value, max), min);\n const mod = value.mod(interval);\n let v;\n\n const half = interval.div(2);\n if (math.largerEq(math.abs(mod), half)) {\n const d = interval.sub(math.abs(mod));\n const fn = math.largerEq(value, 0) ? 'add' : 'sub';\n v = value[fn](d);\n } else {\n const fn2 = math.largerEq(value, 0) ? 'sub' : 'add';\n v = value[fn2](math.abs(mod));\n }\n return v;\n};\n\nexport const snapTo = (min, max, interval, value) => {\n const out = fractionSnapTo(math.fraction(min), math.fraction(max), math.fraction(interval), math.fraction(value));\n return math.number(out);\n};\n\nexport const fractionRange = (start, end, interval) => {\n const m = math.mod(math.abs(start), math.abs(interval));\n if (!math.equal(m, 0)) {\n throw new Error('start point must be divisible by interval');\n }\n\n if (math.equal(start, end)) {\n return [];\n }\n\n const e = math.subtract(end, math.mod(end, math.abs(interval)));\n\n const direction = math.larger(interval, 0) ? 'positive' : 'negative';\n\n if (direction === 'negative' && math.largerEq(end, start)) {\n throw new Error('start must be > than end when doing a negative decrement');\n }\n if (direction === 'positive' && math.smallerEq(end, start)) {\n throw new Error('start must be < end when doing increments');\n }\n const compareFn = direction === 'positive' ? math.smallerEq : math.equal(e, end) ? math.largerEq : math.larger;\n const out = [];\n\n let next = start;\n while (compareFn(next, e)) {\n out.push(next);\n next = math.add(next, interval);\n }\n return out;\n};\n\nexport const zbrErrorMessage = (start, end) =>\n `Can only do a positive or negative range, but got: start: ${start} and end:${end}`;\n\nexport const zeroBasedRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const length = math.abs(math.subtract(end, start));\n\n if (math.larger(length, math.abs(end))) {\n throw new Error(zbrErrorMessage(start, end));\n }\n const a = {\n start: math.abs(start),\n end: math.abs(end),\n interval: math.abs(interval),\n multiplier: math.smaller(interval, 0) ? -1 : 1,\n };\n\n const m = math.mod(a.start, a.interval);\n const s = math.larger(m, 0) ? math.add(math.subtract(a.start, m), a.interval) : a.start;\n\n const r = fractionRange(s, a.end, a.interval);\n const out = a.multiplier === -1 ? r.map((v) => math.multiply(v, -1)) : r;\n\n if (math.smaller(interval, 0)) {\n out.reverse();\n }\n return out;\n};\n\nconst fmin = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.smaller(a, b) ? a : b;\n};\n\nconst fmax = (a, b) => {\n a = math.fraction(a);\n b = math.fraction(b);\n return math.larger(a, b) ? a : b;\n};\n/**\n * the lodash range was causing too much variance in the rounding errors\n * such that it was hard to round the numbers.\n * This is a more simplistic version but makes rounding work.\n */\nexport const simpleRange = (start, end, interval) => {\n start = math.fraction(start);\n end = math.fraction(end);\n interval = math.fraction(interval);\n\n const positiveRange = math.larger(end, 0) ? zeroBasedRange(fmax(0, start), end, interval) : [];\n\n const negativeRange = math.smaller(start, 0) ? zeroBasedRange(fmin(0, end), start, math.multiply(interval, -1)) : [];\n let together = negativeRange.concat(positiveRange);\n\n const out = uniqWith(together, math.equal);\n return out;\n};\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 2;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n return receivedDiff < expectedDiff;\n};\n\nconst limit = (v, min, max) => {\n if (math.smaller(v, min)) {\n return min;\n }\n\n if (math.larger(v, max)) {\n return max;\n }\n\n return v;\n};\n\nexport const minorLimits = (domain) => {\n const end = domain.max - domain.min;\n return {\n min: math.divide(math.fraction(end), 100),\n max: math.divide(math.fraction(end), 3),\n };\n};\n\nexport const isMultiple = (multiple, src) => {\n const mod = math.mod(multiple, src);\n return math.equal(mod, 0);\n};\n\n/**\n * Accepts a fraction object {n,d,s} or number.\n * @param {*} v\n * @return mathjs.fraction\n */\nexport const fraction = (v) => {\n if (isObject(v)) {\n return math.fraction(v.n * v.s, v.d);\n } else if (isNumber(v)) {\n return math.fraction(v);\n }\n};\n\nexport const normalizeTicks = (domain, ticks, opts) => {\n const l = opts ? opts.limit !== false : true;\n const end = fraction(domain.max - domain.min);\n const minor = l\n ? limit(fraction(ticks.minor), math.divide(end, 100), math.divide(end, 3))\n : math.fraction(ticks.minor);\n const major = l ? limit(fraction(ticks.major), minor, math.multiply(minor, 10)) : math.fraction(ticks.major);\n\n const m = isMultiple(major, minor);\n\n if (!m) {\n return { minor, major: math.multiply(minor, 2) };\n }\n\n return { major, minor };\n};\n\n/**\n * Build ticks as an array of mathjs Fractions\n */\nexport const buildTickDataAsFractions = (domain, ticks, opts) => {\n ticks = normalizeTicks(domain, ticks, opts);\n const rng = simpleRange(domain.min, domain.max, ticks.minor);\n\n const o = rng\n .filter((x) => math.smallerEq(x, math.fraction(domain.max)))\n .map((x) => {\n let type = 'minor';\n const modulo = math.mod(x, ticks.major);\n\n if (closeTo(math.number(modulo), 0)) {\n type = 'major';\n }\n\n return { x, type };\n });\n\n return o;\n};\n\nexport const buildTickData = (domain, ticks, opts) => {\n const result = buildTickDataAsFractions(domain, ticks, opts);\n\n const out = result.map((o) => (opts.fraction ? o : { ...o, x: math.number(o.x) || 0 }));\n\n return out;\n};\n\nexport const snapElements = (domain, ticks, elements) => {\n return elements.map((e) => {\n const size = Number.isFinite(e.size) ? snapTo(0, e.size, ticks.minor, e.size) : undefined;\n const domainPosition = snapTo(domain.min, domain.max, ticks.minor, e.domainPosition);\n const out = { ...e, domainPosition };\n\n if (Number.isFinite(size)) {\n out.size = size;\n }\n\n return out;\n });\n};\n"],"file":"tick-utils.js"}
@@ -1,244 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.Ticks = exports.TickValidator = exports.Tick = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _react = _interopRequireDefault(require("react"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _tickUtils = require("./tick-utils");
27
-
28
- var _reactJss = _interopRequireDefault(require("react-jss"));
29
-
30
- var _renderUi = require("@pie-lib/render-ui");
31
-
32
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
33
-
34
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
35
-
36
- var style = {
37
- text: {
38
- userSelect: 'none',
39
- textAlign: 'center',
40
- fill: _renderUi.color.primary()
41
- },
42
- line: {
43
- stroke: _renderUi.color.primary()
44
- }
45
- };
46
-
47
- var TickValidator = _propTypes["default"].shape({
48
- /** the number of major ticks (including min + max)
49
- * to display. cant be lower than 2.
50
- */
51
- major: function major(props, propName) {
52
- var major = props[propName];
53
- var minor = props.minor;
54
-
55
- if (!(0, _tickUtils.isMultiple)(major, minor)) {
56
- return new Error("Invalid prop major. It must be a multiple of ".concat(minor));
57
- }
58
- },
59
-
60
- /** the number of minor ticks to display between major ticks.
61
- * Can't be less than zero.
62
- */
63
- minor: function minor(props, propName, componentName) {
64
- var minor = props[propName];
65
-
66
- if (minor <= 0) {
67
- return new Error("Invalid prop ".concat(propName, " must be > 0. ").concat(componentName));
68
- }
69
- }
70
- }).isRequired;
71
-
72
- exports.TickValidator = TickValidator;
73
-
74
- var Tick = /*#__PURE__*/function (_React$Component) {
75
- (0, _inherits2["default"])(Tick, _React$Component);
76
-
77
- var _super = _createSuper(Tick);
78
-
79
- function Tick(props) {
80
- var _this;
81
-
82
- (0, _classCallCheck2["default"])(this, Tick);
83
- _this = _super.call(this, props);
84
- _this.wasRendered = false;
85
- return _this;
86
- }
87
-
88
- (0, _createClass2["default"])(Tick, [{
89
- key: "componentDidMount",
90
- value: function componentDidMount() {
91
- //center align the tick text
92
- if (this.text) {
93
- var fraction = this.props.fraction;
94
-
95
- var _this$text$getBBox = this.text.getBBox(),
96
- width = _this$text$getBBox.width;
97
-
98
- this.text.setAttribute('x', width / 2 * -1);
99
-
100
- if (fraction && !this.wasRendered) {
101
- // used for rendering the line fraction
102
- this.wasRendered = true;
103
- this.forceUpdate();
104
- }
105
- }
106
- }
107
- }, {
108
- key: "render",
109
- value: function render() {
110
- var _this2 = this;
111
-
112
- //the domain value
113
- var _this$props = this.props,
114
- x = _this$props.x,
115
- y = _this$props.y,
116
- type = _this$props.type,
117
- classes = _this$props.classes,
118
- xScale = _this$props.xScale,
119
- fraction = _this$props.fraction;
120
- var displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
121
- var labelTick = type === 'major';
122
- var height = labelTick ? 20 : 10;
123
-
124
- var _ref = this.text && this.text.getBBox() || {},
125
- _ref$width = _ref.width,
126
- textWidth = _ref$width === void 0 ? 0 : _ref$width,
127
- _ref$height = _ref.height,
128
- textHeight = _ref$height === void 0 ? 0 : _ref$height,
129
- _ref$x = _ref.x,
130
- textX = _ref$x === void 0 ? 0 : _ref$x,
131
- _ref$y = _ref.y,
132
- textY = _ref$y === void 0 ? 0 : _ref$y;
133
-
134
- var xText = !fraction ? Number(x.toFixed(2)) : !displayFraction ? x.n * x.s : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tspan", {
135
- x: "0",
136
- dy: "0.71em"
137
- }, x.n * x.s), /*#__PURE__*/_react["default"].createElement("tspan", {
138
- x: "0",
139
- dy: "1.11em"
140
- }, x.d));
141
- return /*#__PURE__*/_react["default"].createElement("g", {
142
- opacity: "1",
143
- transform: "translate(".concat(xScale(x), ", ").concat(y, ")")
144
- }, /*#__PURE__*/_react["default"].createElement("line", {
145
- className: classes.line,
146
- y1: height / 2 * -1,
147
- y2: height / 2,
148
- x1: "0.5",
149
- x2: "0.5"
150
- }), displayFraction && /*#__PURE__*/_react["default"].createElement("line", {
151
- className: classes.line,
152
- x1: textX,
153
- x2: textX + textWidth,
154
- y1: textY + textHeight / 2,
155
- y2: textY + textHeight / 2
156
- }), labelTick && /*#__PURE__*/_react["default"].createElement("text", {
157
- ref: function ref(text) {
158
- return _this2.text = text;
159
- },
160
- className: classes.text,
161
- y: "14",
162
- width: "10",
163
- dy: "0.71em",
164
- textAnchor: displayFraction && 'middle'
165
- }, xText));
166
- }
167
- }]);
168
- return Tick;
169
- }(_react["default"].Component);
170
-
171
- exports.Tick = Tick;
172
- (0, _defineProperty2["default"])(Tick, "propTypes", {
173
- classes: _propTypes["default"].object.isRequired,
174
- y: _propTypes["default"].number.isRequired,
175
- x: _propTypes["default"].number.isRequired,
176
- major: _propTypes["default"].bool,
177
- fraction: _propTypes["default"].bool,
178
- xScale: _propTypes["default"].func,
179
- type: _propTypes["default"].string
180
- });
181
- (0, _defineProperty2["default"])(Tick, "defaultProps", {
182
- major: false
183
- });
184
-
185
- var Ticks = /*#__PURE__*/function (_React$Component2) {
186
- (0, _inherits2["default"])(Ticks, _React$Component2);
187
-
188
- var _super2 = _createSuper(Ticks);
189
-
190
- function Ticks() {
191
- (0, _classCallCheck2["default"])(this, Ticks);
192
- return _super2.apply(this, arguments);
193
- }
194
-
195
- (0, _createClass2["default"])(Ticks, [{
196
- key: "render",
197
- value: function render() {
198
- var _this$props2 = this.props,
199
- domain = _this$props2.domain,
200
- ticks = _this$props2.ticks,
201
- y = _this$props2.y,
202
- classes = _this$props2.classes,
203
- fraction = _this$props2.fraction;
204
- var xScale = this.context.xScale;
205
- var tickData = (0, _tickUtils.buildTickData)(domain, ticks, {
206
- fraction: fraction
207
- });
208
- return /*#__PURE__*/_react["default"].createElement("g", null, tickData.map(function (_ref2) {
209
- var x = _ref2.x,
210
- type = _ref2.type;
211
- return /*#__PURE__*/_react["default"].createElement(Tick, {
212
- classes: classes,
213
- fraction: fraction,
214
- x: x,
215
- y: y,
216
- type: type,
217
- xScale: xScale,
218
- key: "".concat(x, "-").concat(type)
219
- });
220
- }));
221
- }
222
- }]);
223
- return Ticks;
224
- }(_react["default"].Component);
225
-
226
- exports.Ticks = Ticks;
227
- (0, _defineProperty2["default"])(Ticks, "contextTypes", {
228
- xScale: _propTypes["default"].func.isRequired
229
- });
230
- (0, _defineProperty2["default"])(Ticks, "propTypes", {
231
- classes: _propTypes["default"].object.isRequired,
232
- domain: _propTypes["default"].shape({
233
- min: _propTypes["default"].number.isRequired,
234
- max: _propTypes["default"].number.isRequired
235
- }).isRequired,
236
- fraction: _propTypes["default"].bool,
237
- ticks: TickValidator,
238
- y: _propTypes["default"].number.isRequired
239
- });
240
-
241
- var _default = (0, _reactJss["default"])(style)(Ticks);
242
-
243
- exports["default"] = _default;
244
- //# sourceMappingURL=ticks.js.map