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