@pie-lib/plot 4.1.0-beta.7 → 5.0.0-next.35

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 (68) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/draggable.d.ts +18 -0
  3. package/dist/draggable.js +6 -0
  4. package/dist/graph-props.d.ts +22 -0
  5. package/dist/graph-props.js +29 -0
  6. package/dist/grid-draggable.d.ts +98 -0
  7. package/dist/grid-draggable.js +172 -0
  8. package/dist/index.d.ts +16 -0
  9. package/dist/index.js +8 -0
  10. package/dist/label.d.ts +30 -0
  11. package/dist/label.js +132 -0
  12. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  13. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  14. package/dist/node_modules/.bun/react-draggable@4.7.1_6dbf9a050bc9aadb/node_modules/react-draggable/build/cjs/chunk-ACOTSM7X.js +509 -0
  15. package/dist/node_modules/.bun/react-draggable@4.7.1_6dbf9a050bc9aadb/node_modules/react-draggable/build/cjs/cjs.js +5 -0
  16. package/dist/root.d.ts +68 -0
  17. package/dist/root.js +302 -0
  18. package/dist/trig.d.ts +41 -0
  19. package/dist/trig.js +47 -0
  20. package/dist/types.d.ts +125 -0
  21. package/dist/types.js +46 -0
  22. package/dist/utils.d.ts +44 -0
  23. package/dist/utils.js +82 -0
  24. package/package.json +33 -25
  25. package/CHANGELOG.json +0 -17
  26. package/CHANGELOG.md +0 -838
  27. package/lib/__tests__/draggable.test.js +0 -48
  28. package/lib/__tests__/draggable.test.js.map +0 -1
  29. package/lib/__tests__/grid-draggable.test.js +0 -738
  30. package/lib/__tests__/grid-draggable.test.js.map +0 -1
  31. package/lib/__tests__/root.test.js +0 -285
  32. package/lib/__tests__/root.test.js.map +0 -1
  33. package/lib/__tests__/trig.test.js +0 -168
  34. package/lib/__tests__/trig.test.js.map +0 -1
  35. package/lib/__tests__/utils.test.js +0 -296
  36. package/lib/__tests__/utils.test.js.map +0 -1
  37. package/lib/draggable.js +0 -44
  38. package/lib/draggable.js.map +0 -1
  39. package/lib/graph-props.js +0 -46
  40. package/lib/graph-props.js.map +0 -1
  41. package/lib/grid-draggable.js +0 -361
  42. package/lib/grid-draggable.js.map +0 -1
  43. package/lib/index.js +0 -44
  44. package/lib/index.js.map +0 -1
  45. package/lib/label.js +0 -173
  46. package/lib/label.js.map +0 -1
  47. package/lib/root.js +0 -474
  48. package/lib/root.js.map +0 -1
  49. package/lib/trig.js +0 -149
  50. package/lib/trig.js.map +0 -1
  51. package/lib/types.js +0 -40
  52. package/lib/types.js.map +0 -1
  53. package/lib/utils.js +0 -165
  54. package/lib/utils.js.map +0 -1
  55. package/src/__tests__/draggable.test.jsx +0 -41
  56. package/src/__tests__/grid-draggable.test.jsx +0 -487
  57. package/src/__tests__/root.test.jsx +0 -277
  58. package/src/__tests__/trig.test.js +0 -163
  59. package/src/__tests__/utils.test.js +0 -229
  60. package/src/draggable.jsx +0 -11
  61. package/src/graph-props.js +0 -34
  62. package/src/grid-draggable.jsx +0 -332
  63. package/src/index.js +0 -9
  64. package/src/label.jsx +0 -199
  65. package/src/root.jsx +0 -485
  66. package/src/trig.js +0 -151
  67. package/src/types.js +0 -41
  68. package/src/utils.js +0 -167
@@ -1,738 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _react = require("@testing-library/react");
6
- var _react2 = _interopRequireDefault(require("react"));
7
- var _gridDraggable = require("../grid-draggable");
8
- var _utils = require("../utils");
9
- var _d3Selection = require("d3-selection");
10
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
- jest.mock('d3-selection', function () {
13
- return {
14
- pointer: jest.fn().mockReturnValue([0, 0])
15
- };
16
- });
17
- var mockDraggableCoreProps;
18
- jest.mock('../draggable', function () {
19
- return {
20
- DraggableCore: function DraggableCore(props) {
21
- // Store the props so tests can call the handlers
22
- mockDraggableCoreProps = props;
23
- return props.children;
24
- }
25
- };
26
- });
27
-
28
- // Reusable mock start event with a target that supports addEventListener/removeEventListener
29
- var mockStartEvent = function mockStartEvent() {
30
- var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
31
- return _objectSpread({
32
- clientX: 0,
33
- clientY: 0,
34
- target: {
35
- addEventListener: jest.fn(),
36
- removeEventListener: jest.fn()
37
- }
38
- }, overrides);
39
- };
40
- jest.mock('../utils', function () {
41
- return {
42
- getDelta: jest.fn()
43
- };
44
- });
45
- var xyFn = function xyFn() {
46
- var out = jest.fn(function (n) {
47
- return n;
48
- });
49
- out.invert = jest.fn(function (n) {
50
- return n;
51
- });
52
- return out;
53
- };
54
- var getGraphProps = function getGraphProps() {
55
- return {
56
- scale: {
57
- x: xyFn(),
58
- y: xyFn()
59
- },
60
- snap: {
61
- x: xyFn(),
62
- y: xyFn()
63
- },
64
- domain: {
65
- min: 0,
66
- max: 1,
67
- step: 1
68
- },
69
- range: {
70
- min: 0,
71
- max: 1,
72
- step: 1
73
- },
74
- size: {
75
- width: 500,
76
- height: 500
77
- },
78
- getRootNode: function getRootNode() {
79
- return {
80
- ownerSVGElement: null,
81
- getBoundingClientRect: function getBoundingClientRect() {
82
- return {
83
- left: 0,
84
- top: 0,
85
- right: 100,
86
- bottom: 100
87
- };
88
- }
89
- };
90
- }
91
- };
92
- };
93
- describe('gridDraggable', function () {
94
- var defaultOptions;
95
- var defaultProps;
96
- beforeEach(function () {
97
- mockDraggableCoreProps = null;
98
- defaultOptions = {
99
- anchorPoint: jest.fn().mockReturnValue({
100
- x: 0,
101
- y: 0
102
- }),
103
- bounds: jest.fn().mockReturnValue({
104
- left: 0,
105
- top: 0,
106
- bottom: 0,
107
- right: 0
108
- }),
109
- fromDelta: jest.fn()
110
- };
111
- defaultProps = {
112
- graphProps: getGraphProps()
113
- };
114
- });
115
- it('renders regular component', function () {
116
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
117
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
118
- });
119
- var _render = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, defaultProps)),
120
- container = _render.container;
121
- expect(container.firstChild).toBeInTheDocument();
122
- });
123
- it('renders with decimal domain and range', function () {
124
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
125
- graphProps: _objectSpread(_objectSpread({}, getGraphProps()), {}, {
126
- domain: {
127
- min: -1.5,
128
- max: 1.6,
129
- step: 0.3
130
- },
131
- range: {
132
- min: -2,
133
- max: 3,
134
- step: 0.2
135
- }
136
- })
137
- });
138
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
139
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
140
- });
141
- var _render2 = (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props)),
142
- container = _render2.container;
143
- expect(container.firstChild).toBeInTheDocument();
144
- });
145
- describe('logic', function () {
146
- describe('grid calculation', function () {
147
- it('passes correct grid to DraggableCore based on domain and range step', function () {
148
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
149
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
150
- });
151
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, defaultProps));
152
-
153
- // Grid is calculated as: scale.x(domain.step) - scale.x(0)
154
- // With our mock xyFn that returns n, this is: step - 0 = step
155
- expect(mockDraggableCoreProps.grid).toEqual([1, 1]);
156
- });
157
- it('calculates grid with decimal steps', function () {
158
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
159
- graphProps: _objectSpread(_objectSpread({}, getGraphProps()), {}, {
160
- domain: {
161
- min: -1.5,
162
- max: 1.6,
163
- step: 0.3
164
- },
165
- range: {
166
- min: -2,
167
- max: 3,
168
- step: 0.2
169
- }
170
- })
171
- });
172
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
173
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
174
- });
175
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
176
- expect(mockDraggableCoreProps.grid).toEqual([0.3, 0.2]);
177
- });
178
- });
179
- describe('onStart', function () {
180
- it('calls onDragStart handler when drag starts', function () {
181
- var onDragStart = jest.fn();
182
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
183
- onDragStart: onDragStart
184
- });
185
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
186
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
187
- });
188
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
189
-
190
- // Simulate drag start
191
- mockDraggableCoreProps.onStart(mockStartEvent({
192
- clientX: 100,
193
- clientY: 100
194
- }));
195
- expect(onDragStart).toHaveBeenCalled();
196
- });
197
- });
198
- describe('onDrag', function () {
199
- it('calls onDrag callback with result from fromDelta', function () {
200
- var onDrag = jest.fn();
201
- var fromDelta = jest.fn().mockReturnValue('delta-result');
202
- var bounds = jest.fn().mockReturnValue({
203
- left: -100,
204
- top: -100,
205
- bottom: 100,
206
- right: 100
207
- });
208
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
209
- fromDelta: fromDelta,
210
- bounds: bounds
211
- });
212
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
213
- onDrag: onDrag
214
- });
215
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
216
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
217
- });
218
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
219
-
220
- // Set up drag start state
221
- mockDraggableCoreProps.onStart(mockStartEvent());
222
-
223
- // Simulate drag
224
- mockDraggableCoreProps.onDrag({}, {
225
- deltaX: 10,
226
- deltaY: 10
227
- });
228
- expect(fromDelta).toHaveBeenCalled();
229
- expect(onDrag).toHaveBeenCalledWith('delta-result');
230
- });
231
- it('does not call onDrag when no onDrag handler is provided', function () {
232
- var fromDelta = jest.fn();
233
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
234
- fromDelta: fromDelta
235
- });
236
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
237
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
238
- });
239
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, defaultProps));
240
- mockDraggableCoreProps.onStart(mockStartEvent());
241
- mockDraggableCoreProps.onDrag({}, {
242
- deltaX: 10,
243
- deltaY: 10
244
- });
245
- expect(fromDelta).not.toHaveBeenCalled();
246
- });
247
- describe('bounds checking', function () {
248
- it('does not call onDrag when dragging left beyond left bound', function () {
249
- var onDrag = jest.fn();
250
- var bounds = jest.fn().mockReturnValue({
251
- left: 0,
252
- top: 0,
253
- bottom: 0,
254
- right: 0
255
- });
256
- var fromDelta = jest.fn().mockReturnValue('result');
257
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
258
- bounds: bounds,
259
- fromDelta: fromDelta
260
- });
261
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
262
- onDrag: onDrag
263
- });
264
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
265
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
266
- });
267
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
268
- mockDraggableCoreProps.onStart(mockStartEvent());
269
- // deltaX < 0 and deltaX < scaled bounds.left (0), so -10 < 0 triggers early return
270
- mockDraggableCoreProps.onDrag({}, {
271
- deltaX: -10,
272
- deltaY: 0
273
- });
274
- expect(onDrag).not.toHaveBeenCalled();
275
- });
276
- it('does not call onDrag when dragging right beyond right bound', function () {
277
- var onDrag = jest.fn();
278
- var bounds = jest.fn().mockReturnValue({
279
- left: 0,
280
- top: 0,
281
- bottom: 0,
282
- right: 0
283
- });
284
- var fromDelta = jest.fn().mockReturnValue('result');
285
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
286
- bounds: bounds,
287
- fromDelta: fromDelta
288
- });
289
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
290
- onDrag: onDrag
291
- });
292
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
293
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
294
- });
295
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
296
- mockDraggableCoreProps.onStart(mockStartEvent());
297
- // deltaX > 0 and deltaX > scaled bounds.right (0), so 10 > 0 triggers early return
298
- mockDraggableCoreProps.onDrag({}, {
299
- deltaX: 10,
300
- deltaY: 0
301
- });
302
- expect(onDrag).not.toHaveBeenCalled();
303
- });
304
- it('does not call onDrag when dragging up beyond top bound', function () {
305
- var onDrag = jest.fn();
306
- var bounds = jest.fn().mockReturnValue({
307
- left: -100,
308
- top: 0,
309
- bottom: 0,
310
- right: 100
311
- });
312
- var fromDelta = jest.fn().mockReturnValue('result');
313
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
314
- bounds: bounds,
315
- fromDelta: fromDelta
316
- });
317
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
318
- onDrag: onDrag
319
- });
320
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
321
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
322
- });
323
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
324
- mockDraggableCoreProps.onStart(mockStartEvent());
325
- // deltaY < 0 and deltaY < scaled bounds.top (0), so -10 < 0 triggers early return
326
- mockDraggableCoreProps.onDrag({}, {
327
- deltaX: 0,
328
- deltaY: -10
329
- });
330
- expect(onDrag).not.toHaveBeenCalled();
331
- });
332
- it('does not call onDrag when dragging down beyond bottom bound', function () {
333
- var onDrag = jest.fn();
334
- var bounds = jest.fn().mockReturnValue({
335
- left: -100,
336
- top: -100,
337
- bottom: 0,
338
- right: 100
339
- });
340
- var fromDelta = jest.fn().mockReturnValue('result');
341
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
342
- bounds: bounds,
343
- fromDelta: fromDelta
344
- });
345
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
346
- onDrag: onDrag
347
- });
348
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
349
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
350
- });
351
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
352
- mockDraggableCoreProps.onStart(mockStartEvent());
353
- // deltaY > 0 and deltaY > scaled bounds.bottom (0), so 10 > 0 triggers early return
354
- mockDraggableCoreProps.onDrag({}, {
355
- deltaX: 0,
356
- deltaY: 10
357
- });
358
- expect(onDrag).not.toHaveBeenCalled();
359
- });
360
- it('calls onDrag when dragging within bounds', function () {
361
- var onDrag = jest.fn();
362
- var bounds = jest.fn().mockReturnValue({
363
- left: -100,
364
- top: -100,
365
- bottom: 100,
366
- right: 100
367
- });
368
- var fromDelta = jest.fn().mockReturnValue('result');
369
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
370
- bounds: bounds,
371
- fromDelta: fromDelta
372
- });
373
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
374
- onDrag: onDrag
375
- });
376
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
377
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
378
- });
379
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
380
- mockDraggableCoreProps.onStart(mockStartEvent());
381
- // All bound checks pass: deltaX (-10) is NOT < bounds.left (-100) and NOT > bounds.right (100)
382
- // Similarly for deltaY
383
- mockDraggableCoreProps.onDrag({}, {
384
- deltaX: -10,
385
- deltaY: 10
386
- });
387
- expect(onDrag).toHaveBeenCalled();
388
- });
389
- });
390
- describe('skipDragOutsideOfBounds', function () {
391
- it('skips drag when moving left and x is below domain.min', function () {
392
- var onDrag = jest.fn();
393
- var graphProps = _objectSpread(_objectSpread({}, getGraphProps()), {}, {
394
- domain: {
395
- min: -5,
396
- max: 5,
397
- step: 1
398
- },
399
- range: {
400
- min: -5,
401
- max: 5,
402
- step: 1
403
- }
404
- });
405
- graphProps.scale.x.invert = jest.fn().mockReturnValue(-6); // Below min
406
-
407
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
408
- graphProps: graphProps,
409
- onDrag: onDrag
410
- });
411
- var bounds = jest.fn().mockReturnValue({
412
- left: 100,
413
- top: 100,
414
- bottom: 100,
415
- right: 100
416
- });
417
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
418
- bounds: bounds
419
- });
420
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
421
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
422
- });
423
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
424
- mockDraggableCoreProps.onStart(mockStartEvent());
425
- mockDraggableCoreProps.onDrag({}, {
426
- deltaX: 1,
427
- deltaY: 0
428
- });
429
- expect(onDrag).not.toHaveBeenCalled();
430
- });
431
- it('skips drag when moving right and x is above domain.max', function () {
432
- var onDrag = jest.fn();
433
- var graphProps = _objectSpread(_objectSpread({}, getGraphProps()), {}, {
434
- domain: {
435
- min: -5,
436
- max: 5,
437
- step: 1
438
- },
439
- range: {
440
- min: -5,
441
- max: 5,
442
- step: 1
443
- }
444
- });
445
- graphProps.scale.x.invert = jest.fn().mockReturnValue(6); // Above max
446
-
447
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
448
- graphProps: graphProps,
449
- onDrag: onDrag
450
- });
451
- var bounds = jest.fn().mockReturnValue({
452
- left: 100,
453
- top: 100,
454
- bottom: 100,
455
- right: 100
456
- });
457
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
458
- bounds: bounds
459
- });
460
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
461
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
462
- });
463
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
464
- mockDraggableCoreProps.onStart(mockStartEvent());
465
- mockDraggableCoreProps.onDrag({}, {
466
- deltaX: -1,
467
- deltaY: 0
468
- });
469
- expect(onDrag).not.toHaveBeenCalled();
470
- });
471
- it('skips drag when moving up and y is above range.max', function () {
472
- var onDrag = jest.fn();
473
- var graphProps = _objectSpread(_objectSpread({}, getGraphProps()), {}, {
474
- domain: {
475
- min: -5,
476
- max: 5,
477
- step: 1
478
- },
479
- range: {
480
- min: -5,
481
- max: 5,
482
- step: 1
483
- }
484
- });
485
- graphProps.scale.y.invert = jest.fn().mockReturnValue(6); // Above max
486
-
487
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
488
- graphProps: graphProps,
489
- onDrag: onDrag
490
- });
491
- var bounds = jest.fn().mockReturnValue({
492
- left: 100,
493
- top: 100,
494
- bottom: 100,
495
- right: 100
496
- });
497
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
498
- bounds: bounds
499
- });
500
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
501
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
502
- });
503
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
504
- mockDraggableCoreProps.onStart(mockStartEvent());
505
- mockDraggableCoreProps.onDrag({}, {
506
- deltaX: 0,
507
- deltaY: 1
508
- });
509
- expect(onDrag).not.toHaveBeenCalled();
510
- });
511
- it('skips drag when moving down and y is below range.min', function () {
512
- var onDrag = jest.fn();
513
- var graphProps = _objectSpread(_objectSpread({}, getGraphProps()), {}, {
514
- domain: {
515
- min: -5,
516
- max: 5,
517
- step: 1
518
- },
519
- range: {
520
- min: -5,
521
- max: 5,
522
- step: 1
523
- }
524
- });
525
- graphProps.scale.y.invert = jest.fn().mockReturnValue(-6); // Below min
526
-
527
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
528
- graphProps: graphProps,
529
- onDrag: onDrag
530
- });
531
- var bounds = jest.fn().mockReturnValue({
532
- left: 100,
533
- top: 100,
534
- bottom: 100,
535
- right: 100
536
- });
537
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
538
- bounds: bounds
539
- });
540
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
541
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
542
- });
543
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
544
- mockDraggableCoreProps.onStart(mockStartEvent());
545
- mockDraggableCoreProps.onDrag({}, {
546
- deltaX: 0,
547
- deltaY: -1
548
- });
549
- expect(onDrag).not.toHaveBeenCalled();
550
- });
551
- it('allows drag when within domain and range', function () {
552
- var onDrag = jest.fn();
553
- var graphProps = _objectSpread(_objectSpread({}, getGraphProps()), {}, {
554
- domain: {
555
- min: -5,
556
- max: 5,
557
- step: 1
558
- },
559
- range: {
560
- min: -5,
561
- max: 5,
562
- step: 1
563
- }
564
- });
565
- graphProps.scale.x.invert = jest.fn().mockReturnValue(3); // Within bounds
566
- graphProps.scale.y.invert = jest.fn().mockReturnValue(2); // Within bounds
567
-
568
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
569
- graphProps: graphProps,
570
- onDrag: onDrag
571
- });
572
- var bounds = jest.fn().mockReturnValue({
573
- left: -100,
574
- top: -100,
575
- bottom: 100,
576
- right: 100
577
- });
578
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
579
- bounds: bounds
580
- });
581
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
582
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
583
- });
584
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
585
- mockDraggableCoreProps.onStart(mockStartEvent());
586
- mockDraggableCoreProps.onDrag({}, {
587
- deltaX: 1,
588
- deltaY: -1
589
- });
590
- expect(onDrag).toHaveBeenCalled();
591
- });
592
- });
593
- });
594
- describe('getDelta and applyDelta', function () {
595
- it('calls utils.getDelta when processing drag', function () {
596
- _utils.getDelta.mockClear();
597
- var onDrag = jest.fn();
598
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
599
- onDrag: onDrag
600
- });
601
- var bounds = jest.fn().mockReturnValue({
602
- left: -100,
603
- top: -100,
604
- bottom: 100,
605
- right: 100
606
- });
607
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
608
- bounds: bounds
609
- });
610
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
611
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
612
- });
613
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
614
- mockDraggableCoreProps.onStart(mockStartEvent());
615
- mockDraggableCoreProps.onDrag({}, {
616
- deltaX: 10,
617
- deltaY: 10
618
- });
619
- expect(_utils.getDelta).toHaveBeenCalled();
620
- });
621
- it('calls fromDelta with result from getDelta', function () {
622
- var fromDelta = jest.fn();
623
- _utils.getDelta.mockReturnValue({
624
- x: 5,
625
- y: 5
626
- });
627
- var bounds = jest.fn().mockReturnValue({
628
- left: -100,
629
- top: -100,
630
- bottom: 100,
631
- right: 100
632
- });
633
- var options = _objectSpread(_objectSpread({}, defaultOptions), {}, {
634
- fromDelta: fromDelta,
635
- bounds: bounds
636
- });
637
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
638
- onDrag: jest.fn()
639
- });
640
- var Comp = (0, _gridDraggable.gridDraggable)(options)(function () {
641
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
642
- });
643
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
644
- mockDraggableCoreProps.onStart(mockStartEvent());
645
- mockDraggableCoreProps.onDrag({}, {
646
- deltaX: 10,
647
- deltaY: 10
648
- });
649
- expect(fromDelta).toHaveBeenCalled();
650
- });
651
- });
652
- describe('onStop', function () {
653
- it('calls onDragStop when drag stops', function () {
654
- var onDragStop = jest.fn();
655
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
656
- onDragStop: onDragStop
657
- });
658
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
659
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
660
- });
661
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
662
-
663
- // Start to set up state
664
- mockDraggableCoreProps.onStart(mockStartEvent());
665
-
666
- // Stop with large movement (not tiny)
667
- mockDraggableCoreProps.onStop({
668
- clientX: 100,
669
- clientY: 100,
670
- stopPropagation: jest.fn()
671
- }, {});
672
- expect(onDragStop).toHaveBeenCalled();
673
- });
674
- it('calls onClick instead of onDragStop when movement is tiny', function () {
675
- var onClick = jest.fn();
676
- var onDragStop = jest.fn();
677
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
678
- onClick: onClick,
679
- onDragStop: onDragStop
680
- });
681
- _d3Selection.pointer.mockReturnValue([0, 0]);
682
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
683
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
684
- });
685
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, props));
686
-
687
- // Start and stop at almost the same position (tiny movement)
688
- // Grid is 1x1, tiny threshold is grid/10 = 0.1
689
- mockDraggableCoreProps.onStart(mockStartEvent());
690
- mockDraggableCoreProps.onStop({
691
- clientX: 0.05,
692
- clientY: 0.05,
693
- target: {},
694
- stopPropagation: jest.fn()
695
- }, {});
696
- expect(onClick).toHaveBeenCalledWith({
697
- x: 0,
698
- y: 0
699
- });
700
- });
701
- it('calls onClick with snapped coordinates', function () {
702
- var onClick = jest.fn();
703
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
704
- onClick: onClick
705
- });
706
- var graphProps = getGraphProps();
707
- graphProps.scale.x.invert = jest.fn().mockReturnValue(1.7);
708
- graphProps.scale.y.invert = jest.fn().mockReturnValue(2.3);
709
- graphProps.snap.x = jest.fn().mockReturnValue(2);
710
- graphProps.snap.y = jest.fn().mockReturnValue(2);
711
- _d3Selection.pointer.mockReturnValue([1.7, 2.3]);
712
- var propsWithGraphProps = _objectSpread(_objectSpread({}, props), {}, {
713
- graphProps: graphProps
714
- });
715
- var Comp = (0, _gridDraggable.gridDraggable)(defaultOptions)(function () {
716
- return /*#__PURE__*/_react2["default"].createElement("div", null, "Test");
717
- });
718
- (0, _react.render)(/*#__PURE__*/_react2["default"].createElement(Comp, propsWithGraphProps));
719
-
720
- // Start and stop at almost the same position (tiny movement)
721
- mockDraggableCoreProps.onStart(mockStartEvent());
722
- mockDraggableCoreProps.onStop({
723
- clientX: 0.05,
724
- clientY: 0.05,
725
- target: {},
726
- stopPropagation: jest.fn()
727
- }, {});
728
- expect(graphProps.snap.x).toHaveBeenCalledWith(1.7);
729
- expect(graphProps.snap.y).toHaveBeenCalledWith(2.3);
730
- expect(onClick).toHaveBeenCalledWith({
731
- x: 2,
732
- y: 2
733
- });
734
- });
735
- });
736
- });
737
- });
738
- //# sourceMappingURL=grid-draggable.test.js.map