@pie-lib/graphing 3.0.0-next.0 → 3.1.0-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/lib/__tests__/graph-with-controls.test.js +226 -0
- package/lib/__tests__/graph.test.js +187 -0
- package/lib/__tests__/grid.test.js +29 -0
- package/lib/__tests__/labels.test.js +61 -0
- package/lib/__tests__/mark-label.test.js +133 -0
- package/lib/__tests__/toggle-bar.test.js +150 -0
- package/lib/__tests__/tool-menu.test.js +101 -0
- package/lib/__tests__/undo-redo.test.js +31 -0
- package/lib/__tests__/use-debounce.test.js +24 -0
- package/lib/__tests__/utils.js +70 -0
- package/lib/__tests__/utils.test.js +123 -0
- package/lib/axis/__tests__/arrow.test.js +60 -0
- package/lib/axis/__tests__/axes.test.js +195 -0
- package/lib/axis/arrow.js +1 -1
- package/lib/axis/axes.js +1 -1
- package/lib/axis/index.js +1 -1
- package/lib/bg.js +1 -1
- package/lib/container/actions.js +1 -1
- package/lib/container/index.js +1 -1
- package/lib/container/marks.js +1 -1
- package/lib/container/middleware.js +1 -1
- package/lib/container/reducer.js +1 -1
- package/lib/coordinates-label.js +1 -1
- package/lib/graph-with-controls.js +1 -1
- package/lib/graph.js +1 -1
- package/lib/grid-setup.js +3 -3
- package/lib/grid-setup.js.map +1 -1
- package/lib/grid.js +1 -1
- package/lib/index.js +1 -1
- package/lib/key-legend.js +1 -1
- package/lib/label-svg-icon.js +1 -1
- package/lib/labels.js +3 -3
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js +1 -1
- package/lib/toggle-bar.js +1 -1
- package/lib/tool-menu.js +1 -1
- package/lib/tools/absolute/__tests__/component.test.js +67 -0
- package/lib/tools/absolute/component.js +1 -1
- package/lib/tools/absolute/index.js +1 -1
- package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
- package/lib/tools/circle/__tests__/component.test.js +68 -0
- package/lib/tools/circle/bg-circle.js +1 -1
- package/lib/tools/circle/component.js +1 -1
- package/lib/tools/circle/index.js +1 -1
- package/lib/tools/exponential/__tests__/component.test.js +66 -0
- package/lib/tools/exponential/component.js +1 -1
- package/lib/tools/exponential/index.js +1 -1
- package/lib/tools/index.js +1 -1
- package/lib/tools/line/__tests__/component.test.js +45 -0
- package/lib/tools/line/component.js +1 -1
- package/lib/tools/line/index.js +1 -1
- package/lib/tools/parabola/__tests__/component.test.js +66 -0
- package/lib/tools/parabola/component.js +1 -1
- package/lib/tools/parabola/index.js +1 -1
- package/lib/tools/point/__tests__/component.test.js +50 -0
- package/lib/tools/point/component.js +1 -1
- package/lib/tools/point/index.js +1 -1
- package/lib/tools/polygon/__tests__/component.test.js +85 -0
- package/lib/tools/polygon/__tests__/index.test.js +92 -0
- package/lib/tools/polygon/__tests__/line.test.js +29 -0
- package/lib/tools/polygon/__tests__/polygon.test.js +59 -0
- package/lib/tools/polygon/component.js +1 -1
- package/lib/tools/polygon/index.js +1 -1
- package/lib/tools/polygon/line.js +1 -1
- package/lib/tools/polygon/polygon.js +1 -1
- package/lib/tools/ray/__tests__/component.test.js +35 -0
- package/lib/tools/ray/component.js +1 -1
- package/lib/tools/ray/index.js +1 -1
- package/lib/tools/segment/__tests__/component.test.js +35 -0
- package/lib/tools/segment/component.js +1 -1
- package/lib/tools/segment/index.js +1 -1
- package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
- package/lib/tools/shared/arrow-head.js +1 -1
- package/lib/tools/shared/icons/CorrectSVG.js +1 -1
- package/lib/tools/shared/icons/IncorrectSVG.js +1 -1
- package/lib/tools/shared/icons/MissingSVG.js +1 -1
- package/lib/tools/shared/line/__tests__/index.test.js +124 -0
- package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
- package/lib/tools/shared/line/__tests__/with-root-edge.test.js +91 -0
- package/lib/tools/shared/line/index.js +1 -1
- package/lib/tools/shared/line/line-path.js +1 -1
- package/lib/tools/shared/line/with-root-edge.js +1 -1
- package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
- package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
- package/lib/tools/shared/point/arrow-point.js +1 -1
- package/lib/tools/shared/point/arrow.js +1 -1
- package/lib/tools/shared/point/base-point.js +1 -1
- package/lib/tools/shared/point/index.js +1 -1
- package/lib/tools/shared/styles.js +1 -1
- package/lib/tools/shared/types.js +1 -1
- package/lib/tools/sine/__tests__/component.test.js +72 -0
- package/lib/tools/sine/component.js +1 -1
- package/lib/tools/sine/index.js +1 -1
- package/lib/tools/vector/__tests__/component.test.js +32 -0
- package/lib/tools/vector/component.js +1 -1
- package/lib/tools/vector/index.js +1 -1
- package/lib/undo-redo.js +1 -1
- package/lib/use-debounce.js +1 -1
- package/lib/utils.js +1 -1
- package/package.json +9 -17
- package/src/grid-setup.jsx +28 -34
- package/src/labels.jsx +1 -1
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
5
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _markLabel = require("../mark-label");
|
|
8
|
+
var _utils = require("./utils");
|
|
9
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
+
describe('MarkLabel', function () {
|
|
12
|
+
var onChange = jest.fn();
|
|
13
|
+
var inputRef = jest.fn();
|
|
14
|
+
var renderComponent = function renderComponent(extras) {
|
|
15
|
+
var defaults = {
|
|
16
|
+
classes: {},
|
|
17
|
+
className: 'className',
|
|
18
|
+
onChange: onChange,
|
|
19
|
+
inputRef: inputRef,
|
|
20
|
+
mark: {
|
|
21
|
+
x: 1,
|
|
22
|
+
y: 1
|
|
23
|
+
},
|
|
24
|
+
graphProps: (0, _utils.graphProps)(0, 10, 0, 10)
|
|
25
|
+
};
|
|
26
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
27
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_markLabel.MarkLabel, props));
|
|
28
|
+
};
|
|
29
|
+
describe('rendering', function () {
|
|
30
|
+
it('renders without crashing', function () {
|
|
31
|
+
var _renderComponent = renderComponent(),
|
|
32
|
+
container = _renderComponent.container;
|
|
33
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
34
|
+
});
|
|
35
|
+
it('renders with different mark position', function () {
|
|
36
|
+
var _renderComponent2 = renderComponent({
|
|
37
|
+
mark: {
|
|
38
|
+
x: 10,
|
|
39
|
+
y: 10
|
|
40
|
+
}
|
|
41
|
+
}),
|
|
42
|
+
container = _renderComponent2.container;
|
|
43
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('position', function () {
|
|
48
|
+
var assertPosition = function assertPosition(mark, rect, expected) {
|
|
49
|
+
it("".concat(mark.x, ",").concat(mark.y, " + ").concat(rect.width, ",").concat(rect.height, " => ").concat(expected), function () {
|
|
50
|
+
// we set range.min to a value because in pixels - the greater the Y the lower down on the screen.
|
|
51
|
+
var graphProps = (0, _utils.graphProps)(0, 12, 12, 0);
|
|
52
|
+
var result = (0, _markLabel.position)(graphProps, mark, rect);
|
|
53
|
+
expect(result).toEqual(expected);
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
assertPosition({
|
|
57
|
+
x: 0,
|
|
58
|
+
y: 0
|
|
59
|
+
}, {
|
|
60
|
+
width: 10,
|
|
61
|
+
height: 10
|
|
62
|
+
}, 'top-left');
|
|
63
|
+
assertPosition({
|
|
64
|
+
x: 0,
|
|
65
|
+
y: 0
|
|
66
|
+
}, {
|
|
67
|
+
width: 1,
|
|
68
|
+
height: 1
|
|
69
|
+
}, 'bottom-right');
|
|
70
|
+
assertPosition({
|
|
71
|
+
x: 0,
|
|
72
|
+
y: 0
|
|
73
|
+
}, {
|
|
74
|
+
width: 10,
|
|
75
|
+
height: 0
|
|
76
|
+
}, 'bottom-left');
|
|
77
|
+
assertPosition({
|
|
78
|
+
x: 0,
|
|
79
|
+
y: 0
|
|
80
|
+
}, {
|
|
81
|
+
width: 0,
|
|
82
|
+
height: 10
|
|
83
|
+
}, 'top-right');
|
|
84
|
+
});
|
|
85
|
+
describe('coordinates', function () {
|
|
86
|
+
var assertCoordinates = function assertCoordinates(mark, rect, pos, expected) {
|
|
87
|
+
it("".concat(mark.x, ", ").concat(mark.y, " -> ").concat(pos, " = ").concat(expected.left, ", ").concat(expected.top), function () {
|
|
88
|
+
var result = (0, _markLabel.coordinates)((0, _utils.graphProps)(), mark, rect, pos);
|
|
89
|
+
expect(result).toEqual(expected);
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
assertCoordinates({
|
|
93
|
+
x: 0,
|
|
94
|
+
y: 0
|
|
95
|
+
}, {
|
|
96
|
+
width: 0,
|
|
97
|
+
height: 0
|
|
98
|
+
}, 'top-left', {
|
|
99
|
+
left: -5,
|
|
100
|
+
top: -5
|
|
101
|
+
});
|
|
102
|
+
assertCoordinates({
|
|
103
|
+
x: 0,
|
|
104
|
+
y: 0
|
|
105
|
+
}, {
|
|
106
|
+
width: 0,
|
|
107
|
+
height: 0
|
|
108
|
+
}, 'bottom-left', {
|
|
109
|
+
left: -5,
|
|
110
|
+
top: 5
|
|
111
|
+
});
|
|
112
|
+
assertCoordinates({
|
|
113
|
+
x: 0,
|
|
114
|
+
y: 0
|
|
115
|
+
}, {
|
|
116
|
+
width: 0,
|
|
117
|
+
height: 0
|
|
118
|
+
}, 'top-right', {
|
|
119
|
+
left: 5,
|
|
120
|
+
top: -5
|
|
121
|
+
});
|
|
122
|
+
assertCoordinates({
|
|
123
|
+
x: 0,
|
|
124
|
+
y: 0
|
|
125
|
+
}, {
|
|
126
|
+
width: 0,
|
|
127
|
+
height: 0
|
|
128
|
+
}, 'bottom-right', {
|
|
129
|
+
left: 5,
|
|
130
|
+
top: 5
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFya0xhYmVsIiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiaW5wdXRSZWYiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrIiwieCIsInkiLCJncmFwaFByb3BzIiwiZ2V0R3JhcGhQcm9wcyIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIk1hcmtMYWJlbCIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJDb21wb25lbnQyIiwiYXNzZXJ0UG9zaXRpb24iLCJyZWN0IiwiZXhwZWN0ZWQiLCJjb25jYXQiLCJ3aWR0aCIsImhlaWdodCIsInJlc3VsdCIsInBvc2l0aW9uIiwidG9FcXVhbCIsImFzc2VydENvb3JkaW5hdGVzIiwicG9zIiwibGVmdCIsInRvcCIsImNvb3JkaW5hdGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYXJrLWxhYmVsLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IE1hcmtMYWJlbCwgcG9zaXRpb24sIGNvb3JkaW5hdGVzIH0gZnJvbSAnLi4vbWFyay1sYWJlbCc7XG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ01hcmtMYWJlbCcsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBsZXQgaW5wdXRSZWYgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBtYXJrOiB7IHg6IDEsIHk6IDEgfSxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoMCwgMTAsIDAsIDEwKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8TWFya0xhYmVsIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaWZmZXJlbnQgbWFyayBwb3NpdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IHg6IDEwLCB5OiAxMCB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncG9zaXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VydFBvc2l0aW9uID0gKG1hcmssIHJlY3QsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwke21hcmsueX0gKyAke3JlY3Qud2lkdGh9LCR7cmVjdC5oZWlnaHR9ID0+ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgLy8gd2Ugc2V0IHJhbmdlLm1pbiB0byBhIHZhbHVlIGJlY2F1c2UgaW4gcGl4ZWxzIC0gdGhlIGdyZWF0ZXIgdGhlIFkgdGhlIGxvd2VyIGRvd24gb24gdGhlIHNjcmVlbi5cbiAgICAgIGNvbnN0IGdyYXBoUHJvcHMgPSBnZXRHcmFwaFByb3BzKDAsIDEyLCAxMiwgMCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwb3NpdGlvbihncmFwaFByb3BzLCBtYXJrLCByZWN0KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCB9LCAndG9wLWxlZnQnKTtcbiAgYXNzZXJ0UG9zaXRpb24oeyB4OiAwLCB5OiAwIH0sIHsgd2lkdGg6IDEsIGhlaWdodDogMSB9LCAnYm90dG9tLXJpZ2h0Jyk7XG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAwIH0sICdib3R0b20tbGVmdCcpO1xuICBhc3NlcnRQb3NpdGlvbih7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAxMCB9LCAndG9wLXJpZ2h0Jyk7XG59KTtcblxuZGVzY3JpYmUoJ2Nvb3JkaW5hdGVzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlcnRDb29yZGluYXRlcyA9IChtYXJrLCByZWN0LCBwb3MsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwgJHttYXJrLnl9IC0+ICR7cG9zfSA9ICR7ZXhwZWN0ZWQubGVmdH0sICR7ZXhwZWN0ZWQudG9wfWAsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvb3JkaW5hdGVzKGdldEdyYXBoUHJvcHMoKSwgbWFyaywgcmVjdCwgcG9zKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtbGVmdCcsIHsgbGVmdDogLTUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1sZWZ0JywgeyBsZWZ0OiAtNSwgdG9wOiA1IH0pO1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtcmlnaHQnLCB7IGxlZnQ6IDUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1yaWdodCcsIHtcbiAgICBsZWZ0OiA1LFxuICAgIHRvcDogNSxcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFzRCxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUV0RG9CLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtFQUMxQixJQUFJQyxRQUFRLEdBQUdDLElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7RUFDeEIsSUFBSUMsUUFBUSxHQUFHRixJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0VBQ3hCLElBQU1FLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBSUMsTUFBTSxFQUFLO0lBQ2xDLElBQU1DLFFBQVEsR0FBRztNQUNmQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO01BQ1hDLFNBQVMsRUFBRSxXQUFXO01BQ3RCUixRQUFRLEVBQVJBLFFBQVE7TUFDUkcsUUFBUSxFQUFSQSxRQUFRO01BQ1JNLElBQUksRUFBRTtRQUFFQyxDQUFDLEVBQUUsQ0FBQztRQUFFQyxDQUFDLEVBQUU7TUFBRSxDQUFDO01BQ3BCQyxVQUFVLEVBQUUsSUFBQUMsaUJBQWEsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3hDLENBQUM7SUFDRCxJQUFNQyxLQUFLLEdBQUF2QixhQUFBLENBQUFBLGFBQUEsS0FBUWUsUUFBUSxHQUFLRCxNQUFNLENBQUU7SUFDeEMsT0FBTyxJQUFBVSxpQkFBTSxlQUFDekMsTUFBQSxZQUFBMEMsYUFBQSxDQUFDeEMsVUFBQSxDQUFBeUMsU0FBUyxFQUFLSCxLQUFRLENBQUMsQ0FBQztFQUN6QyxDQUFDO0VBQ0RmLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQm1CLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO01BQ25DLElBQUFDLGdCQUFBLEdBQXNCZixlQUFlLENBQUMsQ0FBQztRQUEvQmdCLFNBQVMsR0FBQUQsZ0JBQUEsQ0FBVEMsU0FBUztNQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUNGTCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtNQUMvQyxJQUFBTSxpQkFBQSxHQUFzQnBCLGVBQWUsQ0FBQztVQUFFSyxJQUFJLEVBQUU7WUFBRUMsQ0FBQyxFQUFFLEVBQUU7WUFBRUMsQ0FBQyxFQUFFO1VBQUc7UUFBRSxDQUFDLENBQUM7UUFBekRTLFNBQVMsR0FBQUksaUJBQUEsQ0FBVEosU0FBUztNQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGeEIsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFNO0VBQ3pCLElBQU0wQixjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUloQixJQUFJLEVBQUVpQixJQUFJLEVBQUVDLFFBQVEsRUFBSztJQUMvQ1QsRUFBRSxJQUFBVSxNQUFBLENBQUluQixJQUFJLENBQUNDLENBQUMsT0FBQWtCLE1BQUEsQ0FBSW5CLElBQUksQ0FBQ0UsQ0FBQyxTQUFBaUIsTUFBQSxDQUFNRixJQUFJLENBQUNHLEtBQUssT0FBQUQsTUFBQSxDQUFJRixJQUFJLENBQUNJLE1BQU0sVUFBQUYsTUFBQSxDQUFPRCxRQUFRLEdBQUksWUFBTTtNQUM1RTtNQUNBLElBQU1mLFVBQVUsR0FBRyxJQUFBQyxpQkFBYSxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztNQUM5QyxJQUFNa0IsTUFBTSxHQUFHLElBQUFDLG1CQUFRLEVBQUNwQixVQUFVLEVBQUVILElBQUksRUFBRWlCLElBQUksQ0FBQztNQUMvQ0wsTUFBTSxDQUFDVSxNQUFNLENBQUMsQ0FBQ0UsT0FBTyxDQUFDTixRQUFRLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0VBQ0osQ0FBQztFQUVERixjQUFjLENBQUM7SUFBRWYsQ0FBQyxFQUFFLENBQUM7SUFBRUMsQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUFFO0lBQUVrQixLQUFLLEVBQUUsRUFBRTtJQUFFQyxNQUFNLEVBQUU7RUFBRyxDQUFDLEVBQUUsVUFBVSxDQUFDO0VBQ3JFTCxjQUFjLENBQUM7SUFBRWYsQ0FBQyxFQUFFLENBQUM7SUFBRUMsQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUFFO0lBQUVrQixLQUFLLEVBQUUsQ0FBQztJQUFFQyxNQUFNLEVBQUU7RUFBRSxDQUFDLEVBQUUsY0FBYyxDQUFDO0VBQ3ZFTCxjQUFjLENBQUM7SUFBRWYsQ0FBQyxFQUFFLENBQUM7SUFBRUMsQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUFFO0lBQUVrQixLQUFLLEVBQUUsRUFBRTtJQUFFQyxNQUFNLEVBQUU7RUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDO0VBQ3ZFTCxjQUFjLENBQUM7SUFBRWYsQ0FBQyxFQUFFLENBQUM7SUFBRUMsQ0FBQyxFQUFFO0VBQUUsQ0FBQyxFQUFFO0lBQUVrQixLQUFLLEVBQUUsQ0FBQztJQUFFQyxNQUFNLEVBQUU7RUFBRyxDQUFDLEVBQUUsV0FBVyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQUVGL0IsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0VBQzVCLElBQU1tQyxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFJekIsSUFBSSxFQUFFaUIsSUFBSSxFQUFFUyxHQUFHLEVBQUVSLFFBQVEsRUFBSztJQUN2RFQsRUFBRSxJQUFBVSxNQUFBLENBQUluQixJQUFJLENBQUNDLENBQUMsUUFBQWtCLE1BQUEsQ0FBS25CLElBQUksQ0FBQ0UsQ0FBQyxVQUFBaUIsTUFBQSxDQUFPTyxHQUFHLFNBQUFQLE1BQUEsQ0FBTUQsUUFBUSxDQUFDUyxJQUFJLFFBQUFSLE1BQUEsQ0FBS0QsUUFBUSxDQUFDVSxHQUFHLEdBQUksWUFBTTtNQUM3RSxJQUFNTixNQUFNLEdBQUcsSUFBQU8sc0JBQVcsRUFBQyxJQUFBekIsaUJBQWEsRUFBQyxDQUFDLEVBQUVKLElBQUksRUFBRWlCLElBQUksRUFBRVMsR0FBRyxDQUFDO01BQzVEZCxNQUFNLENBQUNVLE1BQU0sQ0FBQyxDQUFDRSxPQUFPLENBQUNOLFFBQVEsQ0FBQztJQUNsQyxDQUFDLENBQUM7RUFDSixDQUFDO0VBQ0RPLGlCQUFpQixDQUFDO0lBQUV4QixDQUFDLEVBQUUsQ0FBQztJQUFFQyxDQUFDLEVBQUU7RUFBRSxDQUFDLEVBQUU7SUFBRWtCLEtBQUssRUFBRSxDQUFDO0lBQUVDLE1BQU0sRUFBRTtFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUU7SUFBRU0sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUFFQyxHQUFHLEVBQUUsQ0FBQztFQUFFLENBQUMsQ0FBQztFQUM3RkgsaUJBQWlCLENBQUM7SUFBRXhCLENBQUMsRUFBRSxDQUFDO0lBQUVDLENBQUMsRUFBRTtFQUFFLENBQUMsRUFBRTtJQUFFa0IsS0FBSyxFQUFFLENBQUM7SUFBRUMsTUFBTSxFQUFFO0VBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRTtJQUFFTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQUVDLEdBQUcsRUFBRTtFQUFFLENBQUMsQ0FBQztFQUMvRkgsaUJBQWlCLENBQUM7SUFBRXhCLENBQUMsRUFBRSxDQUFDO0lBQUVDLENBQUMsRUFBRTtFQUFFLENBQUMsRUFBRTtJQUFFa0IsS0FBSyxFQUFFLENBQUM7SUFBRUMsTUFBTSxFQUFFO0VBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRTtJQUFFTSxJQUFJLEVBQUUsQ0FBQztJQUFFQyxHQUFHLEVBQUUsQ0FBQztFQUFFLENBQUMsQ0FBQztFQUM3RkgsaUJBQWlCLENBQUM7SUFBRXhCLENBQUMsRUFBRSxDQUFDO0lBQUVDLENBQUMsRUFBRTtFQUFFLENBQUMsRUFBRTtJQUFFa0IsS0FBSyxFQUFFLENBQUM7SUFBRUMsTUFBTSxFQUFFO0VBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRTtJQUN6RU0sSUFBSSxFQUFFLENBQUM7SUFDUEMsR0FBRyxFQUFFO0VBQ1AsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
8
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _toggleBar = require("../toggle-bar");
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
// Mock DragProvider to avoid @dnd-kit React version conflicts
|
|
14
|
+
jest.mock('@pie-lib/drag', function () {
|
|
15
|
+
return {
|
|
16
|
+
DragProvider: function DragProvider(_ref) {
|
|
17
|
+
var children = _ref.children;
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
19
|
+
"data-testid": "drag-provider"
|
|
20
|
+
}, children);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Mock Translator to return the key as-is for testing
|
|
26
|
+
jest.mock('@pie-lib/translator', function () {
|
|
27
|
+
return {
|
|
28
|
+
translator: {
|
|
29
|
+
t: function t(key) {
|
|
30
|
+
// Extract tool name from key like "graphing.point" -> "point"
|
|
31
|
+
var parts = key.split('.');
|
|
32
|
+
return parts[parts.length - 1];
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
describe('ToggleBar', function () {
|
|
38
|
+
var onChange = jest.fn();
|
|
39
|
+
var onChangeToolsOrder = jest.fn();
|
|
40
|
+
beforeEach(function () {
|
|
41
|
+
onChange.mockClear();
|
|
42
|
+
onChangeToolsOrder.mockClear();
|
|
43
|
+
});
|
|
44
|
+
var renderComponent = function renderComponent(extras) {
|
|
45
|
+
var defaults = {
|
|
46
|
+
className: 'className',
|
|
47
|
+
onChange: onChange,
|
|
48
|
+
onChangeToolsOrder: onChangeToolsOrder,
|
|
49
|
+
options: ['point', 'line'],
|
|
50
|
+
language: 'en'
|
|
51
|
+
};
|
|
52
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
53
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toggleBar.ToggleBar, props));
|
|
54
|
+
};
|
|
55
|
+
describe('rendering', function () {
|
|
56
|
+
it('renders without crashing', function () {
|
|
57
|
+
var _renderComponent = renderComponent(),
|
|
58
|
+
container = _renderComponent.container;
|
|
59
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
60
|
+
});
|
|
61
|
+
it('renders tool buttons for valid tools', function () {
|
|
62
|
+
renderComponent({
|
|
63
|
+
options: ['point', 'line', 'circle']
|
|
64
|
+
});
|
|
65
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
66
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
67
|
+
expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
it('does not render invalid tool options', function () {
|
|
70
|
+
renderComponent({
|
|
71
|
+
options: ['point', 'invalid-tool', 'line']
|
|
72
|
+
});
|
|
73
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
74
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
75
|
+
expect(_testUtils.screen.queryByText(/invalid-tool/i)).not.toBeInTheDocument();
|
|
76
|
+
});
|
|
77
|
+
it('highlights selected tool', function () {
|
|
78
|
+
var _renderComponent2 = renderComponent({
|
|
79
|
+
selectedToolType: 'line'
|
|
80
|
+
}),
|
|
81
|
+
container = _renderComponent2.container;
|
|
82
|
+
var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
83
|
+
expect(selectedButton).toHaveAttribute('value', 'line');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe('interactions', function () {
|
|
87
|
+
it('calls onChange when tool button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
88
|
+
var user, pointButton;
|
|
89
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
90
|
+
while (1) switch (_context.prev = _context.next) {
|
|
91
|
+
case 0:
|
|
92
|
+
user = _userEvent["default"].setup();
|
|
93
|
+
renderComponent({
|
|
94
|
+
options: ['point', 'line']
|
|
95
|
+
});
|
|
96
|
+
pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
97
|
+
_context.next = 1;
|
|
98
|
+
return user.click(pointButton);
|
|
99
|
+
case 1:
|
|
100
|
+
expect(onChange).toHaveBeenCalledWith('point');
|
|
101
|
+
case 2:
|
|
102
|
+
case "end":
|
|
103
|
+
return _context.stop();
|
|
104
|
+
}
|
|
105
|
+
}, _callee);
|
|
106
|
+
})));
|
|
107
|
+
it('calls onChange with selected tool type', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
108
|
+
var user, lineButton;
|
|
109
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
110
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
111
|
+
case 0:
|
|
112
|
+
user = _userEvent["default"].setup();
|
|
113
|
+
renderComponent({
|
|
114
|
+
options: ['point', 'line'],
|
|
115
|
+
selectedToolType: 'point'
|
|
116
|
+
});
|
|
117
|
+
lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
118
|
+
_context2.next = 1;
|
|
119
|
+
return user.click(lineButton);
|
|
120
|
+
case 1:
|
|
121
|
+
expect(onChange).toHaveBeenCalledWith('line');
|
|
122
|
+
case 2:
|
|
123
|
+
case "end":
|
|
124
|
+
return _context2.stop();
|
|
125
|
+
}
|
|
126
|
+
}, _callee2);
|
|
127
|
+
})));
|
|
128
|
+
it('disables buttons when disabled prop is true', function () {
|
|
129
|
+
renderComponent({
|
|
130
|
+
disabled: true,
|
|
131
|
+
options: ['point', 'line']
|
|
132
|
+
});
|
|
133
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
134
|
+
var lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
135
|
+
expect(pointButton).toBeDisabled();
|
|
136
|
+
expect(lineButton).toBeDisabled();
|
|
137
|
+
});
|
|
138
|
+
it('does not call onChange when disabled', function () {
|
|
139
|
+
renderComponent({
|
|
140
|
+
disabled: true,
|
|
141
|
+
options: ['point']
|
|
142
|
+
});
|
|
143
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
144
|
+
expect(pointButton).toBeDisabled();
|
|
145
|
+
// Note: Cannot test click on disabled button with pointer-events: none
|
|
146
|
+
// The disabled state is verified above
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3RvZ2dsZUJhciIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJEcmFnUHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwidHJhbnNsYXRvciIsImtleSIsInBhcnRzIiwic3BsaXQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiZm4iLCJvbkNoYW5nZVRvb2xzT3JkZXIiLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwicmVuZGVyQ29tcG9uZW50IiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc05hbWUiLCJvcHRpb25zIiwibGFuZ3VhZ2UiLCJwcm9wcyIsInJlbmRlciIsIlRvZ2dsZUJhciIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsInF1ZXJ5QnlUZXh0Iiwibm90IiwiX3JlbmRlckNvbXBvbmVudDIiLCJzZWxlY3RlZFRvb2xUeXBlIiwic2VsZWN0ZWRCdXR0b24iLCJjbG9zZXN0IiwidG9IYXZlQXR0cmlidXRlIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ1c2VyIiwicG9pbnRCdXR0b24iLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInVzZXJFdmVudCIsInNldHVwIiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInN0b3AiLCJfY2FsbGVlMiIsImxpbmVCdXR0b24iLCJfY29udGV4dDIiLCJkaXNhYmxlZCIsInRvQmVEaXNhYmxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdG9nZ2xlLWJhci50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHVzZXJFdmVudCBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3VzZXItZXZlbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgVG9nZ2xlQmFyIH0gZnJvbSAnLi4vdG9nZ2xlLWJhcic7XG5cbi8vIE1vY2sgRHJhZ1Byb3ZpZGVyIHRvIGF2b2lkIEBkbmQta2l0IFJlYWN0IHZlcnNpb24gY29uZmxpY3RzXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuLy8gTW9jayBUcmFuc2xhdG9yIHRvIHJldHVybiB0aGUga2V5IGFzLWlzIGZvciB0ZXN0aW5nXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3RyYW5zbGF0b3InLCAoKSA9PiAoe1xuICB0cmFuc2xhdG9yOiB7XG4gICAgdDogKGtleSkgPT4ge1xuICAgICAgLy8gRXh0cmFjdCB0b29sIG5hbWUgZnJvbSBrZXkgbGlrZSBcImdyYXBoaW5nLnBvaW50XCIgLT4gXCJwb2ludFwiXG4gICAgICBjb25zdCBwYXJ0cyA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgIH0sXG4gIH0sXG59KSk7XG5cbmRlc2NyaWJlKCdUb2dnbGVCYXInLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ2hhbmdlVG9vbHNPcmRlciA9IGplc3QuZm4oKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZS5tb2NrQ2xlYXIoKTtcbiAgICBvbkNoYW5nZVRvb2xzT3JkZXIubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ2hhbmdlVG9vbHNPcmRlcixcbiAgICAgIG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZSddLFxuICAgICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFRvZ2dsZUJhciB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB0b29sIGJ1dHRvbnMgZm9yIHZhbGlkIHRvb2xzJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgb3B0aW9uczogWydwb2ludCcsICdsaW5lJywgJ2NpcmNsZSddIH0pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvY2lyY2xlL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IHJlbmRlciBpbnZhbGlkIHRvb2wgb3B0aW9ucycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnaW52YWxpZC10b29sJywgJ2xpbmUnXSB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5xdWVyeUJ5VGV4dCgvaW52YWxpZC10b29sL2kpKS5ub3QudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdoaWdobGlnaHRzIHNlbGVjdGVkIHRvb2wnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KHsgc2VsZWN0ZWRUb29sVHlwZTogJ2xpbmUnIH0pO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgZXhwZWN0KHNlbGVjdGVkQnV0dG9uKS50b0hhdmVBdHRyaWJ1dGUoJ3ZhbHVlJywgJ2xpbmUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2ludGVyYWN0aW9ucycsICgpID0+IHtcbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2hlbiB0b29sIGJ1dHRvbiBpcyBjbGlja2VkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJFdmVudC5zZXR1cCgpO1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgb3B0aW9uczogWydwb2ludCcsICdsaW5lJ10gfSk7XG5cbiAgICAgIGNvbnN0IHBvaW50QnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKHBvaW50QnV0dG9uKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgncG9pbnQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aXRoIHNlbGVjdGVkIHRvb2wgdHlwZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZSddLCBzZWxlY3RlZFRvb2xUeXBlOiAncG9pbnQnIH0pO1xuXG4gICAgICBjb25zdCBsaW5lQnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xpY2sobGluZUJ1dHRvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2xpbmUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdkaXNhYmxlcyBidXR0b25zIHdoZW4gZGlzYWJsZWQgcHJvcCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgZGlzYWJsZWQ6IHRydWUsIG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZSddIH0pO1xuXG4gICAgICBjb25zdCBwb2ludEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgY29uc3QgbGluZUJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG5cbiAgICAgIGV4cGVjdChwb2ludEJ1dHRvbikudG9CZURpc2FibGVkKCk7XG4gICAgICBleHBlY3QobGluZUJ1dHRvbikudG9CZURpc2FibGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZG9lcyBub3QgY2FsbCBvbkNoYW5nZSB3aGVuIGRpc2FibGVkJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgZGlzYWJsZWQ6IHRydWUsIG9wdGlvbnM6IFsncG9pbnQnXSB9KTtcblxuICAgICAgY29uc3QgcG9pbnRCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGV4cGVjdChwb2ludEJ1dHRvbikudG9CZURpc2FibGVkKCk7XG4gICAgICAvLyBOb3RlOiBDYW5ub3QgdGVzdCBjbGljayBvbiBkaXNhYmxlZCBidXR0b24gd2l0aCBwb2ludGVyLWV2ZW50czogbm9uZVxuICAgICAgLy8gVGhlIGRpc2FibGVkIHN0YXRlIGlzIHZlcmlmaWVkIGFib3ZlXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUEwQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFB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
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
5
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
6
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
7
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
8
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _toolMenu = _interopRequireDefault(require("../tool-menu"));
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
// Mock DragProvider to avoid @dnd-kit React version conflicts
|
|
14
|
+
jest.mock('@pie-lib/drag', function () {
|
|
15
|
+
return {
|
|
16
|
+
DragProvider: function DragProvider(_ref) {
|
|
17
|
+
var children = _ref.children;
|
|
18
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
19
|
+
"data-testid": "drag-provider"
|
|
20
|
+
}, children);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
describe('ToolMenu', function () {
|
|
25
|
+
var onChange = jest.fn();
|
|
26
|
+
var onChangeTools = jest.fn();
|
|
27
|
+
beforeEach(function () {
|
|
28
|
+
onChange.mockClear();
|
|
29
|
+
onChangeTools.mockClear();
|
|
30
|
+
});
|
|
31
|
+
var renderComponent = function renderComponent(extras) {
|
|
32
|
+
var defaults = {
|
|
33
|
+
className: 'className',
|
|
34
|
+
onChange: onChange,
|
|
35
|
+
onChangeTools: onChangeTools,
|
|
36
|
+
currentToolType: 'point',
|
|
37
|
+
toolbarTools: ['point', 'line'],
|
|
38
|
+
language: 'en'
|
|
39
|
+
};
|
|
40
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
41
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toolMenu["default"], props));
|
|
42
|
+
};
|
|
43
|
+
describe('rendering', function () {
|
|
44
|
+
it('renders without crashing', function () {
|
|
45
|
+
var _renderComponent = renderComponent(),
|
|
46
|
+
container = _renderComponent.container;
|
|
47
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
48
|
+
});
|
|
49
|
+
it('renders ToggleBar with correct props', function () {
|
|
50
|
+
renderComponent({
|
|
51
|
+
toolbarTools: ['point', 'line', 'circle']
|
|
52
|
+
});
|
|
53
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
54
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
55
|
+
expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
|
|
56
|
+
});
|
|
57
|
+
it('passes currentToolType to ToggleBar', function () {
|
|
58
|
+
renderComponent({
|
|
59
|
+
currentToolType: 'line'
|
|
60
|
+
});
|
|
61
|
+
var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
62
|
+
expect(selectedButton).toBeInTheDocument();
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('interactions', function () {
|
|
66
|
+
it('calls onChange when tool is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
67
|
+
var user, lineButton;
|
|
68
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
69
|
+
while (1) switch (_context.prev = _context.next) {
|
|
70
|
+
case 0:
|
|
71
|
+
user = _userEvent["default"].setup();
|
|
72
|
+
renderComponent();
|
|
73
|
+
lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
74
|
+
_context.next = 1;
|
|
75
|
+
return user.click(lineButton);
|
|
76
|
+
case 1:
|
|
77
|
+
expect(onChange).toHaveBeenCalledWith('line');
|
|
78
|
+
case 2:
|
|
79
|
+
case "end":
|
|
80
|
+
return _context.stop();
|
|
81
|
+
}
|
|
82
|
+
}, _callee);
|
|
83
|
+
})));
|
|
84
|
+
it('calls onChangeTools when tools order changes', function () {
|
|
85
|
+
renderComponent({
|
|
86
|
+
draggableTools: true
|
|
87
|
+
});
|
|
88
|
+
// Note: Drag-and-drop testing requires more complex setup with @dnd-kit/test-utils
|
|
89
|
+
// For now, we verify the component renders with draggableTools enabled
|
|
90
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
91
|
+
});
|
|
92
|
+
it('disables tools when disabled prop is true', function () {
|
|
93
|
+
renderComponent({
|
|
94
|
+
disabled: true
|
|
95
|
+
});
|
|
96
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
97
|
+
expect(pointButton).toBeDisabled();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3Rvb2xNZW51Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkRyYWdQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiZm4iLCJvbkNoYW5nZVRvb2xzIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NOYW1lIiwiY3VycmVudFRvb2xUeXBlIiwidG9vbGJhclRvb2xzIiwibGFuZ3VhZ2UiLCJwcm9wcyIsInJlbmRlciIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsInNjcmVlbiIsImdldEJ5VGV4dCIsInNlbGVjdGVkQnV0dG9uIiwiY2xvc2VzdCIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwidXNlciIsImxpbmVCdXR0b24iLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsInVzZXJFdmVudCIsInNldHVwIiwiY2xpY2siLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInN0b3AiLCJkcmFnZ2FibGVUb29scyIsImRpc2FibGVkIiwicG9pbnRCdXR0b24iLCJ0b0JlRGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3Rvb2wtbWVudS50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIsIHNjcmVlbiB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IHVzZXJFdmVudCBmcm9tICdAdGVzdGluZy1saWJyYXJ5L3VzZXItZXZlbnQnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IFRvb2xNZW51IGZyb20gJy4uL3Rvb2wtbWVudSc7XG5cbi8vIE1vY2sgRHJhZ1Byb3ZpZGVyIHRvIGF2b2lkIEBkbmQta2l0IFJlYWN0IHZlcnNpb24gY29uZmxpY3RzXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuZGVzY3JpYmUoJ1Rvb2xNZW51JywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGxldCBvbkNoYW5nZVRvb2xzID0gamVzdC5mbigpO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIG9uQ2hhbmdlLm1vY2tDbGVhcigpO1xuICAgIG9uQ2hhbmdlVG9vbHMubW9ja0NsZWFyKCk7XG4gIH0pO1xuXG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ2hhbmdlVG9vbHMsXG4gICAgICBjdXJyZW50VG9vbFR5cGU6ICdwb2ludCcsXG4gICAgICB0b29sYmFyVG9vbHM6IFsncG9pbnQnLCAnbGluZSddLFxuICAgICAgbGFuZ3VhZ2U6ICdlbicsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFRvb2xNZW51IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIFRvZ2dsZUJhciB3aXRoIGNvcnJlY3QgcHJvcHMnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyB0b29sYmFyVG9vbHM6IFsncG9pbnQnLCAnbGluZScsICdjaXJjbGUnXSB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2NpcmNsZS9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdwYXNzZXMgY3VycmVudFRvb2xUeXBlIHRvIFRvZ2dsZUJhcicsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGN1cnJlbnRUb29sVHlwZTogJ2xpbmUnIH0pO1xuICAgICAgY29uc3Qgc2VsZWN0ZWRCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgZXhwZWN0KHNlbGVjdGVkQnV0dG9uKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaW50ZXJhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdjYWxscyBvbkNoYW5nZSB3aGVuIHRvb2wgaXMgc2VsZWN0ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXJDb21wb25lbnQoKTtcblxuICAgICAgY29uc3QgbGluZUJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKGxpbmVCdXR0b24pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdsaW5lJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgb25DaGFuZ2VUb29scyB3aGVuIHRvb2xzIG9yZGVyIGNoYW5nZXMnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBkcmFnZ2FibGVUb29sczogdHJ1ZSB9KTtcbiAgICAgIC8vIE5vdGU6IERyYWctYW5kLWRyb3AgdGVzdGluZyByZXF1aXJlcyBtb3JlIGNvbXBsZXggc2V0dXAgd2l0aCBAZG5kLWtpdC90ZXN0LXV0aWxzXG4gICAgICAvLyBGb3Igbm93LCB3ZSB2ZXJpZnkgdGhlIGNvbXBvbmVudCByZW5kZXJzIHdpdGggZHJhZ2dhYmxlVG9vbHMgZW5hYmxlZFxuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Rpc2FibGVzIHRvb2xzIHdoZW4gZGlzYWJsZWQgcHJvcCBpcyB0cnVlJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgZGlzYWJsZWQ6IHRydWUgfSk7XG4gICAgICBjb25zdCBwb2ludEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgZXhwZWN0KHBvaW50QnV0dG9uKS50b0JlRGlzYWJsZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUksU0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQW9DLFNBQUFLLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQUUsTUFBQSxDQUFBYyx5QkFBQSxHQUFBZCxNQUFBLENBQUFlLGdCQUFBLENBQUFsQixDQUFBLEVBQUFHLE1BQUEsQ0FBQWMseUJBQUEsQ0FBQWYsQ0FBQSxLQUFBSCxPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxHQUFBYSxPQUFBLFdBQUFkLENBQUEsSUFBQUUsTUFBQSxDQUFBZ0IsY0FBQSxDQUFBbkIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQU4sQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBO0FBRXBDO0FBQ0FvQixJQUFJLENBQUNDLElBQUksQ0FBQyxlQUFlLEVBQUU7RUFBQSxPQUFPO0lBQ2hDQyxZQUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQUMsSUFBQTtNQUFBLElBQUtDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO01BQUEsb0JBQU8zQixNQUFBLFlBQUE0QixhQUFBO1FBQUssZUFBWTtNQUFlLEdBQUVELFFBQWMsQ0FBQztJQUFBO0VBQ25GLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEUsUUFBUSxDQUFDLFVBQVUsRUFBRSxZQUFNO0VBQ3pCLElBQUlDLFFBQVEsR0FBR1AsSUFBSSxDQUFDUSxFQUFFLENBQUMsQ0FBQztFQUN4QixJQUFJQyxhQUFhLEdBQUdULElBQUksQ0FBQ1EsRUFBRSxDQUFDLENBQUM7RUFFN0JFLFVBQVUsQ0FBQyxZQUFNO0lBQ2ZILFFBQVEsQ0FBQ0ksU0FBUyxDQUFDLENBQUM7SUFDcEJGLGFBQWEsQ0FBQ0UsU0FBUyxDQUFDLENBQUM7RUFDM0IsQ0FBQyxDQUFDO0VBRUYsSUFBTUMsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxNQUFNLEVBQUs7SUFDbEMsSUFBTUMsUUFBUSxHQUFHO01BQ2ZDLFNBQVMsRUFBRSxXQUFXO01BQ3RCUixRQUFRLEVBQVJBLFFBQVE7TUFDUkUsYUFBYSxFQUFiQSxhQUFhO01BQ2JPLGVBQWUsRUFBRSxPQUFPO01BQ3hCQyxZQUFZLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO01BQy9CQyxRQUFRLEVBQUU7SUFDWixDQUFDO0lBQ0QsSUFBTUMsS0FBSyxHQUFBM0IsYUFBQSxDQUFBQSxhQUFBLEtBQVFzQixRQUFRLEdBQUtELE1BQU0sQ0FBRTtJQUN4QyxPQUFPLElBQUFPLGlCQUFNLGVBQUMzQyxNQUFBLFlBQUE0QixhQUFBLENBQUMzQixTQUFBLFdBQVEsRUFBS3lDLEtBQVEsQ0FBQyxDQUFDO0VBQ3hDLENBQUM7RUFFRGIsUUFBUSxDQUFDLFdBQVcsRUFBRSxZQUFNO0lBQzFCZSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsWUFBTTtNQUNuQyxJQUFBQyxnQkFBQSxHQUFzQlYsZUFBZSxDQUFDLENBQUM7UUFBL0JXLFNBQVMsR0FBQUQsZ0JBQUEsQ0FBVEMsU0FBUztNQUNqQkMsTUFBTSxDQUFDRCxTQUFTLENBQUNFLFVBQVUsQ0FBQyxDQUFDQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQztJQUVGTCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtNQUMvQ1QsZUFBZSxDQUFDO1FBQUVLLFlBQVksRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUTtNQUFFLENBQUMsQ0FBQztNQUM5RE8sTUFBTSxDQUFDRyxpQkFBTSxDQUFDQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztNQUN0REYsTUFBTSxDQUFDRyxpQkFBTSxDQUFDQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztNQUNyREYsTUFBTSxDQUFDRyxpQkFBTSxDQUFDQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUM7SUFFRkwsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLFlBQU07TUFDOUNULGVBQWUsQ0FBQztRQUFFSSxlQUFlLEVBQUU7TUFBTyxDQUFDLENBQUM7TUFDNUMsSUFBTWEsY0FBYyxHQUFHRixpQkFBTSxDQUFDQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLE9BQU8sQ0FBQyxRQUFRLENBQUM7TUFDbEVOLE1BQU0sQ0FBQ0ssY0FBYyxDQUFDLENBQUNILGlCQUFpQixDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0VBRUZwQixRQUFRLENBQUMsY0FBYyxFQUFFLFlBQU07SUFDN0JlLEVBQUUsQ0FBQyxzQ0FBc0MsbUJBQUFVLGtCQUFBLDBCQUFBQyxZQUFBLFlBQUFDLElBQUEsQ0FBRSxTQUFBQyxRQUFBO01BQUEsSUFBQUMsSUFBQSxFQUFBQyxVQUFBO01BQUEsT0FBQUosWUFBQSxZQUFBSyxJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1lBQ25DTCxJQUFJLEdBQUdNLHFCQUFTLENBQUNDLEtBQUssQ0FBQyxDQUFDO1lBQzlCOUIsZUFBZSxDQUFDLENBQUM7WUFFWHdCLFVBQVUsR0FBR1QsaUJBQU0sQ0FBQ0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDRSxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQUFRLFFBQUEsQ0FBQUUsSUFBQTtZQUFBLE9BQ3hETCxJQUFJLENBQUNRLEtBQUssQ0FBQ1AsVUFBVSxDQUFDO1VBQUE7WUFFNUJaLE1BQU0sQ0FBQ2pCLFFBQVEsQ0FBQyxDQUFDcUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1VBQUM7VUFBQTtZQUFBLE9BQUFOLFFBQUEsQ0FBQU8sSUFBQTtRQUFBO01BQUEsR0FBQVgsT0FBQTtJQUFBLENBQy9DLEdBQUM7SUFFRmIsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLFlBQU07TUFDdkRULGVBQWUsQ0FBQztRQUFFa0MsY0FBYyxFQUFFO01BQUssQ0FBQyxDQUFDO01BQ3pDO01BQ0E7TUFDQXRCLE1BQU0sQ0FBQ0csaUJBQU0sQ0FBQ0MsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUNGLGlCQUFpQixDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDO0lBRUZMLEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxZQUFNO01BQ3BEVCxlQUFlLENBQUM7UUFBRW1DLFFBQVEsRUFBRTtNQUFLLENBQUMsQ0FBQztNQUNuQyxJQUFNQyxXQUFXLEdBQUdyQixpQkFBTSxDQUFDQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUNFLE9BQU8sQ0FBQyxRQUFRLENBQUM7TUFDaEVOLE1BQU0sQ0FBQ3dCLFdBQVcsQ0FBQyxDQUFDQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
5
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _undoRedo = _interopRequireDefault(require("../undo-redo"));
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
describe('UndoRedo', function () {
|
|
11
|
+
var onUndo = jest.fn();
|
|
12
|
+
var onRedo = jest.fn();
|
|
13
|
+
var onReset = jest.fn();
|
|
14
|
+
var renderComponent = function renderComponent(extras) {
|
|
15
|
+
var defaults = {
|
|
16
|
+
onUndo: onUndo,
|
|
17
|
+
onRedo: onRedo,
|
|
18
|
+
onReset: onReset
|
|
19
|
+
};
|
|
20
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
21
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_undoRedo["default"], props));
|
|
22
|
+
};
|
|
23
|
+
describe('rendering', function () {
|
|
24
|
+
it('renders without crashing', function () {
|
|
25
|
+
var _renderComponent = renderComponent(),
|
|
26
|
+
container = _renderComponent.container;
|
|
27
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdW5kb1JlZG8iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwib25VbmRvIiwiamVzdCIsImZuIiwib25SZWRvIiwib25SZXNldCIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91bmRvLXJlZG8udGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyIH0gZnJvbSAnQHBpZS1saWIvdGVzdC11dGlscyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFVuZG9SZWRvIGZyb20gJy4uL3VuZG8tcmVkbyc7XG5cbmRlc2NyaWJlKCdVbmRvUmVkbycsICgpID0+IHtcbiAgbGV0IG9uVW5kbyA9IGplc3QuZm4oKTtcbiAgbGV0IG9uUmVkbyA9IGplc3QuZm4oKTtcbiAgbGV0IG9uUmVzZXQgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG9uVW5kbyxcbiAgICAgIG9uUmVkbyxcbiAgICAgIG9uUmVzZXQsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFVuZG9SZWRvIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFBb0MsU0FBQUksUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxRQUFBZSxnQkFBQSxhQUFBaEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBRSxNQUFBLENBQUFjLHlCQUFBLEdBQUFkLE1BQUEsQ0FBQWUsZ0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsTUFBQSxDQUFBYyx5QkFBQSxDQUFBZixDQUFBLEtBQUFILE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLEdBQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBRSxNQUFBLENBQUFnQixjQUFBLENBQUFuQixDQUFBLEVBQUFDLENBQUEsRUFBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBTixDQUFBLEVBQUFELENBQUEsaUJBQUFELENBQUE7QUFFcENvQixRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07RUFDekIsSUFBSUMsTUFBTSxHQUFHQyxJQUFJLENBQUNDLEVBQUUsQ0FBQyxDQUFDO0VBQ3RCLElBQUlDLE1BQU0sR0FBR0YsSUFBSSxDQUFDQyxFQUFFLENBQUMsQ0FBQztFQUN0QixJQUFJRSxPQUFPLEdBQUdILElBQUksQ0FBQ0MsRUFBRSxDQUFDLENBQUM7RUFDdkIsSUFBTUcsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxNQUFNLEVBQUs7SUFDbEMsSUFBTUMsUUFBUSxHQUFHO01BQ2ZQLE1BQU0sRUFBTkEsTUFBTTtNQUNORyxNQUFNLEVBQU5BLE1BQU07TUFDTkMsT0FBTyxFQUFQQTtJQUNGLENBQUM7SUFDRCxJQUFNSSxLQUFLLEdBQUFqQixhQUFBLENBQUFBLGFBQUEsS0FBUWdCLFFBQVEsR0FBS0QsTUFBTSxDQUFFO0lBQ3hDLE9BQU8sSUFBQUcsaUJBQU0sZUFBQ2xDLE1BQUEsWUFBQW1DLGFBQUEsQ0FBQ2pDLFNBQUEsV0FBUSxFQUFLK0IsS0FBUSxDQUFDLENBQUM7RUFDeEMsQ0FBQztFQUNEVCxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07SUFDMUJZLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO01BQ25DLElBQUFDLGdCQUFBLEdBQXNCUCxlQUFlLENBQUMsQ0FBQztRQUEvQlEsU0FBUyxHQUFBRCxnQkFBQSxDQUFUQyxTQUFTO01BQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _react = require("react");
|
|
4
|
+
var _useDebounce = require("../use-debounce");
|
|
5
|
+
jest.useFakeTimers();
|
|
6
|
+
jest.mock('react', function () {
|
|
7
|
+
return {
|
|
8
|
+
useState: jest.fn(),
|
|
9
|
+
useEffect: jest.fn(function (fn, deps) {
|
|
10
|
+
return fn();
|
|
11
|
+
})
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
describe('useDebounce', function () {
|
|
15
|
+
it('..', function () {
|
|
16
|
+
var debouncedValue = null;
|
|
17
|
+
var setDebouncedValue = jest.fn();
|
|
18
|
+
_react.useState.mockReturnValue([debouncedValue, setDebouncedValue]);
|
|
19
|
+
(0, _useDebounce.useDebounce)('foo', 1000);
|
|
20
|
+
jest.runAllTimers();
|
|
21
|
+
expect(setDebouncedValue).toHaveBeenCalledWith('foo');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZURlYm91bmNlIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJtb2NrIiwidXNlU3RhdGUiLCJmbiIsInVzZUVmZmVjdCIsImRlcHMiLCJkZXNjcmliZSIsIml0IiwiZGVib3VuY2VkVmFsdWUiLCJzZXREZWJvdW5jZWRWYWx1ZSIsIm1vY2tSZXR1cm5WYWx1ZSIsInVzZURlYm91bmNlIiwicnVuQWxsVGltZXJzIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3VzZS1kZWJvdW5jZS50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4uL3VzZS1kZWJvdW5jZSc7XG5cbmplc3QudXNlRmFrZVRpbWVycygpO1xuXG5qZXN0Lm1vY2soJ3JlYWN0JywgKCkgPT4gKHtcbiAgdXNlU3RhdGU6IGplc3QuZm4oKSxcbiAgdXNlRWZmZWN0OiBqZXN0LmZuKChmbiwgZGVwcykgPT4gZm4oKSksXG59KSk7XG5cbmRlc2NyaWJlKCd1c2VEZWJvdW5jZScsICgpID0+IHtcbiAgaXQoJy4uJywgKCkgPT4ge1xuICAgIGNvbnN0IGRlYm91bmNlZFZhbHVlID0gbnVsbDtcbiAgICBjb25zdCBzZXREZWJvdW5jZWRWYWx1ZSA9IGplc3QuZm4oKTtcblxuICAgIHVzZVN0YXRlLm1vY2tSZXR1cm5WYWx1ZShbZGVib3VuY2VkVmFsdWUsIHNldERlYm91bmNlZFZhbHVlXSk7XG4gICAgdXNlRGVib3VuY2UoJ2ZvbycsIDEwMDApO1xuICAgIGplc3QucnVuQWxsVGltZXJzKCk7XG4gICAgZXhwZWN0KHNldERlYm91bmNlZFZhbHVlKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCgnZm9vJyk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsWUFBQSxHQUFBRCxPQUFBO0FBRUFFLElBQUksQ0FBQ0MsYUFBYSxDQUFDLENBQUM7QUFFcEJELElBQUksQ0FBQ0UsSUFBSSxDQUFDLE9BQU8sRUFBRTtFQUFBLE9BQU87SUFDeEJDLFFBQVEsRUFBRUgsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztJQUNuQkMsU0FBUyxFQUFFTCxJQUFJLENBQUNJLEVBQUUsQ0FBQyxVQUFDQSxFQUFFLEVBQUVFLElBQUk7TUFBQSxPQUFLRixFQUFFLENBQUMsQ0FBQztJQUFBO0VBQ3ZDLENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSEcsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFNO0VBQzVCQyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQU07SUFDYixJQUFNQyxjQUFjLEdBQUcsSUFBSTtJQUMzQixJQUFNQyxpQkFBaUIsR0FBR1YsSUFBSSxDQUFDSSxFQUFFLENBQUMsQ0FBQztJQUVuQ0QsZUFBUSxDQUFDUSxlQUFlLENBQUMsQ0FBQ0YsY0FBYyxFQUFFQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdELElBQUFFLHdCQUFXLEVBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztJQUN4QlosSUFBSSxDQUFDYSxZQUFZLENBQUMsQ0FBQztJQUNuQkMsTUFBTSxDQUFDSixpQkFBaUIsQ0FBQyxDQUFDSyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7RUFDdkQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.xy = exports.scaleMock = exports.graphProps = void 0;
|
|
7
|
+
var _scaleMock = exports.scaleMock = function scaleMock() {
|
|
8
|
+
var fn = jest.fn(function (n) {
|
|
9
|
+
return n;
|
|
10
|
+
});
|
|
11
|
+
fn.invert = jest.fn(function (n) {
|
|
12
|
+
return n;
|
|
13
|
+
});
|
|
14
|
+
fn.domain = jest.fn(function () {
|
|
15
|
+
return fn;
|
|
16
|
+
});
|
|
17
|
+
fn.range = jest.fn(function () {
|
|
18
|
+
return fn;
|
|
19
|
+
});
|
|
20
|
+
fn.copy = jest.fn(function () {
|
|
21
|
+
return _scaleMock();
|
|
22
|
+
});
|
|
23
|
+
return fn;
|
|
24
|
+
};
|
|
25
|
+
var graphProps = exports.graphProps = function graphProps() {
|
|
26
|
+
var dmin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
27
|
+
var dmax = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
28
|
+
var rmin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
29
|
+
var rmax = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
|
|
30
|
+
return {
|
|
31
|
+
scale: {
|
|
32
|
+
x: _scaleMock(),
|
|
33
|
+
y: _scaleMock()
|
|
34
|
+
},
|
|
35
|
+
snap: {
|
|
36
|
+
x: jest.fn(function (n) {
|
|
37
|
+
return n;
|
|
38
|
+
}),
|
|
39
|
+
y: jest.fn(function (n) {
|
|
40
|
+
return n;
|
|
41
|
+
})
|
|
42
|
+
},
|
|
43
|
+
domain: {
|
|
44
|
+
min: dmin,
|
|
45
|
+
max: dmax,
|
|
46
|
+
step: 1
|
|
47
|
+
},
|
|
48
|
+
range: {
|
|
49
|
+
min: rmin,
|
|
50
|
+
max: rmax,
|
|
51
|
+
step: 1
|
|
52
|
+
},
|
|
53
|
+
size: {
|
|
54
|
+
width: 400,
|
|
55
|
+
height: 400
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
var xy = exports.xy = function xy(x, y, index) {
|
|
60
|
+
var out = {
|
|
61
|
+
x: x,
|
|
62
|
+
y: y,
|
|
63
|
+
index: index
|
|
64
|
+
};
|
|
65
|
+
if (!Number.isFinite(index)) {
|
|
66
|
+
delete out.index;
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2FsZU1vY2siLCJleHBvcnRzIiwiZm4iLCJqZXN0IiwibiIsImludmVydCIsImRvbWFpbiIsInJhbmdlIiwiY29weSIsImdyYXBoUHJvcHMiLCJkbWluIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZG1heCIsInJtaW4iLCJybWF4Iiwic2NhbGUiLCJ4IiwieSIsInNuYXAiLCJtaW4iLCJtYXgiLCJzdGVwIiwic2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwieHkiLCJpbmRleCIsIm91dCIsIk51bWJlciIsImlzRmluaXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2NhbGVNb2NrID0gKCkgPT4ge1xuICBjb25zdCBmbiA9IGplc3QuZm4oKG4pID0+IG4pO1xuICBmbi5pbnZlcnQgPSBqZXN0LmZuKChuKSA9PiBuKTtcbiAgZm4uZG9tYWluID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLnJhbmdlID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLmNvcHkgPSBqZXN0LmZuKCgpID0+IHNjYWxlTW9jaygpKTtcbiAgcmV0dXJuIGZuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdyYXBoUHJvcHMgPSAoZG1pbiA9IDAsIGRtYXggPSAxLCBybWluID0gMCwgcm1heCA9IDEpID0+ICh7XG4gIHNjYWxlOiB7XG4gICAgeDogc2NhbGVNb2NrKCksXG4gICAgeTogc2NhbGVNb2NrKCksXG4gIH0sXG4gIHNuYXA6IHtcbiAgICB4OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgICB5OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgfSxcbiAgZG9tYWluOiB7XG4gICAgbWluOiBkbWluLFxuICAgIG1heDogZG1heCxcbiAgICBzdGVwOiAxLFxuICB9LFxuICByYW5nZToge1xuICAgIG1pbjogcm1pbixcbiAgICBtYXg6IHJtYXgsXG4gICAgc3RlcDogMSxcbiAgfSxcbiAgc2l6ZToge1xuICAgIHdpZHRoOiA0MDAsXG4gICAgaGVpZ2h0OiA0MDAsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHh5ID0gKHgsIHksIGluZGV4KSA9PiB7XG4gIGNvbnN0IG91dCA9IHsgeCwgeSwgaW5kZXggfTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgZGVsZXRlIG91dC5pbmRleDtcbiAgfVxuICByZXR1cm4gb3V0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sSUFBTUEsVUFBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDN0IsSUFBTUUsRUFBRSxHQUFHQyxJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO0lBQUEsT0FBS0EsQ0FBQztFQUFBLEVBQUM7RUFDNUJGLEVBQUUsQ0FBQ0csTUFBTSxHQUFHRixJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO0lBQUEsT0FBS0EsQ0FBQztFQUFBLEVBQUM7RUFDN0JGLEVBQUUsQ0FBQ0ksTUFBTSxHQUFHSCxJQUFJLENBQUNELEVBQUUsQ0FBQztJQUFBLE9BQU1BLEVBQUU7RUFBQSxFQUFDO0VBQzdCQSxFQUFFLENBQUNLLEtBQUssR0FBR0osSUFBSSxDQUFDRCxFQUFFLENBQUM7SUFBQSxPQUFNQSxFQUFFO0VBQUEsRUFBQztFQUM1QkEsRUFBRSxDQUFDTSxJQUFJLEdBQUdMLElBQUksQ0FBQ0QsRUFBRSxDQUFDO0lBQUEsT0FBTUYsVUFBUyxDQUFDLENBQUM7RUFBQSxFQUFDO0VBQ3BDLE9BQU9FLEVBQUU7QUFDWCxDQUFDO0FBRU0sSUFBTU8sVUFBVSxHQUFBUixPQUFBLENBQUFRLFVBQUEsR0FBRyxTQUFiQSxVQUFVQSxDQUFBO0VBQUEsSUFBSUMsSUFBSSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUcsSUFBSSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUksSUFBSSxHQUFBSixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUssSUFBSSxHQUFBTCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsT0FBTTtJQUNyRU0sS0FBSyxFQUFFO01BQ0xDLENBQUMsRUFBRWxCLFVBQVMsQ0FBQyxDQUFDO01BQ2RtQixDQUFDLEVBQUVuQixVQUFTLENBQUM7SUFDZixDQUFDO0lBQ0RvQixJQUFJLEVBQUU7TUFDSkYsQ0FBQyxFQUFFZixJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO1FBQUEsT0FBS0EsQ0FBQztNQUFBLEVBQUM7TUFDcEJlLENBQUMsRUFBRWhCLElBQUksQ0FBQ0QsRUFBRSxDQUFDLFVBQUNFLENBQUM7UUFBQSxPQUFLQSxDQUFDO01BQUE7SUFDckIsQ0FBQztJQUNERSxNQUFNLEVBQUU7TUFDTmUsR0FBRyxFQUFFWCxJQUFJO01BQ1RZLEdBQUcsRUFBRVIsSUFBSTtNQUNUUyxJQUFJLEVBQUU7SUFDUixDQUFDO0lBQ0RoQixLQUFLLEVBQUU7TUFDTGMsR0FBRyxFQUFFTixJQUFJO01BQ1RPLEdBQUcsRUFBRU4sSUFBSTtNQUNUTyxJQUFJLEVBQUU7SUFDUixDQUFDO0lBQ0RDLElBQUksRUFBRTtNQUNKQyxLQUFLLEVBQUUsR0FBRztNQUNWQyxNQUFNLEVBQUU7SUFDVjtFQUNGLENBQUM7QUFBQSxDQUFDO0FBRUssSUFBTUMsRUFBRSxHQUFBMUIsT0FBQSxDQUFBMEIsRUFBQSxHQUFHLFNBQUxBLEVBQUVBLENBQUlULENBQUMsRUFBRUMsQ0FBQyxFQUFFUyxLQUFLLEVBQUs7RUFDakMsSUFBTUMsR0FBRyxHQUFHO0lBQUVYLENBQUMsRUFBREEsQ0FBQztJQUFFQyxDQUFDLEVBQURBLENBQUM7SUFBRVMsS0FBSyxFQUFMQTtFQUFNLENBQUM7RUFDM0IsSUFBSSxDQUFDRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDLEVBQUU7SUFDM0IsT0FBT0MsR0FBRyxDQUFDRCxLQUFLO0VBQ2xCO0VBQ0EsT0FBT0MsR0FBRztBQUNaLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|