@pie-lib/plot 2.27.3-next.2 → 2.27.4-next.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.
- package/CHANGELOG.md +10 -84
- package/lib/__tests__/draggable.test.js +48 -0
- package/lib/__tests__/grid-draggable.test.js +773 -0
- package/lib/__tests__/root.test.js +265 -0
- package/lib/__tests__/trig.test.js +168 -0
- package/lib/__tests__/utils.test.js +300 -0
- package/lib/draggable.js +13 -34
- package/lib/draggable.js.map +1 -1
- package/lib/graph-props.js +5 -12
- package/lib/graph-props.js.map +1 -1
- package/lib/grid-draggable.js +68 -142
- package/lib/grid-draggable.js.map +1 -1
- package/lib/index.js +2 -17
- package/lib/index.js.map +1 -1
- package/lib/label.js +82 -108
- package/lib/label.js.map +1 -1
- package/lib/root.js +190 -215
- package/lib/root.js.map +1 -1
- package/lib/trig.js +15 -62
- package/lib/trig.js.map +1 -1
- package/lib/types.js +10 -38
- package/lib/types.js.map +1 -1
- package/lib/utils.js +23 -87
- package/lib/utils.js.map +1 -1
- package/package.json +11 -22
- package/src/__tests__/draggable.test.jsx +33 -15
- package/src/__tests__/grid-draggable.test.jsx +377 -224
- package/src/__tests__/root.test.jsx +213 -57
- package/src/grid-draggable.jsx +13 -4
- package/src/label.jsx +101 -69
- package/src/root.jsx +175 -129
- package/esm/index.css +0 -847
- package/esm/index.js +0 -199267
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -3
- package/src/__tests__/__snapshots__/grid-draggable.test.jsx.snap +0 -185
- package/src/__tests__/__snapshots__/root.test.jsx.snap +0 -18
package/lib/grid-draggable.js
CHANGED
|
@@ -1,65 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.gridDraggable = exports.deltaFn = void 0;
|
|
11
|
-
|
|
12
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
10
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
23
|
-
|
|
24
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
25
|
-
|
|
26
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
27
|
-
|
|
28
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
29
|
-
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
30
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
31
|
-
|
|
32
18
|
var _react = _interopRequireDefault(require("react"));
|
|
33
|
-
|
|
34
19
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
35
|
-
|
|
36
20
|
var _types = require("./types");
|
|
37
|
-
|
|
38
21
|
var _draggable = require("./draggable");
|
|
39
|
-
|
|
40
22
|
var _debug = _interopRequireDefault(require("debug"));
|
|
41
|
-
|
|
42
23
|
var utils = _interopRequireWildcard(require("./utils"));
|
|
43
|
-
|
|
44
24
|
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
45
|
-
|
|
46
25
|
var _invariant = _interopRequireDefault(require("invariant"));
|
|
47
|
-
|
|
48
26
|
var _d3Selection = require("d3-selection");
|
|
49
|
-
|
|
50
27
|
var _excluded = ["disabled"];
|
|
51
|
-
|
|
52
|
-
function
|
|
53
|
-
|
|
54
|
-
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; }
|
|
55
|
-
|
|
56
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
57
|
-
|
|
58
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
59
|
-
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
29
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
30
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
60
31
|
var log = (0, _debug["default"])('pie-lib:plot:grid-draggable');
|
|
61
|
-
|
|
62
|
-
var deltaFn = function deltaFn(scale, snap, val) {
|
|
32
|
+
var deltaFn = exports.deltaFn = function deltaFn(scale, snap, val) {
|
|
63
33
|
return function (delta) {
|
|
64
34
|
var normalized = delta + scale(0);
|
|
65
35
|
var inverted = scale.invert(normalized);
|
|
@@ -67,68 +37,50 @@ var deltaFn = function deltaFn(scale, snap, val) {
|
|
|
67
37
|
return fixDecimalsArithmetic;
|
|
68
38
|
};
|
|
69
39
|
};
|
|
40
|
+
|
|
70
41
|
/**
|
|
71
42
|
* Creates a Component that is draggable, within a bounded grid.
|
|
72
43
|
* @param {*} opts
|
|
73
44
|
*/
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
exports.deltaFn = deltaFn;
|
|
77
|
-
|
|
78
|
-
var gridDraggable = function gridDraggable(opts) {
|
|
45
|
+
var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
|
|
79
46
|
return function (Comp) {
|
|
80
|
-
var
|
|
81
|
-
|
|
47
|
+
var _GridDraggable;
|
|
82
48
|
(0, _invariant["default"])(!!opts && (0, _isFunction["default"])(opts.fromDelta) && (0, _isFunction["default"])(opts.bounds) && (0, _isFunction["default"])(opts.anchorPoint), 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }');
|
|
83
|
-
return
|
|
84
|
-
(
|
|
85
|
-
|
|
86
|
-
var _super = _createSuper(GridDraggable);
|
|
87
|
-
|
|
88
|
-
function GridDraggable() {
|
|
49
|
+
return _GridDraggable = /*#__PURE__*/function (_React$Component) {
|
|
50
|
+
function GridDraggable(props) {
|
|
89
51
|
var _this;
|
|
90
|
-
|
|
91
52
|
(0, _classCallCheck2["default"])(this, GridDraggable);
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
args[_key] = arguments[_key];
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
98
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "grid", function () {
|
|
53
|
+
_this = _callSuper(this, GridDraggable, [props]);
|
|
54
|
+
(0, _defineProperty2["default"])(_this, "grid", function () {
|
|
99
55
|
var graphProps = _this.props.graphProps;
|
|
100
56
|
var scale = graphProps.scale,
|
|
101
|
-
|
|
102
|
-
|
|
57
|
+
domain = graphProps.domain,
|
|
58
|
+
range = graphProps.range;
|
|
103
59
|
return {
|
|
104
60
|
x: scale.x(domain.step) - scale.x(0),
|
|
105
61
|
y: scale.y(range.step) - scale.y(0)
|
|
106
62
|
};
|
|
107
63
|
});
|
|
108
|
-
(0, _defineProperty2["default"])(
|
|
64
|
+
(0, _defineProperty2["default"])(_this, "onStart", function (e) {
|
|
109
65
|
var onDragStart = _this.props.onDragStart;
|
|
110
|
-
|
|
111
66
|
if (document.activeElement) {
|
|
112
67
|
document.activeElement.blur();
|
|
113
68
|
}
|
|
114
|
-
|
|
115
69
|
_this.setState({
|
|
116
70
|
startX: e.clientX,
|
|
117
71
|
startY: e.clientY
|
|
118
72
|
});
|
|
119
|
-
|
|
120
73
|
if (onDragStart) {
|
|
121
74
|
onDragStart();
|
|
122
75
|
}
|
|
123
76
|
});
|
|
124
|
-
(0, _defineProperty2["default"])(
|
|
77
|
+
(0, _defineProperty2["default"])(_this, "position", function () {
|
|
125
78
|
var _opts$anchorPoint = opts.anchorPoint(_this.props),
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
79
|
+
x = _opts$anchorPoint.x,
|
|
80
|
+
y = _opts$anchorPoint.y;
|
|
129
81
|
var graphProps = _this.props.graphProps;
|
|
130
82
|
var scale = graphProps.scale,
|
|
131
|
-
|
|
83
|
+
snap = graphProps.snap;
|
|
132
84
|
return {
|
|
133
85
|
anchorPoint: {
|
|
134
86
|
x: x,
|
|
@@ -138,42 +90,43 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
138
90
|
y: deltaFn(scale.y, snap.y, y)
|
|
139
91
|
};
|
|
140
92
|
});
|
|
141
|
-
(0, _defineProperty2["default"])(
|
|
93
|
+
(0, _defineProperty2["default"])(_this, "tiny", function (key, event) {
|
|
142
94
|
var K = key.toUpperCase();
|
|
143
95
|
var end = event["client".concat(K)];
|
|
144
|
-
|
|
145
96
|
var start = _this.state["start".concat(K)];
|
|
146
|
-
|
|
147
97
|
var delta = Math.abs(end - start);
|
|
148
98
|
var out = delta < Math.abs(_this.grid()[key]) / 10;
|
|
149
99
|
log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);
|
|
150
100
|
return out;
|
|
151
101
|
});
|
|
152
|
-
(0, _defineProperty2["default"])(
|
|
102
|
+
(0, _defineProperty2["default"])(_this, "getScaledBounds", function () {
|
|
153
103
|
var bounds = opts.bounds(_this.props, _this.props.graphProps);
|
|
154
104
|
log('bounds: ', bounds);
|
|
155
|
-
|
|
156
105
|
var grid = _this.grid();
|
|
157
|
-
|
|
158
106
|
var scaled = {
|
|
159
|
-
left: bounds.left
|
|
160
|
-
right: bounds.right
|
|
161
|
-
top: bounds.top
|
|
162
|
-
bottom: bounds.bottom
|
|
107
|
+
left: bounds.left * grid.x,
|
|
108
|
+
right: bounds.right * grid.x,
|
|
109
|
+
top: bounds.top * grid.y,
|
|
110
|
+
bottom: bounds.bottom * grid.y
|
|
163
111
|
};
|
|
164
112
|
log('[getScaledBounds]: ', scaled);
|
|
165
113
|
return scaled;
|
|
166
114
|
});
|
|
167
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the coordinates of a mouse or touch event relative to an SVG element.
|
|
117
|
+
* This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.
|
|
118
|
+
* @param {Element} node - The SVG element.
|
|
119
|
+
* @param {Event} event - The mouse or touch event.
|
|
120
|
+
* @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.
|
|
121
|
+
*/
|
|
122
|
+
(0, _defineProperty2["default"])(_this, "getClientPoint", function (node, event) {
|
|
168
123
|
if (!node || !event) {
|
|
169
124
|
return null;
|
|
170
125
|
}
|
|
171
|
-
|
|
172
126
|
var svg = node.ownerSVGElement || node;
|
|
173
|
-
|
|
174
127
|
if (svg && svg.createSVGPoint) {
|
|
175
|
-
var point = svg.createSVGPoint();
|
|
176
|
-
|
|
128
|
+
var point = svg.createSVGPoint();
|
|
129
|
+
// Check if it's a touch event and use the first touch point
|
|
177
130
|
if (event.touches && event.touches.length > 0) {
|
|
178
131
|
var touch = event.touches[0];
|
|
179
132
|
point.x = touch.clientX;
|
|
@@ -183,7 +136,6 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
183
136
|
point.x = event.clientX;
|
|
184
137
|
point.y = event.clientY;
|
|
185
138
|
}
|
|
186
|
-
|
|
187
139
|
if (node.getScreenCTM) {
|
|
188
140
|
point = point.matrixTransform(node.getScreenCTM().inverse());
|
|
189
141
|
return [point.x, point.y];
|
|
@@ -191,124 +143,99 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
191
143
|
return null;
|
|
192
144
|
}
|
|
193
145
|
}
|
|
194
|
-
|
|
195
146
|
var rect = node.getBoundingClientRect();
|
|
196
|
-
|
|
197
147
|
if (rect) {
|
|
198
148
|
return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];
|
|
199
149
|
} else {
|
|
200
150
|
return null;
|
|
201
151
|
}
|
|
202
152
|
});
|
|
203
|
-
(0, _defineProperty2["default"])(
|
|
153
|
+
(0, _defineProperty2["default"])(_this, "skipDragOutsideOfBounds", function (dd, e, graphProps) {
|
|
204
154
|
// Ignore drag movement outside of the domain and range.
|
|
205
155
|
var rootNode = graphProps.getRootNode();
|
|
206
|
-
|
|
207
156
|
var clientPoint = _this.getClientPoint(rootNode, e);
|
|
208
|
-
|
|
209
157
|
if (clientPoint === null) {
|
|
210
158
|
return true; // Indicate that the drag is outside of bounds
|
|
211
159
|
}
|
|
212
|
-
|
|
213
160
|
var _clientPoint = (0, _slicedToArray2["default"])(clientPoint, 2),
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
161
|
+
rawX = _clientPoint[0],
|
|
162
|
+
rawY = _clientPoint[1];
|
|
217
163
|
var scale = graphProps.scale,
|
|
218
|
-
|
|
219
|
-
|
|
164
|
+
domain = graphProps.domain,
|
|
165
|
+
range = graphProps.range;
|
|
220
166
|
var x = scale.x.invert(rawX);
|
|
221
167
|
var y = scale.y.invert(rawY);
|
|
222
168
|
var xOutside = dd.deltaX > 0 && x < domain.min || dd.deltaX < 0 && x > domain.max;
|
|
223
169
|
var yOutside = dd.deltaY > 0 && y > range.max || dd.deltaY < 0 && y < range.min;
|
|
224
170
|
return xOutside || yOutside;
|
|
225
171
|
});
|
|
226
|
-
(0, _defineProperty2["default"])(
|
|
172
|
+
(0, _defineProperty2["default"])(_this, "onDrag", function (e, dd) {
|
|
227
173
|
var _this$props = _this.props,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
174
|
+
onDrag = _this$props.onDrag,
|
|
175
|
+
graphProps = _this$props.graphProps;
|
|
231
176
|
if (!onDrag) {
|
|
232
177
|
return;
|
|
233
178
|
}
|
|
234
|
-
|
|
235
179
|
var bounds = _this.getScaledBounds();
|
|
236
|
-
|
|
237
180
|
if (dd.deltaX < 0 && dd.deltaX < bounds.left) {
|
|
238
181
|
return;
|
|
239
182
|
}
|
|
240
|
-
|
|
241
183
|
if (dd.deltaX > 0 && dd.deltaX > bounds.right) {
|
|
242
184
|
return;
|
|
243
185
|
}
|
|
244
|
-
|
|
245
186
|
if (dd.deltaY < 0 && dd.deltaY < bounds.top) {
|
|
246
187
|
return;
|
|
247
188
|
}
|
|
248
|
-
|
|
249
189
|
if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {
|
|
250
190
|
return;
|
|
251
191
|
}
|
|
252
|
-
|
|
253
192
|
if (_this.skipDragOutsideOfBounds(dd, e, graphProps)) {
|
|
254
193
|
return;
|
|
255
194
|
}
|
|
256
|
-
|
|
257
195
|
var dragArg = _this.applyDelta({
|
|
258
196
|
x: dd.deltaX,
|
|
259
197
|
y: dd.deltaY
|
|
260
198
|
});
|
|
261
|
-
|
|
262
199
|
if (dragArg !== undefined || dragArg !== null) {
|
|
263
200
|
onDrag(dragArg);
|
|
264
201
|
}
|
|
265
202
|
});
|
|
266
|
-
(0, _defineProperty2["default"])(
|
|
203
|
+
(0, _defineProperty2["default"])(_this, "getDelta", function (point) {
|
|
267
204
|
var pos = _this.position();
|
|
268
|
-
|
|
269
205
|
var p = {
|
|
270
206
|
x: pos.x(point.x),
|
|
271
207
|
y: pos.y(point.y)
|
|
272
208
|
};
|
|
273
209
|
return utils.getDelta(pos.anchorPoint, p);
|
|
274
210
|
});
|
|
275
|
-
(0, _defineProperty2["default"])(
|
|
211
|
+
(0, _defineProperty2["default"])(_this, "applyDelta", function (point) {
|
|
276
212
|
var delta = _this.getDelta(point);
|
|
277
|
-
|
|
278
213
|
log('[applyDelta] delta:', delta);
|
|
279
214
|
return opts.fromDelta(_this.props, delta);
|
|
280
215
|
});
|
|
281
|
-
(0, _defineProperty2["default"])(
|
|
216
|
+
(0, _defineProperty2["default"])(_this, "onStop", function (e, dd) {
|
|
282
217
|
log('[onStop] dd:', dd);
|
|
283
218
|
var _this$props2 = _this.props,
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
219
|
+
onDragStop = _this$props2.onDragStop,
|
|
220
|
+
onClick = _this$props2.onClick;
|
|
287
221
|
if (onDragStop) {
|
|
288
222
|
onDragStop();
|
|
289
223
|
}
|
|
290
|
-
|
|
291
224
|
log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);
|
|
292
|
-
|
|
293
225
|
var isClick = _this.tiny('x', e) && _this.tiny('y', e);
|
|
294
|
-
|
|
295
226
|
if (isClick) {
|
|
296
227
|
if (onClick) {
|
|
297
228
|
log('call onClick');
|
|
298
|
-
|
|
299
229
|
_this.setState({
|
|
300
230
|
startX: null
|
|
301
231
|
});
|
|
302
|
-
|
|
303
232
|
var graphProps = _this.props.graphProps;
|
|
304
233
|
var scale = graphProps.scale,
|
|
305
|
-
|
|
306
|
-
|
|
234
|
+
snap = graphProps.snap;
|
|
307
235
|
var _clientPoint2 = (0, _d3Selection.clientPoint)(e.target, e),
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
236
|
+
_clientPoint3 = (0, _slicedToArray2["default"])(_clientPoint2, 2),
|
|
237
|
+
rawX = _clientPoint3[0],
|
|
238
|
+
rawY = _clientPoint3[1];
|
|
312
239
|
var x = scale.x.invert(rawX);
|
|
313
240
|
var y = scale.y.invert(rawY);
|
|
314
241
|
x = snap.x(x);
|
|
@@ -320,35 +247,37 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
320
247
|
return false;
|
|
321
248
|
}
|
|
322
249
|
}
|
|
323
|
-
|
|
324
250
|
_this.setState({
|
|
325
251
|
startX: null,
|
|
326
252
|
startY: null
|
|
327
|
-
});
|
|
328
|
-
|
|
329
|
-
|
|
253
|
+
});
|
|
254
|
+
// return false to prevent state updates in the underlying draggable - a move will have triggered an update already.
|
|
330
255
|
return false;
|
|
331
256
|
});
|
|
257
|
+
_this.state = {
|
|
258
|
+
startX: null,
|
|
259
|
+
startY: null
|
|
260
|
+
};
|
|
332
261
|
return _this;
|
|
333
262
|
}
|
|
334
|
-
|
|
335
|
-
(0, _createClass2["default"])(GridDraggable, [{
|
|
263
|
+
(0, _inherits2["default"])(GridDraggable, _React$Component);
|
|
264
|
+
return (0, _createClass2["default"])(GridDraggable, [{
|
|
336
265
|
key: "render",
|
|
337
266
|
value: function render() {
|
|
338
267
|
var _this$props3 = this.props,
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
var grid = this.grid();
|
|
268
|
+
disabled = _this$props3.disabled,
|
|
269
|
+
rest = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
|
|
270
|
+
var grid = this.grid();
|
|
342
271
|
|
|
272
|
+
// prevent the text select icon from rendering.
|
|
343
273
|
var onMouseDown = function onMouseDown(e) {
|
|
344
274
|
return e.nativeEvent.preventDefault();
|
|
345
275
|
};
|
|
276
|
+
|
|
346
277
|
/**
|
|
347
278
|
* TODO: This shouldnt be necessary, we should be able to use the r-d classnames.
|
|
348
279
|
* But they aren't being unset. If we continue with this lib, we'll have to fix this.
|
|
349
280
|
*/
|
|
350
|
-
|
|
351
|
-
|
|
352
281
|
var isDragging = this.state ? !!this.state.startX : false;
|
|
353
282
|
return /*#__PURE__*/_react["default"].createElement(_draggable.DraggableCore, {
|
|
354
283
|
disabled: disabled,
|
|
@@ -364,8 +293,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
364
293
|
})));
|
|
365
294
|
}
|
|
366
295
|
}]);
|
|
367
|
-
|
|
368
|
-
}(_react["default"].Component), (0, _defineProperty2["default"])(_class, "propTypes", {
|
|
296
|
+
}(_react["default"].Component), (0, _defineProperty2["default"])(_GridDraggable, "propTypes", {
|
|
369
297
|
disabled: _propTypes["default"].bool,
|
|
370
298
|
onDragStart: _propTypes["default"].func,
|
|
371
299
|
onDrag: _propTypes["default"].func,
|
|
@@ -373,9 +301,7 @@ var gridDraggable = function gridDraggable(opts) {
|
|
|
373
301
|
onClick: _propTypes["default"].func,
|
|
374
302
|
onMove: _propTypes["default"].func,
|
|
375
303
|
graphProps: _types.GraphPropsType.isRequired
|
|
376
|
-
}),
|
|
304
|
+
}), _GridDraggable;
|
|
377
305
|
};
|
|
378
306
|
};
|
|
379
|
-
|
|
380
|
-
exports.gridDraggable = gridDraggable;
|
|
381
|
-
//# sourceMappingURL=grid-draggable.js.map
|
|
307
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfdHlwZXMiLCJfZHJhZ2dhYmxlIiwiX2RlYnVnIiwidXRpbHMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9pc0Z1bmN0aW9uIiwiX2ludmFyaWFudCIsIl9kM1NlbGVjdGlvbiIsIl9leGNsdWRlZCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsImxvZyIsImRlYnVnIiwiZGVsdGFGbiIsImV4cG9ydHMiLCJzY2FsZSIsInNuYXAiLCJ2YWwiLCJkZWx0YSIsIm5vcm1hbGl6ZWQiLCJpbnZlcnRlZCIsImludmVydCIsImZpeERlY2ltYWxzQXJpdGhtZXRpYyIsInRvRml4ZWQiLCJncmlkRHJhZ2dhYmxlIiwib3B0cyIsIkNvbXAiLCJfR3JpZERyYWdnYWJsZSIsImludmFyaWFudCIsImlzRnVuY3Rpb24iLCJmcm9tRGVsdGEiLCJib3VuZHMiLCJhbmNob3JQb2ludCIsIl9SZWFjdCRDb21wb25lbnQiLCJHcmlkRHJhZ2dhYmxlIiwicHJvcHMiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiZ3JhcGhQcm9wcyIsImRvbWFpbiIsInJhbmdlIiwieCIsInN0ZXAiLCJ5Iiwib25EcmFnU3RhcnQiLCJkb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJibHVyIiwic2V0U3RhdGUiLCJzdGFydFgiLCJjbGllbnRYIiwic3RhcnRZIiwiY2xpZW50WSIsIl9vcHRzJGFuY2hvclBvaW50Iiwia2V5IiwiZXZlbnQiLCJLIiwidG9VcHBlckNhc2UiLCJlbmQiLCJjb25jYXQiLCJzdGFydCIsInN0YXRlIiwiTWF0aCIsImFicyIsIm91dCIsImdyaWQiLCJzY2FsZWQiLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJub2RlIiwic3ZnIiwib3duZXJTVkdFbGVtZW50IiwiY3JlYXRlU1ZHUG9pbnQiLCJwb2ludCIsInRvdWNoZXMiLCJsZW5ndGgiLCJ0b3VjaCIsImdldFNjcmVlbkNUTSIsIm1hdHJpeFRyYW5zZm9ybSIsImludmVyc2UiLCJyZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwiY2xpZW50TGVmdCIsImNsaWVudFRvcCIsImRkIiwicm9vdE5vZGUiLCJnZXRSb290Tm9kZSIsImNsaWVudFBvaW50IiwiZ2V0Q2xpZW50UG9pbnQiLCJfY2xpZW50UG9pbnQiLCJfc2xpY2VkVG9BcnJheTIiLCJyYXdYIiwicmF3WSIsInhPdXRzaWRlIiwiZGVsdGFYIiwibWluIiwibWF4IiwieU91dHNpZGUiLCJkZWx0YVkiLCJfdGhpcyRwcm9wcyIsIm9uRHJhZyIsImdldFNjYWxlZEJvdW5kcyIsInNraXBEcmFnT3V0c2lkZU9mQm91bmRzIiwiZHJhZ0FyZyIsImFwcGx5RGVsdGEiLCJ1bmRlZmluZWQiLCJwb3MiLCJwb3NpdGlvbiIsInAiLCJnZXREZWx0YSIsIl90aGlzJHByb3BzMiIsIm9uRHJhZ1N0b3AiLCJvbkNsaWNrIiwibGFzdFgiLCJsYXN0WSIsImlzQ2xpY2siLCJ0aW55IiwiX2NsaWVudFBvaW50MiIsInRhcmdldCIsIl9jbGllbnRQb2ludDMiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsInZhbHVlIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMzIiwiZGlzYWJsZWQiLCJyZXN0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIm9uTW91c2VEb3duIiwibmF0aXZlRXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsImlzRHJhZ2dpbmciLCJjcmVhdGVFbGVtZW50IiwiRHJhZ2dhYmxlQ29yZSIsIm9uU3RhcnQiLCJvblN0b3AiLCJheGlzIiwiX2V4dGVuZHMyIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJib29sIiwiZnVuYyIsIm9uTW92ZSIsIkdyYXBoUHJvcHNUeXBlIiwiaXNSZXF1aXJlZCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9ncmlkLWRyYWdnYWJsZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBHcmFwaFByb3BzVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRHJhZ2dhYmxlQ29yZSB9IGZyb20gJy4vZHJhZ2dhYmxlJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBpc0Z1bmN0aW9uIGZyb20gJ2xvZGFzaC9pc0Z1bmN0aW9uJztcbmltcG9ydCBpbnZhcmlhbnQgZnJvbSAnaW52YXJpYW50JztcbmltcG9ydCB7IGNsaWVudFBvaW50IH0gZnJvbSAnZDMtc2VsZWN0aW9uJztcblxuY29uc3QgbG9nID0gZGVidWcoJ3BpZS1saWI6cGxvdDpncmlkLWRyYWdnYWJsZScpO1xuXG5leHBvcnQgY29uc3QgZGVsdGFGbiA9IChzY2FsZSwgc25hcCwgdmFsKSA9PiAoZGVsdGEpID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGRlbHRhICsgc2NhbGUoMCk7XG4gIGNvbnN0IGludmVydGVkID0gc2NhbGUuaW52ZXJ0KG5vcm1hbGl6ZWQpO1xuXG4gIGNvbnN0IGZpeERlY2ltYWxzQXJpdGhtZXRpYyA9IChzbmFwKHZhbCArIGludmVydGVkKS50b0ZpeGVkKDQpICogMTAwMCkgLyAxMDAwO1xuXG4gIHJldHVybiBmaXhEZWNpbWFsc0FyaXRobWV0aWM7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBDb21wb25lbnQgdGhhdCBpcyBkcmFnZ2FibGUsIHdpdGhpbiBhIGJvdW5kZWQgZ3JpZC5cbiAqIEBwYXJhbSB7Kn0gb3B0c1xuICovXG5leHBvcnQgY29uc3QgZ3JpZERyYWdnYWJsZSA9IChvcHRzKSA9PiAoQ29tcCkgPT4ge1xuICBpbnZhcmlhbnQoXG4gICAgISFvcHRzICYmIGlzRnVuY3Rpb24ob3B0cy5mcm9tRGVsdGEpICYmIGlzRnVuY3Rpb24ob3B0cy5ib3VuZHMpICYmIGlzRnVuY3Rpb24ob3B0cy5hbmNob3JQb2ludCksXG4gICAgJ1lvdSBtdXN0IHN1cHBseSBhbiBvYmplY3Qgd2l0aDogeyBhbmNob3JQb2ludDogRnVuY3Rpb24sIGZyb21EZWx0YTogRnVuY3Rpb24sIGJvdW5kczogRnVuY3Rpb24gfScsXG4gICk7XG4gIHJldHVybiBjbGFzcyBHcmlkRHJhZ2dhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICAgICAgb25EcmFnU3RhcnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25EcmFnOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIG9uRHJhZ1N0b3A6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBvbk1vdmU6IFByb3BUeXBlcy5mdW5jLFxuICAgICAgZ3JhcGhQcm9wczogR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICAgIHN1cGVyKHByb3BzKTtcbiAgICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAgIHN0YXJ0WDogbnVsbCxcbiAgICAgICAgc3RhcnRZOiBudWxsLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBncmlkID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgeyBzY2FsZSwgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHNjYWxlLngoZG9tYWluLnN0ZXApIC0gc2NhbGUueCgwKSxcbiAgICAgICAgeTogc2NhbGUueShyYW5nZS5zdGVwKSAtIHNjYWxlLnkoMCksXG4gICAgICB9O1xuICAgIH07XG4gICAgb25TdGFydCA9IChlKSA9PiB7XG4gICAgICBjb25zdCB7IG9uRHJhZ1N0YXJ0IH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBlLmNsaWVudFgsIHN0YXJ0WTogZS5jbGllbnRZIH0pO1xuICAgICAgaWYgKG9uRHJhZ1N0YXJ0KSB7XG4gICAgICAgIG9uRHJhZ1N0YXJ0KCk7XG4gICAgICB9XG4gICAgfTtcbiAgICBwb3NpdGlvbiA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gb3B0cy5hbmNob3JQb2ludCh0aGlzLnByb3BzKTtcbiAgICAgIGNvbnN0IHsgZ3JhcGhQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IHsgc2NhbGUsIHNuYXAgfSA9IGdyYXBoUHJvcHM7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFuY2hvclBvaW50OiB7XG4gICAgICAgICAgeCxcbiAgICAgICAgICB5LFxuICAgICAgICB9LFxuICAgICAgICB4OiBkZWx0YUZuKHNjYWxlLngsIHNuYXAueCwgeCksXG4gICAgICAgIHk6IGRlbHRhRm4oc2NhbGUueSwgc25hcC55LCB5KSxcbiAgICAgIH07XG4gICAgfTtcblxuICAgIHRpbnkgPSAoa2V5LCBldmVudCkgPT4ge1xuICAgICAgY29uc3QgSyA9IGtleS50b1VwcGVyQ2FzZSgpO1xuICAgICAgY29uc3QgZW5kID0gZXZlbnRbYGNsaWVudCR7S31gXTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGF0ZVtgc3RhcnQke0t9YF07XG4gICAgICBjb25zdCBkZWx0YSA9IE1hdGguYWJzKGVuZCAtIHN0YXJ0KTtcbiAgICAgIGNvbnN0IG91dCA9IGRlbHRhIDwgTWF0aC5hYnModGhpcy5ncmlkKClba2V5XSkgLyAxMDtcbiAgICAgIGxvZygnW3RpbnldIGtleTogJywga2V5LCAnZGVsdGE6ICcsIGRlbHRhLCAnb3V0OiAnLCBvdXQpO1xuICAgICAgcmV0dXJuIG91dDtcbiAgICB9O1xuXG4gICAgZ2V0U2NhbGVkQm91bmRzID0gKCkgPT4ge1xuICAgICAgY29uc3QgYm91bmRzID0gb3B0cy5ib3VuZHModGhpcy5wcm9wcywgdGhpcy5wcm9wcy5ncmFwaFByb3BzKTtcbiAgICAgIGxvZygnYm91bmRzOiAnLCBib3VuZHMpO1xuICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZCgpO1xuXG4gICAgICBjb25zdCBzY2FsZWQgPSB7XG4gICAgICAgIGxlZnQ6IGJvdW5kcy5sZWZ0ICogZ3JpZC54LFxuICAgICAgICByaWdodDogYm91bmRzLnJpZ2h0ICogZ3JpZC54LFxuICAgICAgICB0b3A6IGJvdW5kcy50b3AgKiBncmlkLnksXG4gICAgICAgIGJvdHRvbTogYm91bmRzLmJvdHRvbSAqIGdyaWQueSxcbiAgICAgIH07XG4gICAgICBsb2coJ1tnZXRTY2FsZWRCb3VuZHNdOiAnLCBzY2FsZWQpO1xuICAgICAgcmV0dXJuIHNjYWxlZDtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjb29yZGluYXRlcyBvZiBhIG1vdXNlIG9yIHRvdWNoIGV2ZW50IHJlbGF0aXZlIHRvIGFuIFNWRyBlbGVtZW50LlxuICAgICAqIFRoaXMgbWV0aG9kIGhhcyBiZWVuIG92ZXJ3cml0dGVuIGZyb20gdGhlIGQzLXNlbGVjdGlvbiBsaWJyYXJ5J3MgY2xpZW50UG9pbnQgdG8gaGFuZGxlIHRvdWNoIGV2ZW50cyBhbmQgaW1wcm92ZSBjbGFyaXR5LlxuICAgICAqIEBwYXJhbSB7RWxlbWVudH0gbm9kZSAtIFRoZSBTVkcgZWxlbWVudC5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIFRoZSBtb3VzZSBvciB0b3VjaCBldmVudC5cbiAgICAgKiBAcmV0dXJucyB7QXJyYXl9IC0gQW4gYXJyYXkgY29udGFpbmluZyB0aGUgY29vcmRpbmF0ZXMgW3gsIHldIHJlbGF0aXZlIHRvIHRoZSBTVkcgZWxlbWVudC5cbiAgICAgKi9cbiAgICBnZXRDbGllbnRQb2ludCA9IChub2RlLCBldmVudCkgPT4ge1xuICAgICAgaWYgKCFub2RlIHx8ICFldmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN2ZyA9IG5vZGUub3duZXJTVkdFbGVtZW50IHx8IG5vZGU7XG5cbiAgICAgIGlmIChzdmcgJiYgc3ZnLmNyZWF0ZVNWR1BvaW50KSB7XG4gICAgICAgIGxldCBwb2ludCA9IHN2Zy5jcmVhdGVTVkdQb2ludCgpO1xuICAgICAgICAvLyBDaGVjayBpZiBpdCdzIGEgdG91Y2ggZXZlbnQgYW5kIHVzZSB0aGUgZmlyc3QgdG91Y2ggcG9pbnRcbiAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgdG91Y2ggPSBldmVudC50b3VjaGVzWzBdO1xuICAgICAgICAgIHBvaW50LnggPSB0b3VjaC5jbGllbnRYO1xuICAgICAgICAgIHBvaW50LnkgPSB0b3VjaC5jbGllbnRZO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEZhbGwgYmFjayB0byBtb3VzZSBldmVudCBwcm9wZXJ0aWVzXG4gICAgICAgICAgcG9pbnQueCA9IGV2ZW50LmNsaWVudFg7XG4gICAgICAgICAgcG9pbnQueSA9IGV2ZW50LmNsaWVudFk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUuZ2V0U2NyZWVuQ1RNKSB7XG4gICAgICAgICAgcG9pbnQgPSBwb2ludC5tYXRyaXhUcmFuc2Zvcm0obm9kZS5nZXRTY3JlZW5DVE0oKS5pbnZlcnNlKCkpO1xuICAgICAgICAgIHJldHVybiBbcG9pbnQueCwgcG9pbnQueV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVjdCA9IG5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBpZiAocmVjdCkge1xuICAgICAgICByZXR1cm4gW2V2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgLSBub2RlLmNsaWVudExlZnQsIGV2ZW50LmNsaWVudFkgLSByZWN0LnRvcCAtIG5vZGUuY2xpZW50VG9wXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBza2lwRHJhZ091dHNpZGVPZkJvdW5kcyA9IChkZCwgZSwgZ3JhcGhQcm9wcykgPT4ge1xuICAgICAgLy8gSWdub3JlIGRyYWcgbW92ZW1lbnQgb3V0c2lkZSBvZiB0aGUgZG9tYWluIGFuZCByYW5nZS5cbiAgICAgIGNvbnN0IHJvb3ROb2RlID0gZ3JhcGhQcm9wcy5nZXRSb290Tm9kZSgpO1xuICAgICAgY29uc3QgY2xpZW50UG9pbnQgPSB0aGlzLmdldENsaWVudFBvaW50KHJvb3ROb2RlLCBlKTtcblxuICAgICAgaWYgKGNsaWVudFBvaW50ID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0cnVlOyAvLyBJbmRpY2F0ZSB0aGF0IHRoZSBkcmFnIGlzIG91dHNpZGUgb2YgYm91bmRzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IFtyYXdYLCByYXdZXSA9IGNsaWVudFBvaW50O1xuICAgICAgY29uc3QgeyBzY2FsZSwgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcztcbiAgICAgIGxldCB4ID0gc2NhbGUueC5pbnZlcnQocmF3WCk7XG4gICAgICBsZXQgeSA9IHNjYWxlLnkuaW52ZXJ0KHJhd1kpO1xuXG4gICAgICBjb25zdCB4T3V0c2lkZSA9IChkZC5kZWx0YVggPiAwICYmIHggPCBkb21haW4ubWluKSB8fCAoZGQuZGVsdGFYIDwgMCAmJiB4ID4gZG9tYWluLm1heCk7XG4gICAgICBjb25zdCB5T3V0c2lkZSA9IChkZC5kZWx0YVkgPiAwICYmIHkgPiByYW5nZS5tYXgpIHx8IChkZC5kZWx0YVkgPCAwICYmIHkgPCByYW5nZS5taW4pO1xuICAgICAgcmV0dXJuIHhPdXRzaWRlIHx8IHlPdXRzaWRlO1xuICAgIH07XG5cbiAgICBvbkRyYWcgPSAoZSwgZGQpID0+IHtcbiAgICAgIGNvbnN0IHsgb25EcmFnLCBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoIW9uRHJhZykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvdW5kcyA9IHRoaXMuZ2V0U2NhbGVkQm91bmRzKCk7XG5cbiAgICAgIGlmIChkZC5kZWx0YVggPCAwICYmIGRkLmRlbHRhWCA8IGJvdW5kcy5sZWZ0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRkLmRlbHRhWCA+IDAgJiYgZGQuZGVsdGFYID4gYm91bmRzLnJpZ2h0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRkLmRlbHRhWSA8IDAgJiYgZGQuZGVsdGFZIDwgYm91bmRzLnRvcCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChkZC5kZWx0YVkgPiAwICYmIGRkLmRlbHRhWSA+IGJvdW5kcy5ib3R0b20pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5za2lwRHJhZ091dHNpZGVPZkJvdW5kcyhkZCwgZSwgZ3JhcGhQcm9wcykpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkcmFnQXJnID0gdGhpcy5hcHBseURlbHRhKHsgeDogZGQuZGVsdGFYLCB5OiBkZC5kZWx0YVkgfSk7XG5cbiAgICAgIGlmIChkcmFnQXJnICE9PSB1bmRlZmluZWQgfHwgZHJhZ0FyZyAhPT0gbnVsbCkge1xuICAgICAgICBvbkRyYWcoZHJhZ0FyZyk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGdldERlbHRhID0gKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uKCk7XG5cbiAgICAgIGNvbnN0IHAgPSB7XG4gICAgICAgIHg6IHBvcy54KHBvaW50LngpLFxuICAgICAgICB5OiBwb3MueShwb2ludC55KSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB1dGlscy5nZXREZWx0YShwb3MuYW5jaG9yUG9pbnQsIHApO1xuICAgIH07XG5cbiAgICBhcHBseURlbHRhID0gKHBvaW50KSA9PiB7XG4gICAgICBjb25zdCBkZWx0YSA9IHRoaXMuZ2V0RGVsdGEocG9pbnQpO1xuICAgICAgbG9nKCdbYXBwbHlEZWx0YV0gZGVsdGE6JywgZGVsdGEpO1xuICAgICAgcmV0dXJuIG9wdHMuZnJvbURlbHRhKHRoaXMucHJvcHMsIGRlbHRhKTtcbiAgICB9O1xuXG4gICAgb25TdG9wID0gKGUsIGRkKSA9PiB7XG4gICAgICBsb2coJ1tvblN0b3BdIGRkOicsIGRkKTtcbiAgICAgIGNvbnN0IHsgb25EcmFnU3RvcCwgb25DbGljayB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKG9uRHJhZ1N0b3ApIHtcbiAgICAgICAgb25EcmFnU3RvcCgpO1xuICAgICAgfVxuXG4gICAgICBsb2coJ1tvblN0b3BdIGxhc3RYL1k6ICcsIGRkLmxhc3RYLCBkZC5sYXN0WSk7XG4gICAgICBjb25zdCBpc0NsaWNrID0gdGhpcy50aW55KCd4JywgZSkgJiYgdGhpcy50aW55KCd5JywgZSk7XG5cbiAgICAgIGlmIChpc0NsaWNrKSB7XG4gICAgICAgIGlmIChvbkNsaWNrKSB7XG4gICAgICAgICAgbG9nKCdjYWxsIG9uQ2xpY2snKTtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBudWxsIH0pO1xuICAgICAgICAgIGNvbnN0IHsgZ3JhcGhQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgICBjb25zdCB7IHNjYWxlLCBzbmFwIH0gPSBncmFwaFByb3BzO1xuICAgICAgICAgIGNvbnN0IFtyYXdYLCByYXdZXSA9IGNsaWVudFBvaW50KGUudGFyZ2V0LCBlKTtcbiAgICAgICAgICBsZXQgeCA9IHNjYWxlLnguaW52ZXJ0KHJhd1gpO1xuICAgICAgICAgIGxldCB5ID0gc2NhbGUueS5pbnZlcnQocmF3WSk7XG4gICAgICAgICAgeCA9IHNuYXAueCh4KTtcbiAgICAgICAgICB5ID0gc25hcC55KHkpO1xuICAgICAgICAgIG9uQ2xpY2soeyB4LCB5IH0pO1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNldFN0YXRlKHsgc3RhcnRYOiBudWxsLCBzdGFydFk6IG51bGwgfSk7XG4gICAgICAvLyByZXR1cm4gZmFsc2UgdG8gcHJldmVudCBzdGF0ZSB1cGRhdGVzIGluIHRoZSB1bmRlcmx5aW5nIGRyYWdnYWJsZSAtIGEgbW92ZSB3aWxsIGhhdmUgdHJpZ2dlcmVkIGFuIHVwZGF0ZSBhbHJlYWR5LlxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IGRpc2FibGVkLCAuLi5yZXN0IH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ3JpZCgpO1xuXG4gICAgICAvLyBwcmV2ZW50IHRoZSB0ZXh0IHNlbGVjdCBpY29uIGZyb20gcmVuZGVyaW5nLlxuICAgICAgY29uc3Qgb25Nb3VzZURvd24gPSAoZSkgPT4gZS5uYXRpdmVFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAvKipcbiAgICAgICAqIFRPRE86IFRoaXMgc2hvdWxkbnQgYmUgbmVjZXNzYXJ5LCB3ZSBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHItZCBjbGFzc25hbWVzLlxuICAgICAgICogQnV0IHRoZXkgYXJlbid0IGJlaW5nIHVuc2V0LiBJZiB3ZSBjb250aW51ZSB3aXRoIHRoaXMgbGliLCB3ZSdsbCBoYXZlIHRvIGZpeCB0aGlzLlxuICAgICAgICovXG4gICAgICBjb25zdCBpc0RyYWdnaW5nID0gdGhpcy5zdGF0ZSA/ICEhdGhpcy5zdGF0ZS5zdGFydFggOiBmYWxzZTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPERyYWdnYWJsZUNvcmVcbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgb25Nb3VzZURvd249e29uTW91c2VEb3dufVxuICAgICAgICAgIG9uU3RhcnQ9e3RoaXMub25TdGFydH1cbiAgICAgICAgICBvbkRyYWc9e3RoaXMub25EcmFnfVxuICAgICAgICAgIG9uU3RvcD17dGhpcy5vblN0b3B9XG4gICAgICAgICAgYXhpcz17b3B0cy5heGlzIHx8ICdib3RoJ31cbiAgICAgICAgICBncmlkPXtbZ3JpZC54LCBncmlkLnldfVxuICAgICAgICA+XG4gICAgICAgICAgPENvbXAgey4uLnJlc3R9IGRpc2FibGVkPXtkaXNhYmxlZH0gaXNEcmFnZ2luZz17aXNEcmFnZ2luZ30gLz5cbiAgICAgICAgPC9EcmFnZ2FibGVDb3JlPlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVQsT0FBQTtBQUEyQyxJQUFBVSxTQUFBO0FBQUEsU0FBQUosd0JBQUFLLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFQLHVCQUFBLFlBQUFBLHdCQUFBSyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQU0sRUFBQSxFQUFBUCxDQUFBLElBQUFDLENBQUEsQ0FBQU0sRUFBQSxJQUFBZCxDQUFBLENBQUFjLEVBQUEsV0FBQU4sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFBQSxTQUFBbUIsV0FBQW5CLENBQUEsRUFBQUssQ0FBQSxFQUFBTixDQUFBLFdBQUFNLENBQUEsT0FBQWUsZ0JBQUEsYUFBQWYsQ0FBQSxPQUFBZ0IsMkJBQUEsYUFBQXJCLENBQUEsRUFBQXNCLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBbkIsQ0FBQSxFQUFBTixDQUFBLFlBQUFxQixnQkFBQSxhQUFBcEIsQ0FBQSxFQUFBeUIsV0FBQSxJQUFBcEIsQ0FBQSxDQUFBcUIsS0FBQSxDQUFBMUIsQ0FBQSxFQUFBRCxDQUFBO0FBQUEsU0FBQXVCLDBCQUFBLGNBQUF0QixDQUFBLElBQUEyQixPQUFBLENBQUFDLFNBQUEsQ0FBQUMsT0FBQSxDQUFBZCxJQUFBLENBQUFRLE9BQUEsQ0FBQUMsU0FBQSxDQUFBRyxPQUFBLGlDQUFBM0IsQ0FBQSxhQUFBc0IseUJBQUEsWUFBQUEsMEJBQUEsYUFBQXRCLENBQUE7QUFFM0MsSUFBTThCLEdBQUcsR0FBRyxJQUFBQyxpQkFBSyxFQUFDLDZCQUE2QixDQUFDO0FBRXpDLElBQU1DLE9BQU8sR0FBQUMsT0FBQSxDQUFBRCxPQUFBLEdBQUcsU0FBVkEsT0FBT0EsQ0FBSUUsS0FBSyxFQUFFQyxJQUFJLEVBQUVDLEdBQUc7RUFBQSxPQUFLLFVBQUNDLEtBQUssRUFBSztJQUN0RCxJQUFNQyxVQUFVLEdBQUdELEtBQUssR0FBR0gsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuQyxJQUFNSyxRQUFRLEdBQUdMLEtBQUssQ0FBQ00sTUFBTSxDQUFDRixVQUFVLENBQUM7SUFFekMsSUFBTUcscUJBQXFCLEdBQUlOLElBQUksQ0FBQ0MsR0FBRyxHQUFHRyxRQUFRLENBQUMsQ0FBQ0csT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBSSxJQUFJO0lBRTdFLE9BQU9ELHFCQUFxQjtFQUM5QixDQUFDO0FBQUE7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDTyxJQUFNRSxhQUFhLEdBQUFWLE9BQUEsQ0FBQVUsYUFBQSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxJQUFJO0VBQUEsT0FBSyxVQUFDQyxJQUFJLEVBQUs7SUFBQSxJQUFBQyxjQUFBO0lBQy9DLElBQUFDLHFCQUFTLEVBQ1AsQ0FBQyxDQUFDSCxJQUFJLElBQUksSUFBQUksc0JBQVUsRUFBQ0osSUFBSSxDQUFDSyxTQUFTLENBQUMsSUFBSSxJQUFBRCxzQkFBVSxFQUFDSixJQUFJLENBQUNNLE1BQU0sQ0FBQyxJQUFJLElBQUFGLHNCQUFVLEVBQUNKLElBQUksQ0FBQ08sV0FBVyxDQUFDLEVBQy9GLGtHQUNGLENBQUM7SUFDRCxPQUFBTCxjQUFBLDBCQUFBTSxnQkFBQTtNQVdFLFNBQUFDLGNBQVlDLEtBQUssRUFBRTtRQUFBLElBQUFDLEtBQUE7UUFBQSxJQUFBQyxnQkFBQSxtQkFBQUgsYUFBQTtRQUNqQkUsS0FBQSxHQUFBcEMsVUFBQSxPQUFBa0MsYUFBQSxHQUFNQyxLQUFLO1FBQUUsSUFBQUcsZ0JBQUEsYUFBQUYsS0FBQSxVQU9SLFlBQU07VUFDWCxJQUFRRyxVQUFVLEdBQUtILEtBQUEsQ0FBS0QsS0FBSyxDQUF6QkksVUFBVTtVQUNsQixJQUFReEIsS0FBSyxHQUFvQndCLFVBQVUsQ0FBbkN4QixLQUFLO1lBQUV5QixNQUFNLEdBQVlELFVBQVUsQ0FBNUJDLE1BQU07WUFBRUMsS0FBSyxHQUFLRixVQUFVLENBQXBCRSxLQUFLO1VBQzVCLE9BQU87WUFDTEMsQ0FBQyxFQUFFM0IsS0FBSyxDQUFDMkIsQ0FBQyxDQUFDRixNQUFNLENBQUNHLElBQUksQ0FBQyxHQUFHNUIsS0FBSyxDQUFDMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQ0UsQ0FBQyxFQUFFN0IsS0FBSyxDQUFDNkIsQ0FBQyxDQUFDSCxLQUFLLENBQUNFLElBQUksQ0FBQyxHQUFHNUIsS0FBSyxDQUFDNkIsQ0FBQyxDQUFDLENBQUM7VUFDcEMsQ0FBQztRQUNILENBQUM7UUFBQSxJQUFBTixnQkFBQSxhQUFBRixLQUFBLGFBQ1MsVUFBQ3hELENBQUMsRUFBSztVQUNmLElBQVFpRSxXQUFXLEdBQUtULEtBQUEsQ0FBS0QsS0FBSyxDQUExQlUsV0FBVztVQUNuQixJQUFJQyxRQUFRLENBQUNDLGFBQWEsRUFBRTtZQUMxQkQsUUFBUSxDQUFDQyxhQUFhLENBQUNDLElBQUksQ0FBQyxDQUFDO1VBQy9CO1VBQ0FaLEtBQUEsQ0FBS2EsUUFBUSxDQUFDO1lBQUVDLE1BQU0sRUFBRXRFLENBQUMsQ0FBQ3VFLE9BQU87WUFBRUMsTUFBTSxFQUFFeEUsQ0FBQyxDQUFDeUU7VUFBUSxDQUFDLENBQUM7VUFDdkQsSUFBSVIsV0FBVyxFQUFFO1lBQ2ZBLFdBQVcsQ0FBQyxDQUFDO1VBQ2Y7UUFDRixDQUFDO1FBQUEsSUFBQVAsZ0JBQUEsYUFBQUYsS0FBQSxjQUNVLFlBQU07VUFDZixJQUFBa0IsaUJBQUEsR0FBaUI3QixJQUFJLENBQUNPLFdBQVcsQ0FBQ0ksS0FBQSxDQUFLRCxLQUFLLENBQUM7WUFBckNPLENBQUMsR0FBQVksaUJBQUEsQ0FBRFosQ0FBQztZQUFFRSxDQUFDLEdBQUFVLGlCQUFBLENBQURWLENBQUM7VUFDWixJQUFRTCxVQUFVLEdBQUtILEtBQUEsQ0FBS0QsS0FBSyxDQUF6QkksVUFBVTtVQUNsQixJQUFReEIsS0FBSyxHQUFXd0IsVUFBVSxDQUExQnhCLEtBQUs7WUFBRUMsSUFBSSxHQUFLdUIsVUFBVSxDQUFuQnZCLElBQUk7VUFFbkIsT0FBTztZQUNMZ0IsV0FBVyxFQUFFO2NBQ1hVLENBQUMsRUFBREEsQ0FBQztjQUNERSxDQUFDLEVBQURBO1lBQ0YsQ0FBQztZQUNERixDQUFDLEVBQUU3QixPQUFPLENBQUNFLEtBQUssQ0FBQzJCLENBQUMsRUFBRTFCLElBQUksQ0FBQzBCLENBQUMsRUFBRUEsQ0FBQyxDQUFDO1lBQzlCRSxDQUFDLEVBQUUvQixPQUFPLENBQUNFLEtBQUssQ0FBQzZCLENBQUMsRUFBRTVCLElBQUksQ0FBQzRCLENBQUMsRUFBRUEsQ0FBQztVQUMvQixDQUFDO1FBQ0gsQ0FBQztRQUFBLElBQUFOLGdCQUFBLGFBQUFGLEtBQUEsVUFFTSxVQUFDbUIsR0FBRyxFQUFFQyxLQUFLLEVBQUs7VUFDckIsSUFBTUMsQ0FBQyxHQUFHRixHQUFHLENBQUNHLFdBQVcsQ0FBQyxDQUFDO1VBQzNCLElBQU1DLEdBQUcsR0FBR0gsS0FBSyxVQUFBSSxNQUFBLENBQVVILENBQUMsRUFBRztVQUMvQixJQUFNSSxLQUFLLEdBQUd6QixLQUFBLENBQUswQixLQUFLLFNBQUFGLE1BQUEsQ0FBU0gsQ0FBQyxFQUFHO1VBQ3JDLElBQU12QyxLQUFLLEdBQUc2QyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0wsR0FBRyxHQUFHRSxLQUFLLENBQUM7VUFDbkMsSUFBTUksR0FBRyxHQUFHL0MsS0FBSyxHQUFHNkMsSUFBSSxDQUFDQyxHQUFHLENBQUM1QixLQUFBLENBQUs4QixJQUFJLENBQUMsQ0FBQyxDQUFDWCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUU7VUFDbkQ1QyxHQUFHLENBQUMsY0FBYyxFQUFFNEMsR0FBRyxFQUFFLFNBQVMsRUFBRXJDLEtBQUssRUFBRSxPQUFPLEVBQUUrQyxHQUFHLENBQUM7VUFDeEQsT0FBT0EsR0FBRztRQUNaLENBQUM7UUFBQSxJQUFBM0IsZ0JBQUEsYUFBQUYsS0FBQSxxQkFFaUIsWUFBTTtVQUN0QixJQUFNTCxNQUFNLEdBQUdOLElBQUksQ0FBQ00sTUFBTSxDQUFDSyxLQUFBLENBQUtELEtBQUssRUFBRUMsS0FBQSxDQUFLRCxLQUFLLENBQUNJLFVBQVUsQ0FBQztVQUM3RDVCLEdBQUcsQ0FBQyxVQUFVLEVBQUVvQixNQUFNLENBQUM7VUFDdkIsSUFBTW1DLElBQUksR0FBRzlCLEtBQUEsQ0FBSzhCLElBQUksQ0FBQyxDQUFDO1VBRXhCLElBQU1DLE1BQU0sR0FBRztZQUNiQyxJQUFJLEVBQUVyQyxNQUFNLENBQUNxQyxJQUFJLEdBQUdGLElBQUksQ0FBQ3hCLENBQUM7WUFDMUIyQixLQUFLLEVBQUV0QyxNQUFNLENBQUNzQyxLQUFLLEdBQUdILElBQUksQ0FBQ3hCLENBQUM7WUFDNUI0QixHQUFHLEVBQUV2QyxNQUFNLENBQUN1QyxHQUFHLEdBQUdKLElBQUksQ0FBQ3RCLENBQUM7WUFDeEIyQixNQUFNLEVBQUV4QyxNQUFNLENBQUN3QyxNQUFNLEdBQUdMLElBQUksQ0FBQ3RCO1VBQy9CLENBQUM7VUFDRGpDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRXdELE1BQU0sQ0FBQztVQUNsQyxPQUFPQSxNQUFNO1FBQ2YsQ0FBQztRQUVEO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1FBTkksSUFBQTdCLGdCQUFBLGFBQUFGLEtBQUEsb0JBT2lCLFVBQUNvQyxJQUFJLEVBQUVoQixLQUFLLEVBQUs7VUFDaEMsSUFBSSxDQUFDZ0IsSUFBSSxJQUFJLENBQUNoQixLQUFLLEVBQUU7WUFDbkIsT0FBTyxJQUFJO1VBQ2I7VUFDQSxJQUFNaUIsR0FBRyxHQUFHRCxJQUFJLENBQUNFLGVBQWUsSUFBSUYsSUFBSTtVQUV4QyxJQUFJQyxHQUFHLElBQUlBLEdBQUcsQ0FBQ0UsY0FBYyxFQUFFO1lBQzdCLElBQUlDLEtBQUssR0FBR0gsR0FBRyxDQUFDRSxjQUFjLENBQUMsQ0FBQztZQUNoQztZQUNBLElBQUluQixLQUFLLENBQUNxQixPQUFPLElBQUlyQixLQUFLLENBQUNxQixPQUFPLENBQUNDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Y0FDN0MsSUFBTUMsS0FBSyxHQUFHdkIsS0FBSyxDQUFDcUIsT0FBTyxDQUFDLENBQUMsQ0FBQztjQUM5QkQsS0FBSyxDQUFDbEMsQ0FBQyxHQUFHcUMsS0FBSyxDQUFDNUIsT0FBTztjQUN2QnlCLEtBQUssQ0FBQ2hDLENBQUMsR0FBR21DLEtBQUssQ0FBQzFCLE9BQU87WUFDekIsQ0FBQyxNQUFNO2NBQ0w7Y0FDQXVCLEtBQUssQ0FBQ2xDLENBQUMsR0FBR2MsS0FBSyxDQUFDTCxPQUFPO2NBQ3ZCeUIsS0FBSyxDQUFDaEMsQ0FBQyxHQUFHWSxLQUFLLENBQUNILE9BQU87WUFDekI7WUFDQSxJQUFJbUIsSUFBSSxDQUFDUSxZQUFZLEVBQUU7Y0FDckJKLEtBQUssR0FBR0EsS0FBSyxDQUFDSyxlQUFlLENBQUNULElBQUksQ0FBQ1EsWUFBWSxDQUFDLENBQUMsQ0FBQ0UsT0FBTyxDQUFDLENBQUMsQ0FBQztjQUM1RCxPQUFPLENBQUNOLEtBQUssQ0FBQ2xDLENBQUMsRUFBRWtDLEtBQUssQ0FBQ2hDLENBQUMsQ0FBQztZQUMzQixDQUFDLE1BQU07Y0FDTCxPQUFPLElBQUk7WUFDYjtVQUNGO1VBRUEsSUFBTXVDLElBQUksR0FBR1gsSUFBSSxDQUFDWSxxQkFBcUIsQ0FBQyxDQUFDO1VBQ3pDLElBQUlELElBQUksRUFBRTtZQUNSLE9BQU8sQ0FBQzNCLEtBQUssQ0FBQ0wsT0FBTyxHQUFHZ0MsSUFBSSxDQUFDZixJQUFJLEdBQUdJLElBQUksQ0FBQ2EsVUFBVSxFQUFFN0IsS0FBSyxDQUFDSCxPQUFPLEdBQUc4QixJQUFJLENBQUNiLEdBQUcsR0FBR0UsSUFBSSxDQUFDYyxTQUFTLENBQUM7VUFDakcsQ0FBQyxNQUFNO1lBQ0wsT0FBTyxJQUFJO1VBQ2I7UUFDRixDQUFDO1FBQUEsSUFBQWhELGdCQUFBLGFBQUFGLEtBQUEsNkJBRXlCLFVBQUNtRCxFQUFFLEVBQUUzRyxDQUFDLEVBQUUyRCxVQUFVLEVBQUs7VUFDL0M7VUFDQSxJQUFNaUQsUUFBUSxHQUFHakQsVUFBVSxDQUFDa0QsV0FBVyxDQUFDLENBQUM7VUFDekMsSUFBTUMsV0FBVyxHQUFHdEQsS0FBQSxDQUFLdUQsY0FBYyxDQUFDSCxRQUFRLEVBQUU1RyxDQUFDLENBQUM7VUFFcEQsSUFBSThHLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDeEIsT0FBTyxJQUFJLENBQUMsQ0FBQztVQUNmO1VBRUEsSUFBQUUsWUFBQSxPQUFBQyxlQUFBLGFBQXFCSCxXQUFXO1lBQXpCSSxJQUFJLEdBQUFGLFlBQUE7WUFBRUcsSUFBSSxHQUFBSCxZQUFBO1VBQ2pCLElBQVE3RSxLQUFLLEdBQW9Cd0IsVUFBVSxDQUFuQ3hCLEtBQUs7WUFBRXlCLE1BQU0sR0FBWUQsVUFBVSxDQUE1QkMsTUFBTTtZQUFFQyxLQUFLLEdBQUtGLFVBQVUsQ0FBcEJFLEtBQUs7VUFDNUIsSUFBSUMsQ0FBQyxHQUFHM0IsS0FBSyxDQUFDMkIsQ0FBQyxDQUFDckIsTUFBTSxDQUFDeUUsSUFBSSxDQUFDO1VBQzVCLElBQUlsRCxDQUFDLEdBQUc3QixLQUFLLENBQUM2QixDQUFDLENBQUN2QixNQUFNLENBQUMwRSxJQUFJLENBQUM7VUFFNUIsSUFBTUMsUUFBUSxHQUFJVCxFQUFFLENBQUNVLE1BQU0sR0FBRyxDQUFDLElBQUl2RCxDQUFDLEdBQUdGLE1BQU0sQ0FBQzBELEdBQUcsSUFBTVgsRUFBRSxDQUFDVSxNQUFNLEdBQUcsQ0FBQyxJQUFJdkQsQ0FBQyxHQUFHRixNQUFNLENBQUMyRCxHQUFJO1VBQ3ZGLElBQU1DLFFBQVEsR0FBSWIsRUFBRSxDQUFDYyxNQUFNLEdBQUcsQ0FBQyxJQUFJekQsQ0FBQyxHQUFHSCxLQUFLLENBQUMwRCxHQUFHLElBQU1aLEVBQUUsQ0FBQ2MsTUFBTSxHQUFHLENBQUMsSUFBSXpELENBQUMsR0FBR0gsS0FBSyxDQUFDeUQsR0FBSTtVQUNyRixPQUFPRixRQUFRLElBQUlJLFFBQVE7UUFDN0IsQ0FBQztRQUFBLElBQUE5RCxnQkFBQSxhQUFBRixLQUFBLFlBRVEsVUFBQ3hELENBQUMsRUFBRTJHLEVBQUUsRUFBSztVQUNsQixJQUFBZSxXQUFBLEdBQStCbEUsS0FBQSxDQUFLRCxLQUFLO1lBQWpDb0UsTUFBTSxHQUFBRCxXQUFBLENBQU5DLE1BQU07WUFBRWhFLFVBQVUsR0FBQStELFdBQUEsQ0FBVi9ELFVBQVU7VUFFMUIsSUFBSSxDQUFDZ0UsTUFBTSxFQUFFO1lBQ1g7VUFDRjtVQUVBLElBQU14RSxNQUFNLEdBQUdLLEtBQUEsQ0FBS29FLGVBQWUsQ0FBQyxDQUFDO1VBRXJDLElBQUlqQixFQUFFLENBQUNVLE1BQU0sR0FBRyxDQUFDLElBQUlWLEVBQUUsQ0FBQ1UsTUFBTSxHQUFHbEUsTUFBTSxDQUFDcUMsSUFBSSxFQUFFO1lBQzVDO1VBQ0Y7VUFFQSxJQUFJbUIsRUFBRSxDQUFDVSxNQUFNLEdBQUcsQ0FBQyxJQUFJVixFQUFFLENBQUNVLE1BQU0sR0FBR2xFLE1BQU0sQ0FBQ3NDLEtBQUssRUFBRTtZQUM3QztVQUNGO1VBRUEsSUFBSWtCLEVBQUUsQ0FBQ2MsTUFBTSxHQUFHLENBQUMsSUFBSWQsRUFBRSxDQUFDYyxNQUFNLEdBQUd0RSxNQUFNLENBQUN1QyxHQUFHLEVBQUU7WUFDM0M7VUFDRjtVQUVBLElBQUlpQixFQUFFLENBQUNjLE1BQU0sR0FBRyxDQUFDLElBQUlkLEVBQUUsQ0FBQ2MsTUFBTSxHQUFHdEUsTUFBTSxDQUFDd0MsTUFBTSxFQUFFO1lBQzlDO1VBQ0Y7VUFFQSxJQUFJbkMsS0FBQSxDQUFLcUUsdUJBQXVCLENBQUNsQixFQUFFLEVBQUUzRyxDQUFDLEVBQUUyRCxVQUFVLENBQUMsRUFBRTtZQUNuRDtVQUNGO1VBRUEsSUFBTW1FLE9BQU8sR0FBR3RFLEtBQUEsQ0FBS3VFLFVBQVUsQ0FBQztZQUFFakUsQ0FBQyxFQUFFNkMsRUFBRSxDQUFDVSxNQUFNO1lBQUVyRCxDQUFDLEVBQUUyQyxFQUFFLENBQUNjO1VBQU8sQ0FBQyxDQUFDO1VBRS9ELElBQUlLLE9BQU8sS0FBS0UsU0FBUyxJQUFJRixPQUFPLEtBQUssSUFBSSxFQUFFO1lBQzdDSCxNQUFNLENBQUNHLE9BQU8sQ0FBQztVQUNqQjtRQUNGLENBQUM7UUFBQSxJQUFBcEUsZ0JBQUEsYUFBQUYsS0FBQSxjQUVVLFVBQUN3QyxLQUFLLEVBQUs7VUFDcEIsSUFBTWlDLEdBQUcsR0FBR3pFLEtBQUEsQ0FBSzBFLFFBQVEsQ0FBQyxDQUFDO1VBRTNCLElBQU1DLENBQUMsR0FBRztZQUNSckUsQ0FBQyxFQUFFbUUsR0FBRyxDQUFDbkUsQ0FBQyxDQUFDa0MsS0FBSyxDQUFDbEMsQ0FBQyxDQUFDO1lBQ2pCRSxDQUFDLEVBQUVpRSxHQUFHLENBQUNqRSxDQUFDLENBQUNnQyxLQUFLLENBQUNoQyxDQUFDO1VBQ2xCLENBQUM7VUFFRCxPQUFPdEUsS0FBSyxDQUFDMEksUUFBUSxDQUFDSCxHQUFHLENBQUM3RSxXQUFXLEVBQUUrRSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUFBLElBQUF6RSxnQkFBQSxhQUFBRixLQUFBLGdCQUVZLFVBQUN3QyxLQUFLLEVBQUs7VUFDdEIsSUFBTTFELEtBQUssR0FBR2tCLEtBQUEsQ0FBSzRFLFFBQVEsQ0FBQ3BDLEtBQUssQ0FBQztVQUNsQ2pFLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRU8sS0FBSyxDQUFDO1VBQ2pDLE9BQU9PLElBQUksQ0FBQ0ssU0FBUyxDQUFDTSxLQUFBLENBQUtELEtBQUssRUFBRWpCLEtBQUssQ0FBQztRQUMxQyxDQUFDO1FBQUEsSUFBQW9CLGdCQUFBLGFBQUFGLEtBQUEsWUFFUSxVQUFDeEQsQ0FBQyxFQUFFMkcsRUFBRSxFQUFLO1VBQ2xCNUUsR0FBRyxDQUFDLGNBQWMsRUFBRTRFLEVBQUUsQ0FBQztVQUN2QixJQUFBMEIsWUFBQSxHQUFnQzdFLEtBQUEsQ0FBS0QsS0FBSztZQUFsQytFLFVBQVUsR0FBQUQsWUFBQSxDQUFWQyxVQUFVO1lBQUVDLE9BQU8sR0FBQUYsWUFBQSxDQUFQRSxPQUFPO1VBRTNCLElBQUlELFVBQVUsRUFBRTtZQUNkQSxVQUFVLENBQUMsQ0FBQztVQUNkO1VBRUF2RyxHQUFHLENBQUMsb0JBQW9CLEVBQUU0RSxFQUFFLENBQUM2QixLQUFLLEVBQUU3QixFQUFFLENBQUM4QixLQUFLLENBQUM7VUFDN0MsSUFBTUMsT0FBTyxHQUFHbEYsS0FBQSxDQUFLbUYsSUFBSSxDQUFDLEdBQUcsRUFBRTNJLENBQUMsQ0FBQyxJQUFJd0QsS0FBQSxDQUFLbUYsSUFBSSxDQUFDLEdBQUcsRUFBRTNJLENBQUMsQ0FBQztVQUV0RCxJQUFJMEksT0FBTyxFQUFFO1lBQ1gsSUFBSUgsT0FBTyxFQUFFO2NBQ1h4RyxHQUFHLENBQUMsY0FBYyxDQUFDO2NBQ25CeUIsS0FBQSxDQUFLYSxRQUFRLENBQUM7Z0JBQUVDLE1BQU0sRUFBRTtjQUFLLENBQUMsQ0FBQztjQUMvQixJQUFRWCxVQUFVLEdBQUtILEtBQUEsQ0FBS0QsS0FBSyxDQUF6QkksVUFBVTtjQUNsQixJQUFReEIsS0FBSyxHQUFXd0IsVUFBVSxDQUExQnhCLEtBQUs7Z0JBQUVDLElBQUksR0FBS3VCLFVBQVUsQ0FBbkJ2QixJQUFJO2NBQ25CLElBQUF3RyxhQUFBLEdBQXFCLElBQUE5Qix3QkFBVyxFQUFDOUcsQ0FBQyxDQUFDNkksTUFBTSxFQUFFN0ksQ0FBQyxDQUFDO2dCQUFBOEksYUFBQSxPQUFBN0IsZUFBQSxhQUFBMkIsYUFBQTtnQkFBdEMxQixJQUFJLEdBQUE0QixhQUFBO2dCQUFFM0IsSUFBSSxHQUFBMkIsYUFBQTtjQUNqQixJQUFJaEYsQ0FBQyxHQUFHM0IsS0FBSyxDQUFDMkIsQ0FBQyxDQUFDckIsTUFBTSxDQUFDeUUsSUFBSSxDQUFDO2NBQzVCLElBQUlsRCxDQUFDLEdBQUc3QixLQUFLLENBQUM2QixDQUFDLENBQUN2QixNQUFNLENBQUMwRSxJQUFJLENBQUM7Y0FDNUJyRCxDQUFDLEdBQUcxQixJQUFJLENBQUMwQixDQUFDLENBQUNBLENBQUMsQ0FBQztjQUNiRSxDQUFDLEdBQUc1QixJQUFJLENBQUM0QixDQUFDLENBQUNBLENBQUMsQ0FBQztjQUNidUUsT0FBTyxDQUFDO2dCQUFFekUsQ0FBQyxFQUFEQSxDQUFDO2dCQUFFRSxDQUFDLEVBQURBO2NBQUUsQ0FBQyxDQUFDO2NBQ2pCLE9BQU8sS0FBSztZQUNkO1VBQ0Y7VUFFQVIsS0FBQSxDQUFLYSxRQUFRLENBQUM7WUFBRUMsTUFBTSxFQUFFLElBQUk7WUFBRUUsTUFBTSxFQUFFO1VBQUssQ0FBQyxDQUFDO1VBQzdDO1VBQ0EsT0FBTyxLQUFLO1FBQ2QsQ0FBQztRQS9NQ2hCLEtBQUEsQ0FBSzBCLEtBQUssR0FBRztVQUNYWixNQUFNLEVBQUUsSUFBSTtVQUNaRSxNQUFNLEVBQUU7UUFDVixDQUFDO1FBQUMsT0FBQWhCLEtBQUE7TUFDSjtNQUFDLElBQUF1RixVQUFBLGFBQUF6RixhQUFBLEVBQUFELGdCQUFBO01BQUEsV0FBQTJGLGFBQUEsYUFBQTFGLGFBQUE7UUFBQXFCLEdBQUE7UUFBQXNFLEtBQUEsRUE2TUQsU0FBQUMsTUFBTUEsQ0FBQSxFQUFHO1VBQ1AsSUFBQUMsWUFBQSxHQUE4QixJQUFJLENBQUM1RixLQUFLO1lBQWhDNkYsUUFBUSxHQUFBRCxZQUFBLENBQVJDLFFBQVE7WUFBS0MsSUFBSSxPQUFBQyx5QkFBQSxhQUFBSCxZQUFBLEVBQUFwSixTQUFBO1VBQ3pCLElBQU11RixJQUFJLEdBQUcsSUFBSSxDQUFDQSxJQUFJLENBQUMsQ0FBQzs7VUFFeEI7VUFDQSxJQUFNaUUsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUl2SixDQUFDO1lBQUEsT0FBS0EsQ0FBQyxDQUFDd0osV0FBVyxDQUFDQyxjQUFjLENBQUMsQ0FBQztVQUFBOztVQUV6RDtBQUNOO0FBQ0E7QUFDQTtVQUNNLElBQU1DLFVBQVUsR0FBRyxJQUFJLENBQUN4RSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQ0EsS0FBSyxDQUFDWixNQUFNLEdBQUcsS0FBSztVQUUzRCxvQkFDRW5GLE1BQUEsWUFBQXdLLGFBQUEsQ0FBQ25LLFVBQUEsQ0FBQW9LLGFBQWE7WUFDWlIsUUFBUSxFQUFFQSxRQUFTO1lBQ25CRyxXQUFXLEVBQUVBLFdBQVk7WUFDekJNLE9BQU8sRUFBRSxJQUFJLENBQUNBLE9BQVE7WUFDdEJsQyxNQUFNLEVBQUUsSUFBSSxDQUFDQSxNQUFPO1lBQ3BCbUMsTUFBTSxFQUFFLElBQUksQ0FBQ0EsTUFBTztZQUNwQkMsSUFBSSxFQUFFbEgsSUFBSSxDQUFDa0gsSUFBSSxJQUFJLE1BQU87WUFDMUJ6RSxJQUFJLEVBQUUsQ0FBQ0EsSUFBSSxDQUFDeEIsQ0FBQyxFQUFFd0IsSUFBSSxDQUFDdEIsQ0FBQztVQUFFLGdCQUV2QjdFLE1BQUEsWUFBQXdLLGFBQUEsQ0FBQzdHLElBQUksTUFBQWtILFNBQUEsaUJBQUtYLElBQUk7WUFBRUQsUUFBUSxFQUFFQSxRQUFTO1lBQUNNLFVBQVUsRUFBRUE7VUFBVyxFQUFFLENBQ2hELENBQUM7UUFFcEI7TUFBQztJQUFBLEVBeFBnQ08saUJBQUssQ0FBQ0MsU0FBUyxPQUFBeEcsZ0JBQUEsYUFBQVgsY0FBQSxlQUM3QjtNQUNqQnFHLFFBQVEsRUFBRWUscUJBQVMsQ0FBQ0MsSUFBSTtNQUN4Qm5HLFdBQVcsRUFBRWtHLHFCQUFTLENBQUNFLElBQUk7TUFDM0IxQyxNQUFNLEVBQUV3QyxxQkFBUyxDQUFDRSxJQUFJO01BQ3RCL0IsVUFBVSxFQUFFNkIscUJBQVMsQ0FBQ0UsSUFBSTtNQUMxQjlCLE9BQU8sRUFBRTRCLHFCQUFTLENBQUNFLElBQUk7TUFDdkJDLE1BQU0sRUFBRUgscUJBQVMsQ0FBQ0UsSUFBSTtNQUN0QjFHLFVBQVUsRUFBRTRHLHFCQUFjLENBQUNDO0lBQzdCLENBQUMsR0FBQXpILGNBQUE7RUFpUEwsQ0FBQztBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/grid-draggable.jsx"],"names":["log","deltaFn","scale","snap","val","delta","normalized","inverted","invert","fixDecimalsArithmetic","toFixed","gridDraggable","opts","Comp","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","node","svg","ownerSVGElement","createSVGPoint","point","touches","length","touch","getScreenCTM","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","dd","rootNode","getRootNode","clientPoint","getClientPoint","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\n\nconst log = debug('pie-lib:plot:grid-draggable');\n\nexport const deltaFn = (scale, snap, val) => (delta) => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n\n const fixDecimalsArithmetic = (snap(val + inverted).toFixed(4) * 1000) / 1000;\n\n return fixDecimalsArithmetic;\n};\n\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = (opts) => (Comp) => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }',\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired,\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0),\n };\n };\n onStart = (e) => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n\n return {\n anchorPoint: {\n x,\n y,\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y),\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y,\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n /**\n * Retrieves the coordinates of a mouse or touch event relative to an SVG element.\n * This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.\n * @param {Element} node - The SVG element.\n * @param {Event} event - The mouse or touch event.\n * @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.\n */\n getClientPoint = (node, event) => {\n if (!node || !event) {\n return null;\n }\n const svg = node.ownerSVGElement || node;\n\n if (svg && svg.createSVGPoint) {\n let point = svg.createSVGPoint();\n // Check if it's a touch event and use the first touch point\n if (event.touches && event.touches.length > 0) {\n const touch = event.touches[0];\n point.x = touch.clientX;\n point.y = touch.clientY;\n } else {\n // Fall back to mouse event properties\n point.x = event.clientX;\n point.y = event.clientY;\n }\n if (node.getScreenCTM) {\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n } else {\n return null;\n }\n }\n\n const rect = node.getBoundingClientRect();\n if (rect) {\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n } else {\n return null;\n }\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // Ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const clientPoint = this.getClientPoint(rootNode, e);\n\n if (clientPoint === null) {\n return true; // Indicate that the drag is outside of bounds\n }\n\n const [rawX, rawY] = clientPoint;\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = (point) => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y),\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = (point) => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n const { disabled, ...rest } = this.props;\n const grid = this.grid();\n\n // prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"file":"grid-draggable.js"}
|
|
1
|
+
{"version":3,"file":"grid-draggable.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_draggable","_debug","utils","_interopRequireWildcard","_isFunction","_invariant","_d3Selection","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","log","debug","deltaFn","exports","scale","snap","val","delta","normalized","inverted","invert","fixDecimalsArithmetic","toFixed","gridDraggable","opts","Comp","_GridDraggable","invariant","isFunction","fromDelta","bounds","anchorPoint","_React$Component","GridDraggable","props","_this","_classCallCheck2","_defineProperty2","graphProps","domain","range","x","step","y","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","_opts$anchorPoint","key","event","K","toUpperCase","end","concat","start","state","Math","abs","out","grid","scaled","left","right","top","bottom","node","svg","ownerSVGElement","createSVGPoint","point","touches","length","touch","getScreenCTM","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","dd","rootNode","getRootNode","clientPoint","getClientPoint","_clientPoint","_slicedToArray2","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","_this$props","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","pos","position","p","getDelta","_this$props2","onDragStop","onClick","lastX","lastY","isClick","tiny","_clientPoint2","target","_clientPoint3","_inherits2","_createClass2","value","render","_this$props3","disabled","rest","_objectWithoutProperties2","onMouseDown","nativeEvent","preventDefault","isDragging","createElement","DraggableCore","onStart","onStop","axis","_extends2","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"sources":["../src/grid-draggable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\n\nconst log = debug('pie-lib:plot:grid-draggable');\n\nexport const deltaFn = (scale, snap, val) => (delta) => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n\n const fixDecimalsArithmetic = (snap(val + inverted).toFixed(4) * 1000) / 1000;\n\n return fixDecimalsArithmetic;\n};\n\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = (opts) => (Comp) => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }',\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n startX: null,\n startY: null,\n };\n }\n\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0),\n };\n };\n onStart = (e) => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n\n return {\n anchorPoint: {\n x,\n y,\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y),\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: bounds.left * grid.x,\n right: bounds.right * grid.x,\n top: bounds.top * grid.y,\n bottom: bounds.bottom * grid.y,\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n /**\n * Retrieves the coordinates of a mouse or touch event relative to an SVG element.\n * This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.\n * @param {Element} node - The SVG element.\n * @param {Event} event - The mouse or touch event.\n * @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.\n */\n getClientPoint = (node, event) => {\n if (!node || !event) {\n return null;\n }\n const svg = node.ownerSVGElement || node;\n\n if (svg && svg.createSVGPoint) {\n let point = svg.createSVGPoint();\n // Check if it's a touch event and use the first touch point\n if (event.touches && event.touches.length > 0) {\n const touch = event.touches[0];\n point.x = touch.clientX;\n point.y = touch.clientY;\n } else {\n // Fall back to mouse event properties\n point.x = event.clientX;\n point.y = event.clientY;\n }\n if (node.getScreenCTM) {\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n } else {\n return null;\n }\n }\n\n const rect = node.getBoundingClientRect();\n if (rect) {\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n } else {\n return null;\n }\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // Ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const clientPoint = this.getClientPoint(rootNode, e);\n\n if (clientPoint === null) {\n return true; // Indicate that the drag is outside of bounds\n }\n\n const [rawX, rawY] = clientPoint;\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = (point) => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y),\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = (point) => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n const { disabled, ...rest } = this.props;\n const grid = this.grid();\n\n // prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
|