@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.
- package/dist/_virtual/_rolldown/runtime.js +20 -0
- package/dist/draggable.d.ts +18 -0
- package/dist/draggable.js +6 -0
- package/dist/graph-props.d.ts +22 -0
- package/dist/graph-props.js +29 -0
- package/dist/grid-draggable.d.ts +98 -0
- package/dist/grid-draggable.js +172 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +8 -0
- package/dist/label.d.ts +30 -0
- package/dist/label.js +132 -0
- package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
- package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
- package/dist/node_modules/.bun/react-draggable@4.7.1_6dbf9a050bc9aadb/node_modules/react-draggable/build/cjs/chunk-ACOTSM7X.js +509 -0
- package/dist/node_modules/.bun/react-draggable@4.7.1_6dbf9a050bc9aadb/node_modules/react-draggable/build/cjs/cjs.js +5 -0
- package/dist/root.d.ts +68 -0
- package/dist/root.js +302 -0
- package/dist/trig.d.ts +41 -0
- package/dist/trig.js +47 -0
- package/dist/types.d.ts +125 -0
- package/dist/types.js +46 -0
- package/dist/utils.d.ts +44 -0
- package/dist/utils.js +82 -0
- package/package.json +33 -25
- package/CHANGELOG.json +0 -17
- package/CHANGELOG.md +0 -838
- package/lib/__tests__/draggable.test.js +0 -48
- package/lib/__tests__/draggable.test.js.map +0 -1
- package/lib/__tests__/grid-draggable.test.js +0 -738
- package/lib/__tests__/grid-draggable.test.js.map +0 -1
- package/lib/__tests__/root.test.js +0 -285
- package/lib/__tests__/root.test.js.map +0 -1
- package/lib/__tests__/trig.test.js +0 -168
- package/lib/__tests__/trig.test.js.map +0 -1
- package/lib/__tests__/utils.test.js +0 -296
- package/lib/__tests__/utils.test.js.map +0 -1
- package/lib/draggable.js +0 -44
- package/lib/draggable.js.map +0 -1
- package/lib/graph-props.js +0 -46
- package/lib/graph-props.js.map +0 -1
- package/lib/grid-draggable.js +0 -361
- package/lib/grid-draggable.js.map +0 -1
- package/lib/index.js +0 -44
- package/lib/index.js.map +0 -1
- package/lib/label.js +0 -173
- package/lib/label.js.map +0 -1
- package/lib/root.js +0 -474
- package/lib/root.js.map +0 -1
- package/lib/trig.js +0 -149
- package/lib/trig.js.map +0 -1
- package/lib/types.js +0 -40
- package/lib/types.js.map +0 -1
- package/lib/utils.js +0 -165
- package/lib/utils.js.map +0 -1
- package/src/__tests__/draggable.test.jsx +0 -41
- package/src/__tests__/grid-draggable.test.jsx +0 -487
- package/src/__tests__/root.test.jsx +0 -277
- package/src/__tests__/trig.test.js +0 -163
- package/src/__tests__/utils.test.js +0 -229
- package/src/draggable.jsx +0 -11
- package/src/graph-props.js +0 -34
- package/src/grid-draggable.jsx +0 -332
- package/src/index.js +0 -9
- package/src/label.jsx +0 -199
- package/src/root.jsx +0 -485
- package/src/trig.js +0 -151
- package/src/types.js +0 -41
- 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
|