@pie-lib/graphing 3.2.0-next.0 → 3.2.0-next.2
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__/bg.test.js +282 -0
- package/lib/__tests__/coordinates-label.test.js +276 -0
- package/lib/__tests__/graph-with-controls.test.js +275 -0
- package/lib/__tests__/graph.test.js +927 -0
- package/lib/__tests__/grid-setup.test.js +729 -0
- package/lib/__tests__/grid.test.js +29 -0
- package/lib/__tests__/key-legend.test.js +321 -0
- package/lib/__tests__/label-svg-icon.test.js +373 -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 +197 -0
- package/lib/__tests__/tool-menu.test.js +151 -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/__tests__/actions.test.js +108 -0
- package/lib/container/__tests__/index.test.js +503 -0
- package/lib/container/__tests__/marks.test.js +259 -0
- package/lib/container/__tests__/middleware.test.js +244 -0
- package/lib/container/__tests__/reducer.test.js +450 -0
- 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 +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 +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 +65 -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 +615 -0
- package/lib/tools/circle/__tests__/index.test.js +576 -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 +64 -0
- package/lib/tools/exponential/__tests__/index.test.js +828 -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 +64 -0
- package/lib/tools/parabola/__tests__/index.test.js +564 -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 +434 -0
- package/lib/tools/point/__tests__/index.test.js +262 -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 +485 -0
- package/lib/tools/polygon/__tests__/index.test.js +303 -0
- package/lib/tools/polygon/__tests__/line.test.js +50 -0
- package/lib/tools/polygon/__tests__/polygon.test.js +85 -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 +90 -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 -12
- package/LICENSE.md +0 -5
|
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbWFya0xhYmVsIiwiX3V0aWxzIiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwiamVzdCIsImZuIiwiaW5wdXRSZWYiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJtYXJrIiwieCIsInkiLCJncmFwaFByb3BzIiwiZ2V0R3JhcGhQcm9wcyIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIk1hcmtMYWJlbCIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCIsIl9yZW5kZXJDb21wb25lbnQyIiwiYXNzZXJ0UG9zaXRpb24iLCJyZWN0IiwiZXhwZWN0ZWQiLCJjb25jYXQiLCJ3aWR0aCIsImhlaWdodCIsInJlc3VsdCIsInBvc2l0aW9uIiwidG9FcXVhbCIsImFzc2VydENvb3JkaW5hdGVzIiwicG9zIiwibGVmdCIsInRvcCIsImNvb3JkaW5hdGVzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy9tYXJrLWxhYmVsLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvb3JkaW5hdGVzLCBNYXJrTGFiZWwsIHBvc2l0aW9uIH0gZnJvbSAnLi4vbWFyay1sYWJlbCc7XG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ01hcmtMYWJlbCcsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBsZXQgaW5wdXRSZWYgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgaW5wdXRSZWYsXG4gICAgICBtYXJrOiB7IHg6IDEsIHk6IDEgfSxcbiAgICAgIGdyYXBoUHJvcHM6IGdldEdyYXBoUHJvcHMoMCwgMTAsIDAsIDEwKSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8TWFya0xhYmVsIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaWZmZXJlbnQgbWFyayBwb3NpdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBtYXJrOiB7IHg6IDEwLCB5OiAxMCB9IH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgncG9zaXRpb24nLCAoKSA9PiB7XG4gIGNvbnN0IGFzc2VydFBvc2l0aW9uID0gKG1hcmssIHJlY3QsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwke21hcmsueX0gKyAke3JlY3Qud2lkdGh9LCR7cmVjdC5oZWlnaHR9ID0+ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgLy8gd2Ugc2V0IHJhbmdlLm1pbiB0byBhIHZhbHVlIGJlY2F1c2UgaW4gcGl4ZWxzIC0gdGhlIGdyZWF0ZXIgdGhlIFkgdGhlIGxvd2VyIGRvd24gb24gdGhlIHNjcmVlbi5cbiAgICAgIGNvbnN0IGdyYXBoUHJvcHMgPSBnZXRHcmFwaFByb3BzKDAsIDEyLCAxMiwgMCk7XG4gICAgICBjb25zdCByZXN1bHQgPSBwb3NpdGlvbihncmFwaFByb3BzLCBtYXJrLCByZWN0KTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAxMCB9LCAndG9wLWxlZnQnKTtcbiAgYXNzZXJ0UG9zaXRpb24oeyB4OiAwLCB5OiAwIH0sIHsgd2lkdGg6IDEsIGhlaWdodDogMSB9LCAnYm90dG9tLXJpZ2h0Jyk7XG4gIGFzc2VydFBvc2l0aW9uKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAxMCwgaGVpZ2h0OiAwIH0sICdib3R0b20tbGVmdCcpO1xuICBhc3NlcnRQb3NpdGlvbih7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAxMCB9LCAndG9wLXJpZ2h0Jyk7XG59KTtcblxuZGVzY3JpYmUoJ2Nvb3JkaW5hdGVzJywgKCkgPT4ge1xuICBjb25zdCBhc3NlcnRDb29yZGluYXRlcyA9IChtYXJrLCByZWN0LCBwb3MsIGV4cGVjdGVkKSA9PiB7XG4gICAgaXQoYCR7bWFyay54fSwgJHttYXJrLnl9IC0+ICR7cG9zfSA9ICR7ZXhwZWN0ZWQubGVmdH0sICR7ZXhwZWN0ZWQudG9wfWAsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGNvb3JkaW5hdGVzKGdldEdyYXBoUHJvcHMoKSwgbWFyaywgcmVjdCwgcG9zKTtcbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgIH0pO1xuICB9O1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtbGVmdCcsIHsgbGVmdDogLTUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1sZWZ0JywgeyBsZWZ0OiAtNSwgdG9wOiA1IH0pO1xuICBhc3NlcnRDb29yZGluYXRlcyh7IHg6IDAsIHk6IDAgfSwgeyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0sICd0b3AtcmlnaHQnLCB7IGxlZnQ6IDUsIHRvcDogLTUgfSk7XG4gIGFzc2VydENvb3JkaW5hdGVzKHsgeDogMCwgeTogMCB9LCB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfSwgJ2JvdHRvbS1yaWdodCcsIHtcbiAgICBsZWZ0OiA1LFxuICAgIHRvcDogNSxcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFzRCxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFF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
|
|
@@ -0,0 +1,197 @@
|
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
10
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _toggleBar = require("../toggle-bar");
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
jest.mock('@pie-lib/drag', function () {
|
|
16
|
+
return {
|
|
17
|
+
DragProvider: function DragProvider(_ref) {
|
|
18
|
+
var children = _ref.children;
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
+
"data-testid": "drag-provider"
|
|
21
|
+
}, children);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
jest.mock('@dnd-kit/core', function () {
|
|
26
|
+
return {
|
|
27
|
+
useDraggable: jest.fn(function () {
|
|
28
|
+
return {
|
|
29
|
+
attributes: {
|
|
30
|
+
role: 'button',
|
|
31
|
+
tabIndex: 0
|
|
32
|
+
},
|
|
33
|
+
listeners: {
|
|
34
|
+
onPointerDown: jest.fn()
|
|
35
|
+
},
|
|
36
|
+
setNodeRef: jest.fn(),
|
|
37
|
+
transform: null,
|
|
38
|
+
transition: null,
|
|
39
|
+
isDragging: false
|
|
40
|
+
};
|
|
41
|
+
}),
|
|
42
|
+
useDroppable: jest.fn(function () {
|
|
43
|
+
return {
|
|
44
|
+
setNodeRef: jest.fn(),
|
|
45
|
+
isOver: false,
|
|
46
|
+
active: null
|
|
47
|
+
};
|
|
48
|
+
})
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
jest.mock('@dnd-kit/utilities', function () {
|
|
52
|
+
return {
|
|
53
|
+
CSS: {
|
|
54
|
+
Transform: {
|
|
55
|
+
toString: jest.fn(function (transform) {
|
|
56
|
+
return transform ? 'translate3d(0, 0, 0)' : '';
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
jest.mock('@dnd-kit/sortable', function () {
|
|
63
|
+
return {
|
|
64
|
+
arrayMove: jest.fn(function (array, from, to) {
|
|
65
|
+
var newArray = (0, _toConsumableArray2["default"])(array);
|
|
66
|
+
var _newArray$splice = newArray.splice(from, 1),
|
|
67
|
+
_newArray$splice2 = (0, _slicedToArray2["default"])(_newArray$splice, 1),
|
|
68
|
+
removed = _newArray$splice2[0];
|
|
69
|
+
newArray.splice(to, 0, removed);
|
|
70
|
+
return newArray;
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
jest.mock('@pie-lib/translator', function () {
|
|
75
|
+
return {
|
|
76
|
+
translator: {
|
|
77
|
+
t: function t(key) {
|
|
78
|
+
var parts = key.split('.');
|
|
79
|
+
return parts[parts.length - 1];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
describe('ToggleBar', function () {
|
|
85
|
+
var onChange = jest.fn();
|
|
86
|
+
var onChangeToolsOrder = jest.fn();
|
|
87
|
+
beforeEach(function () {
|
|
88
|
+
onChange.mockClear();
|
|
89
|
+
onChangeToolsOrder.mockClear();
|
|
90
|
+
});
|
|
91
|
+
var renderComponent = function renderComponent(extras) {
|
|
92
|
+
var defaults = {
|
|
93
|
+
className: 'className',
|
|
94
|
+
onChange: onChange,
|
|
95
|
+
onChangeToolsOrder: onChangeToolsOrder,
|
|
96
|
+
options: ['point', 'line'],
|
|
97
|
+
language: 'en'
|
|
98
|
+
};
|
|
99
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
100
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toggleBar.ToggleBar, props));
|
|
101
|
+
};
|
|
102
|
+
describe('rendering', function () {
|
|
103
|
+
it('renders without crashing', function () {
|
|
104
|
+
var _renderComponent = renderComponent(),
|
|
105
|
+
container = _renderComponent.container;
|
|
106
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
107
|
+
});
|
|
108
|
+
it('renders tool buttons for valid tools', function () {
|
|
109
|
+
renderComponent({
|
|
110
|
+
options: ['point', 'line', 'circle']
|
|
111
|
+
});
|
|
112
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
113
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
114
|
+
expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
|
|
115
|
+
});
|
|
116
|
+
it('does not render invalid tool options', function () {
|
|
117
|
+
renderComponent({
|
|
118
|
+
options: ['point', 'invalid-tool', 'line']
|
|
119
|
+
});
|
|
120
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
121
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
122
|
+
expect(_testUtils.screen.queryByText(/invalid-tool/i)).not.toBeInTheDocument();
|
|
123
|
+
});
|
|
124
|
+
it('highlights selected tool', function () {
|
|
125
|
+
var _renderComponent2 = renderComponent({
|
|
126
|
+
selectedToolType: 'line'
|
|
127
|
+
}),
|
|
128
|
+
container = _renderComponent2.container;
|
|
129
|
+
var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
130
|
+
expect(selectedButton).toHaveAttribute('value', 'line');
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe('interactions', function () {
|
|
134
|
+
it('calls onChange when tool button is clicked', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
135
|
+
var user, pointButton;
|
|
136
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
137
|
+
while (1) switch (_context.prev = _context.next) {
|
|
138
|
+
case 0:
|
|
139
|
+
user = _userEvent["default"].setup();
|
|
140
|
+
renderComponent({
|
|
141
|
+
options: ['point', 'line']
|
|
142
|
+
});
|
|
143
|
+
pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
144
|
+
_context.next = 1;
|
|
145
|
+
return user.click(pointButton);
|
|
146
|
+
case 1:
|
|
147
|
+
expect(onChange).toHaveBeenCalledWith('point');
|
|
148
|
+
case 2:
|
|
149
|
+
case "end":
|
|
150
|
+
return _context.stop();
|
|
151
|
+
}
|
|
152
|
+
}, _callee);
|
|
153
|
+
})));
|
|
154
|
+
it('calls onChange with selected tool type', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
155
|
+
var user, lineButton;
|
|
156
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
157
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
158
|
+
case 0:
|
|
159
|
+
user = _userEvent["default"].setup();
|
|
160
|
+
renderComponent({
|
|
161
|
+
options: ['point', 'line'],
|
|
162
|
+
selectedToolType: 'point'
|
|
163
|
+
});
|
|
164
|
+
lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
165
|
+
_context2.next = 1;
|
|
166
|
+
return user.click(lineButton);
|
|
167
|
+
case 1:
|
|
168
|
+
expect(onChange).toHaveBeenCalledWith('line');
|
|
169
|
+
case 2:
|
|
170
|
+
case "end":
|
|
171
|
+
return _context2.stop();
|
|
172
|
+
}
|
|
173
|
+
}, _callee2);
|
|
174
|
+
})));
|
|
175
|
+
it('disables buttons when disabled prop is true', function () {
|
|
176
|
+
renderComponent({
|
|
177
|
+
disabled: true,
|
|
178
|
+
options: ['point', 'line']
|
|
179
|
+
});
|
|
180
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
181
|
+
var lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
182
|
+
expect(pointButton).toBeDisabled();
|
|
183
|
+
expect(lineButton).toBeDisabled();
|
|
184
|
+
});
|
|
185
|
+
it('does not call onChange when disabled', function () {
|
|
186
|
+
renderComponent({
|
|
187
|
+
disabled: true,
|
|
188
|
+
options: ['point']
|
|
189
|
+
});
|
|
190
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
191
|
+
expect(pointButton).toBeDisabled();
|
|
192
|
+
// Note: Cannot test click on disabled button with pointer-events: none
|
|
193
|
+
// The disabled state is verified above
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3RvZ2dsZUJhciIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiamVzdCIsIm1vY2siLCJEcmFnUHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJjcmVhdGVFbGVtZW50IiwidXNlRHJhZ2dhYmxlIiwiZm4iLCJhdHRyaWJ1dGVzIiwicm9sZSIsInRhYkluZGV4IiwibGlzdGVuZXJzIiwib25Qb2ludGVyRG93biIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiaXNEcmFnZ2luZyIsInVzZURyb3BwYWJsZSIsImlzT3ZlciIsImFjdGl2ZSIsIkNTUyIsIlRyYW5zZm9ybSIsInRvU3RyaW5nIiwiYXJyYXlNb3ZlIiwiYXJyYXkiLCJmcm9tIiwidG8iLCJuZXdBcnJheSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJfbmV3QXJyYXkkc3BsaWNlIiwic3BsaWNlIiwiX25ld0FycmF5JHNwbGljZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJyZW1vdmVkIiwidHJhbnNsYXRvciIsImtleSIsInBhcnRzIiwic3BsaXQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DaGFuZ2VUb29sc09yZGVyIiwiYmVmb3JlRWFjaCIsIm1vY2tDbGVhciIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NOYW1lIiwib3B0aW9ucyIsImxhbmd1YWdlIiwicHJvcHMiLCJyZW5kZXIiLCJUb2dnbGVCYXIiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJxdWVyeUJ5VGV4dCIsIm5vdCIsIl9yZW5kZXJDb21wb25lbnQyIiwic2VsZWN0ZWRUb29sVHlwZSIsInNlbGVjdGVkQnV0dG9uIiwiY2xvc2VzdCIsInRvSGF2ZUF0dHJpYnV0ZSIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwidXNlciIsInBvaW50QnV0dG9uIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJzdG9wIiwiX2NhbGxlZTIiLCJsaW5lQnV0dG9uIiwiX2NvbnRleHQyIiwiZGlzYWJsZWQiLCJ0b0JlRGlzYWJsZWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3RvZ2dsZS1iYXIudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IFRvZ2dsZUJhciB9IGZyb20gJy4uL3RvZ2dsZS1iYXInO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgdXNlRHJhZ2dhYmxlOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICB0YWJJbmRleDogMCxcbiAgICB9LFxuICAgIGxpc3RlbmVyczoge1xuICAgICAgb25Qb2ludGVyRG93bjogamVzdC5mbigpLFxuICAgIH0sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB0cmFuc2l0aW9uOiBudWxsLFxuICAgIGlzRHJhZ2dpbmc6IGZhbHNlLFxuICB9KSksXG4gIHVzZURyb3BwYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc092ZXI6IGZhbHNlLFxuICAgIGFjdGl2ZTogbnVsbCxcbiAgfSkpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L3V0aWxpdGllcycsICgpID0+ICh7XG4gIENTUzoge1xuICAgIFRyYW5zZm9ybToge1xuICAgICAgdG9TdHJpbmc6IGplc3QuZm4oKHRyYW5zZm9ybSkgPT4gKHRyYW5zZm9ybSA/ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScgOiAnJykpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQGRuZC1raXQvc29ydGFibGUnLCAoKSA9PiAoe1xuICBhcnJheU1vdmU6IGplc3QuZm4oKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCBbcmVtb3ZlZF0gPSBuZXdBcnJheS5zcGxpY2UoZnJvbSwgMSk7XG4gICAgbmV3QXJyYXkuc3BsaWNlKHRvLCAwLCByZW1vdmVkKTtcbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH0pLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL3RyYW5zbGF0b3InLCAoKSA9PiAoe1xuICB0cmFuc2xhdG9yOiB7XG4gICAgdDogKGtleSkgPT4ge1xuICAgICAgY29uc3QgcGFydHMgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgIHJldHVybiBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgICB9LFxuICB9LFxufSkpO1xuXG5kZXNjcmliZSgnVG9nZ2xlQmFyJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGxldCBvbkNoYW5nZVRvb2xzT3JkZXIgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gICAgb25DaGFuZ2VUb29sc09yZGVyLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNoYW5nZVRvb2xzT3JkZXIsXG4gICAgICBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSxcbiAgICAgIGxhbmd1YWdlOiAnZW4nLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxUb2dnbGVCYXIgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgdG9vbCBidXR0b25zIGZvciB2YWxpZCB0b29scycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZScsICdjaXJjbGUnXSB9KTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2NpcmNsZS9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdkb2VzIG5vdCByZW5kZXIgaW52YWxpZCB0b29sIG9wdGlvbnMnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBvcHRpb25zOiBbJ3BvaW50JywgJ2ludmFsaWQtdG9vbCcsICdsaW5lJ10gfSk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICAgIGV4cGVjdChzY3JlZW4ucXVlcnlCeVRleHQoL2ludmFsaWQtdG9vbC9pKSkubm90LnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGlnaGxpZ2h0cyBzZWxlY3RlZCB0b29sJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IHNlbGVjdGVkVG9vbFR5cGU6ICdsaW5lJyB9KTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkQnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGV4cGVjdChzZWxlY3RlZEJ1dHRvbikudG9IYXZlQXR0cmlidXRlKCd2YWx1ZScsICdsaW5lJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gdG9vbCBidXR0b24gaXMgY2xpY2tlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IG9wdGlvbnM6IFsncG9pbnQnLCAnbGluZSddIH0pO1xuXG4gICAgICBjb25zdCBwb2ludEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuICAgICAgYXdhaXQgdXNlci5jbGljayhwb2ludEJ1dHRvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ3BvaW50Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FsbHMgb25DaGFuZ2Ugd2l0aCBzZWxlY3RlZCB0b29sIHR5cGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB1c2VyID0gdXNlckV2ZW50LnNldHVwKCk7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSwgc2VsZWN0ZWRUb29sVHlwZTogJ3BvaW50JyB9KTtcblxuICAgICAgY29uc3QgbGluZUJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBhd2FpdCB1c2VyLmNsaWNrKGxpbmVCdXR0b24pO1xuXG4gICAgICBleHBlY3Qob25DaGFuZ2UpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKCdsaW5lJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzYWJsZXMgYnV0dG9ucyB3aGVuIGRpc2FibGVkIHByb3AgaXMgdHJ1ZScsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRpc2FibGVkOiB0cnVlLCBvcHRpb25zOiBbJ3BvaW50JywgJ2xpbmUnXSB9KTtcblxuICAgICAgY29uc3QgcG9pbnRCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9wb2ludC9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGNvbnN0IGxpbmVCdXR0b24gPSBzY3JlZW4uZ2V0QnlUZXh0KC9saW5lL2kpLmNsb3Nlc3QoJ2J1dHRvbicpO1xuXG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgICAgZXhwZWN0KGxpbmVCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2RvZXMgbm90IGNhbGwgb25DaGFuZ2Ugd2hlbiBkaXNhYmxlZCcsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRpc2FibGVkOiB0cnVlLCBvcHRpb25zOiBbJ3BvaW50J10gfSk7XG5cbiAgICAgIGNvbnN0IHBvaW50QnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgICAgLy8gTm90ZTogQ2Fubm90IHRlc3QgY2xpY2sgb24gZGlzYWJsZWQgYnV0dG9uIHdpdGggcG9pbnRlci1ldmVudHM6IG5vbmVcbiAgICAgIC8vIFRoZSBkaXNhYmxlZCBzdGF0ZSBpcyB2ZXJpZmllZCBhYm92ZVxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUEwQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FB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
|
|
@@ -0,0 +1,151 @@
|
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _testUtils = require("@pie-lib/test-utils");
|
|
10
|
+
var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
|
|
11
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
|
+
var _toolMenu = _interopRequireDefault(require("../tool-menu"));
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
jest.mock('@pie-lib/drag', function () {
|
|
16
|
+
return {
|
|
17
|
+
DragProvider: function DragProvider(_ref) {
|
|
18
|
+
var children = _ref.children;
|
|
19
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
20
|
+
"data-testid": "drag-provider"
|
|
21
|
+
}, children);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
jest.mock('@dnd-kit/core', function () {
|
|
26
|
+
return {
|
|
27
|
+
useDraggable: jest.fn(function () {
|
|
28
|
+
return {
|
|
29
|
+
attributes: {
|
|
30
|
+
role: 'button',
|
|
31
|
+
tabIndex: 0
|
|
32
|
+
},
|
|
33
|
+
listeners: {
|
|
34
|
+
onPointerDown: jest.fn()
|
|
35
|
+
},
|
|
36
|
+
setNodeRef: jest.fn(),
|
|
37
|
+
transform: null,
|
|
38
|
+
transition: null,
|
|
39
|
+
isDragging: false
|
|
40
|
+
};
|
|
41
|
+
}),
|
|
42
|
+
useDroppable: jest.fn(function () {
|
|
43
|
+
return {
|
|
44
|
+
setNodeRef: jest.fn(),
|
|
45
|
+
isOver: false,
|
|
46
|
+
active: null
|
|
47
|
+
};
|
|
48
|
+
})
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
jest.mock('@dnd-kit/utilities', function () {
|
|
52
|
+
return {
|
|
53
|
+
CSS: {
|
|
54
|
+
Transform: {
|
|
55
|
+
toString: jest.fn(function (transform) {
|
|
56
|
+
return transform ? 'translate3d(0, 0, 0)' : '';
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
jest.mock('@dnd-kit/sortable', function () {
|
|
63
|
+
return {
|
|
64
|
+
arrayMove: jest.fn(function (array, from, to) {
|
|
65
|
+
var newArray = (0, _toConsumableArray2["default"])(array);
|
|
66
|
+
var _newArray$splice = newArray.splice(from, 1),
|
|
67
|
+
_newArray$splice2 = (0, _slicedToArray2["default"])(_newArray$splice, 1),
|
|
68
|
+
removed = _newArray$splice2[0];
|
|
69
|
+
newArray.splice(to, 0, removed);
|
|
70
|
+
return newArray;
|
|
71
|
+
})
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
describe('ToolMenu', function () {
|
|
75
|
+
var onChange = jest.fn();
|
|
76
|
+
var onChangeTools = jest.fn();
|
|
77
|
+
beforeEach(function () {
|
|
78
|
+
onChange.mockClear();
|
|
79
|
+
onChangeTools.mockClear();
|
|
80
|
+
});
|
|
81
|
+
var renderComponent = function renderComponent(extras) {
|
|
82
|
+
var defaults = {
|
|
83
|
+
className: 'className',
|
|
84
|
+
onChange: onChange,
|
|
85
|
+
onChangeTools: onChangeTools,
|
|
86
|
+
currentToolType: 'point',
|
|
87
|
+
toolbarTools: ['point', 'line'],
|
|
88
|
+
language: 'en'
|
|
89
|
+
};
|
|
90
|
+
var props = _objectSpread(_objectSpread({}, defaults), extras);
|
|
91
|
+
return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_toolMenu["default"], props));
|
|
92
|
+
};
|
|
93
|
+
describe('rendering', function () {
|
|
94
|
+
it('renders without crashing', function () {
|
|
95
|
+
var _renderComponent = renderComponent(),
|
|
96
|
+
container = _renderComponent.container;
|
|
97
|
+
expect(container.firstChild).toBeInTheDocument();
|
|
98
|
+
});
|
|
99
|
+
it('renders ToggleBar with correct props', function () {
|
|
100
|
+
renderComponent({
|
|
101
|
+
toolbarTools: ['point', 'line', 'circle']
|
|
102
|
+
});
|
|
103
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
104
|
+
expect(_testUtils.screen.getByText(/line/i)).toBeInTheDocument();
|
|
105
|
+
expect(_testUtils.screen.getByText(/circle/i)).toBeInTheDocument();
|
|
106
|
+
});
|
|
107
|
+
it('passes currentToolType to ToggleBar', function () {
|
|
108
|
+
renderComponent({
|
|
109
|
+
currentToolType: 'line'
|
|
110
|
+
});
|
|
111
|
+
var selectedButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
112
|
+
expect(selectedButton).toBeInTheDocument();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('interactions', function () {
|
|
116
|
+
it('calls onChange when tool is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
117
|
+
var user, lineButton;
|
|
118
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
119
|
+
while (1) switch (_context.prev = _context.next) {
|
|
120
|
+
case 0:
|
|
121
|
+
user = _userEvent["default"].setup();
|
|
122
|
+
renderComponent();
|
|
123
|
+
lineButton = _testUtils.screen.getByText(/line/i).closest('button');
|
|
124
|
+
_context.next = 1;
|
|
125
|
+
return user.click(lineButton);
|
|
126
|
+
case 1:
|
|
127
|
+
expect(onChange).toHaveBeenCalledWith('line');
|
|
128
|
+
case 2:
|
|
129
|
+
case "end":
|
|
130
|
+
return _context.stop();
|
|
131
|
+
}
|
|
132
|
+
}, _callee);
|
|
133
|
+
})));
|
|
134
|
+
it('calls onChangeTools when tools order changes', function () {
|
|
135
|
+
renderComponent({
|
|
136
|
+
draggableTools: true
|
|
137
|
+
});
|
|
138
|
+
// Note: Drag-and-drop testing requires more complex setup with @dnd-kit/test-utils
|
|
139
|
+
// For now, we verify the component renders with draggableTools enabled
|
|
140
|
+
expect(_testUtils.screen.getByText(/point/i)).toBeInTheDocument();
|
|
141
|
+
});
|
|
142
|
+
it('disables tools when disabled prop is true', function () {
|
|
143
|
+
renderComponent({
|
|
144
|
+
disabled: true
|
|
145
|
+
});
|
|
146
|
+
var pointButton = _testUtils.screen.getByText(/point/i).closest('button');
|
|
147
|
+
expect(pointButton).toBeDisabled();
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl91c2VyRXZlbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX3Rvb2xNZW51Iiwib3duS2V5cyIsImUiLCJyIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJqZXN0IiwibW9jayIsIkRyYWdQcm92aWRlciIsIl9yZWYiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJ1c2VEcmFnZ2FibGUiLCJmbiIsImF0dHJpYnV0ZXMiLCJyb2xlIiwidGFiSW5kZXgiLCJsaXN0ZW5lcnMiLCJvblBvaW50ZXJEb3duIiwic2V0Tm9kZVJlZiIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJpc0RyYWdnaW5nIiwidXNlRHJvcHBhYmxlIiwiaXNPdmVyIiwiYWN0aXZlIiwiQ1NTIiwiVHJhbnNmb3JtIiwidG9TdHJpbmciLCJhcnJheU1vdmUiLCJhcnJheSIsImZyb20iLCJ0byIsIm5ld0FycmF5IiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIl9uZXdBcnJheSRzcGxpY2UiLCJzcGxpY2UiLCJfbmV3QXJyYXkkc3BsaWNlMiIsIl9zbGljZWRUb0FycmF5MiIsInJlbW92ZWQiLCJkZXNjcmliZSIsIm9uQ2hhbmdlIiwib25DaGFuZ2VUb29scyIsImJlZm9yZUVhY2giLCJtb2NrQ2xlYXIiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzTmFtZSIsImN1cnJlbnRUb29sVHlwZSIsInRvb2xiYXJUb29scyIsImxhbmd1YWdlIiwicHJvcHMiLCJyZW5kZXIiLCJpdCIsIl9yZW5kZXJDb21wb25lbnQiLCJjb250YWluZXIiLCJleHBlY3QiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJzY3JlZW4iLCJnZXRCeVRleHQiLCJzZWxlY3RlZEJ1dHRvbiIsImNsb3Nlc3QiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInVzZXIiLCJsaW5lQnV0dG9uIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJ1c2VyRXZlbnQiLCJzZXR1cCIsImNsaWNrIiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiLCJzdG9wIiwiZHJhZ2dhYmxlVG9vbHMiLCJkaXNhYmxlZCIsInBvaW50QnV0dG9uIiwidG9CZURpc2FibGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy90b29sLW1lbnUudGVzdC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVuZGVyLCBzY3JlZW4gfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCB1c2VyRXZlbnQgZnJvbSAnQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCBUb29sTWVudSBmcm9tICcuLi90b29sLW1lbnUnO1xuXG5qZXN0Lm1vY2soJ0BwaWUtbGliL2RyYWcnLCAoKSA9PiAoe1xuICBEcmFnUHJvdmlkZXI6ICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgZGF0YS10ZXN0aWQ9XCJkcmFnLXByb3ZpZGVyXCI+e2NoaWxkcmVufTwvZGl2Pixcbn0pKTtcblxuamVzdC5tb2NrKCdAZG5kLWtpdC9jb3JlJywgKCkgPT4gKHtcbiAgdXNlRHJhZ2dhYmxlOiBqZXN0LmZuKCgpID0+ICh7XG4gICAgYXR0cmlidXRlczoge1xuICAgICAgcm9sZTogJ2J1dHRvbicsXG4gICAgICB0YWJJbmRleDogMCxcbiAgICB9LFxuICAgIGxpc3RlbmVyczoge1xuICAgICAgb25Qb2ludGVyRG93bjogamVzdC5mbigpLFxuICAgIH0sXG4gICAgc2V0Tm9kZVJlZjogamVzdC5mbigpLFxuICAgIHRyYW5zZm9ybTogbnVsbCxcbiAgICB0cmFuc2l0aW9uOiBudWxsLFxuICAgIGlzRHJhZ2dpbmc6IGZhbHNlLFxuICB9KSksXG4gIHVzZURyb3BwYWJsZTogamVzdC5mbigoKSA9PiAoe1xuICAgIHNldE5vZGVSZWY6IGplc3QuZm4oKSxcbiAgICBpc092ZXI6IGZhbHNlLFxuICAgIGFjdGl2ZTogbnVsbCxcbiAgfSkpLFxufSkpO1xuXG5qZXN0Lm1vY2soJ0BkbmQta2l0L3V0aWxpdGllcycsICgpID0+ICh7XG4gIENTUzoge1xuICAgIFRyYW5zZm9ybToge1xuICAgICAgdG9TdHJpbmc6IGplc3QuZm4oKHRyYW5zZm9ybSkgPT4gKHRyYW5zZm9ybSA/ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScgOiAnJykpLFxuICAgIH0sXG4gIH0sXG59KSk7XG5cbmplc3QubW9jaygnQGRuZC1raXQvc29ydGFibGUnLCAoKSA9PiAoe1xuICBhcnJheU1vdmU6IGplc3QuZm4oKGFycmF5LCBmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCBbcmVtb3ZlZF0gPSBuZXdBcnJheS5zcGxpY2UoZnJvbSwgMSk7XG4gICAgbmV3QXJyYXkuc3BsaWNlKHRvLCAwLCByZW1vdmVkKTtcbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH0pLFxufSkpO1xuXG5kZXNjcmliZSgnVG9vbE1lbnUnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgbGV0IG9uQ2hhbmdlVG9vbHMgPSBqZXN0LmZuKCk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgb25DaGFuZ2UubW9ja0NsZWFyKCk7XG4gICAgb25DaGFuZ2VUb29scy5tb2NrQ2xlYXIoKTtcbiAgfSk7XG5cbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DaGFuZ2VUb29scyxcbiAgICAgIGN1cnJlbnRUb29sVHlwZTogJ3BvaW50JyxcbiAgICAgIHRvb2xiYXJUb29sczogWydwb2ludCcsICdsaW5lJ10sXG4gICAgICBsYW5ndWFnZTogJ2VuJyxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8VG9vbE1lbnUgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgVG9nZ2xlQmFyIHdpdGggY29ycmVjdCBwcm9wcycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IHRvb2xiYXJUb29sczogWydwb2ludCcsICdsaW5lJywgJ2NpcmNsZSddIH0pO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL3BvaW50L2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgICAgZXhwZWN0KHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvY2lyY2xlL2kpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Bhc3NlcyBjdXJyZW50VG9vbFR5cGUgdG8gVG9nZ2xlQmFyJywgKCkgPT4ge1xuICAgICAgcmVuZGVyQ29tcG9uZW50KHsgY3VycmVudFRvb2xUeXBlOiAnbGluZScgfSk7XG4gICAgICBjb25zdCBzZWxlY3RlZEJ1dHRvbiA9IHNjcmVlbi5nZXRCeVRleHQoL2xpbmUvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3Qoc2VsZWN0ZWRCdXR0b24pLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdpbnRlcmFjdGlvbnMnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlIHdoZW4gdG9vbCBpcyBzZWxlY3RlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHVzZXIgPSB1c2VyRXZlbnQuc2V0dXAoKTtcbiAgICAgIHJlbmRlckNvbXBvbmVudCgpO1xuXG4gICAgICBjb25zdCBsaW5lQnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvbGluZS9pKS5jbG9zZXN0KCdidXR0b24nKTtcbiAgICAgIGF3YWl0IHVzZXIuY2xpY2sobGluZUJ1dHRvbik7XG5cbiAgICAgIGV4cGVjdChvbkNoYW5nZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2xpbmUnKTtcbiAgICB9KTtcblxuICAgIGl0KCdjYWxscyBvbkNoYW5nZVRvb2xzIHdoZW4gdG9vbHMgb3JkZXIgY2hhbmdlcycsICgpID0+IHtcbiAgICAgIHJlbmRlckNvbXBvbmVudCh7IGRyYWdnYWJsZVRvb2xzOiB0cnVlIH0pO1xuICAgICAgLy8gTm90ZTogRHJhZy1hbmQtZHJvcCB0ZXN0aW5nIHJlcXVpcmVzIG1vcmUgY29tcGxleCBzZXR1cCB3aXRoIEBkbmQta2l0L3Rlc3QtdXRpbHNcbiAgICAgIC8vIEZvciBub3csIHdlIHZlcmlmeSB0aGUgY29tcG9uZW50IHJlbmRlcnMgd2l0aCBkcmFnZ2FibGVUb29scyBlbmFibGVkXG4gICAgICBleHBlY3Qoc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnZGlzYWJsZXMgdG9vbHMgd2hlbiBkaXNhYmxlZCBwcm9wIGlzIHRydWUnLCAoKSA9PiB7XG4gICAgICByZW5kZXJDb21wb25lbnQoeyBkaXNhYmxlZDogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IHBvaW50QnV0dG9uID0gc2NyZWVuLmdldEJ5VGV4dCgvcG9pbnQvaSkuY2xvc2VzdCgnYnV0dG9uJyk7XG4gICAgICBleHBlY3QocG9pbnRCdXR0b24pLnRvQmVEaXNhYmxlZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFJLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUFvQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENB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
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX3VzZURlYm91bmNlIiwiamVzdCIsInVzZUZha2VUaW1lcnMiLCJtb2NrIiwidXNlU3RhdGUiLCJmbiIsInVzZUVmZmVjdCIsImRlcHMiLCJkZXNjcmliZSIsIml0IiwiZGVib3VuY2VkVmFsdWUiLCJzZXREZWJvdW5jZWRWYWx1ZSIsIm1vY2tSZXR1cm5WYWx1ZSIsInVzZURlYm91bmNlIiwicnVuQWxsVGltZXJzIiwiZXhwZWN0IiwidG9IYXZlQmVlbkNhbGxlZFdpdGgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL3VzZS1kZWJvdW5jZS50ZXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuLi91c2UtZGVib3VuY2UnO1xuXG5qZXN0LnVzZUZha2VUaW1lcnMoKTtcblxuamVzdC5tb2NrKCdyZWFjdCcsICgpID0+ICh7XG4gIHVzZVN0YXRlOiBqZXN0LmZuKCksXG4gIHVzZUVmZmVjdDogamVzdC5mbigoZm4sIGRlcHMpID0+IGZuKCkpLFxufSkpO1xuXG5kZXNjcmliZSgndXNlRGVib3VuY2UnLCAoKSA9PiB7XG4gIGl0KCcuLicsICgpID0+IHtcbiAgICBjb25zdCBkZWJvdW5jZWRWYWx1ZSA9IG51bGw7XG4gICAgY29uc3Qgc2V0RGVib3VuY2VkVmFsdWUgPSBqZXN0LmZuKCk7XG5cbiAgICB1c2VTdGF0ZS5tb2NrUmV0dXJuVmFsdWUoW2RlYm91bmNlZFZhbHVlLCBzZXREZWJvdW5jZWRWYWx1ZV0pO1xuICAgIHVzZURlYm91bmNlKCdmb28nLCAxMDAwKTtcbiAgICBqZXN0LnJ1bkFsbFRpbWVycygpO1xuICAgIGV4cGVjdChzZXREZWJvdW5jZWRWYWx1ZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoJ2ZvbycpO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUVBRSxJQUFJLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0FBRXBCRCxJQUFJLENBQUNFLElBQUksQ0FBQyxPQUFPLEVBQUU7RUFBQSxPQUFPO0lBQ3hCQyxRQUFRLEVBQUVILElBQUksQ0FBQ0ksRUFBRSxDQUFDLENBQUM7SUFDbkJDLFNBQVMsRUFBRUwsSUFBSSxDQUFDSSxFQUFFLENBQUMsVUFBQ0EsRUFBRSxFQUFFRSxJQUFJO01BQUEsT0FBS0YsRUFBRSxDQUFDLENBQUM7SUFBQTtFQUN2QyxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUhHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsWUFBTTtFQUM1QkMsRUFBRSxDQUFDLElBQUksRUFBRSxZQUFNO0lBQ2IsSUFBTUMsY0FBYyxHQUFHLElBQUk7SUFDM0IsSUFBTUMsaUJBQWlCLEdBQUdWLElBQUksQ0FBQ0ksRUFBRSxDQUFDLENBQUM7SUFFbkNELGVBQVEsQ0FBQ1EsZUFBZSxDQUFDLENBQUNGLGNBQWMsRUFBRUMsaUJBQWlCLENBQUMsQ0FBQztJQUM3RCxJQUFBRSx3QkFBVyxFQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDeEJaLElBQUksQ0FBQ2EsWUFBWSxDQUFDLENBQUM7SUFDbkJDLE1BQU0sQ0FBQ0osaUJBQWlCLENBQUMsQ0FBQ0ssb0JBQW9CLENBQUMsS0FBSyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|