@pie-lib/graphing 2.48.0-mui-update.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +8 -116
  2. package/lib/__tests__/graph-with-controls.test.js +226 -0
  3. package/lib/__tests__/graph.test.js +187 -0
  4. package/lib/__tests__/grid.test.js +29 -0
  5. package/lib/__tests__/labels.test.js +61 -0
  6. package/lib/__tests__/mark-label.test.js +133 -0
  7. package/lib/__tests__/toggle-bar.test.js +150 -0
  8. package/lib/__tests__/tool-menu.test.js +101 -0
  9. package/lib/__tests__/undo-redo.test.js +31 -0
  10. package/lib/__tests__/use-debounce.test.js +24 -0
  11. package/lib/__tests__/utils.js +70 -0
  12. package/lib/__tests__/utils.test.js +123 -0
  13. package/lib/axis/__tests__/arrow.test.js +60 -0
  14. package/lib/axis/__tests__/axes.test.js +195 -0
  15. package/lib/axis/arrow.js +1 -1
  16. package/lib/axis/axes.js +1 -1
  17. package/lib/axis/index.js +1 -1
  18. package/lib/bg.js +1 -1
  19. package/lib/container/actions.js +1 -1
  20. package/lib/container/index.js +1 -1
  21. package/lib/container/marks.js +1 -1
  22. package/lib/container/middleware.js +1 -1
  23. package/lib/container/reducer.js +1 -1
  24. package/lib/coordinates-label.js +3 -1
  25. package/lib/coordinates-label.js.map +1 -1
  26. package/lib/graph-with-controls.js +1 -1
  27. package/lib/graph.js +1 -1
  28. package/lib/grid-setup.js +33 -39
  29. package/lib/grid-setup.js.map +1 -1
  30. package/lib/grid.js +1 -1
  31. package/lib/index.js +1 -1
  32. package/lib/key-legend.js +7 -8
  33. package/lib/key-legend.js.map +1 -1
  34. package/lib/label-svg-icon.js +1 -1
  35. package/lib/labels.js +7 -5
  36. package/lib/labels.js.map +1 -1
  37. package/lib/mark-label.js +17 -10
  38. package/lib/mark-label.js.map +1 -1
  39. package/lib/toggle-bar.js +12 -12
  40. package/lib/toggle-bar.js.map +1 -1
  41. package/lib/tool-menu.js +2 -4
  42. package/lib/tool-menu.js.map +1 -1
  43. package/lib/tools/absolute/__tests__/component.test.js +67 -0
  44. package/lib/tools/absolute/component.js +1 -1
  45. package/lib/tools/absolute/index.js +1 -1
  46. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  47. package/lib/tools/circle/__tests__/component.test.js +68 -0
  48. package/lib/tools/circle/bg-circle.js +1 -1
  49. package/lib/tools/circle/component.js +2 -3
  50. package/lib/tools/circle/component.js.map +1 -1
  51. package/lib/tools/circle/index.js +1 -1
  52. package/lib/tools/exponential/__tests__/component.test.js +66 -0
  53. package/lib/tools/exponential/component.js +1 -1
  54. package/lib/tools/exponential/index.js +1 -1
  55. package/lib/tools/index.js +1 -1
  56. package/lib/tools/line/__tests__/component.test.js +45 -0
  57. package/lib/tools/line/component.js +1 -1
  58. package/lib/tools/line/index.js +1 -1
  59. package/lib/tools/parabola/__tests__/component.test.js +66 -0
  60. package/lib/tools/parabola/component.js +1 -1
  61. package/lib/tools/parabola/index.js +1 -1
  62. package/lib/tools/point/__tests__/component.test.js +50 -0
  63. package/lib/tools/point/component.js +2 -2
  64. package/lib/tools/point/component.js.map +1 -1
  65. package/lib/tools/point/index.js +1 -1
  66. package/lib/tools/polygon/__tests__/component.test.js +85 -0
  67. package/lib/tools/polygon/__tests__/index.test.js +92 -0
  68. package/lib/tools/polygon/__tests__/line.test.js +29 -0
  69. package/lib/tools/polygon/__tests__/polygon.test.js +59 -0
  70. package/lib/tools/polygon/component.js +3 -3
  71. package/lib/tools/polygon/component.js.map +1 -1
  72. package/lib/tools/polygon/index.js +1 -1
  73. package/lib/tools/polygon/line.js +3 -3
  74. package/lib/tools/polygon/line.js.map +1 -1
  75. package/lib/tools/polygon/polygon.js +1 -1
  76. package/lib/tools/ray/__tests__/component.test.js +35 -0
  77. package/lib/tools/ray/component.js +1 -1
  78. package/lib/tools/ray/index.js +1 -1
  79. package/lib/tools/segment/__tests__/component.test.js +35 -0
  80. package/lib/tools/segment/component.js +1 -1
  81. package/lib/tools/segment/index.js +1 -1
  82. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  83. package/lib/tools/shared/arrow-head.js +1 -1
  84. package/lib/tools/shared/icons/CorrectSVG.js +10 -1
  85. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -1
  86. package/lib/tools/shared/icons/IncorrectSVG.js +10 -1
  87. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -1
  88. package/lib/tools/shared/icons/MissingSVG.js +10 -1
  89. package/lib/tools/shared/icons/MissingSVG.js.map +1 -1
  90. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  91. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  92. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +91 -0
  93. package/lib/tools/shared/line/index.js +15 -7
  94. package/lib/tools/shared/line/index.js.map +1 -1
  95. package/lib/tools/shared/line/line-path.js +2 -3
  96. package/lib/tools/shared/line/line-path.js.map +1 -1
  97. package/lib/tools/shared/line/with-root-edge.js +1 -1
  98. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  99. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  100. package/lib/tools/shared/point/arrow-point.js +2 -4
  101. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  102. package/lib/tools/shared/point/arrow.js +2 -3
  103. package/lib/tools/shared/point/arrow.js.map +1 -1
  104. package/lib/tools/shared/point/base-point.js +1 -1
  105. package/lib/tools/shared/point/index.js +1 -1
  106. package/lib/tools/shared/styles.js +1 -1
  107. package/lib/tools/shared/types.js +1 -1
  108. package/lib/tools/sine/__tests__/component.test.js +72 -0
  109. package/lib/tools/sine/component.js +1 -1
  110. package/lib/tools/sine/index.js +1 -1
  111. package/lib/tools/vector/__tests__/component.test.js +32 -0
  112. package/lib/tools/vector/component.js +1 -1
  113. package/lib/tools/vector/index.js +1 -1
  114. package/lib/undo-redo.js +1 -1
  115. package/lib/use-debounce.js +1 -1
  116. package/lib/utils.js +1 -1
  117. package/package.json +8 -8
  118. package/src/__tests__/graph-with-controls.test.jsx +28 -11
  119. package/src/__tests__/graph.test.jsx +104 -168
  120. package/src/__tests__/grid.test.jsx +8 -6
  121. package/src/__tests__/labels.test.jsx +25 -8
  122. package/src/__tests__/mark-label.test.jsx +12 -17
  123. package/src/__tests__/toggle-bar.test.jsx +92 -17
  124. package/src/__tests__/tool-menu.test.jsx +61 -12
  125. package/src/__tests__/undo-redo.test.jsx +7 -8
  126. package/src/__tests__/utils.js +3 -0
  127. package/src/axis/__tests__/arrow.test.jsx +16 -17
  128. package/src/axis/__tests__/axes.test.jsx +118 -122
  129. package/src/coordinates-label.jsx +1 -0
  130. package/src/grid-setup.jsx +34 -40
  131. package/src/key-legend.jsx +1 -1
  132. package/src/labels.jsx +3 -1
  133. package/src/mark-label.jsx +10 -1
  134. package/src/toggle-bar.jsx +2 -1
  135. package/src/tool-menu.jsx +1 -1
  136. package/src/tools/circle/__tests__/bg-circle.test.jsx +7 -9
  137. package/src/tools/circle/__tests__/component.test.jsx +17 -189
  138. package/src/tools/circle/component.jsx +1 -1
  139. package/src/tools/line/__tests__/component.test.jsx +7 -7
  140. package/src/tools/point/__tests__/component.test.jsx +18 -43
  141. package/src/tools/point/component.jsx +1 -1
  142. package/src/tools/polygon/__tests__/component.test.jsx +18 -162
  143. package/src/tools/polygon/__tests__/line.test.jsx +7 -10
  144. package/src/tools/polygon/__tests__/polygon.test.jsx +7 -8
  145. package/src/tools/polygon/component.jsx +2 -2
  146. package/src/tools/polygon/line.jsx +3 -2
  147. package/src/tools/ray/__tests__/component.test.jsx +7 -8
  148. package/src/tools/segment/__tests__/component.test.jsx +7 -8
  149. package/src/tools/shared/__tests__/arrow-head.test.jsx +14 -17
  150. package/src/tools/shared/icons/CorrectSVG.jsx +10 -0
  151. package/src/tools/shared/icons/IncorrectSVG.jsx +10 -0
  152. package/src/tools/shared/icons/MissingSVG.jsx +10 -0
  153. package/src/tools/shared/line/__tests__/index.test.jsx +19 -165
  154. package/src/tools/shared/line/__tests__/line-path.test.jsx +8 -8
  155. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +22 -22
  156. package/src/tools/shared/line/index.jsx +13 -5
  157. package/src/tools/shared/line/line-path.jsx +1 -1
  158. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +15 -11
  159. package/src/tools/shared/point/__tests__/base-point.test.jsx +14 -11
  160. package/src/tools/shared/point/arrow-point.jsx +1 -1
  161. package/src/tools/shared/point/arrow.jsx +1 -1
  162. package/src/tools/vector/__tests__/component.test.jsx +7 -8
  163. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +0 -237
  164. package/src/__tests__/__snapshots__/graph.test.jsx.snap +0 -211
  165. package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -54
  166. package/src/__tests__/__snapshots__/labels.test.jsx.snap +0 -30
  167. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -45
  168. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +0 -7
  169. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +0 -13
  170. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +0 -14
  171. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +0 -33
  172. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +0 -122
  173. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +0 -46
  174. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +0 -293
  175. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +0 -20
  176. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +0 -40
  177. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +0 -415
  178. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +0 -45
  179. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +0 -52
  180. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +0 -23
  181. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +0 -14
  182. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +0 -27
  183. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +0 -360
  184. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +0 -58
  185. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +0 -63
  186. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +0 -56
  187. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +0 -44
  188. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +0 -12
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _testUtils = require("@pie-lib/test-utils");
9
+ var _utils = require("./utils");
10
+ var _graph = _interopRequireWildcard(require("../graph"));
11
+ var _tools = require("../tools");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
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
+ describe('removeBuildingToolIfCurrentToolDiffers', function () {
16
+ var marks = [{
17
+ type: 'point',
18
+ x: 2,
19
+ y: 2,
20
+ label: 'Point',
21
+ showLabel: true
22
+ }, {
23
+ type: 'line',
24
+ from: {
25
+ x: 0,
26
+ y: 0
27
+ },
28
+ label: 'Line',
29
+ building: true
30
+ }];
31
+ it('keeps all marks if currentTool is the same', function () {
32
+ expect((0, _graph.removeBuildingToolIfCurrentToolDiffers)({
33
+ marks: marks,
34
+ currentTool: {
35
+ type: 'line'
36
+ }
37
+ })).toEqual(marks);
38
+ });
39
+ it('removes building marks if currentTool is different', function () {
40
+ expect((0, _graph.removeBuildingToolIfCurrentToolDiffers)({
41
+ marks: marks,
42
+ currentTool: {
43
+ type: 'different'
44
+ }
45
+ })).toEqual([marks[0]]);
46
+ });
47
+ });
48
+ describe('Graph', function () {
49
+ var onChangeMarks = jest.fn();
50
+ var defaultProps = _objectSpread({
51
+ className: 'className',
52
+ onChangeMarks: onChangeMarks,
53
+ tools: _tools.toolsArr,
54
+ domain: {
55
+ min: 0,
56
+ max: 1,
57
+ step: 1
58
+ },
59
+ range: {
60
+ min: 0,
61
+ max: 1,
62
+ step: 1
63
+ },
64
+ size: {
65
+ width: 400,
66
+ height: 400
67
+ },
68
+ marks: [{
69
+ type: 'point',
70
+ x: 2,
71
+ y: 2,
72
+ label: 'Point',
73
+ showLabel: true
74
+ }, {
75
+ type: 'line',
76
+ from: {
77
+ x: 0,
78
+ y: 0
79
+ },
80
+ to: {
81
+ x: 1,
82
+ y: 1
83
+ },
84
+ label: 'Line'
85
+ }]
86
+ }, (0, _utils.graphProps)());
87
+ beforeEach(function () {
88
+ onChangeMarks.mockClear();
89
+ });
90
+ describe('rendering', function () {
91
+ it('renders without crashing', function () {
92
+ var _render = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], defaultProps)),
93
+ container = _render.container;
94
+ expect(container.firstChild).toBeInTheDocument();
95
+ });
96
+ it('renders with currentTool', function () {
97
+ var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
98
+ currentTool: _tools.toolsArr[0]
99
+ });
100
+ var _render2 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], props)),
101
+ container = _render2.container;
102
+ expect(container.firstChild).toBeInTheDocument();
103
+ });
104
+ it('renders with marks', function () {
105
+ var _render3 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], defaultProps)),
106
+ container = _render3.container;
107
+ expect(container.firstChild).toBeInTheDocument();
108
+ });
109
+ it('renders with empty marks array', function () {
110
+ var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
111
+ marks: []
112
+ });
113
+ var _render4 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], props)),
114
+ container = _render4.container;
115
+ expect(container.firstChild).toBeInTheDocument();
116
+ });
117
+ it('renders with labelModeEnabled', function () {
118
+ var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
119
+ labelModeEnabled: true
120
+ });
121
+ var _render5 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], props)),
122
+ container = _render5.container;
123
+ expect(container.firstChild).toBeInTheDocument();
124
+ });
125
+ });
126
+ describe('props handling', function () {
127
+ it('calls onChangeMarks when marks prop changes', function () {
128
+ var _render6 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], defaultProps)),
129
+ rerender = _render6.rerender;
130
+ var newMarks = [{
131
+ type: 'point',
132
+ x: 3,
133
+ y: 3,
134
+ label: 'New Point',
135
+ showLabel: true
136
+ }];
137
+ rerender(/*#__PURE__*/_react["default"].createElement(_graph["default"], (0, _extends2["default"])({}, defaultProps, {
138
+ marks: newMarks
139
+ })));
140
+
141
+ // Component should render with new marks
142
+ // Note: onChangeMarks is called internally when marks are changed through user interaction,
143
+ // not when props change, so we just verify the component renders correctly
144
+ expect(onChangeMarks).not.toHaveBeenCalled();
145
+ });
146
+ it('handles undefined onChangeMarks gracefully', function () {
147
+ var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
148
+ onChangeMarks: undefined
149
+ });
150
+ var _render7 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], props)),
151
+ container = _render7.container;
152
+ expect(container.firstChild).toBeInTheDocument();
153
+ });
154
+ });
155
+ describe('removeBuildingToolIfCurrentToolDiffers integration', function () {
156
+ it('removes building marks when currentTool changes', function () {
157
+ var marksWithBuilding = [{
158
+ type: 'point',
159
+ x: 2,
160
+ y: 2,
161
+ label: 'Point',
162
+ showLabel: true
163
+ }, {
164
+ type: 'line',
165
+ from: {
166
+ x: 0,
167
+ y: 0
168
+ },
169
+ to: {
170
+ x: 1,
171
+ y: 1
172
+ },
173
+ building: true
174
+ }];
175
+ var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
176
+ marks: marksWithBuilding,
177
+ currentTool: {
178
+ type: 'point'
179
+ } // Different from building mark type
180
+ });
181
+ var _render8 = (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_graph["default"], props)),
182
+ container = _render8.container;
183
+ expect(container.firstChild).toBeInTheDocument();
184
+ });
185
+ });
186
+ });
187
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl90ZXN0VXRpbHMiLCJfdXRpbHMiLCJfZ3JhcGgiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl90b29scyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZXNjcmliZSIsIm1hcmtzIiwidHlwZSIsIngiLCJ5IiwibGFiZWwiLCJzaG93TGFiZWwiLCJmcm9tIiwiYnVpbGRpbmciLCJpdCIsImV4cGVjdCIsInJlbW92ZUJ1aWxkaW5nVG9vbElmQ3VycmVudFRvb2xEaWZmZXJzIiwiY3VycmVudFRvb2wiLCJ0b0VxdWFsIiwib25DaGFuZ2VNYXJrcyIsImplc3QiLCJmbiIsImRlZmF1bHRQcm9wcyIsImNsYXNzTmFtZSIsInRvb2xzIiwidG9vbHNBcnIiLCJkb21haW4iLCJtaW4iLCJtYXgiLCJzdGVwIiwicmFuZ2UiLCJzaXplIiwid2lkdGgiLCJoZWlnaHQiLCJ0byIsImdyYXBoUHJvcHMiLCJiZWZvcmVFYWNoIiwibW9ja0NsZWFyIiwiX3JlbmRlciIsInJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJjb250YWluZXIiLCJmaXJzdENoaWxkIiwidG9CZUluVGhlRG9jdW1lbnQiLCJwcm9wcyIsIl9yZW5kZXIyIiwiX3JlbmRlcjMiLCJfcmVuZGVyNCIsImxhYmVsTW9kZUVuYWJsZWQiLCJfcmVuZGVyNSIsIl9yZW5kZXI2IiwicmVyZW5kZXIiLCJuZXdNYXJrcyIsIl9leHRlbmRzMiIsIm5vdCIsInRvSGF2ZUJlZW5DYWxsZWQiLCJ1bmRlZmluZWQiLCJfcmVuZGVyNyIsIm1hcmtzV2l0aEJ1aWxkaW5nIiwiX3JlbmRlcjgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvX190ZXN0c19fL2dyYXBoLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcblxuaW1wb3J0IHsgeHksIGdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IEdyYXBoLCB7IHJlbW92ZUJ1aWxkaW5nVG9vbElmQ3VycmVudFRvb2xEaWZmZXJzIH0gZnJvbSAnLi4vZ3JhcGgnO1xuaW1wb3J0IHsgdG9vbHNBcnIgfSBmcm9tICcuLi90b29scyc7XG5cbmRlc2NyaWJlKCdyZW1vdmVCdWlsZGluZ1Rvb2xJZkN1cnJlbnRUb29sRGlmZmVycycsICgpID0+IHtcbiAgbGV0IG1hcmtzID0gW1xuICAgIHtcbiAgICAgIHR5cGU6ICdwb2ludCcsXG4gICAgICB4OiAyLFxuICAgICAgeTogMixcbiAgICAgIGxhYmVsOiAnUG9pbnQnLFxuICAgICAgc2hvd0xhYmVsOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgZnJvbTogeyB4OiAwLCB5OiAwIH0sXG4gICAgICBsYWJlbDogJ0xpbmUnLFxuICAgICAgYnVpbGRpbmc6IHRydWUsXG4gICAgfSxcbiAgXTtcblxuICBpdCgna2VlcHMgYWxsIG1hcmtzIGlmIGN1cnJlbnRUb29sIGlzIHRoZSBzYW1lJywgKCkgPT4ge1xuICAgIGV4cGVjdChyZW1vdmVCdWlsZGluZ1Rvb2xJZkN1cnJlbnRUb29sRGlmZmVycyh7IG1hcmtzLCBjdXJyZW50VG9vbDogeyB0eXBlOiAnbGluZScgfSB9KSkudG9FcXVhbChtYXJrcyk7XG4gIH0pO1xuXG4gIGl0KCdyZW1vdmVzIGJ1aWxkaW5nIG1hcmtzIGlmIGN1cnJlbnRUb29sIGlzIGRpZmZlcmVudCcsICgpID0+IHtcbiAgICBleHBlY3QocmVtb3ZlQnVpbGRpbmdUb29sSWZDdXJyZW50VG9vbERpZmZlcnMoeyBtYXJrcywgY3VycmVudFRvb2w6IHsgdHlwZTogJ2RpZmZlcmVudCcgfSB9KSkudG9FcXVhbChbbWFya3NbMF1dKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0dyYXBoJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2VNYXJrcyA9IGplc3QuZm4oKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICBvbkNoYW5nZU1hcmtzLFxuICAgIHRvb2xzOiB0b29sc0FycixcbiAgICBkb21haW46IHsgbWluOiAwLCBtYXg6IDEsIHN0ZXA6IDEgfSxcbiAgICByYW5nZTogeyBtaW46IDAsIG1heDogMSwgc3RlcDogMSB9LFxuICAgIHNpemU6IHsgd2lkdGg6IDQwMCwgaGVpZ2h0OiA0MDAgfSxcbiAgICBtYXJrczogW1xuICAgICAge1xuICAgICAgICB0eXBlOiAncG9pbnQnLFxuICAgICAgICB4OiAyLFxuICAgICAgICB5OiAyLFxuICAgICAgICBsYWJlbDogJ1BvaW50JyxcbiAgICAgICAgc2hvd0xhYmVsOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICBmcm9tOiB7IHg6IDAsIHk6IDAgfSxcbiAgICAgICAgdG86IHsgeDogMSwgeTogMSB9LFxuICAgICAgICBsYWJlbDogJ0xpbmUnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIC4uLmdyYXBoUHJvcHMoKSxcbiAgfTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBvbkNoYW5nZU1hcmtzLm1vY2tDbGVhcigpO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyKDxHcmFwaCB7Li4uZGVmYXVsdFByb3BzfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGN1cnJlbnRUb29sJywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgY3VycmVudFRvb2w6IHRvb2xzQXJyWzBdLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyYXBoIHsuLi5wcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBtYXJrcycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyYXBoIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZW5kZXJzIHdpdGggZW1wdHkgbWFya3MgYXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgICBtYXJrczogW10sXG4gICAgICB9O1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8R3JhcGggey4uLnByb3BzfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRoIGxhYmVsTW9kZUVuYWJsZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wcyA9IHtcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxuICAgICAgICBsYWJlbE1vZGVFbmFibGVkOiB0cnVlLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyYXBoIHsuLi5wcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncHJvcHMgaGFuZGxpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ2NhbGxzIG9uQ2hhbmdlTWFya3Mgd2hlbiBtYXJrcyBwcm9wIGNoYW5nZXMnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IHJlcmVuZGVyIH0gPSByZW5kZXIoPEdyYXBoIHsuLi5kZWZhdWx0UHJvcHN9IC8+KTtcbiAgICAgIFxuICAgICAgY29uc3QgbmV3TWFya3MgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAncG9pbnQnLFxuICAgICAgICAgIHg6IDMsXG4gICAgICAgICAgeTogMyxcbiAgICAgICAgICBsYWJlbDogJ05ldyBQb2ludCcsXG4gICAgICAgICAgc2hvd0xhYmVsOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgcmVyZW5kZXIoPEdyYXBoIHsuLi5kZWZhdWx0UHJvcHN9IG1hcmtzPXtuZXdNYXJrc30gLz4pO1xuICAgICAgXG4gICAgICAvLyBDb21wb25lbnQgc2hvdWxkIHJlbmRlciB3aXRoIG5ldyBtYXJrc1xuICAgICAgLy8gTm90ZTogb25DaGFuZ2VNYXJrcyBpcyBjYWxsZWQgaW50ZXJuYWxseSB3aGVuIG1hcmtzIGFyZSBjaGFuZ2VkIHRocm91Z2ggdXNlciBpbnRlcmFjdGlvbixcbiAgICAgIC8vIG5vdCB3aGVuIHByb3BzIGNoYW5nZSwgc28gd2UganVzdCB2ZXJpZnkgdGhlIGNvbXBvbmVudCByZW5kZXJzIGNvcnJlY3RseVxuICAgICAgZXhwZWN0KG9uQ2hhbmdlTWFya3MpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnaGFuZGxlcyB1bmRlZmluZWQgb25DaGFuZ2VNYXJrcyBncmFjZWZ1bGx5JywgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgb25DaGFuZ2VNYXJrczogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXIoPEdyYXBoIHsuLi5wcm9wc30gLz4pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgncmVtb3ZlQnVpbGRpbmdUb29sSWZDdXJyZW50VG9vbERpZmZlcnMgaW50ZWdyYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3JlbW92ZXMgYnVpbGRpbmcgbWFya3Mgd2hlbiBjdXJyZW50VG9vbCBjaGFuZ2VzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbWFya3NXaXRoQnVpbGRpbmcgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAncG9pbnQnLFxuICAgICAgICAgIHg6IDIsXG4gICAgICAgICAgeTogMixcbiAgICAgICAgICBsYWJlbDogJ1BvaW50JyxcbiAgICAgICAgICBzaG93TGFiZWw6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgICAgZnJvbTogeyB4OiAwLCB5OiAwIH0sXG4gICAgICAgICAgdG86IHsgeDogMSwgeTogMSB9LFxuICAgICAgICAgIGJ1aWxkaW5nOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgICAgbWFya3M6IG1hcmtzV2l0aEJ1aWxkaW5nLFxuICAgICAgICBjdXJyZW50VG9vbDogeyB0eXBlOiAncG9pbnQnIH0sIC8vIERpZmZlcmVudCBmcm9tIGJ1aWxkaW5nIG1hcmsgdHlwZVxuICAgICAgfTtcblxuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlcig8R3JhcGggey4uLnByb3BzfSAvPik7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUFvQyxTQUFBSSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFB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
@@ -0,0 +1,29 @@
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 _grid = require("../grid");
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('Grid', function () {
12
+ var renderComponent = function renderComponent(extras) {
13
+ var defaults = {
14
+ classes: {},
15
+ className: 'className',
16
+ graphProps: (0, _utils.graphProps)()
17
+ };
18
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
19
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_grid.Grid, props));
20
+ };
21
+ describe('rendering', function () {
22
+ it('renders without crashing', function () {
23
+ var _renderComponent = renderComponent(),
24
+ container = _renderComponent.container;
25
+ expect(container.firstChild).toBeInTheDocument();
26
+ });
27
+ });
28
+ });
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZ3JpZCIsIl91dGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZGVzY3JpYmUiLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiR3JpZCIsIml0IiwiX3JlbmRlckNvbXBvbmVudCIsImNvbnRhaW5lciIsImV4cGVjdCIsImZpcnN0Q2hpbGQiLCJ0b0JlSW5UaGVEb2N1bWVudCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vZ3JpZC50ZXN0LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW5kZXIgfSBmcm9tICdAcGllLWxpYi90ZXN0LXV0aWxzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBHcmlkIH0gZnJvbSAnLi4vZ3JpZCc7XG5pbXBvcnQgeyBncmFwaFByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbmRlc2NyaWJlKCdHcmlkJywgKCkgPT4ge1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPEdyaWQgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFxQyxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUVyQ29CLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBTTtFQUNyQixJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUlDLE1BQU0sRUFBSztJQUNsQyxJQUFNQyxRQUFRLEdBQUc7TUFDZkMsT0FBTyxFQUFFLENBQUMsQ0FBQztNQUNYQyxTQUFTLEVBQUUsV0FBVztNQUN0QkMsVUFBVSxFQUFFLElBQUFBLGlCQUFVLEVBQUM7SUFDekIsQ0FBQztJQUNELElBQU1DLEtBQUssR0FBQWYsYUFBQSxDQUFBQSxhQUFBLEtBQVFXLFFBQVEsR0FBS0QsTUFBTSxDQUFFO0lBQ3hDLE9BQU8sSUFBQU0saUJBQU0sZUFBQ2pDLE1BQUEsWUFBQWtDLGFBQUEsQ0FBQ2hDLEtBQUEsQ0FBQWlDLElBQUksRUFBS0gsS0FBUSxDQUFDLENBQUM7RUFDcEMsQ0FBQztFQUNEUCxRQUFRLENBQUMsV0FBVyxFQUFFLFlBQU07SUFDMUJXLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO01BQ25DLElBQUFDLGdCQUFBLEdBQXNCWCxlQUFlLENBQUMsQ0FBQztRQUEvQlksU0FBUyxHQUFBRCxnQkFBQSxDQUFUQyxTQUFTO01BQ2pCQyxNQUFNLENBQUNELFNBQVMsQ0FBQ0UsVUFBVSxDQUFDLENBQUNDLGlCQUFpQixDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDO0VBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
6
+ var _testUtils = require("@pie-lib/test-utils");
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _labels = _interopRequireWildcard(require("../labels"));
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ describe('Labels', function () {
13
+ var onChange = jest.fn();
14
+ var renderComponent = function renderComponent(extras) {
15
+ var defaults = {
16
+ classes: {},
17
+ className: 'className',
18
+ onChange: onChange,
19
+ graphProps: {
20
+ size: {
21
+ width: 400,
22
+ height: 400
23
+ },
24
+ domain: {
25
+ min: 0,
26
+ max: 10,
27
+ step: 1,
28
+ padding: 0
29
+ },
30
+ range: {
31
+ min: 0,
32
+ max: 10,
33
+ step: 1,
34
+ padding: 0
35
+ }
36
+ }
37
+ };
38
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
39
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_labels["default"], props));
40
+ };
41
+ describe('rendering', function () {
42
+ it('renders without crashing', function () {
43
+ var _renderComponent = renderComponent(),
44
+ container = _renderComponent.container;
45
+ expect(container.firstChild).toBeInTheDocument();
46
+ });
47
+ });
48
+ });
49
+ describe('getTransform', function () {
50
+ var assertTransform = function assertTransform(side, expected) {
51
+ it("returns ".concat(expected, " for ").concat(side), function () {
52
+ var r = (0, _labels.getTransform)('left', 100, 100);
53
+ expect(r).toEqual('translate(-20, 50), rotate(-90)');
54
+ });
55
+ };
56
+ assertTransform('left', 'translate(-20, 50), rotate(-90)');
57
+ assertTransform('right', 'translate(130, 50), rotate(90)');
58
+ assertTransform('top', 'translate(50, -20), rotate(0)');
59
+ assertTransform('bottom', 'translate(50, 130), rotate(0)');
60
+ });
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbGFiZWxzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVzY3JpYmUiLCJvbkNoYW5nZSIsImplc3QiLCJmbiIsInJlbmRlckNvbXBvbmVudCIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImdyYXBoUHJvcHMiLCJzaXplIiwid2lkdGgiLCJoZWlnaHQiLCJkb21haW4iLCJtaW4iLCJtYXgiLCJzdGVwIiwicGFkZGluZyIsInJhbmdlIiwicHJvcHMiLCJyZW5kZXIiLCJjcmVhdGVFbGVtZW50IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiYXNzZXJ0VHJhbnNmb3JtIiwic2lkZSIsImV4cGVjdGVkIiwiY29uY2F0IiwiZ2V0VHJhbnNmb3JtIiwidG9FcXVhbCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vbGFiZWxzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IExhYmVscywgeyBnZXRUcmFuc2Zvcm0gfSBmcm9tICcuLi9sYWJlbHMnO1xuXG5kZXNjcmliZSgnTGFiZWxzJywgKCkgPT4ge1xuICBsZXQgb25DaGFuZ2UgPSBqZXN0LmZuKCk7XG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ3JhcGhQcm9wczoge1xuICAgICAgICBzaXplOiB7XG4gICAgICAgICAgd2lkdGg6IDQwMCxcbiAgICAgICAgICBoZWlnaHQ6IDQwMCxcbiAgICAgICAgfSxcbiAgICAgICAgZG9tYWluOiB7XG4gICAgICAgICAgbWluOiAwLFxuICAgICAgICAgIG1heDogMTAsXG4gICAgICAgICAgc3RlcDogMSxcbiAgICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICB9LFxuICAgICAgICByYW5nZToge1xuICAgICAgICAgIG1pbjogMCxcbiAgICAgICAgICBtYXg6IDEwLFxuICAgICAgICAgIHN0ZXA6IDEsXG4gICAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPExhYmVscyB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCgpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnZ2V0VHJhbnNmb3JtJywgKCkgPT4ge1xuICBjb25zdCBhc3NlcnRUcmFuc2Zvcm0gPSAoc2lkZSwgZXhwZWN0ZWQpID0+IHtcbiAgICBpdChgcmV0dXJucyAke2V4cGVjdGVkfSBmb3IgJHtzaWRlfWAsICgpID0+IHtcbiAgICAgIGNvbnN0IHIgPSBnZXRUcmFuc2Zvcm0oJ2xlZnQnLCAxMDAsIDEwMCk7XG4gICAgICBleHBlY3QocikudG9FcXVhbCgndHJhbnNsYXRlKC0yMCwgNTApLCByb3RhdGUoLTkwKScpO1xuICAgIH0pO1xuICB9O1xuXG4gIGFzc2VydFRyYW5zZm9ybSgnbGVmdCcsICd0cmFuc2xhdGUoLTIwLCA1MCksIHJvdGF0ZSgtOTApJyk7XG4gIGFzc2VydFRyYW5zZm9ybSgncmlnaHQnLCAndHJhbnNsYXRlKDEzMCwgNTApLCByb3RhdGUoOTApJyk7XG4gIGFzc2VydFRyYW5zZm9ybSgndG9wJywgJ3RyYW5zbGF0ZSg1MCwgLTIwKSwgcm90YXRlKDApJyk7XG4gIGFzc2VydFRyYW5zZm9ybSgnYm90dG9tJywgJ3RyYW5zbGF0ZSg1MCwgMTMwKSwgcm90YXRlKDApJyk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxPQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFBaUQsU0FBQUksd0JBQUFDLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFILHVCQUFBLFlBQUFBLHdCQUFBQyxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFN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QUNOQyxHQUFHLEVBQUUsRUFBRTtVQUNQQyxJQUFJLEVBQUUsQ0FBQztVQUNQQyxPQUFPLEVBQUU7UUFDWCxDQUFDO1FBQ0RDLEtBQUssRUFBRTtVQUNMSixHQUFHLEVBQUUsQ0FBQztVQUNOQyxHQUFHLEVBQUUsRUFBRTtVQUNQQyxJQUFJLEVBQUUsQ0FBQztVQUNQQyxPQUFPLEVBQUU7UUFDWDtNQUNGO0lBQ0YsQ0FBQztJQUNELElBQU1FLEtBQUssR0FBQTFCLGFBQUEsQ0FBQUEsYUFBQSxLQUFRYSxRQUFRLEdBQUtELE1BQU0sQ0FBRTtJQUN4QyxPQUFPLElBQUFlLGlCQUFNLGVBQUMxRCxNQUFBLFlBQUEyRCxhQUFBLENBQUN6RCxPQUFBLFdBQU0sRUFBS3VELEtBQVEsQ0FBQyxDQUFDO0VBQ3RDLENBQUM7RUFDRG5CLFFBQVEsQ0FBQyxXQUFXLEVBQUUsWUFBTTtJQUMxQnNCLEVBQUUsQ0FBQywwQkFBMEIsRUFBRSxZQUFNO01BQ25DLElBQUFDLGdCQUFBLEdBQXNCbkIsZUFBZSxDQUFDLENBQUM7UUFBL0JvQixTQUFTLEdBQUFELGdCQUFBLENBQVRDLFNBQVM7TUFDakJDLE1BQU0sQ0FBQ0QsU0FBUyxDQUFDRSxVQUFVLENBQUMsQ0FBQ0MsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUM7RUFDSixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRjNCLFFBQVEsQ0FBQyxjQUFjLEVBQUUsWUFBTTtFQUM3QixJQUFNNEIsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxJQUFJLEVBQUVDLFFBQVEsRUFBSztJQUMxQ1IsRUFBRSxZQUFBUyxNQUFBLENBQVlELFFBQVEsV0FBQUMsTUFBQSxDQUFRRixJQUFJLEdBQUksWUFBTTtNQUMxQyxJQUFNNUQsQ0FBQyxHQUFHLElBQUErRCxvQkFBWSxFQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO01BQ3hDUCxNQUFNLENBQUN4RCxDQUFDLENBQUMsQ0FBQ2dFLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztJQUN0RCxDQUFDLENBQUM7RUFDSixDQUFDO0VBRURMLGVBQWUsQ0FBQyxNQUFNLEVBQUUsaUNBQWlDLENBQUM7RUFDMURBLGVBQWUsQ0FBQyxPQUFPLEVBQUUsZ0NBQWdDLENBQUM7RUFDMURBLGVBQWUsQ0FBQyxLQUFLLEVBQUUsK0JBQStCLENBQUM7RUFDdkRBLGVBQWUsQ0FBQyxRQUFRLEVBQUUsK0JBQStCLENBQUM7QUFDNUQsQ0FBQyxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -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