@pie-lib/plot 2.7.3 → 2.9.0-beta.0

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.
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+
5
+ var _assert = require("assert");
6
+
7
+ var utils = _interopRequireWildcard(require("../utils"));
8
+
9
+ 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); }
10
+
11
+ 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; }
12
+
13
+ var xy = utils.xy;
14
+
15
+ var tick = function tick(isMajor, v) {
16
+ return {
17
+ major: isMajor,
18
+ value: v,
19
+ x: v
20
+ };
21
+ };
22
+
23
+ var major = tick.bind(null, true);
24
+ var minor = tick.bind(null, false);
25
+ describe('utils', function () {
26
+ describe('getDelta', function () {
27
+ var assertDelta = function assertDelta(from, to, delta) {
28
+ it("returns a delta of: ".concat(delta, " for ").concat(from, " -> ").concat(to), function () {
29
+ var d = utils.getDelta(from, to);
30
+ expect(d.x).toEqual(delta.x);
31
+ expect(d.y).toEqual(delta.y);
32
+ });
33
+ };
34
+
35
+ assertDelta(xy(0, 0), xy(0, 1), xy(0, 1));
36
+ assertDelta(xy(0, 1), xy(0, 0), xy(0, -1));
37
+ assertDelta(xy(1, 1), xy(3, 3), xy(2, 2));
38
+ assertDelta(xy(-1, -1), xy(3, 3), xy(4, 4));
39
+ assertDelta(xy(-1, -1), xy(-2, -5), xy(-1, -4));
40
+ });
41
+ describe('polygonToArea', function () {
42
+ var assertPolygon = function assertPolygon(points, area) {
43
+ it("converts ".concat(points, " -> ").concat(area), function () {
44
+ var result = utils.polygonToArea(points);
45
+ expect(result).toEqual(area);
46
+ });
47
+ };
48
+
49
+ assertPolygon([xy(0, 0), xy(1, 1), xy(1, -1)], {
50
+ left: 0,
51
+ top: 1,
52
+ bottom: -1,
53
+ right: 1
54
+ });
55
+ assertPolygon([xy(0, 0), xy(3, 0), xy(2, -1), xy(4, -3), xy(1, -4), xy(2, -2)], {
56
+ left: 0,
57
+ top: 0,
58
+ bottom: -4,
59
+ right: 4
60
+ });
61
+ });
62
+ describe('buildTickModel', function () {
63
+ var scaleFn;
64
+ beforeEach(function () {
65
+ scaleFn = jest.fn(function (v) {
66
+ return v;
67
+ });
68
+ });
69
+ it('builds major only ticks', function () {
70
+ var result = utils.buildTickModel({
71
+ min: 0,
72
+ max: 2
73
+ }, {
74
+ minor: 0
75
+ }, 1, scaleFn);
76
+ expect(result).toEqual([major(0), major(1), major(2)]);
77
+ });
78
+ it('builds minor + major ticks', function () {
79
+ var result = utils.buildTickModel({
80
+ min: 0,
81
+ max: 2
82
+ }, {
83
+ minor: 1
84
+ }, 0.5, scaleFn);
85
+ expect(result).toEqual([major(0), minor(0.5), major(1), minor(1.5), major(2)]);
86
+ });
87
+ });
88
+ describe('snapTo', function () {
89
+ var assertSnapTo = function assertSnapTo(min, max, interval, value, expected) {
90
+ it("snaps ".concat(value, " to ").concat(expected, " with domain ").concat(min, "<->").concat(max, " with interval: ").concat(interval, " "), function () {
91
+ var result = utils.snapTo(min, max, interval, value);
92
+ expect(result).toEqual(expected);
93
+ });
94
+ };
95
+
96
+ describe('with 0, 10, 0.25', function () {
97
+ var a = assertSnapTo.bind(null, 0, 10, 0.25);
98
+ a(1, 1);
99
+ a(1.2, 1.25);
100
+ a(0.2, 0.25);
101
+ a(5.2, 5.25);
102
+ a(5.125, 5.25);
103
+ a(5.124, 5);
104
+ });
105
+ describe('with 0, 10, 1', function () {
106
+ var a = assertSnapTo.bind(null, 0, 10, 1);
107
+ a(0, 0);
108
+ a(10, 10);
109
+ a(100, 10);
110
+ a(1, 1);
111
+ a(1.2, 1);
112
+ a(0.2, 0);
113
+ a(5.2, 5);
114
+ a(5.001, 5);
115
+ });
116
+ });
117
+ describe('getInterval', function () {
118
+ var assertGetInterval = function assertGetInterval(min, max, ticks, expected) {
119
+ var paramsDescription = JSON.stringify(ticks);
120
+ it("converts: ".concat(paramsDescription, " to ").concat(JSON.stringify(expected)), function () {
121
+ var result = utils.getInterval({
122
+ min: min,
123
+ max: max
124
+ }, ticks);
125
+ expect(result).toEqual(expected);
126
+ });
127
+ };
128
+
129
+ describe('with bad params', function () {
130
+ it('throws an error if min > max', function () {
131
+ expect(function () {
132
+ var result = utils.convertFrequencyToInterval({
133
+ min: 11,
134
+ max: 10,
135
+ tickFrequency: 1,
136
+ betweenTickCount: 0
137
+ }, {
138
+ interval: 10,
139
+ major: 10
140
+ });
141
+ console.log('result: ', result);
142
+ }).toThrow(Error);
143
+ });
144
+ it('throws an error if min = max', function () {
145
+ expect(function () {
146
+ var result = utils.convertFrequencyToInterval({
147
+ min: 10,
148
+ max: 10,
149
+ tickFrequency: 1,
150
+ betweenTickCount: 0
151
+ }, {
152
+ interval: 10,
153
+ major: 10
154
+ });
155
+ console.log('result: ', result);
156
+ }).toThrow(Error);
157
+ });
158
+ });
159
+ describe('with domain 0 -> 1', function () {
160
+ var a = assertGetInterval.bind(null, 0, 1);
161
+ a({
162
+ major: 2,
163
+ minor: 0
164
+ }, 1);
165
+ a({
166
+ major: 2,
167
+ minor: 1
168
+ }, 0.5);
169
+ });
170
+ describe('with domain 0 -> 10', function () {
171
+ var a = assertGetInterval.bind(null, 0, 10);
172
+ it('throws an error if the tick frequency is less than 2', function () {
173
+ expect(function () {
174
+ var result = utils.convertFrequencyToInterval({
175
+ min: 0,
176
+ max: 10,
177
+ tickFrequency: 1,
178
+ betweenTickCount: 0
179
+ }, {
180
+ interval: 10,
181
+ major: 10
182
+ });
183
+ console.log('result: ', result);
184
+ }).toThrow(Error);
185
+ });
186
+ a({
187
+ major: 2,
188
+ minor: 9
189
+ }, 1);
190
+ a({
191
+ major: 2,
192
+ minor: 0
193
+ }, 10);
194
+ a({
195
+ major: 3,
196
+ minor: 0
197
+ }, 5);
198
+ a({
199
+ major: 3,
200
+ minor: 1
201
+ }, 2.5);
202
+ a({
203
+ major: 4,
204
+ minor: 0
205
+ }, 3.3333);
206
+ a({
207
+ major: 5,
208
+ minor: 0
209
+ }, 2.5);
210
+ a({
211
+ major: 6,
212
+ minor: 0
213
+ }, 2);
214
+ a({
215
+ major: 7,
216
+ minor: 0
217
+ }, 1.6667);
218
+ a({
219
+ major: 8,
220
+ minor: 0
221
+ }, 1.4286);
222
+ a({
223
+ major: 9,
224
+ minor: 0
225
+ }, 1.25);
226
+ a({
227
+ major: 10,
228
+ minor: 0
229
+ }, 1.1111);
230
+ a({
231
+ major: 11,
232
+ minor: 0
233
+ }, 1);
234
+ a({
235
+ major: 11,
236
+ minor: 1
237
+ }, 0.5);
238
+ a({
239
+ major: 11,
240
+ minor: 2
241
+ }, 0.3333);
242
+ });
243
+ describe('with domain 0 -> 100', function () {
244
+ var a = assertGetInterval.bind(null, 0, 100);
245
+ a({
246
+ major: 11,
247
+ minor: 1
248
+ }, 5);
249
+ a({
250
+ major: 101,
251
+ minor: 0
252
+ }, 1);
253
+ });
254
+ describe('with domain -5 - 5', function () {
255
+ var a = assertGetInterval.bind(null, -5, 5);
256
+ a({
257
+ major: 11,
258
+ minor: 0
259
+ }, 1);
260
+ });
261
+ describe('with domain 0 - 5', function () {
262
+ var a = assertGetInterval.bind(null, 0, 5);
263
+ a({
264
+ major: 11,
265
+ minor: 0
266
+ }, 0.5);
267
+ a({
268
+ major: 11,
269
+ minor: 2
270
+ }, 0.1667);
271
+ a({
272
+ major: 11,
273
+ minor: 1
274
+ }, 0.25);
275
+ });
276
+ });
277
+ describe('findLongestWord', function () {
278
+ it('should return 0 if label is undefined', function () {
279
+ var label = undefined;
280
+ var result = utils.findLongestWord(label);
281
+ expect(result).toEqual(0);
282
+ });
283
+ it('should return 0 if label is null', function () {
284
+ var label = null;
285
+ var result = utils.findLongestWord(label);
286
+ expect(result).toEqual(0);
287
+ });
288
+ it('should return 6 if the longest word from label has 6 letters', function () {
289
+ var label = 'Number of months';
290
+ var result = utils.findLongestWord(label);
291
+ expect(result).toEqual(6);
292
+ });
293
+ });
294
+ describe('amountToIncreaseWidth', function () {
295
+ it('should return 0 if longestWord is undefined', function () {
296
+ var longestWord = undefined;
297
+ var result = utils.amountToIncreaseWidth(longestWord);
298
+ expect(result).toEqual(0);
299
+ });
300
+ it('should return 0 if longestWord is null', function () {
301
+ var longestWord = null;
302
+ var result = utils.amountToIncreaseWidth(longestWord);
303
+ expect(result).toEqual(0);
304
+ });
305
+ it('should return 150 if longestWord is 10', function () {
306
+ var longestWord = 10;
307
+ var result = utils.amountToIncreaseWidth(longestWord);
308
+ expect(result).toEqual(200);
309
+ });
310
+ });
311
+ });
312
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJuYW1lcyI6WyJ4eSIsInV0aWxzIiwidGljayIsImlzTWFqb3IiLCJ2IiwibWFqb3IiLCJ2YWx1ZSIsIngiLCJiaW5kIiwibWlub3IiLCJkZXNjcmliZSIsImFzc2VydERlbHRhIiwiZnJvbSIsInRvIiwiZGVsdGEiLCJpdCIsImQiLCJnZXREZWx0YSIsImV4cGVjdCIsInRvRXF1YWwiLCJ5IiwiYXNzZXJ0UG9seWdvbiIsInBvaW50cyIsImFyZWEiLCJyZXN1bHQiLCJwb2x5Z29uVG9BcmVhIiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0Iiwic2NhbGVGbiIsImJlZm9yZUVhY2giLCJqZXN0IiwiZm4iLCJidWlsZFRpY2tNb2RlbCIsIm1pbiIsIm1heCIsImFzc2VydFNuYXBUbyIsImludGVydmFsIiwiZXhwZWN0ZWQiLCJzbmFwVG8iLCJhIiwiYXNzZXJ0R2V0SW50ZXJ2YWwiLCJ0aWNrcyIsInBhcmFtc0Rlc2NyaXB0aW9uIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldEludGVydmFsIiwiY29udmVydEZyZXF1ZW5jeVRvSW50ZXJ2YWwiLCJ0aWNrRnJlcXVlbmN5IiwiYmV0d2VlblRpY2tDb3VudCIsImNvbnNvbGUiLCJsb2ciLCJ0b1Rocm93IiwiRXJyb3IiLCJsYWJlbCIsInVuZGVmaW5lZCIsImZpbmRMb25nZXN0V29yZCIsImxvbmdlc3RXb3JkIiwiYW1vdW50VG9JbmNyZWFzZVdpZHRoIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEVBQUUsR0FBR0MsS0FBSyxDQUFDRCxFQUFqQjs7QUFFQSxJQUFNRSxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFDQyxPQUFELEVBQVVDLENBQVY7QUFBQSxTQUFpQjtBQUM1QkMsSUFBQUEsS0FBSyxFQUFFRixPQURxQjtBQUU1QkcsSUFBQUEsS0FBSyxFQUFFRixDQUZxQjtBQUc1QkcsSUFBQUEsQ0FBQyxF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QUNBLFVBQU0vQixNQUFNLEdBQUd2QixLQUFLLENBQUN3RCxlQUFOLENBQXNCRixLQUF0QixDQUFmO0FBRUFyQyxNQUFBQSxNQUFNLENBQUNNLE1BQUQsQ0FBTixDQUFlTCxPQUFmLENBQXVCLENBQXZCO0FBQ0QsS0FMQyxDQUFGO0FBTUQsR0FyQk8sQ0FBUjtBQXVCQVQsRUFBQUEsUUFBUSxDQUFDLHVCQUFELEVBQTBCLFlBQU07QUFDdENLLElBQUFBLEVBQUUsQ0FBQyw2Q0FBRCxFQUFnRCxZQUFNO0FBQ3RELFVBQU0yQyxXQUFXLEdBQUdGLFNBQXBCO0FBQ0EsVUFBTWhDLE1BQU0sR0FBR3ZCLEtBQUssQ0FBQzBELHFCQUFOLENBQTRCRCxXQUE1QixDQUFmO0FBRUF4QyxNQUFBQSxNQUFNLENBQUNNLE1BQUQsQ0FBTixDQUFlTCxPQUFmLENBQXVCLENBQXZCO0FBQ0QsS0FMQyxDQUFGO0FBT0FKLElBQUFBLEVBQUUsQ0FBQyx3Q0FBRCxFQUEyQyxZQUFNO0FBQ2pELFVBQU0yQyxXQUFXLEdBQUcsSUFBcEI7QUFDQSxVQUFNbEMsTUFBTSxHQUFHdkIsS0FBSyxDQUFDMEQscUJBQU4sQ0FBNEJELFdBQTVCLENBQWY7QUFFQXhDLE1BQUFBLE1BQU0sQ0FBQ00sTUFBRCxDQUFOLENBQWVMLE9BQWYsQ0FBdUIsQ0FBdkI7QUFDRCxLQUxDLENBQUY7QUFPQUosSUFBQUEsRUFBRSxDQUFDLHdDQUFELEVBQTJDLFlBQU07QUFDakQsVUFBTTJDLFdBQVcsR0FBRyxFQUFwQjtBQUNBLFVBQU1sQyxNQUFNLEdBQUd2QixLQUFLLENBQUMwRCxxQkFBTixDQUE0QkQsV0FBNUIsQ0FBZjtBQUVBeEMsTUFBQUEsTUFBTSxDQUFDTSxNQUFELENBQU4sQ0FBZUwsT0FBZixDQUF1QixHQUF2QjtBQUNELEtBTEMsQ0FBRjtBQU1ELEdBckJPLENBQVI7QUFzQkQsQ0ExTk8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2VydGlvbkVycm9yIH0gZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHV0aWxzIGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgeHkgPSB1dGlscy54eTtcblxuY29uc3QgdGljayA9IChpc01ham9yLCB2KSA9PiAoe1xuICBtYWpvcjogaXNNYWpvcixcbiAgdmFsdWU6IHYsXG4gIHg6IHYsXG59KTtcblxuY29uc3QgbWFqb3IgPSB0aWNrLmJpbmQobnVsbCwgdHJ1ZSk7XG5jb25zdCBtaW5vciA9IHRpY2suYmluZChudWxsLCBmYWxzZSk7XG5cbmRlc2NyaWJlKCd1dGlscycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2dldERlbHRhJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydERlbHRhID0gKGZyb20sIHRvLCBkZWx0YSkgPT4ge1xuICAgICAgaXQoYHJldHVybnMgYSBkZWx0YSBvZjogJHtkZWx0YX0gZm9yICR7ZnJvbX0gLT4gJHt0b31gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGQgPSB1dGlscy5nZXREZWx0YShmcm9tLCB0byk7XG4gICAgICAgIGV4cGVjdChkLngpLnRvRXF1YWwoZGVsdGEueCk7XG4gICAgICAgIGV4cGVjdChkLnkpLnRvRXF1YWwoZGVsdGEueSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGFzc2VydERlbHRhKHh5KDAsIDApLCB4eSgwLCAxKSwgeHkoMCwgMSkpO1xuICAgIGFzc2VydERlbHRhKHh5KDAsIDEpLCB4eSgwLCAwKSwgeHkoMCwgLTEpKTtcbiAgICBhc3NlcnREZWx0YSh4eSgxLCAxKSwgeHkoMywgMyksIHh5KDIsIDIpKTtcbiAgICBhc3NlcnREZWx0YSh4eSgtMSwgLTEpLCB4eSgzLCAzKSwgeHkoNCwgNCkpO1xuICAgIGFzc2VydERlbHRhKHh5KC0xLCAtMSksIHh5KC0yLCAtNSksIHh5KC0xLCAtNCkpO1xuICB9KTtcblxuICBkZXNjcmliZSgncG9seWdvblRvQXJlYScsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnRQb2x5Z29uID0gKHBvaW50cywgYXJlYSkgPT4ge1xuICAgICAgaXQoYGNvbnZlcnRzICR7cG9pbnRzfSAtPiAke2FyZWF9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5wb2x5Z29uVG9BcmVhKHBvaW50cyk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoYXJlYSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGFzc2VydFBvbHlnb24oW3h5KDAsIDApLCB4eSgxLCAxKSwgeHkoMSwgLTEpXSwge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMSxcbiAgICAgIGJvdHRvbTogLTEsXG4gICAgICByaWdodDogMSxcbiAgICB9KTtcbiAgICBhc3NlcnRQb2x5Z29uKFt4eSgwLCAwKSwgeHkoMywgMCksIHh5KDIsIC0xKSwgeHkoNCwgLTMpLCB4eSgxLCAtNCksIHh5KDIsIC0yKV0sIHtcbiAgICAgIGxlZnQ6IDAsXG4gICAgICB0b3A6IDAsXG4gICAgICBib3R0b206IC00LFxuICAgICAgcmlnaHQ6IDQsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdidWlsZFRpY2tNb2RlbCcsICgpID0+IHtcbiAgICBsZXQgc2NhbGVGbjtcblxuICAgIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgICAgc2NhbGVGbiA9IGplc3QuZm4oZnVuY3Rpb24odikge1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2J1aWxkcyBtYWpvciBvbmx5IHRpY2tzJywgKCkgPT4ge1xuICAgICAgbGV0IHJlc3VsdCA9IHV0aWxzLmJ1aWxkVGlja01vZGVsKHsgbWluOiAwLCBtYXg6IDIgfSwgeyBtaW5vcjogMCB9LCAxLCBzY2FsZUZuKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoW21ham9yKDApLCBtYWpvcigxKSwgbWFqb3IoMildKTtcbiAgICB9KTtcblxuICAgIGl0KCdidWlsZHMgbWlub3IgKyBtYWpvciB0aWNrcycsICgpID0+IHtcbiAgICAgIGxldCByZXN1bHQgPSB1dGlscy5idWlsZFRpY2tNb2RlbCh7IG1pbjogMCwgbWF4OiAyIH0sIHsgbWlub3I6IDEgfSwgMC41LCBzY2FsZUZuKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoW21ham9yKDApLCBtaW5vcigwLjUpLCBtYWpvcigxKSwgbWlub3IoMS41KSwgbWFqb3IoMildKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NuYXBUbycsICgpID0+IHtcbiAgICBsZXQgYXNzZXJ0U25hcFRvID0gKG1pbiwgbWF4LCBpbnRlcnZhbCwgdmFsdWUsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBpdChgc25hcHMgJHt2YWx1ZX0gdG8gJHtleHBlY3RlZH0gd2l0aCBkb21haW4gJHttaW59PC0+JHttYXh9IHdpdGggaW50ZXJ2YWw6ICR7aW50ZXJ2YWx9IGAsICgpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHV0aWxzLnNuYXBUbyhtaW4sIG1heCwgaW50ZXJ2YWwsIHZhbHVlKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVzY3JpYmUoJ3dpdGggMCwgMTAsIDAuMjUnLCAoKSA9PiB7XG4gICAgICBsZXQgYSA9IGFzc2VydFNuYXBUby5iaW5kKG51bGwsIDAsIDEwLCAwLjI1KTtcbiAgICAgIGEoMSwgMSk7XG4gICAgICBhKDEuMiwgMS4yNSk7XG4gICAgICBhKDAuMiwgMC4yNSk7XG4gICAgICBhKDUuMiwgNS4yNSk7XG4gICAgICBhKDUuMTI1LCA1LjI1KTtcbiAgICAgIGEoNS4xMjQsIDUpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3dpdGggMCwgMTAsIDEnLCAoKSA9PiB7XG4gICAgICBsZXQgYSA9IGFzc2VydFNuYXBUby5iaW5kKG51bGwsIDAsIDEwLCAxKTtcbiAgICAgIGEoMCwgMCk7XG4gICAgICBhKDEwLCAxMCk7XG4gICAgICBhKDEwMCwgMTApO1xuICAgICAgYSgxLCAxKTtcbiAgICAgIGEoMS4yLCAxKTtcbiAgICAgIGEoMC4yLCAwKTtcbiAgICAgIGEoNS4yLCA1KTtcbiAgICAgIGEoNS4wMDEsIDUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0SW50ZXJ2YWwnLCAoKSA9PiB7XG4gICAgbGV0IGFzc2VydEdldEludGVydmFsID0gKG1pbiwgbWF4LCB0aWNrcywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGxldCBwYXJhbXNEZXNjcmlwdGlvbiA9IEpTT04uc3RyaW5naWZ5KHRpY2tzKTtcbiAgICAgIGl0KGBjb252ZXJ0czogJHtwYXJhbXNEZXNjcmlwdGlvbn0gdG8gJHtKU09OLnN0cmluZ2lmeShleHBlY3RlZCl9YCwgKCkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0ID0gdXRpbHMuZ2V0SW50ZXJ2YWwoeyBtaW46IG1pbiwgbWF4OiBtYXggfSwgdGlja3MpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnd2l0aCBiYWQgcGFyYW1zJywgKCkgPT4ge1xuICAgICAgaXQoJ3Rocm93cyBhbiBlcnJvciBpZiBtaW4gPiBtYXgnLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgICAgbGV0IHJlc3VsdCA9IHV0aWxzLmNvbnZlcnRGcmVxdWVuY3lUb0ludGVydmFsKFxuICAgICAgICAgICAgeyBtaW46IDExLCBtYXg6IDEwLCB0aWNrRnJlcXVlbmN5OiAxLCBiZXR3ZWVuVGlja0NvdW50OiAwIH0sXG4gICAgICAgICAgICB7IGludGVydmFsOiAxMCwgbWFqb3I6IDEwIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zb2xlLmxvZygncmVzdWx0OiAnLCByZXN1bHQpO1xuICAgICAgICB9KS50b1Rocm93KEVycm9yKTtcbiAgICAgIH0pO1xuXG4gICAgICBpdCgndGhyb3dzIGFuIGVycm9yIGlmIG1pbiA9IG1heCcsICgpID0+IHtcbiAgICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgICBsZXQgcmVzdWx0ID0gdXRpbHMuY29udmVydEZyZXF1ZW5jeVRvSW50ZXJ2YWwoXG4gICAgICAgICAgICB7IG1pbjogMTAsIG1heDogMTAsIHRpY2tGcmVxdWVuY3k6IDEsIGJldHdlZW5UaWNrQ291bnQ6IDAgfSxcbiAgICAgICAgICAgIHsgaW50ZXJ2YWw6IDEwLCBtYWpvcjogMTAgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHQ6ICcsIHJlc3VsdCk7XG4gICAgICAgIH0pLnRvVGhyb3coRXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2l0aCBkb21haW4gMCAtPiAxJywgKCkgPT4ge1xuICAgICAgbGV0IGEgPSBhc3NlcnRHZXRJbnRlcnZhbC5iaW5kKG51bGwsIDAsIDEpO1xuICAgICAgYSh7IG1ham9yOiAyLCBtaW5vcjogMCB9LCAxKTtcbiAgICAgIGEoeyBtYWpvcjogMiwgbWlub3I6IDEgfSwgMC41KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRoIGRvbWFpbiAwIC0+IDEwJywgKCkgPT4ge1xuICAgICAgbGV0IGEgPSBhc3NlcnRHZXRJbnRlcnZhbC5iaW5kKG51bGwsIDAsIDEwKTtcblxuICAgICAgaXQoJ3Rocm93cyBhbiBlcnJvciBpZiB0aGUgdGljayBmcmVxdWVuY3kgaXMgbGVzcyB0aGFuIDInLCAoKSA9PiB7XG4gICAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgICAgbGV0IHJlc3VsdCA9IHV0aWxzLmNvbnZlcnRGcmVxdWVuY3lUb0ludGVydmFsKFxuICAgICAgICAgICAgeyBtaW46IDAsIG1heDogMTAsIHRpY2tGcmVxdWVuY3k6IDEsIGJldHdlZW5UaWNrQ291bnQ6IDAgfSxcbiAgICAgICAgICAgIHsgaW50ZXJ2YWw6IDEwLCBtYWpvcjogMTAgfSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdyZXN1bHQ6ICcsIHJlc3VsdCk7XG4gICAgICAgIH0pLnRvVGhyb3coRXJyb3IpO1xuICAgICAgfSk7XG5cbiAgICAgIGEoeyBtYWpvcjogMiwgbWlub3I6IDkgfSwgMSk7XG4gICAgICBhKHsgbWFqb3I6IDIsIG1pbm9yOiAwIH0sIDEwKTtcbiAgICAgIGEoeyBtYWpvcjogMywgbWlub3I6IDAgfSwgNSk7XG4gICAgICBhKHsgbWFqb3I6IDMsIG1pbm9yOiAxIH0sIDIuNSk7XG4gICAgICBhKHsgbWFqb3I6IDQsIG1pbm9yOiAwIH0sIDMuMzMzMyk7XG4gICAgICBhKHsgbWFqb3I6IDUsIG1pbm9yOiAwIH0sIDIuNSk7XG4gICAgICBhKHsgbWFqb3I6IDYsIG1pbm9yOiAwIH0sIDIpO1xuICAgICAgYSh7IG1ham9yOiA3LCBtaW5vcjogMCB9LCAxLjY2NjcpO1xuICAgICAgYSh7IG1ham9yOiA4LCBtaW5vcjogMCB9LCAxLjQyODYpO1xuICAgICAgYSh7IG1ham9yOiA5LCBtaW5vcjogMCB9LCAxLjI1KTtcbiAgICAgIGEoeyBtYWpvcjogMTAsIG1pbm9yOiAwIH0sIDEuMTExMSk7XG4gICAgICBhKHsgbWFqb3I6IDExLCBtaW5vcjogMCB9LCAxKTtcbiAgICAgIGEoeyBtYWpvcjogMTEsIG1pbm9yOiAxIH0sIDAuNSk7XG4gICAgICBhKHsgbWFqb3I6IDExLCBtaW5vcjogMiB9LCAwLjMzMzMpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3dpdGggZG9tYWluIDAgLT4gMTAwJywgKCkgPT4ge1xuICAgICAgbGV0IGEgPSBhc3NlcnRHZXRJbnRlcnZhbC5iaW5kKG51bGwsIDAsIDEwMCk7XG4gICAgICBhKHsgbWFqb3I6IDExLCBtaW5vcjogMSB9LCA1KTtcbiAgICAgIGEoeyBtYWpvcjogMTAxLCBtaW5vcjogMCB9LCAxKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd3aXRoIGRvbWFpbiAtNSAtIDUnLCAoKSA9PiB7XG4gICAgICBsZXQgYSA9IGFzc2VydEdldEludGVydmFsLmJpbmQobnVsbCwgLTUsIDUpO1xuICAgICAgYSh7IG1ham9yOiAxMSwgbWlub3I6IDAgfSwgMSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnd2l0aCBkb21haW4gMCAtIDUnLCAoKSA9PiB7XG4gICAgICBsZXQgYSA9IGFzc2VydEdldEludGVydmFsLmJpbmQobnVsbCwgMCwgNSk7XG4gICAgICBhKHsgbWFqb3I6IDExLCBtaW5vcjogMCB9LCAwLjUpO1xuICAgICAgYSh7IG1ham9yOiAxMSwgbWlub3I6IDIgfSwgMC4xNjY3KTtcbiAgICAgIGEoeyBtYWpvcjogMTEsIG1pbm9yOiAxIH0sIDAuMjUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZmluZExvbmdlc3RXb3JkJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIDAgaWYgbGFiZWwgaXMgdW5kZWZpbmVkJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSB1bmRlZmluZWQ7XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5maW5kTG9uZ2VzdFdvcmQobGFiZWwpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gMCBpZiBsYWJlbCBpcyBudWxsJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSBudWxsO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuZmluZExvbmdlc3RXb3JkKGxhYmVsKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIDYgaWYgdGhlIGxvbmdlc3Qgd29yZCBmcm9tIGxhYmVsIGhhcyA2IGxldHRlcnMnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9ICdOdW1iZXIgb2YgbW9udGhzJztcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmZpbmRMb25nZXN0V29yZChsYWJlbCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoNik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdhbW91bnRUb0luY3JlYXNlV2lkdGgnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gMCBpZiBsb25nZXN0V29yZCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb25nZXN0V29yZCA9IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmFtb3VudFRvSW5jcmVhc2VXaWR0aChsb25nZXN0V29yZCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiAwIGlmIGxvbmdlc3RXb3JkIGlzIG51bGwnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsb25nZXN0V29yZCA9IG51bGw7XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5hbW91bnRUb0luY3JlYXNlV2lkdGgobG9uZ2VzdFdvcmQpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKDApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gMTUwIGlmIGxvbmdlc3RXb3JkIGlzIDEwJywgKCkgPT4ge1xuICAgICAgY29uc3QgbG9uZ2VzdFdvcmQgPSAxMDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmFtb3VudFRvSW5jcmVhc2VXaWR0aChsb25nZXN0V29yZCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMjAwKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
package/lib/draggable.js CHANGED
@@ -62,4 +62,4 @@ var LocalDraggable = /*#__PURE__*/function (_Draggable) {
62
62
  }(_reactDraggable["default"]);
63
63
 
64
64
  exports["default"] = LocalDraggable;
65
- //# sourceMappingURL=draggable.js.map
65
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kcmFnZ2FibGUuanN4Il0sIm5hbWVzIjpbIkxvY2FsRHJhZ2dhYmxlIiwibmV4dCIsInNldFN0YXRlIiwieCIsInkiLCJEcmFnZ2FibGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7SUFFcUJBLGM7Ozs7Ozs7Ozs7OztXQUNuQixtQ0FBMEJDLElBQTFCLEVBQWdDO0FBQzlCLHNJQUFnQ0EsSUFBaEMsRUFEOEIsQ0FFOUI7O0FBQ0EsV0FBS0MsUUFBTCxDQUFjO0FBQUVDLFFBQUFBLENBQUMsRUFBRSxDQUFMO0FBQVFDLFFBQUFBLENBQUMsRUFBRTtBQUFYLE9BQWQ7QUFDRDs7O0VBTHlDQywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEcmFnZ2FibGUsIHsgRHJhZ2dhYmxlQ29yZSB9IGZyb20gJ3JlYWN0LWRyYWdnYWJsZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIExvY2FsRHJhZ2dhYmxlIGV4dGVuZHMgRHJhZ2dhYmxlIHtcbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0KSB7XG4gICAgc3VwZXIuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXh0KTtcbiAgICAvL1JlbW92ZSB0aGUgeC95IHN0YXRlIGFzIHRoZXNlIHZhbHVlcyBoYXZlIG5vdyBiZWVuIHVwZGF0ZWQgYW5kIHdpbGwgY29tZSB0aHJvdWdoIGFzIHByb3BzLlxuICAgIHRoaXMuc2V0U3RhdGUoeyB4OiAwLCB5OiAwIH0pO1xuICB9XG59XG5cbmV4cG9ydCB7IERyYWdnYWJsZUNvcmUgfTtcbiJdfQ==
@@ -50,4 +50,4 @@ var create = function create(domain, range, size, getRootNode) {
50
50
  };
51
51
 
52
52
  exports.create = create;
53
- //# sourceMappingURL=graph-props.js.map
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmFwaC1wcm9wcy5qcyJdLCJuYW1lcyI6WyJjcmVhdGVTbmFwTWluQW5kTWF4IiwibWluIiwibWF4Iiwic3RlcCIsInBhcnNlSW50IiwiY3JlYXRlIiwiZG9tYWluIiwicmFuZ2UiLCJzaXplIiwiZ2V0Um9vdE5vZGUiLCJkb21haW5NaW5NYXgiLCJyYW5nZU1pbk1heCIsInNjYWxlIiwieCIsIndpZHRoIiwieSIsImhlaWdodCIsInNuYXAiLCJzbmFwVG8iLCJiaW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQXNCLE9BQXdCO0FBQUEsTUFBckJDLEdBQXFCLFFBQXJCQSxHQUFxQjtBQUFBLE1BQWhCQyxHQUFnQixRQUFoQkEsR0FBZ0I7QUFBQSxNQUFYQyxJQUFXLFFBQVhBLElBQVc7QUFDbEQ7QUFDQTtBQUVBLFNBQU87QUFDTEEsSUFBQUEsSUFBSSxFQUFKQSxJQURLO0FBRUxGLElBQUFBLEdBQUcsRUFBRUcsUUFBUSxDQUFDSCxHQUFHLEdBQUdFLElBQVAsQ0FBUixHQUF1QkEsSUFGdkI7QUFHTEQsSUFBQUEsR0FBRyxFQUFFRSxRQUFRLENBQUNGLEdBQUcsR0FBR0MsSUFBUCxDQUFSLEdBQXVCQTtBQUh2QixHQUFQO0FBS0QsQ0FURDs7QUFXTyxJQUFNRSxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxNQUFELEVBQVNDLEtBQVQsRUFBZ0JDLElBQWhCLEVBQXNCQyxXQUF0QixFQUFzQztBQUMxRCw2QkFBVUgsTUFBTSxDQUFDTCxHQUFQLEdBQWFLLE1BQU0sQ0FBQ0osR0FBOUIsRUFBbUMsbUNBQW5DO0FBQ0EsNkJBQVVLLEtBQUssQ0FBQ04sR0FBTixHQUFZTSxLQUFLLENBQUNMLEdBQTVCLEVBQWlDLGtDQUFqQztBQUVBLE1BQU1RLFlBQVksR0FBR1YsbUJBQW1CLENBQUNNLE1BQUQsQ0FBeEM7QUFDQSxNQUFNSyxXQUFXLEdBQUdYLG1CQUFtQixDQUFDTyxLQUFELENBQXZDO0FBRUEsTUFBTUssS0FBSyxHQUFHO0FBQ1pDLElBQUFBLENBQUMsRUFBRSw0QkFDQVAsTUFEQSxDQUNPLENBQUNBLE1BQU0sQ0FBQ0wsR0FBUixFQUFhSyxNQUFNLENBQUNKLEdBQXBCLENBRFAsRUFFQUssS0FGQSxDQUVNLENBQUMsQ0FBRCxFQUFJQyxJQUFJLENBQUNNLEtBQVQsQ0FGTixDQURTO0FBSVpDLElBQUFBLENBQUMsRUFBRSw0QkFDQVQsTUFEQSxDQUNPLENBQUNDLEtBQUssQ0FBQ0wsR0FBUCxFQUFZSyxLQUFLLENBQUNOLEdBQWxCLENBRFAsRUFFQU0sS0FGQSxDQUVNLENBQUMsQ0FBRCxFQUFJQyxJQUFJLENBQUNRLE1BQVQsQ0FGTjtBQUpTLEdBQWQ7QUFTQSxNQUFNQyxJQUFJLEdBQUc7QUFDWEosSUFBQUEsQ0FBQyxFQUFFSyxjQUFPQyxJQUFQLENBQVksSUFBWixFQUFrQlQsWUFBWSxDQUFDVCxHQUEvQixFQUFvQ1MsWUFBWSxDQUFDUixHQUFqRCxFQUFzRFEsWUFBWSxDQUFDUCxJQUFuRSxDQURRO0FBRVhZLElBQUFBLENBQUMsRUFBRUcsY0FBT0MsSUFBUCxDQUFZLElBQVosRUFBa0JSLFdBQVcsQ0FBQ1YsR0FBOUIsRUFBbUNVLFdBQVcsQ0FBQ1QsR0FBL0MsRUFBb0RTLFdBQVcsQ0FBQ1IsSUFBaEU7QUFGUSxHQUFiO0FBS0EsU0FBTztBQUFFUyxJQUFBQSxLQUFLLEVBQUxBLEtBQUY7QUFBU0ssSUFBQUEsSUFBSSxFQUFKQSxJQUFUO0FBQWVYLElBQUFBLE1BQU0sRUFBTkEsTUFBZjtBQUF1QkMsSUFBQUEsS0FBSyxFQUFMQSxLQUF2QjtBQUE4QkMsSUFBQUEsSUFBSSxFQUFKQSxJQUE5QjtBQUFvQ0MsSUFBQUEsV0FBVyxFQUFYQTtBQUFwQyxHQUFQO0FBQ0QsQ0F0Qk0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW52YXJpYW50IGZyb20gJ2ludmFyaWFudCc7XG5pbXBvcnQgeyBzbmFwVG8gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHNjYWxlTGluZWFyIH0gZnJvbSAnZDMtc2NhbGUnO1xuXG5jb25zdCBjcmVhdGVTbmFwTWluQW5kTWF4ID0gKHsgbWluLCBtYXgsIHN0ZXAgfSkgPT4ge1xuICAvLyBmb3IgZ3JhcGhpbmcsIGlmIHN0ZXAgaXMgYSB2YWx1ZSB3aXRoIGRlY2ltYWxzLCB3ZSBoYXZlIHRvIGNhbGN1bGF0ZSB0aGUgbWluICYgbWF4IGZvciB0aGUgZ3JpZCB0YWtpbmcgaW4gY29uc2lkZXJhdGlvbiB0aGF0IDAgaGFzIHRvIGJlIGV4YWN0bHkgaW4gdGhlIG1pZGRsZVxuICAvLyBmb3IgZXhhbXBsZSwgaWYgbWluOiAtNSAmIG1heDogNSAmIHN0ZXA6IDAuNzUsIGluIG9yZGVyIHRvIGtlZXAgMCBpbiB0aGUgbWlkZGxlIHdlIGhhdmUgdG8gc2V0IG1pbjogLTQuNSAmIG1heDogNC41XG5cbiAgcmV0dXJuIHtcbiAgICBzdGVwLFxuICAgIG1pbjogcGFyc2VJbnQobWluIC8gc3RlcCkgKiBzdGVwLFxuICAgIG1heDogcGFyc2VJbnQobWF4IC8gc3RlcCkgKiBzdGVwLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IChkb21haW4sIHJhbmdlLCBzaXplLCBnZXRSb290Tm9kZSkgPT4ge1xuICBpbnZhcmlhbnQoZG9tYWluLm1pbiA8IGRvbWFpbi5tYXgsICdkb21haW46IG1pbiBtdXN0IGJlIGxlc3MgdGhhbiBtYXgnKTtcbiAgaW52YXJpYW50KHJhbmdlLm1pbiA8IHJhbmdlLm1heCwgJ3JhbmdlOiBtaW4gbXVzdCBiZSBsZXNzIHRoYW4gbWF4Jyk7XG5cbiAgY29uc3QgZG9tYWluTWluTWF4ID0gY3JlYXRlU25hcE1pbkFuZE1heChkb21haW4pO1xuICBjb25zdCByYW5nZU1pbk1heCA9IGNyZWF0ZVNuYXBNaW5BbmRNYXgocmFuZ2UpO1xuXG4gIGNvbnN0IHNjYWxlID0ge1xuICAgIHg6IHNjYWxlTGluZWFyKClcbiAgICAgIC5kb21haW4oW2RvbWFpbi5taW4sIGRvbWFpbi5tYXhdKVxuICAgICAgLnJhbmdlKFswLCBzaXplLndpZHRoXSksXG4gICAgeTogc2NhbGVMaW5lYXIoKVxuICAgICAgLmRvbWFpbihbcmFuZ2UubWF4LCByYW5nZS5taW5dKVxuICAgICAgLnJhbmdlKFswLCBzaXplLmhlaWdodF0pLFxuICB9O1xuXG4gIGNvbnN0IHNuYXAgPSB7XG4gICAgeDogc25hcFRvLmJpbmQobnVsbCwgZG9tYWluTWluTWF4Lm1pbiwgZG9tYWluTWluTWF4Lm1heCwgZG9tYWluTWluTWF4LnN0ZXApLFxuICAgIHk6IHNuYXBUby5iaW5kKG51bGwsIHJhbmdlTWluTWF4Lm1pbiwgcmFuZ2VNaW5NYXgubWF4LCByYW5nZU1pbk1heC5zdGVwKSxcbiAgfTtcblxuICByZXR1cm4geyBzY2FsZSwgc25hcCwgZG9tYWluLCByYW5nZSwgc2l6ZSwgZ2V0Um9vdE5vZGUgfTtcbn07XG4iXX0=
@@ -47,7 +47,7 @@ var _invariant = _interopRequireDefault(require("invariant"));
47
47
 
48
48
  var _d3Selection = require("d3-selection");
49
49
 
50
- var _excluded = ["disabled", "onClick"];
50
+ var _excluded = ["disabled"];
51
51
 
52
52
  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); }
53
53
 
@@ -164,14 +164,55 @@ var gridDraggable = function gridDraggable(opts) {
164
164
  log('[getScaledBounds]: ', scaled);
165
165
  return scaled;
166
166
  });
167
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClientPoint", function (node, event) {
168
+ if (!node || !event) {
169
+ return null;
170
+ }
171
+
172
+ var svg = node.ownerSVGElement || node;
173
+
174
+ if (svg && svg.createSVGPoint) {
175
+ var point = svg.createSVGPoint(); // Check if it's a touch event and use the first touch point
176
+
177
+ if (event.touches && event.touches.length > 0) {
178
+ var touch = event.touches[0];
179
+ point.x = touch.clientX;
180
+ point.y = touch.clientY;
181
+ } else {
182
+ // Fall back to mouse event properties
183
+ point.x = event.clientX;
184
+ point.y = event.clientY;
185
+ }
186
+
187
+ if (node.getScreenCTM) {
188
+ point = point.matrixTransform(node.getScreenCTM().inverse());
189
+ return [point.x, point.y];
190
+ } else {
191
+ return null;
192
+ }
193
+ }
194
+
195
+ var rect = node.getBoundingClientRect();
196
+
197
+ if (rect) {
198
+ return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
199
+ } else {
200
+ return null;
201
+ }
202
+ });
167
203
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "skipDragOutsideOfBounds", function (dd, e, graphProps) {
168
- // ignore drag movement outside of the domain and range.
204
+ // Ignore drag movement outside of the domain and range.
169
205
  var rootNode = graphProps.getRootNode();
170
206
 
171
- var _clientPoint = (0, _d3Selection.clientPoint)(rootNode, e),
172
- _clientPoint2 = (0, _slicedToArray2["default"])(_clientPoint, 2),
173
- rawX = _clientPoint2[0],
174
- rawY = _clientPoint2[1];
207
+ var clientPoint = _this.getClientPoint(rootNode, e);
208
+
209
+ if (clientPoint === null) {
210
+ return true; // Indicate that the drag is outside of bounds
211
+ }
212
+
213
+ var _clientPoint = (0, _slicedToArray2["default"])(clientPoint, 2),
214
+ rawX = _clientPoint[0],
215
+ rawY = _clientPoint[1];
175
216
 
176
217
  var scale = graphProps.scale,
177
218
  domain = graphProps.domain,
@@ -263,10 +304,10 @@ var gridDraggable = function gridDraggable(opts) {
263
304
  var scale = graphProps.scale,
264
305
  snap = graphProps.snap;
265
306
 
266
- var _clientPoint3 = (0, _d3Selection.clientPoint)(e.target, e),
267
- _clientPoint4 = (0, _slicedToArray2["default"])(_clientPoint3, 2),
268
- rawX = _clientPoint4[0],
269
- rawY = _clientPoint4[1];
307
+ var _clientPoint2 = (0, _d3Selection.clientPoint)(e.target, e),
308
+ _clientPoint3 = (0, _slicedToArray2["default"])(_clientPoint2, 2),
309
+ rawX = _clientPoint3[0],
310
+ rawY = _clientPoint3[1];
270
311
 
271
312
  var x = scale.x.invert(rawX);
272
313
  var y = scale.y.invert(rawY);
@@ -294,15 +335,10 @@ var gridDraggable = function gridDraggable(opts) {
294
335
  (0, _createClass2["default"])(GridDraggable, [{
295
336
  key: "render",
296
337
  value: function render() {
297
- /* eslint-disable no-unused-vars */
298
- //Note: we pull onClick out so that it's not in ...rest.
299
338
  var _this$props3 = this.props,
300
339
  disabled = _this$props3.disabled,
301
- onClick = _this$props3.onClick,
302
340
  rest = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
303
- /* eslint-enable no-unused-vars */
304
-
305
- var grid = this.grid(); //prevent the text select icon from rendering.
341
+ var grid = this.grid(); // prevent the text select icon from rendering.
306
342
 
307
343
  var onMouseDown = function onMouseDown(e) {
308
344
  return e.nativeEvent.preventDefault();
@@ -342,4 +378,4 @@ var gridDraggable = function gridDraggable(opts) {
342
378
  };
343
379
 
344
380
  exports.gridDraggable = gridDraggable;
345
- //# sourceMappingURL=grid-draggable.js.map
381
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmlkLWRyYWdnYWJsZS5qc3giXSwibmFtZXMiOlsibG9nIiwiZGVsdGFGbiIsInNjYWxlIiwic25hcCIsInZhbCIsImRlbHRhIiwibm9ybWFsaXplZCIsImludmVydGVkIiwiaW52ZXJ0IiwiZml4RGVjaW1hbHNBcml0aG1ldGljIiwidG9GaXhlZCIsImdyaWREcmFnZ2FibGUiLCJvcHRzIiwiQ29tcCIsImZyb21EZWx0YSIsImJvdW5kcyIsImFuY2hvclBvaW50IiwiZ3JhcGhQcm9wcyIsInByb3BzIiwiZG9tYWluIiwicmFuZ2UiLCJ4Iiwic3RlcCIsInkiLCJlIiwib25EcmFnU3RhcnQiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJibHVyIiwic2V0U3RhdGUiLCJzdGFydFgiLCJjbGllbnRYIiwic3RhcnRZIiwiY2xpZW50WSIsImtleSIsImV2ZW50IiwiSyIsInRvVXBwZXJDYXNlIiwiZW5kIiwic3RhcnQiLCJzdGF0ZSIsIk1hdGgiLCJhYnMiLCJvdXQiLCJncmlkIiwic2NhbGVkIiwibGVmdCIsImludGVydmFsIiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJub2RlIiwic3ZnIiwib3duZXJTVkdFbGVtZW50IiwiY3JlYXRlU1ZHUG9pbnQiLCJwb2ludCIsInRvdWNoZXMiLCJsZW5ndGgiLCJ0b3VjaCIsImdldFNjcmVlbkNUTSIsIm1hdHJpeFRyYW5zZm9ybSIsImludmVyc2UiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY2xpZW50TGVmdCIsImNsaWVudFRvcCIsImRkIiwicm9vdE5vZGUiLCJnZXRSb290Tm9kZSIsImNsaWVudFBvaW50IiwiZ2V0Q2xpZW50UG9pbnQiLCJyYXdYIiwicmF3WSIsInhPdXRzaWRlIiwiZGVsdGFYIiwibWluIiwibWF4IiwieU91dHNpZGUiLCJkZWx0YVkiLCJvbkRyYWciLCJnZXRTY2FsZWRCb3VuZHMiLCJza2lwRHJhZ091dHNpZGVPZkJvdW5kcyIsImRyYWdBcmciLCJhcHBseURlbHRhIiwidW5kZWZpbmVkIiwicG9zIiwicG9zaXRpb24iLCJwIiwidXRpbHMiLCJnZXREZWx0YSIsIm9uRHJhZ1N0b3AiLCJvbkNsaWNrIiwibGFzdFgiLCJsYXN0WSIsImlzQ2xpY2siLCJ0aW55IiwidGFyZ2V0IiwiZGlzYWJsZWQiLCJyZXN0Iiwib25Nb3VzZURvd24iLCJuYXRpdmVFdmVudCIsInByZXZlbnREZWZhdWx0IiwiaXNEcmFnZ2luZyIsIm9uU3RhcnQiLCJvblN0b3AiLCJheGlzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJib29sIiwiZnVuYyIsIm9uTW92ZSIsIkdyYXBoUHJvcHNUeXBlIiwiaXNSZXF1aXJlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sNkJBQU4sQ0FBWjs7QUFFTyxJQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBY0MsR0FBZDtBQUFBLFNBQXNCLFVBQUNDLEtBQUQsRUFBVztBQUN0RCxRQUFNQyxVQUFVLEdBQUdELEtBQUssR0FBR0gsS0FBSyxDQUFDLENBQUQsQ0FBaEM7QUFDQSxRQUFNSyxRQUFRLEdBQUdMLEtBQUssQ0FBQ00sTUFBTixDQUFhRixVQUFiLENBQWpCO0FBRUEsUUFBTUcscUJBQXFCLEdBQUlOLElBQUksQ0FBQ0MsR0FBRyxHQUFHRyxRQUFQLENBQUosQ0FBcUJHLE9BQXJCLENBQTZCLENBQTdCLElBQWtDLElBQW5DLEdBQTJDLElBQXpFO0FBRUEsV0FBT0QscUJBQVA7QUFDRCxHQVBzQjtBQUFBLENBQWhCO0FBU1A7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sSUFBTUUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDQyxJQUFEO0FBQUEsU0FBVSxVQUFDQyxJQUFELEVBQVU7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QVUyRSxJQUFWO0FBQWdCLFlBQUEsUUFBUSxFQUFFRCxRQUExQjtBQUFvQyxZQUFBLFVBQVUsRUFBRUs7QUFBaEQsYUFURixDQURGO0FBYUQ7QUEvT0g7QUFBQTtBQUFBLE1BQW1DSSxrQkFBTUMsU0FBekMseURBQ3FCO0FBQ2pCVixNQUFBQSxRQUFRLEVBQUVXLHNCQUFVQyxJQURIO0FBRWpCcEYsTUFBQUEsV0FBVyxFQUFFbUYsc0JBQVVFLElBRk47QUFHakIvQixNQUFBQSxNQUFNLEVBQUU2QixzQkFBVUUsSUFIRDtBQUlqQnBCLE1BQUFBLFVBQVUsRUFBRWtCLHNCQUFVRSxJQUpMO0FBS2pCbkIsTUFBQUEsT0FBTyxFQUFFaUIsc0JBQVVFLElBTEY7QUFNakJDLE1BQUFBLE1BQU0sRUFBRUgsc0JBQVVFLElBTkQ7QUFPakI3RixNQUFBQSxVQUFVLEVBQUUrRixzQkFBZUM7QUFQVixLQURyQjtBQWlQRCxHQXRQNEI7QUFBQSxDQUF0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgR3JhcGhQcm9wc1R5cGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IERyYWdnYWJsZUNvcmUgfSBmcm9tICcuL2RyYWdnYWJsZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgaXNGdW5jdGlvbiBmcm9tICdsb2Rhc2gvaXNGdW5jdGlvbic7XG5pbXBvcnQgaW52YXJpYW50IGZyb20gJ2ludmFyaWFudCc7XG5pbXBvcnQgeyBjbGllbnRQb2ludCB9IGZyb20gJ2QzLXNlbGVjdGlvbic7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOnBsb3Q6Z3JpZC1kcmFnZ2FibGUnKTtcblxuZXhwb3J0IGNvbnN0IGRlbHRhRm4gPSAoc2NhbGUsIHNuYXAsIHZhbCkgPT4gKGRlbHRhKSA9PiB7XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBkZWx0YSArIHNjYWxlKDApO1xuICBjb25zdCBpbnZlcnRlZCA9IHNjYWxlLmludmVydChub3JtYWxpemVkKTtcblxuICBjb25zdCBmaXhEZWNpbWFsc0FyaXRobWV0aWMgPSAoc25hcCh2YWwgKyBpbnZlcnRlZCkudG9GaXhlZCg0KSAqIDEwMDApIC8gMTAwMDtcblxuICByZXR1cm4gZml4RGVjaW1hbHNBcml0aG1ldGljO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgQ29tcG9uZW50IHRoYXQgaXMgZHJhZ2dhYmxlLCB3aXRoaW4gYSBib3VuZGVkIGdyaWQuXG4gKiBAcGFyYW0geyp9IG9wdHNcbiAqL1xuZXhwb3J0IGNvbnN0IGdyaWREcmFnZ2FibGUgPSAob3B0cykgPT4gKENvbXApID0+IHtcbiAgaW52YXJpYW50KFxuICAgICEhb3B0cyAmJiBpc0Z1bmN0aW9uKG9wdHMuZnJvbURlbHRhKSAmJiBpc0Z1bmN0aW9uKG9wdHMuYm91bmRzKSAmJiBpc0Z1bmN0aW9uKG9wdHMuYW5jaG9yUG9pbnQpLFxuICAgICdZb3UgbXVzdCBzdXBwbHkgYW4gb2JqZWN0IHdpdGg6IHsgYW5jaG9yUG9pbnQ6IEZ1bmN0aW9uLCBmcm9tRGVsdGE6IEZ1bmN0aW9uLCBib3VuZHM6IEZ1bmN0aW9uIH0nLFxuICApO1xuICByZXR1cm4gY2xhc3MgR3JpZERyYWdnYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICAgIG9uRHJhZ1N0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uRHJhZzogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbkRyYWdTdG9wOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25Nb3ZlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGdyYXBoUHJvcHM6IEdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gICAgfTtcbiAgICBncmlkID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgeyBzY2FsZSwgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHNjYWxlLngoZG9tYWluLnN0ZXApIC0gc2NhbGUueCgwKSxcbiAgICAgICAgeTogc2NhbGUueShyYW5nZS5zdGVwKSAtIHNjYWxlLnkoMCksXG4gICAgICB9O1xuICAgIH07XG4gICAgb25TdGFydCA9IChlKSA9PiB7XG4gICAgICBjb25zdCB7IG9uRHJhZ1N0YXJ0IH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBlLmNsaWVudFgsIHN0YXJ0WTogZS5jbGllbnRZIH0pO1xuICAgICAgaWYgKG9uRHJhZ1N0YXJ0KSB7XG4gICAgICAgIG9uRHJhZ1N0YXJ0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBwb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gb3B0cy5hbmNob3JQb2ludCh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHsgZ3JhcGhQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHsgc2NhbGUsIHNuYXAgfSA9IGdyYXBoUHJvcHM7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFuY2hvclBvaW50OiB7XG4gICAgICAgICAgeCxcbiAgICAgICAgICB5LFxuICAgICAgICB9LFxuICAgICAgICB4OiBkZWx0YUZuKHNjYWxlLngsIHNuYXAueCwgeCksXG4gICAgICAgIHk6IGRlbHRhRm4oc2NhbGUueSwgc25hcC55LCB5KSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHRpbnkgPSAoa2V5LCBldmVudCkgPT4ge1xuICAgICAgY29uc3QgSyA9IGtleS50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgZW5kID0gZXZlbnRbYGNsaWVudCR7S31gXTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGF0ZVtgc3RhcnQke0t9YF07XG4gICAgICBjb25zdCBkZWx0YSA9IE1hdGguYWJzKGVuZCAtIHN0YXJ0KTtcbiAgICAgIGNvbnN0IG91dCA9IGRlbHRhIDwgTWF0aC5hYnModGhpcy5ncmlkKClba2V5XSkgLyAxMDtcbiAgICAgIGxvZygnW3RpbnldIGtleTogJywga2V5LCAnZGVsdGE6ICcsIGRlbHRhLCAnb3V0OiAnLCBvdXQpO1xuICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuXG4gICAgZ2V0U2NhbGVkQm91bmRzID0gKCkgPT4ge1xuICAgICAgY29uc3QgYm91bmRzID0gb3B0cy5ib3VuZHModGhpcy5wcm9wcywgdGhpcy5wcm9wcy5ncmFwaFByb3BzKTtcbiAgICAgIGxvZygnYm91bmRzOiAnLCBib3VuZHMpO1xuICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZCgpO1xuXG4gICAgICBjb25zdCBzY2FsZWQgPSB7XG4gICAgICAgIGxlZnQ6IChib3VuZHMubGVmdCAvIGdyaWQuaW50ZXJ2YWwpICogZ3JpZC54LFxuICAgICAgICByaWdodDogKGJvdW5kcy5yaWdodCAvIGdyaWQuaW50ZXJ2YWwpICogZ3JpZC54LFxuICAgICAgICB0b3A6IChib3VuZHMudG9wIC8gZ3JpZC5pbnRlcnZhbCkgKiBncmlkLnksXG4gICAgICAgIGJvdHRvbTogKGJvdW5kcy5ib3R0b20gLyBncmlkLmludGVydmFsKSAqIGdyaWQueSxcbiAgICAgIH07XG4gICAgICBsb2coJ1tnZXRTY2FsZWRCb3VuZHNdOiAnLCBzY2FsZWQpO1xuICAgICAgcmV0dXJuIHNjYWxlZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb29yZGluYXRlcyBvZiBhIG1vdXNlIG9yIHRvdWNoIGV2ZW50IHJlbGF0aXZlIHRvIGFuIFNWRyBlbGVtZW50LlxuICAgICAqIFRoaXMgbWV0aG9kIGhhcyBiZWVuIG92ZXJ3cml0dGVuIGZyb20gdGhlIGQzLXNlbGVjdGlvbiBsaWJyYXJ5J3MgY2xpZW50UG9pbnQgdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBhbmQgaW1wcm92ZSBjbGFyaXR5LlxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZSAtIFRoZSBTVkcgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBtb3VzZSBvciB0b3VjaCBldmVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29vcmRpbmF0ZXMgW3gsIHldIHJlbGF0aXZlIHRvIHRoZSBTVkcgZWxlbWVudC5cbiAgICAgKi9cbiAgICBnZXRDbGllbnRQb2ludCA9IChub2RlLCBldmVudCkgPT4ge1xuICAgICAgaWYgKCFub2RlIHx8ICFldmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN2ZyA9IG5vZGUub3duZXJTVkdFbGVtZW50IHx8IG5vZGU7XG5cbiAgICAgIGlmIChzdmcgJiYgc3ZnLmNyZWF0ZVNWR1BvaW50KSB7XG4gICAgICAgIGxldCBwb2ludCA9IHN2Zy5jcmVhdGVTVkdQb2ludCgpO1xuICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGEgdG91Y2ggZXZlbnQgYW5kIHVzZSB0aGUgZmlyc3QgdG91Y2ggcG9pbnRcbiAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xuICAgICAgICAgIHBvaW50LnggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgICAgIHBvaW50LnkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBtb3VzZSBldmVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgcG9pbnQueCA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgcG9pbnQueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuZ2V0U2NyZWVuQ1RNKSB7XG4gICAgICAgICAgcG9pbnQgPSBwb2ludC5tYXRyaXhUcmFuc2Zvcm0obm9kZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpO1xuICAgICAgICAgIHJldHVybiBbcG9pbnQueCwgcG9pbnQueV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdCkge1xuICAgICAgICByZXR1cm4gW2V2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgLSBub2RlLmNsaWVudExlZnQsIGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCAtIG5vZGUuY2xpZW50VG9wXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBza2lwRHJhZ091dHNpZGVPZkJvdW5kcyA9IChkZCwgZSwgZ3JhcGhQcm9wcykgPT4ge1xuICAgICAgLy8gSWdub3JlIGRyYWcgbW92ZW1lbnQgb3V0c2lkZSBvZiB0aGUgZG9tYWluIGFuZCByYW5nZS5cbiAgICAgIGNvbnN0IHJvb3ROb2RlID0gZ3JhcGhQcm9wcy5nZXRSb290Tm9kZSgpO1xuICAgICAgY29uc3QgY2xpZW50UG9pbnQgPSB0aGlzLmdldENsaWVudFBvaW50KHJvb3ROb2RlLCBlKTtcblxuICAgICAgaWYgKGNsaWVudFBvaW50ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJbmRpY2F0ZSB0aGF0IHRoZSBkcmFnIGlzIG91dHNpZGUgb2YgYm91bmRzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtyYXdYLCByYXdZXSA9IGNsaWVudFBvaW50O1xuICAgICAgY29uc3QgeyBzY2FsZSwgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcztcbiAgICAgIGxldCB4ID0gc2NhbGUueC5pbnZlcnQocmF3WCk7XG4gICAgICBsZXQgeSA9IHNjYWxlLnkuaW52ZXJ0KHJhd1kpO1xuXG4gICAgICBjb25zdCB4T3V0c2lkZSA9IChkZC5kZWx0YVggPiAwICYmIHggPCBkb21haW4ubWluKSB8fCAoZGQuZGVsdGFYIDwgMCAmJiB4ID4gZG9tYWluLm1heCk7XG4gICAgICBjb25zdCB5T3V0c2lkZSA9IChkZC5kZWx0YVkgPiAwICYmIHkgPiByYW5nZS5tYXgpIHx8IChkZC5kZWx0YVkgPCAwICYmIHkgPCByYW5nZS5taW4pO1xuICAgICAgcmV0dXJuIHhPdXRzaWRlIHx8IHlPdXRzaWRlO1xuICAgIH07XG5cbiAgICBvbkRyYWcgPSAoZSwgZGQpID0+IHtcbiAgICAgIGNvbnN0IHsgb25EcmFnLCBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoIW9uRHJhZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0U2NhbGVkQm91bmRzKCk7XG5cbiAgICAgIGlmIChkZC5kZWx0YVggPCAwICYmIGRkLmRlbHRhWCA8IGJvdW5kcy5sZWZ0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRkLmRlbHRhWCA+IDAgJiYgZGQuZGVsdGFYID4gYm91bmRzLnJpZ2h0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRkLmRlbHRhWSA8IDAgJiYgZGQuZGVsdGFZIDwgYm91bmRzLnRvcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkZC5kZWx0YVkgPiAwICYmIGRkLmRlbHRhWSA+IGJvdW5kcy5ib3R0b20pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5za2lwRHJhZ091dHNpZGVPZkJvdW5kcyhkZCwgZSwgZ3JhcGhQcm9wcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkcmFnQXJnID0gdGhpcy5hcHBseURlbHRhKHsgeDogZGQuZGVsdGFYLCB5OiBkZC5kZWx0YVkgfSk7XG5cbiAgICAgIGlmIChkcmFnQXJnICE9PSB1bmRlZmluZWQgfHwgZHJhZ0FyZyAhPT0gbnVsbCkge1xuICAgICAgICBvbkRyYWcoZHJhZ0FyZyk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGdldERlbHRhID0gKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uKCk7XG5cbiAgICAgIGNvbnN0IHAgPSB7XG4gICAgICAgIHg6IHBvcy54KHBvaW50LngpLFxuICAgICAgICB5OiBwb3MueShwb2ludC55KSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB1dGlscy5nZXREZWx0YShwb3MuYW5jaG9yUG9pbnQsIHApO1xuICAgIH07XG5cbiAgICBhcHBseURlbHRhID0gKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCBkZWx0YSA9IHRoaXMuZ2V0RGVsdGEocG9pbnQpO1xuICAgICAgbG9nKCdbYXBwbHlEZWx0YV0gZGVsdGE6JywgZGVsdGEpO1xuICAgICAgcmV0dXJuIG9wdHMuZnJvbURlbHRhKHRoaXMucHJvcHMsIGRlbHRhKTtcbiAgICB9O1xuXG4gICAgb25TdG9wID0gKGUsIGRkKSA9PiB7XG4gICAgICBsb2coJ1tvblN0b3BdIGRkOicsIGRkKTtcbiAgICAgIGNvbnN0IHsgb25EcmFnU3RvcCwgb25DbGljayB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKG9uRHJhZ1N0b3ApIHtcbiAgICAgICAgb25EcmFnU3RvcCgpO1xuICAgICAgfVxuXG4gICAgICBsb2coJ1tvblN0b3BdIGxhc3RYL1k6ICcsIGRkLmxhc3RYLCBkZC5sYXN0WSk7XG4gICAgICBjb25zdCBpc0NsaWNrID0gdGhpcy50aW55KCd4JywgZSkgJiYgdGhpcy50aW55KCd5JywgZSk7XG5cbiAgICAgIGlmIChpc0NsaWNrKSB7XG4gICAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgICAgbG9nKCdjYWxsIG9uQ2xpY2snKTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBudWxsIH0pO1xuICAgICAgICAgIGNvbnN0IHsgZ3JhcGhQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgICBjb25zdCB7IHNjYWxlLCBzbmFwIH0gPSBncmFwaFByb3BzO1xuICAgICAgICAgIGNvbnN0IFtyYXdYLCByYXdZXSA9IGNsaWVudFBvaW50KGUudGFyZ2V0LCBlKTtcbiAgICAgICAgICBsZXQgeCA9IHNjYWxlLnguaW52ZXJ0KHJhd1gpO1xuICAgICAgICAgIGxldCB5ID0gc2NhbGUueS5pbnZlcnQocmF3WSk7XG4gICAgICAgICAgeCA9IHNuYXAueCh4KTtcbiAgICAgICAgICB5ID0gc25hcC55KHkpO1xuICAgICAgICAgIG9uQ2xpY2soeyB4LCB5IH0pO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBudWxsLCBzdGFydFk6IG51bGwgfSk7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgdG8gcHJldmVudCBzdGF0ZSB1cGRhdGVzIGluIHRoZSB1bmRlcmx5aW5nIGRyYWdnYWJsZSAtIGEgbW92ZSB3aWxsIGhhdmUgdHJpZ2dlcmVkIGFuIHVwZGF0ZSBhbHJlYWR5LlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IGRpc2FibGVkLCAuLi5yZXN0IH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZCgpO1xuXG4gICAgICAvLyBwcmV2ZW50IHRoZSB0ZXh0IHNlbGVjdCBpY29uIGZyb20gcmVuZGVyaW5nLlxuICAgICAgY29uc3Qgb25Nb3VzZURvd24gPSAoZSkgPT4gZS5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRPRE86IFRoaXMgc2hvdWxkbnQgYmUgbmVjZXNzYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHItZCBjbGFzc25hbWVzLlxuICAgICAgICogQnV0IHRoZXkgYXJlbid0IGJlaW5nIHVuc2V0LiBJZiB3ZSBjb250aW51ZSB3aXRoIHRoaXMgbGliLCB3ZSdsbCBoYXZlIHRvIGZpeCB0aGlzLlxuICAgICAgICovXG4gICAgICBjb25zdCBpc0RyYWdnaW5nID0gdGhpcy5zdGF0ZSA/ICEhdGhpcy5zdGF0ZS5zdGFydFggOiBmYWxzZTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERyYWdnYWJsZUNvcmVcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25Nb3VzZURvd249e29uTW91c2VEb3dufVxuICAgICAgICAgIG9uU3RhcnQ9e3RoaXMub25TdGFydH1cbiAgICAgICAgICBvbkRyYWc9e3RoaXMub25EcmFnfVxuICAgICAgICAgIG9uU3RvcD17dGhpcy5vblN0b3B9XG4gICAgICAgICAgYXhpcz17b3B0cy5heGlzIHx8ICdib3RoJ31cbiAgICAgICAgICBncmlkPXtbZ3JpZC54LCBncmlkLnldfVxuICAgICAgICA+XG4gICAgICAgICAgPENvbXAgey4uLnJlc3R9IGRpc2FibGVkPXtkaXNhYmxlZH0gaXNEcmFnZ2luZz17aXNEcmFnZ2luZ30gLz5cbiAgICAgICAgPC9EcmFnZ2FibGVDb3JlPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59O1xuIl19
package/lib/index.js CHANGED
@@ -56,4 +56,4 @@ var _graphProps = require("./graph-props");
56
56
  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); }
57
57
 
58
58
  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; }
59
- //# sourceMappingURL=index.js.map
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJvb3QgZnJvbSAnLi9yb290JztcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSAnLi9kcmFnZ2FibGUnO1xuaW1wb3J0IHsgZ3JpZERyYWdnYWJsZSB9IGZyb20gJy4vZ3JpZC1kcmFnZ2FibGUnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgKiBhcyB0cmlnIGZyb20gJy4vdHJpZyc7XG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZSBhcyBjcmVhdGVHcmFwaFByb3BzIH0gZnJvbSAnLi9ncmFwaC1wcm9wcyc7XG5cbmV4cG9ydCB7IFJvb3QsIERyYWdnYWJsZSwgZ3JpZERyYWdnYWJsZSwgdXRpbHMsIHRyaWcsIHR5cGVzLCBjcmVhdGVHcmFwaFByb3BzIH07XG4iXX0=