@pie-lib/graphing 2.34.3-next.2 → 2.34.4-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/CHANGELOG.md +6 -76
  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 +20 -56
  16. package/lib/axis/arrow.js.map +1 -1
  17. package/lib/axis/axes.js +107 -195
  18. package/lib/axis/axes.js.map +1 -1
  19. package/lib/axis/index.js +2 -7
  20. package/lib/axis/index.js.map +1 -1
  21. package/lib/bg.js +22 -50
  22. package/lib/bg.js.map +1 -1
  23. package/lib/container/actions.js +3 -9
  24. package/lib/container/actions.js.map +1 -1
  25. package/lib/container/index.js +15 -60
  26. package/lib/container/index.js.map +1 -1
  27. package/lib/container/marks.js +2 -7
  28. package/lib/container/marks.js.map +1 -1
  29. package/lib/container/middleware.js +3 -9
  30. package/lib/container/middleware.js.map +1 -1
  31. package/lib/container/reducer.js +2 -9
  32. package/lib/container/reducer.js.map +1 -1
  33. package/lib/coordinates-label.js +25 -55
  34. package/lib/coordinates-label.js.map +1 -1
  35. package/lib/graph-with-controls.js +121 -185
  36. package/lib/graph-with-controls.js.map +1 -1
  37. package/lib/graph.js +60 -117
  38. package/lib/graph.js.map +1 -1
  39. package/lib/grid-setup.js +169 -225
  40. package/lib/grid-setup.js.map +1 -1
  41. package/lib/grid.js +30 -75
  42. package/lib/grid.js.map +1 -1
  43. package/lib/index.js +2 -14
  44. package/lib/index.js.map +1 -1
  45. package/lib/key-legend.js +41 -86
  46. package/lib/key-legend.js.map +1 -1
  47. package/lib/label-svg-icon.js +2 -8
  48. package/lib/label-svg-icon.js.map +1 -1
  49. package/lib/labels.js +66 -122
  50. package/lib/labels.js.map +1 -1
  51. package/lib/mark-label.js +121 -164
  52. package/lib/mark-label.js.map +1 -1
  53. package/lib/toggle-bar.js +156 -244
  54. package/lib/toggle-bar.js.map +1 -1
  55. package/lib/tool-menu.js +17 -51
  56. package/lib/tool-menu.js.map +1 -1
  57. package/lib/tools/absolute/__tests__/component.test.js +67 -0
  58. package/lib/tools/absolute/component.js +5 -11
  59. package/lib/tools/absolute/component.js.map +1 -1
  60. package/lib/tools/absolute/index.js +4 -17
  61. package/lib/tools/absolute/index.js.map +1 -1
  62. package/lib/tools/circle/__tests__/bg-circle.test.js +33 -0
  63. package/lib/tools/circle/__tests__/component.test.js +68 -0
  64. package/lib/tools/circle/bg-circle.js +43 -93
  65. package/lib/tools/circle/bg-circle.js.map +1 -1
  66. package/lib/tools/circle/component.js +79 -166
  67. package/lib/tools/circle/component.js.map +1 -1
  68. package/lib/tools/circle/index.js +4 -14
  69. package/lib/tools/circle/index.js.map +1 -1
  70. package/lib/tools/exponential/__tests__/component.test.js +66 -0
  71. package/lib/tools/exponential/component.js +5 -11
  72. package/lib/tools/exponential/component.js.map +1 -1
  73. package/lib/tools/exponential/index.js +4 -19
  74. package/lib/tools/exponential/index.js.map +1 -1
  75. package/lib/tools/index.js +4 -17
  76. package/lib/tools/index.js.map +1 -1
  77. package/lib/tools/line/__tests__/component.test.js +45 -0
  78. package/lib/tools/line/component.js +28 -49
  79. package/lib/tools/line/component.js.map +1 -1
  80. package/lib/tools/line/index.js +2 -7
  81. package/lib/tools/line/index.js.map +1 -1
  82. package/lib/tools/parabola/__tests__/component.test.js +66 -0
  83. package/lib/tools/parabola/component.js +5 -11
  84. package/lib/tools/parabola/component.js.map +1 -1
  85. package/lib/tools/parabola/index.js +4 -17
  86. package/lib/tools/parabola/index.js.map +1 -1
  87. package/lib/tools/point/__tests__/component.test.js +50 -0
  88. package/lib/tools/point/component.js +25 -72
  89. package/lib/tools/point/component.js.map +1 -1
  90. package/lib/tools/point/index.js +4 -12
  91. package/lib/tools/point/index.js.map +1 -1
  92. package/lib/tools/polygon/__tests__/component.test.js +85 -0
  93. package/lib/tools/polygon/__tests__/index.test.js +92 -0
  94. package/lib/tools/polygon/__tests__/line.test.js +29 -0
  95. package/lib/tools/polygon/__tests__/polygon.test.js +59 -0
  96. package/lib/tools/polygon/component.js +84 -185
  97. package/lib/tools/polygon/component.js.map +1 -1
  98. package/lib/tools/polygon/index.js +7 -24
  99. package/lib/tools/polygon/index.js.map +1 -1
  100. package/lib/tools/polygon/line.js +49 -92
  101. package/lib/tools/polygon/line.js.map +1 -1
  102. package/lib/tools/polygon/polygon.js +66 -99
  103. package/lib/tools/polygon/polygon.js.map +1 -1
  104. package/lib/tools/ray/__tests__/component.test.js +35 -0
  105. package/lib/tools/ray/component.js +42 -61
  106. package/lib/tools/ray/component.js.map +1 -1
  107. package/lib/tools/ray/index.js +2 -7
  108. package/lib/tools/ray/index.js.map +1 -1
  109. package/lib/tools/segment/__tests__/component.test.js +35 -0
  110. package/lib/tools/segment/component.js +26 -44
  111. package/lib/tools/segment/component.js.map +1 -1
  112. package/lib/tools/segment/index.js +2 -7
  113. package/lib/tools/segment/index.js.map +1 -1
  114. package/lib/tools/shared/__tests__/arrow-head.test.js +45 -0
  115. package/lib/tools/shared/arrow-head.js +70 -29
  116. package/lib/tools/shared/arrow-head.js.map +1 -1
  117. package/lib/tools/shared/icons/CorrectSVG.js +13 -9
  118. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -1
  119. package/lib/tools/shared/icons/IncorrectSVG.js +13 -9
  120. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -1
  121. package/lib/tools/shared/icons/MissingSVG.js +13 -9
  122. package/lib/tools/shared/icons/MissingSVG.js.map +1 -1
  123. package/lib/tools/shared/line/__tests__/index.test.js +124 -0
  124. package/lib/tools/shared/line/__tests__/line-path.test.js +62 -0
  125. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +91 -0
  126. package/lib/tools/shared/line/index.js +141 -194
  127. package/lib/tools/shared/line/index.js.map +1 -1
  128. package/lib/tools/shared/line/line-path.js +71 -102
  129. package/lib/tools/shared/line/line-path.js.map +1 -1
  130. package/lib/tools/shared/line/with-root-edge.js +23 -57
  131. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  132. package/lib/tools/shared/point/__tests__/arrow-point.test.js +127 -0
  133. package/lib/tools/shared/point/__tests__/base-point.test.js +122 -0
  134. package/lib/tools/shared/point/arrow-point.js +22 -63
  135. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  136. package/lib/tools/shared/point/arrow.js +24 -53
  137. package/lib/tools/shared/point/arrow.js.map +1 -1
  138. package/lib/tools/shared/point/base-point.js +55 -73
  139. package/lib/tools/shared/point/base-point.js.map +1 -1
  140. package/lib/tools/shared/point/index.js +23 -58
  141. package/lib/tools/shared/point/index.js.map +1 -1
  142. package/lib/tools/shared/styles.js +11 -39
  143. package/lib/tools/shared/styles.js.map +1 -1
  144. package/lib/tools/shared/types.js +3 -10
  145. package/lib/tools/shared/types.js.map +1 -1
  146. package/lib/tools/sine/__tests__/component.test.js +72 -0
  147. package/lib/tools/sine/component.js +9 -20
  148. package/lib/tools/sine/component.js.map +1 -1
  149. package/lib/tools/sine/index.js +4 -17
  150. package/lib/tools/sine/index.js.map +1 -1
  151. package/lib/tools/vector/__tests__/component.test.js +32 -0
  152. package/lib/tools/vector/component.js +25 -45
  153. package/lib/tools/vector/component.js.map +1 -1
  154. package/lib/tools/vector/index.js +2 -7
  155. package/lib/tools/vector/index.js.map +1 -1
  156. package/lib/undo-redo.js +30 -70
  157. package/lib/undo-redo.js.map +1 -1
  158. package/lib/use-debounce.js +5 -12
  159. package/lib/use-debounce.js.map +1 -1
  160. package/lib/utils.js +52 -129
  161. package/lib/utils.js.map +1 -1
  162. package/package.json +25 -29
  163. package/src/__tests__/graph-with-controls.test.jsx +28 -11
  164. package/src/__tests__/graph.test.jsx +104 -168
  165. package/src/__tests__/grid.test.jsx +8 -6
  166. package/src/__tests__/labels.test.jsx +25 -8
  167. package/src/__tests__/mark-label.test.jsx +12 -17
  168. package/src/__tests__/toggle-bar.test.jsx +92 -17
  169. package/src/__tests__/tool-menu.test.jsx +61 -12
  170. package/src/__tests__/undo-redo.test.jsx +7 -8
  171. package/src/__tests__/utils.js +3 -0
  172. package/src/axis/__tests__/arrow.test.jsx +16 -17
  173. package/src/axis/__tests__/axes.test.jsx +118 -122
  174. package/src/axis/arrow.jsx +7 -12
  175. package/src/axis/axes.jsx +45 -55
  176. package/src/coordinates-label.jsx +14 -18
  177. package/src/graph-with-controls.jsx +52 -59
  178. package/src/grid-setup.jsx +210 -206
  179. package/src/grid.jsx +2 -4
  180. package/src/key-legend.jsx +52 -56
  181. package/src/labels.jsx +23 -30
  182. package/src/mark-label.jsx +92 -81
  183. package/src/toggle-bar.jsx +135 -164
  184. package/src/tool-menu.jsx +1 -1
  185. package/src/tools/circle/__tests__/bg-circle.test.jsx +7 -9
  186. package/src/tools/circle/__tests__/component.test.jsx +17 -189
  187. package/src/tools/circle/bg-circle.jsx +20 -28
  188. package/src/tools/circle/component.jsx +28 -63
  189. package/src/tools/line/__tests__/component.test.jsx +7 -7
  190. package/src/tools/line/component.jsx +22 -15
  191. package/src/tools/point/__tests__/component.test.jsx +18 -43
  192. package/src/tools/point/component.jsx +1 -1
  193. package/src/tools/polygon/__tests__/component.test.jsx +18 -162
  194. package/src/tools/polygon/__tests__/line.test.jsx +7 -10
  195. package/src/tools/polygon/__tests__/polygon.test.jsx +7 -8
  196. package/src/tools/polygon/component.jsx +3 -4
  197. package/src/tools/polygon/line.jsx +30 -33
  198. package/src/tools/polygon/polygon.jsx +52 -45
  199. package/src/tools/ray/__tests__/component.test.jsx +7 -8
  200. package/src/tools/ray/component.jsx +38 -25
  201. package/src/tools/segment/__tests__/component.test.jsx +7 -8
  202. package/src/tools/segment/component.jsx +19 -18
  203. package/src/tools/shared/__tests__/arrow-head.test.jsx +14 -17
  204. package/src/tools/shared/arrow-head.jsx +60 -7
  205. package/src/tools/shared/icons/CorrectSVG.jsx +10 -0
  206. package/src/tools/shared/icons/IncorrectSVG.jsx +10 -0
  207. package/src/tools/shared/icons/MissingSVG.jsx +10 -0
  208. package/src/tools/shared/line/__tests__/index.test.jsx +19 -165
  209. package/src/tools/shared/line/__tests__/line-path.test.jsx +8 -8
  210. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +22 -22
  211. package/src/tools/shared/line/index.jsx +52 -7
  212. package/src/tools/shared/line/line-path.jsx +55 -59
  213. package/src/tools/shared/line/with-root-edge.jsx +1 -1
  214. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +15 -11
  215. package/src/tools/shared/point/__tests__/base-point.test.jsx +14 -11
  216. package/src/tools/shared/point/arrow-point.jsx +10 -24
  217. package/src/tools/shared/point/arrow.jsx +5 -11
  218. package/src/tools/shared/point/base-point.jsx +42 -19
  219. package/src/tools/shared/point/index.jsx +27 -44
  220. package/src/tools/vector/__tests__/component.test.jsx +7 -8
  221. package/src/tools/vector/component.jsx +11 -16
  222. package/src/undo-redo.jsx +19 -21
  223. package/esm/index.css +0 -847
  224. package/esm/index.js +0 -239949
  225. package/esm/index.js.map +0 -1
  226. package/esm/package.json +0 -3
  227. package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +0 -237
  228. package/src/__tests__/__snapshots__/graph.test.jsx.snap +0 -211
  229. package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -54
  230. package/src/__tests__/__snapshots__/labels.test.jsx.snap +0 -30
  231. package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -45
  232. package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +0 -7
  233. package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +0 -13
  234. package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +0 -14
  235. package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +0 -33
  236. package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +0 -122
  237. package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +0 -46
  238. package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +0 -293
  239. package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +0 -20
  240. package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +0 -40
  241. package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +0 -415
  242. package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +0 -45
  243. package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +0 -52
  244. package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +0 -23
  245. package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +0 -14
  246. package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +0 -27
  247. package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +0 -360
  248. package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +0 -58
  249. package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +0 -63
  250. package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +0 -56
  251. package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +0 -44
  252. package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +0 -12
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.xy = exports.scaleMock = exports.graphProps = void 0;
7
+ var _scaleMock = exports.scaleMock = function scaleMock() {
8
+ var fn = jest.fn(function (n) {
9
+ return n;
10
+ });
11
+ fn.invert = jest.fn(function (n) {
12
+ return n;
13
+ });
14
+ fn.domain = jest.fn(function () {
15
+ return fn;
16
+ });
17
+ fn.range = jest.fn(function () {
18
+ return fn;
19
+ });
20
+ fn.copy = jest.fn(function () {
21
+ return _scaleMock();
22
+ });
23
+ return fn;
24
+ };
25
+ var graphProps = exports.graphProps = function graphProps() {
26
+ var dmin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
27
+ var dmax = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
28
+ var rmin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
29
+ var rmax = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
30
+ return {
31
+ scale: {
32
+ x: _scaleMock(),
33
+ y: _scaleMock()
34
+ },
35
+ snap: {
36
+ x: jest.fn(function (n) {
37
+ return n;
38
+ }),
39
+ y: jest.fn(function (n) {
40
+ return n;
41
+ })
42
+ },
43
+ domain: {
44
+ min: dmin,
45
+ max: dmax,
46
+ step: 1
47
+ },
48
+ range: {
49
+ min: rmin,
50
+ max: rmax,
51
+ step: 1
52
+ },
53
+ size: {
54
+ width: 400,
55
+ height: 400
56
+ }
57
+ };
58
+ };
59
+ var xy = exports.xy = function xy(x, y, index) {
60
+ var out = {
61
+ x: x,
62
+ y: y,
63
+ index: index
64
+ };
65
+ if (!Number.isFinite(index)) {
66
+ delete out.index;
67
+ }
68
+ return out;
69
+ };
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzY2FsZU1vY2siLCJleHBvcnRzIiwiZm4iLCJqZXN0IiwibiIsImludmVydCIsImRvbWFpbiIsInJhbmdlIiwiY29weSIsImdyYXBoUHJvcHMiLCJkbWluIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZG1heCIsInJtaW4iLCJybWF4Iiwic2NhbGUiLCJ4IiwieSIsInNuYXAiLCJtaW4iLCJtYXgiLCJzdGVwIiwic2l6ZSIsIndpZHRoIiwiaGVpZ2h0IiwieHkiLCJpbmRleCIsIm91dCIsIk51bWJlciIsImlzRmluaXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL19fdGVzdHNfXy91dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc2NhbGVNb2NrID0gKCkgPT4ge1xuICBjb25zdCBmbiA9IGplc3QuZm4oKG4pID0+IG4pO1xuICBmbi5pbnZlcnQgPSBqZXN0LmZuKChuKSA9PiBuKTtcbiAgZm4uZG9tYWluID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLnJhbmdlID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLmNvcHkgPSBqZXN0LmZuKCgpID0+IHNjYWxlTW9jaygpKTtcbiAgcmV0dXJuIGZuO1xufTtcblxuZXhwb3J0IGNvbnN0IGdyYXBoUHJvcHMgPSAoZG1pbiA9IDAsIGRtYXggPSAxLCBybWluID0gMCwgcm1heCA9IDEpID0+ICh7XG4gIHNjYWxlOiB7XG4gICAgeDogc2NhbGVNb2NrKCksXG4gICAgeTogc2NhbGVNb2NrKCksXG4gIH0sXG4gIHNuYXA6IHtcbiAgICB4OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgICB5OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgfSxcbiAgZG9tYWluOiB7XG4gICAgbWluOiBkbWluLFxuICAgIG1heDogZG1heCxcbiAgICBzdGVwOiAxLFxuICB9LFxuICByYW5nZToge1xuICAgIG1pbjogcm1pbixcbiAgICBtYXg6IHJtYXgsXG4gICAgc3RlcDogMSxcbiAgfSxcbiAgc2l6ZToge1xuICAgIHdpZHRoOiA0MDAsXG4gICAgaGVpZ2h0OiA0MDAsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IHh5ID0gKHgsIHksIGluZGV4KSA9PiB7XG4gIGNvbnN0IG91dCA9IHsgeCwgeSwgaW5kZXggfTtcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoaW5kZXgpKSB7XG4gICAgZGVsZXRlIG91dC5pbmRleDtcbiAgfVxuICByZXR1cm4gb3V0O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQU8sSUFBTUEsVUFBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBRyxTQUFaQSxTQUFTQSxDQUFBLEVBQVM7RUFDN0IsSUFBTUUsRUFBRSxHQUFHQyxJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO0lBQUEsT0FBS0EsQ0FBQztFQUFBLEVBQUM7RUFDNUJGLEVBQUUsQ0FBQ0csTUFBTSxHQUFHRixJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO0lBQUEsT0FBS0EsQ0FBQztFQUFBLEVBQUM7RUFDN0JGLEVBQUUsQ0FBQ0ksTUFBTSxHQUFHSCxJQUFJLENBQUNELEVBQUUsQ0FBQztJQUFBLE9BQU1BLEVBQUU7RUFBQSxFQUFDO0VBQzdCQSxFQUFFLENBQUNLLEtBQUssR0FBR0osSUFBSSxDQUFDRCxFQUFFLENBQUM7SUFBQSxPQUFNQSxFQUFFO0VBQUEsRUFBQztFQUM1QkEsRUFBRSxDQUFDTSxJQUFJLEdBQUdMLElBQUksQ0FBQ0QsRUFBRSxDQUFDO0lBQUEsT0FBTUYsVUFBUyxDQUFDLENBQUM7RUFBQSxFQUFDO0VBQ3BDLE9BQU9FLEVBQUU7QUFDWCxDQUFDO0FBRU0sSUFBTU8sVUFBVSxHQUFBUixPQUFBLENBQUFRLFVBQUEsR0FBRyxTQUFiQSxVQUFVQSxDQUFBO0VBQUEsSUFBSUMsSUFBSSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUcsSUFBSSxHQUFBSCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUksSUFBSSxHQUFBSixTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsSUFBRUssSUFBSSxHQUFBTCxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0VBQUEsT0FBTTtJQUNyRU0sS0FBSyxFQUFFO01BQ0xDLENBQUMsRUFBRWxCLFVBQVMsQ0FBQyxDQUFDO01BQ2RtQixDQUFDLEVBQUVuQixVQUFTLENBQUM7SUFDZixDQUFDO0lBQ0RvQixJQUFJLEVBQUU7TUFDSkYsQ0FBQyxFQUFFZixJQUFJLENBQUNELEVBQUUsQ0FBQyxVQUFDRSxDQUFDO1FBQUEsT0FBS0EsQ0FBQztNQUFBLEVBQUM7TUFDcEJlLENBQUMsRUFBRWhCLElBQUksQ0FBQ0QsRUFBRSxDQUFDLFVBQUNFLENBQUM7UUFBQSxPQUFLQSxDQUFDO01BQUE7SUFDckIsQ0FBQztJQUNERSxNQUFNLEVBQUU7TUFDTmUsR0FBRyxFQUFFWCxJQUFJO01BQ1RZLEdBQUcsRUFBRVIsSUFBSTtNQUNUUyxJQUFJLEVBQUU7SUFDUixDQUFDO0lBQ0RoQixLQUFLLEVBQUU7TUFDTGMsR0FBRyxFQUFFTixJQUFJO01BQ1RPLEdBQUcsRUFBRU4sSUFBSTtNQUNUTyxJQUFJLEVBQUU7SUFDUixDQUFDO0lBQ0RDLElBQUksRUFBRTtNQUNKQyxLQUFLLEVBQUUsR0FBRztNQUNWQyxNQUFNLEVBQUU7SUFDVjtFQUNGLENBQUM7QUFBQSxDQUFDO0FBRUssSUFBTUMsRUFBRSxHQUFBMUIsT0FBQSxDQUFBMEIsRUFBQSxHQUFHLFNBQUxBLEVBQUVBLENBQUlULENBQUMsRUFBRUMsQ0FBQyxFQUFFUyxLQUFLLEVBQUs7RUFDakMsSUFBTUMsR0FBRyxHQUFHO0lBQUVYLENBQUMsRUFBREEsQ0FBQztJQUFFQyxDQUFDLEVBQURBLENBQUM7SUFBRVMsS0FBSyxFQUFMQTtFQUFNLENBQUM7RUFDM0IsSUFBSSxDQUFDRSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDLEVBQUU7SUFDM0IsT0FBT0MsR0FBRyxDQUFDRCxLQUFLO0VBQ2xCO0VBQ0EsT0FBT0MsR0FBRztBQUNaLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ var utils = _interopRequireWildcard(require("../utils"));
5
+ 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); }
6
+ var xy = function xy(x, y) {
7
+ return {
8
+ x: x,
9
+ y: y
10
+ };
11
+ };
12
+ var tick = function tick(isMajor, v) {
13
+ return {
14
+ major: isMajor,
15
+ value: v,
16
+ x: v
17
+ };
18
+ };
19
+ var major = tick.bind(null, true);
20
+ var minor = tick.bind(null, false);
21
+ describe('utils', function () {
22
+ describe('polygonToArea', function () {
23
+ var assertPolygon = function assertPolygon(points, area) {
24
+ it("converts ".concat(points, " -> ").concat(area), function () {
25
+ var result = utils.polygonToArea(points);
26
+ expect(result).toEqual(area);
27
+ });
28
+ };
29
+ assertPolygon([xy(0, 0), xy(1, 1), xy(1, -1)], {
30
+ left: 0,
31
+ top: 1,
32
+ bottom: -1,
33
+ right: 1
34
+ });
35
+ assertPolygon([xy(0, 0), xy(3, 0), xy(2, -1), xy(4, -3), xy(1, -4), xy(2, -2)], {
36
+ left: 0,
37
+ top: 0,
38
+ bottom: -4,
39
+ right: 4
40
+ });
41
+ });
42
+ describe('lineToArea', function () {
43
+ var assertLine = function assertLine(from, to, expected) {
44
+ it("".concat(from, ",").concat(to, " => ").concat(expected), function () {
45
+ var result = utils.lineToArea(from, to);
46
+ expect(result).toEqual(expected);
47
+ });
48
+ };
49
+ assertLine(xy(1, 1), xy(2, 2), {
50
+ left: 1,
51
+ top: 2,
52
+ bottom: 1,
53
+ right: 2
54
+ });
55
+ assertLine(xy(-1, 4), xy(4, -3), {
56
+ left: -1,
57
+ top: 4,
58
+ bottom: -3,
59
+ right: 4
60
+ });
61
+ });
62
+ describe('getTickValues', function () {
63
+ var assertGetTickValues = function assertGetTickValues(props, expected) {
64
+ it(" => ".concat(expected), function () {
65
+ var result = utils.getTickValues(props);
66
+ expect(result).toEqual(expected);
67
+ });
68
+ };
69
+ assertGetTickValues({
70
+ min: 0,
71
+ max: 10,
72
+ step: 1
73
+ }, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
74
+ assertGetTickValues({
75
+ min: 0,
76
+ max: 3,
77
+ step: 0.5
78
+ }, [0, 0.5, 1, 1.5, 2, 2.5, 3]);
79
+ assertGetTickValues({
80
+ min: -0.2,
81
+ max: 2,
82
+ step: 0.6
83
+ }, [0, 0.6, 1.2, 1.8]);
84
+ assertGetTickValues({
85
+ min: -3.4,
86
+ max: 6.2,
87
+ step: 1.2
88
+ }, [0, -1.2, -2.4, 1.2, 2.4, 3.6, 4.8, 6]);
89
+ assertGetTickValues({
90
+ min: 0.6,
91
+ max: 4.8,
92
+ step: 0.3
93
+ }, [0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.2, 4.5, 4.8]);
94
+ assertGetTickValues({
95
+ min: 0.5,
96
+ max: 4.9,
97
+ step: 0.3
98
+ }, [0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.2, 4.5, 4.8]);
99
+ assertGetTickValues({
100
+ min: 0,
101
+ max: 3,
102
+ step: 0.125
103
+ }, [0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2, 2.125, 2.25, 2.375, 2.5, 2.625, 2.75, 2.875, 3]);
104
+ });
105
+ describe('countWords', function () {
106
+ it('should return 1 if label is undefined', function () {
107
+ var label = undefined;
108
+ var result = utils.countWords(label);
109
+ expect(result).toEqual(1);
110
+ });
111
+ it('should return 1 if label is null', function () {
112
+ var label = null;
113
+ var result = utils.countWords(label);
114
+ expect(result).toEqual(1);
115
+ });
116
+ it('should return 3 if label has 3 words', function () {
117
+ var label = 'Number of months';
118
+ var result = utils.countWords(label);
119
+ expect(result).toEqual(3);
120
+ });
121
+ });
122
+ });
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1dGlscyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwieHkiLCJ4IiwieSIsInRpY2siLCJpc01ham9yIiwidiIsIm1ham9yIiwidmFsdWUiLCJiaW5kIiwibWlub3IiLCJkZXNjcmliZSIsImFzc2VydFBvbHlnb24iLCJwb2ludHMiLCJhcmVhIiwiaXQiLCJjb25jYXQiLCJyZXN1bHQiLCJwb2x5Z29uVG9BcmVhIiwiZXhwZWN0IiwidG9FcXVhbCIsImxlZnQiLCJ0b3AiLCJib3R0b20iLCJyaWdodCIsImFzc2VydExpbmUiLCJmcm9tIiwidG8iLCJleHBlY3RlZCIsImxpbmVUb0FyZWEiLCJhc3NlcnRHZXRUaWNrVmFsdWVzIiwicHJvcHMiLCJnZXRUaWNrVmFsdWVzIiwibWluIiwibWF4Iiwic3RlcCIsImxhYmVsIiwidW5kZWZpbmVkIiwiY291bnRXb3JkcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vdXRpbHMudGVzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IHh5ID0gKHgsIHkpID0+ICh7IHgsIHkgfSk7XG5cbmNvbnN0IHRpY2sgPSAoaXNNYWpvciwgdikgPT4gKHtcbiAgbWFqb3I6IGlzTWFqb3IsXG4gIHZhbHVlOiB2LFxuICB4OiB2LFxufSk7XG5cbmNvbnN0IG1ham9yID0gdGljay5iaW5kKG51bGwsIHRydWUpO1xuY29uc3QgbWlub3IgPSB0aWNrLmJpbmQobnVsbCwgZmFsc2UpO1xuXG5kZXNjcmliZSgndXRpbHMnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdwb2x5Z29uVG9BcmVhJywgKCkgPT4ge1xuICAgIGNvbnN0IGFzc2VydFBvbHlnb24gPSAocG9pbnRzLCBhcmVhKSA9PiB7XG4gICAgICBpdChgY29udmVydHMgJHtwb2ludHN9IC0+ICR7YXJlYX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLnBvbHlnb25Ub0FyZWEocG9pbnRzKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChhcmVhKTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgYXNzZXJ0UG9seWdvbihbeHkoMCwgMCksIHh5KDEsIDEpLCB4eSgxLCAtMSldLCB7XG4gICAgICBsZWZ0OiAwLFxuICAgICAgdG9wOiAxLFxuICAgICAgYm90dG9tOiAtMSxcbiAgICAgIHJpZ2h0OiAxLFxuICAgIH0pO1xuICAgIGFzc2VydFBvbHlnb24oW3h5KDAsIDApLCB4eSgzLCAwKSwgeHkoMiwgLTEpLCB4eSg0LCAtMyksIHh5KDEsIC00KSwgeHkoMiwgLTIpXSwge1xuICAgICAgbGVmdDogMCxcbiAgICAgIHRvcDogMCxcbiAgICAgIGJvdHRvbTogLTQsXG4gICAgICByaWdodDogNCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xpbmVUb0FyZWEnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0TGluZSA9IChmcm9tLCB0bywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGl0KGAke2Zyb219LCR7dG99ID0+ICR7ZXhwZWN0ZWR9YCwgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5saW5lVG9BcmVhKGZyb20sIHRvKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXNzZXJ0TGluZSh4eSgxLCAxKSwgeHkoMiwgMiksIHsgbGVmdDogMSwgdG9wOiAyLCBib3R0b206IDEsIHJpZ2h0OiAyIH0pO1xuICAgIGFzc2VydExpbmUoeHkoLTEsIDQpLCB4eSg0LCAtMyksIHtcbiAgICAgIGxlZnQ6IC0xLFxuICAgICAgdG9wOiA0LFxuICAgICAgYm90dG9tOiAtMyxcbiAgICAgIHJpZ2h0OiA0LFxuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0VGlja1ZhbHVlcycsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnRHZXRUaWNrVmFsdWVzID0gKHByb3BzLCBleHBlY3RlZCkgPT4ge1xuICAgICAgaXQoYCA9PiAke2V4cGVjdGVkfWAsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuZ2V0VGlja1ZhbHVlcyhwcm9wcyk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWQpO1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IDAsIG1heDogMTAsIHN0ZXA6IDEgfSwgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7XG4gICAgYXNzZXJ0R2V0VGlja1ZhbHVlcyh7IG1pbjogMCwgbWF4OiAzLCBzdGVwOiAwLjUgfSwgWzAsIDAuNSwgMSwgMS41LCAyLCAyLjUsIDNdKTtcbiAgICBhc3NlcnRHZXRUaWNrVmFsdWVzKHsgbWluOiAtMC4yLCBtYXg6IDIsIHN0ZXA6IDAuNiB9LCBbMCwgMC42LCAxLjIsIDEuOF0pO1xuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IC0zLjQsIG1heDogNi4yLCBzdGVwOiAxLjIgfSwgWzAsIC0xLjIsIC0yLjQsIDEuMiwgMi40LCAzLjYsIDQuOCwgNl0pO1xuXG4gICAgYXNzZXJ0R2V0VGlja1ZhbHVlcyh7IG1pbjogMC42LCBtYXg6IDQuOCwgc3RlcDogMC4zIH0sIFtcbiAgICAgIDAuNixcbiAgICAgIDAuOSxcbiAgICAgIDEuMixcbiAgICAgIDEuNSxcbiAgICAgIDEuOCxcbiAgICAgIDIuMSxcbiAgICAgIDIuNCxcbiAgICAgIDIuNyxcbiAgICAgIDMuMCxcbiAgICAgIDMuMyxcbiAgICAgIDMuNixcbiAgICAgIDMuOSxcbiAgICAgIDQuMixcbiAgICAgIDQuNSxcbiAgICAgIDQuOCxcbiAgICBdKTtcbiAgICBhc3NlcnRHZXRUaWNrVmFsdWVzKHsgbWluOiAwLjUsIG1heDogNC45LCBzdGVwOiAwLjMgfSwgW1xuICAgICAgMC42LFxuICAgICAgMC45LFxuICAgICAgMS4yLFxuICAgICAgMS41LFxuICAgICAgMS44LFxuICAgICAgMi4xLFxuICAgICAgMi40LFxuICAgICAgMi43LFxuICAgICAgMy4wLFxuICAgICAgMy4zLFxuICAgICAgMy42LFxuICAgICAgMy45LFxuICAgICAgNC4yLFxuICAgICAgNC41LFxuICAgICAgNC44LFxuICAgIF0pO1xuICAgIGFzc2VydEdldFRpY2tWYWx1ZXMoeyBtaW46IDAsIG1heDogMywgc3RlcDogMC4xMjUgfSwgW1xuICAgICAgMCxcbiAgICAgIDAuMTI1LFxuICAgICAgMC4yNSxcbiAgICAgIDAuMzc1LFxuICAgICAgMC41LFxuICAgICAgMC42MjUsXG4gICAgICAwLjc1LFxuICAgICAgMC44NzUsXG4gICAgICAxLFxuICAgICAgMS4xMjUsXG4gICAgICAxLjI1LFxuICAgICAgMS4zNzUsXG4gICAgICAxLjUsXG4gICAgICAxLjYyNSxcbiAgICAgIDEuNzUsXG4gICAgICAxLjg3NSxcbiAgICAgIDIsXG4gICAgICAyLjEyNSxcbiAgICAgIDIuMjUsXG4gICAgICAyLjM3NSxcbiAgICAgIDIuNSxcbiAgICAgIDIuNjI1LFxuICAgICAgMi43NSxcbiAgICAgIDIuODc1LFxuICAgICAgMyxcbiAgICBdKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvdW50V29yZHMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gMSBpZiBsYWJlbCBpcyB1bmRlZmluZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbCA9IHVuZGVmaW5lZDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHV0aWxzLmNvdW50V29yZHMobGFiZWwpO1xuXG4gICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKDEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gMSBpZiBsYWJlbCBpcyBudWxsJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSBudWxsO1xuICAgICAgY29uc3QgcmVzdWx0ID0gdXRpbHMuY291bnRXb3JkcyhsYWJlbCk7XG5cbiAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoMSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiAzIGlmIGxhYmVsIGhhcyAzIHdvcmRzJywgKCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWwgPSAnTnVtYmVyIG9mIG1vbnRocyc7XG4gICAgICBjb25zdCByZXN1bHQgPSB1dGlscy5jb3VudFdvcmRzKGxhYmVsKTtcblxuICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCgzKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQWtDLFNBQUFELHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8s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QUFRLENBQUM7TUFDbEMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVERSxtQkFBbUIsQ0FBQztNQUFFRyxHQUFHLEVBQUUsQ0FBQztNQUFFQyxHQUFHLEVBQUUsRUFBRTtNQUFFQyxJQUFJLEVBQUU7SUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckZMLG1CQUFtQixDQUFDO01BQUVHLEdBQUcsRUFBRSxDQUFDO01BQUVDLEdBQUcsRUFBRSxDQUFDO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FTCxtQkFBbUIsQ0FBQztNQUFFRyxHQUFHLEVBQUUsQ0FBQyxHQUFHO01BQUVDLEdBQUcsRUFBRSxDQUFDO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFTCxtQkFBbUIsQ0FBQztNQUFFRyxHQUFHLEVBQUUsQ0FBQyxHQUFHO01BQUVDLEdBQUcsRUFBRSxHQUFHO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0ZMLG1CQUFtQixDQUFDO01BQUVHLEdBQUcsRUFBRSxHQUFHO01BQUVDLEdBQUcsRUFBRSxHQUFHO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUMsRUFBRSxDQUNyRCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsQ0FDSixDQUFDO0lBQ0ZMLG1CQUFtQixDQUFDO01BQUVHLEdBQUcsRUFBRSxHQUFHO01BQUVDLEdBQUcsRUFBRSxHQUFHO01BQUVDLElBQUksRUFBRTtJQUFJLENBQUMsRUFBRSxDQUNyRCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsRUFDSCxHQUFHLEVBQ0gsR0FBRyxFQUNILEdBQUcsQ0FDSixDQUFDO0lBQ0ZMLG1CQUFtQixDQUFDO01BQUVHLEdBQUcsRUFBRSxDQUFDO01BQUVDLEdBQUcsRUFBRSxDQUFDO01BQUVDLElBQUksRUFBRTtJQUFNLENBQUMsRUFBRSxDQUNuRCxDQUFDLEVBQ0QsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsR0FBRyxFQUNILEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLENBQUMsRUFDRCxLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxHQUFHLEVBQ0gsS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEVBQ0wsQ0FBQyxFQUNELEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLEdBQUcsRUFDSCxLQUFLLEVBQ0wsSUFBSSxFQUNKLEtBQUssRUFDTCxDQUFDLENBQ0YsQ0FBQztFQUNKLENBQUMsQ0FBQztFQUVGeEIsUUFBUSxDQUFDLFlBQVksRUFBRSxZQUFNO0lBQzNCSSxFQUFFLENBQUMsdUNBQXVDLEVBQUUsWUFBTTtNQUNoRCxJQUFNcUIsS0FBSyxHQUFHQyxTQUFTO01BQ3ZCLElBQU1wQixNQUFNLEdBQUd2QyxLQUFLLENBQUM0RCxVQUFVLENBQUNGLEtBQUssQ0FBQztNQUV0Q2pCLE1BQU0sQ0FBQ0YsTUFBTSxDQUFDLENBQUNHLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQyxDQUFDO0lBRUZMLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxZQUFNO01BQzNDLElBQU1xQixLQUFLLEdBQUcsSUFBSTtNQUNsQixJQUFNbkIsTUFBTSxHQUFHdkMsS0FBSyxDQUFDNEQsVUFBVSxDQUFDRixLQUFLLENBQUM7TUFFdENqQixNQUFNLENBQUNGLE1BQU0sQ0FBQyxDQUFDRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztJQUVGTCxFQUFFLENBQUMsc0NBQXNDLEVBQUUsWUFBTTtNQUMvQyxJQUFNcUIsS0FBSyxHQUFHLGtCQUFrQjtNQUNoQyxJQUFNbkIsTUFBTSxHQUFHdkMsS0FBSyxDQUFDNEQsVUFBVSxDQUFDRixLQUFLLENBQUM7TUFFdENqQixNQUFNLENBQUNGLE1BQU0sQ0FBQyxDQUFDRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -0,0 +1,60 @@
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 _arrow = require("../arrow");
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('Arrow', function () {
11
+ var onChange = jest.fn();
12
+ var renderComponent = function renderComponent(extras) {
13
+ var defaults = {
14
+ classes: {},
15
+ className: 'className',
16
+ onChange: onChange,
17
+ scale: {
18
+ x: jest.fn(function (n) {
19
+ return n;
20
+ }),
21
+ y: jest.fn(function (n) {
22
+ return n;
23
+ })
24
+ }
25
+ };
26
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
27
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_arrow.Arrow, props));
28
+ };
29
+ describe('rendering', function () {
30
+ it('renders with direction up', function () {
31
+ var _renderComponent = renderComponent({
32
+ direction: 'up'
33
+ }),
34
+ container = _renderComponent.container;
35
+ expect(container.firstChild).toBeInTheDocument();
36
+ });
37
+ it('renders with direction down', function () {
38
+ var _renderComponent2 = renderComponent({
39
+ direction: 'down'
40
+ }),
41
+ container = _renderComponent2.container;
42
+ expect(container.firstChild).toBeInTheDocument();
43
+ });
44
+ it('renders with direction left', function () {
45
+ var _renderComponent3 = renderComponent({
46
+ direction: 'left'
47
+ }),
48
+ container = _renderComponent3.container;
49
+ expect(container.firstChild).toBeInTheDocument();
50
+ });
51
+ it('renders with direction right', function () {
52
+ var _renderComponent4 = renderComponent({
53
+ direction: 'right'
54
+ }),
55
+ container = _renderComponent4.container;
56
+ expect(container.firstChild).toBeInTheDocument();
57
+ });
58
+ });
59
+ });
60
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYXJyb3ciLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJzY2FsZSIsIngiLCJuIiwieSIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIkFycm93IiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiZGlyZWN0aW9uIiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50IiwiX3JlbmRlckNvbXBvbmVudDIiLCJfcmVuZGVyQ29tcG9uZW50MyIsIl9yZW5kZXJDb21wb25lbnQ0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F4aXMvX190ZXN0c19fL2Fycm93LnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEFycm93IH0gZnJvbSAnLi4vYXJyb3cnO1xuXG5kZXNjcmliZSgnQXJyb3cnLCAoKSA9PiB7XG4gIGxldCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcbiAgY29uc3QgcmVuZGVyQ29tcG9uZW50ID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBzY2FsZToge1xuICAgICAgICB4OiBqZXN0LmZuKChuKSA9PiBuKSxcbiAgICAgICAgeTogamVzdC5mbigobikgPT4gbiksXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxBcnJvdyB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcbiAgZGVzY3JpYmUoJ3JlbmRlcmluZycsICgpID0+IHtcbiAgICBpdCgncmVuZGVycyB3aXRoIGRpcmVjdGlvbiB1cCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBkaXJlY3Rpb246ICd1cCcgfSk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aCBkaXJlY3Rpb24gZG93bicsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoeyBkaXJlY3Rpb246ICdkb3duJyB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgICBpdCgncmVuZGVycyB3aXRoIGRpcmVjdGlvbiBsZWZ0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGRpcmVjdGlvbjogJ2xlZnQnIH0pO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5maXJzdENoaWxkKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICAgIH0pO1xuICAgIGl0KCdyZW5kZXJzIHdpdGggZGlyZWN0aW9uIHJpZ2h0JywgKCkgPT4ge1xuICAgICAgY29uc3QgeyBjb250YWluZXIgfSA9IHJlbmRlckNvbXBvbmVudCh7IGRpcmVjdGlvbjogJ3JpZ2h0JyB9KTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUFpQyxTQUFBSSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxXQUFBZCxDQUFBLFFBQUFlLGdCQUFBLGFBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMs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
@@ -0,0 +1,195 @@
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 _utils = require("../../__tests__/utils");
9
+ var _axes = _interopRequireWildcard(require("../axes"));
10
+ 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); }
11
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
+ describe('RawXAxis', function () {
14
+ var onChange = jest.fn();
15
+ var renderComponent = function renderComponent(extras) {
16
+ var defaults = {
17
+ classes: {},
18
+ className: 'className',
19
+ onChange: onChange,
20
+ graphProps: (0, _utils.graphProps)(),
21
+ includeArrows: {
22
+ left: true,
23
+ right: true,
24
+ up: true,
25
+ down: true
26
+ },
27
+ columnTicksValues: [-1, 0, 1],
28
+ skipValues: [],
29
+ distanceFromOriginToFirstNegativeY: 0,
30
+ dy: 0
31
+ };
32
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
33
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_axes.RawXAxis, props));
34
+ };
35
+ describe('rendering', function () {
36
+ it('renders without crashing', function () {
37
+ var _renderComponent = renderComponent(),
38
+ container = _renderComponent.container;
39
+ expect(container.firstChild).toBeInTheDocument();
40
+ });
41
+ });
42
+ });
43
+ describe('RawYAxis', function () {
44
+ var onChange = jest.fn();
45
+ var renderComponent = function renderComponent(extras) {
46
+ var defaults = {
47
+ classes: {},
48
+ className: 'className',
49
+ onChange: onChange,
50
+ graphProps: (0, _utils.graphProps)(),
51
+ includeArrows: {
52
+ left: true,
53
+ right: true,
54
+ up: true,
55
+ down: true
56
+ },
57
+ rowTickValues: [-1, 0, 1],
58
+ skipValues: []
59
+ };
60
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
61
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_axes.RawYAxis, props));
62
+ };
63
+ describe('rendering', function () {
64
+ it('renders without crashing', function () {
65
+ var _renderComponent2 = renderComponent(),
66
+ container = _renderComponent2.container;
67
+ expect(container.firstChild).toBeInTheDocument();
68
+ });
69
+ });
70
+ });
71
+ var _customScaleMock = function customScaleMock(distance) {
72
+ var fn = jest.fn(function (n) {
73
+ return n * distance;
74
+ });
75
+ fn.invert = jest.fn(function (n) {
76
+ return n * distance;
77
+ });
78
+ fn.domain = jest.fn(function () {
79
+ return fn;
80
+ });
81
+ fn.range = jest.fn(function () {
82
+ return fn;
83
+ });
84
+ fn.copy = jest.fn(function () {
85
+ return _customScaleMock(distance);
86
+ });
87
+ return fn;
88
+ };
89
+ describe('Axes', function () {
90
+ var onChange = jest.fn();
91
+ var customGraphProps = _objectSpread(_objectSpread({}, (0, _utils.graphProps)()), {}, {
92
+ domain: {
93
+ min: -2,
94
+ max: 2,
95
+ labelStep: 1,
96
+ step: 1
97
+ },
98
+ range: {
99
+ min: -2,
100
+ max: 2,
101
+ step: 1,
102
+ labelStep: 1
103
+ },
104
+ scale: {
105
+ x: _customScaleMock(200),
106
+ y: _customScaleMock(150)
107
+ }
108
+ });
109
+ var renderComponent = function renderComponent(extras) {
110
+ var defaults = {
111
+ classes: {},
112
+ className: 'className',
113
+ onChange: onChange,
114
+ graphProps: customGraphProps
115
+ };
116
+ var props = _objectSpread(_objectSpread({}, defaults), extras);
117
+ return (0, _testUtils.render)(/*#__PURE__*/_react["default"].createElement(_axes["default"], props));
118
+ };
119
+ describe('rendering', function () {
120
+ it('renders without crashing', function () {
121
+ var _renderComponent3 = renderComponent(),
122
+ container = _renderComponent3.container;
123
+ expect(container.firstChild).toBeInTheDocument();
124
+ });
125
+ });
126
+ });
127
+ describe('firstNegativeValue', function () {
128
+ it('should return undefined for undefined interval', function () {
129
+ var interval = undefined;
130
+ var result = (0, _axes.firstNegativeValue)(interval);
131
+ expect(result).toEqual(undefined);
132
+ });
133
+ it('should return undefined for empty interval', function () {
134
+ var interval = [];
135
+ var result = (0, _axes.firstNegativeValue)(interval);
136
+ expect(result).toEqual(undefined);
137
+ });
138
+ it('should return undefined if there is no negative in interval array', function () {
139
+ var interval = [1, 5, 7, 4, 5];
140
+ var result = (0, _axes.firstNegativeValue)(interval);
141
+ expect(result).toEqual(undefined);
142
+ });
143
+ it('should return first negative number from interval', function () {
144
+ var interval = [1, 5, 7, -2, 4, 5, -1];
145
+ var result = (0, _axes.firstNegativeValue)(interval);
146
+ expect(result).toEqual(-2);
147
+ });
148
+ });
149
+ describe('sharedValues', function () {
150
+ it('should be empty array if firstNegativeValue for one of the axes is undefined', function () {
151
+ // x
152
+ var intervalX = [1, 2, 3, 4, 5, 6];
153
+ var firstNegativeX = (0, _axes.firstNegativeValue)(intervalX);
154
+ var distanceFromOriginToFirstNegativeX = -22;
155
+
156
+ // y
157
+ var intervalY = [-1, -2, 1, 2, 3, 4, 5, 6];
158
+ var firstNegativeY = (0, _axes.firstNegativeValue)(intervalY);
159
+ var distanceFromOriginToFirstNegativeY = -22;
160
+ var deltaAllowance = 5;
161
+ var result = (0, _axes.sharedValues)(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance);
162
+ expect(result).toEqual([]);
163
+ });
164
+ it('should be empty array if firstNegativeX and firstNegativeY are equal but they do not overlap', function () {
165
+ // x
166
+ var intervalX = [-1, -2, 1, 2, 3, 4, 5, 6];
167
+ var firstNegativeX = (0, _axes.firstNegativeValue)(intervalX);
168
+ var distanceFromOriginToFirstNegativeX = -7;
169
+
170
+ // y
171
+ var intervalY = [-1, -2, 1, 2, 3, 4, 5, 6];
172
+ var firstNegativeY = (0, _axes.firstNegativeValue)(intervalY);
173
+ var distanceFromOriginToFirstNegativeY = -22;
174
+ var deltaAllowance = 5;
175
+ var result = (0, _axes.sharedValues)(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance);
176
+ expect(result).toEqual([]);
177
+ });
178
+ it('should be -1 if firstNegativeX and firstNegativeY are equal and they overlap', function () {
179
+ // x
180
+ var intervalX = [-1, -2, 1, 2, 3, 4, 5, 6];
181
+ var firstNegativeX = (0, _axes.firstNegativeValue)(intervalX);
182
+ var distanceFromOriginToFirstNegativeX = -20;
183
+
184
+ // y
185
+ var intervalY = [-1, -2, 1, 2, 3, 4, 5, 6];
186
+ var firstNegativeY = (0, _axes.firstNegativeValue)(intervalY);
187
+ var distanceFromOriginToFirstNegativeY = -22;
188
+ var deltaAllowance = 5;
189
+ var dy = -20; // dy needs to be within the range for the condition to pass
190
+
191
+ var result = (0, _axes.sharedValues)(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy);
192
+ expect(result).toEqual([-1]);
193
+ });
194
+ });
195
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGVzdFV0aWxzIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXRpbHMiLCJfYXhlcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlc2NyaWJlIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJyZW5kZXJDb21wb25lbnQiLCJleHRyYXMiLCJkZWZhdWx0cyIsImNsYXNzZXMiLCJjbGFzc05hbWUiLCJncmFwaFByb3BzIiwiaW5jbHVkZUFycm93cyIsImxlZnQiLCJyaWdodCIsInVwIiwiZG93biIsImNvbHVtblRpY2tzVmFsdWVzIiwic2tpcFZhbHVlcyIsImRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkiLCJkeSIsInByb3BzIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsIlJhd1hBeGlzIiwiaXQiLCJfcmVuZGVyQ29tcG9uZW50IiwiY29udGFpbmVyIiwiZXhwZWN0IiwiZmlyc3RDaGlsZCIsInRvQmVJblRoZURvY3VtZW50Iiwicm93VGlja1ZhbHVlcyIsIlJhd1lBeGlzIiwiX3JlbmRlckNvbXBvbmVudDIiLCJjdXN0b21TY2FsZU1vY2siLCJkaXN0YW5jZSIsImludmVydCIsImRvbWFpbiIsInJhbmdlIiwiY29weSIsImN1c3RvbUdyYXBoUHJvcHMiLCJtaW4iLCJtYXgiLCJsYWJlbFN0ZXAiLCJzdGVwIiwic2NhbGUiLCJ4IiwieSIsIl9yZW5kZXJDb21wb25lbnQzIiwiaW50ZXJ2YWwiLCJ1bmRlZmluZWQiLCJyZXN1bHQiLCJmaXJzdE5lZ2F0aXZlVmFsdWUiLCJ0b0VxdWFsIiwiaW50ZXJ2YWxYIiwiZmlyc3ROZWdhdGl2ZVgiLCJkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYIiwiaW50ZXJ2YWxZIiwiZmlyc3ROZWdhdGl2ZVkiLCJkZWx0YUFsbG93YW5jZSIsInNoYXJlZFZhbHVlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9heGlzL19fdGVzdHNfXy9heGVzLnRlc3QuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlbmRlciB9IGZyb20gJ0BwaWUtbGliL3Rlc3QtdXRpbHMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgfSBmcm9tICcuLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuXG5pbXBvcnQgQXhlcywgeyBSYXdYQXhpcywgUmF3WUF4aXMsIGZpcnN0TmVnYXRpdmVWYWx1ZSwgc2hhcmVkVmFsdWVzIH0gZnJvbSAnLi4vYXhlcyc7XG5cbmRlc2NyaWJlKCdSYXdYQXhpcycsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGdyYXBoUHJvcHM6IGdyYXBoUHJvcHMoKSxcbiAgICAgIGluY2x1ZGVBcnJvd3M6IHtcbiAgICAgICAgbGVmdDogdHJ1ZSxcbiAgICAgICAgcmlnaHQ6IHRydWUsXG4gICAgICAgIHVwOiB0cnVlLFxuICAgICAgICBkb3duOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGNvbHVtblRpY2tzVmFsdWVzOiBbLTEsIDAsIDFdLFxuICAgICAgc2tpcFZhbHVlczogW10sXG4gICAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZOiAwLFxuICAgICAgZHk6IDAsXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiByZW5kZXIoPFJhd1hBeGlzIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSYXdZQXhpcycsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuICBjb25zdCByZW5kZXJDb21wb25lbnQgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGdyYXBoUHJvcHM6IGdyYXBoUHJvcHMoKSxcbiAgICAgIGluY2x1ZGVBcnJvd3M6IHtcbiAgICAgICAgbGVmdDogdHJ1ZSxcbiAgICAgICAgcmlnaHQ6IHRydWUsXG4gICAgICAgIHVwOiB0cnVlLFxuICAgICAgICBkb3duOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHJvd1RpY2tWYWx1ZXM6IFstMSwgMCwgMV0sXG4gICAgICBza2lwVmFsdWVzOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IHByb3BzID0geyAuLi5kZWZhdWx0cywgLi4uZXh0cmFzIH07XG4gICAgcmV0dXJuIHJlbmRlcig8UmF3WUF4aXMgey4uLnByb3BzfSAvPik7XG4gIH07XG4gIGRlc2NyaWJlKCdyZW5kZXJpbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29udGFpbmVyIH0gPSByZW5kZXJDb21wb25lbnQoKTtcbiAgICAgIGV4cGVjdChjb250YWluZXIuZmlyc3RDaGlsZCkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuY29uc3QgY3VzdG9tU2NhbGVNb2NrID0gKGRpc3RhbmNlKSA9PiB7XG4gIGNvbnN0IGZuID0gamVzdC5mbigobikgPT4gbiAqIGRpc3RhbmNlKTtcbiAgZm4uaW52ZXJ0ID0gamVzdC5mbigobikgPT4gbiAqIGRpc3RhbmNlKTtcbiAgZm4uZG9tYWluID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLnJhbmdlID0gamVzdC5mbigoKSA9PiBmbik7XG4gIGZuLmNvcHkgPSBqZXN0LmZuKCgpID0+IGN1c3RvbVNjYWxlTW9jayhkaXN0YW5jZSkpO1xuICByZXR1cm4gZm47XG59O1xuXG5kZXNjcmliZSgnQXhlcycsICgpID0+IHtcbiAgbGV0IG9uQ2hhbmdlID0gamVzdC5mbigpO1xuXG4gIGNvbnN0IGN1c3RvbUdyYXBoUHJvcHMgPSB7XG4gICAgLi4uZ3JhcGhQcm9wcygpLFxuICAgIGRvbWFpbjoge1xuICAgICAgbWluOiAtMixcbiAgICAgIG1heDogMixcbiAgICAgIGxhYmVsU3RlcDogMSxcbiAgICAgIHN0ZXA6IDEsXG4gICAgfSxcbiAgICByYW5nZToge1xuICAgICAgbWluOiAtMixcbiAgICAgIG1heDogMixcbiAgICAgIHN0ZXA6IDEsXG4gICAgICBsYWJlbFN0ZXA6IDEsXG4gICAgfSxcbiAgICBzY2FsZToge1xuICAgICAgeDogY3VzdG9tU2NhbGVNb2NrKDIwMCksXG4gICAgICB5OiBjdXN0b21TY2FsZU1vY2soMTUwKSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHJlbmRlckNvbXBvbmVudCA9IChleHRyYXMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGNsYXNzZXM6IHt9LFxuICAgICAgY2xhc3NOYW1lOiAnY2xhc3NOYW1lJyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgZ3JhcGhQcm9wczogY3VzdG9tR3JhcGhQcm9wcyxcbiAgICB9O1xuXG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gcmVuZGVyKDxBeGVzIHsuLi5wcm9wc30gLz4pO1xuICB9O1xuICBkZXNjcmliZSgncmVuZGVyaW5nJywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbnRhaW5lciB9ID0gcmVuZGVyQ29tcG9uZW50KCk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLmZpcnN0Q2hpbGQpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdmaXJzdE5lZ2F0aXZlVmFsdWUnLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3IgdW5kZWZpbmVkIGludGVydmFsJywgKCkgPT4ge1xuICAgIGNvbnN0IGludGVydmFsID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZpcnN0TmVnYXRpdmVWYWx1ZShpbnRlcnZhbCk7XG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbCh1bmRlZmluZWQpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIGVtcHR5IGludGVydmFsJywgKCkgPT4ge1xuICAgIGNvbnN0IGludGVydmFsID0gW107XG4gICAgY29uc3QgcmVzdWx0ID0gZmlyc3ROZWdhdGl2ZVZhbHVlKGludGVydmFsKTtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHVuZGVmaW5lZCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBubyBuZWdhdGl2ZSBpbiBpbnRlcnZhbCBhcnJheScsICgpID0+IHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IFsxLCA1LCA3LCA0LCA1XTtcbiAgICBjb25zdCByZXN1bHQgPSBmaXJzdE5lZ2F0aXZlVmFsdWUoaW50ZXJ2YWwpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwodW5kZWZpbmVkKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZXR1cm4gZmlyc3QgbmVnYXRpdmUgbnVtYmVyIGZyb20gaW50ZXJ2YWwnLCAoKSA9PiB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBbMSwgNSwgNywgLTIsIDQsIDUsIC0xXTtcbiAgICBjb25zdCByZXN1bHQgPSBmaXJzdE5lZ2F0aXZlVmFsdWUoaW50ZXJ2YWwpO1xuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoLTIpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnc2hhcmVkVmFsdWVzJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGJlIGVtcHR5IGFycmF5IGlmIGZpcnN0TmVnYXRpdmVWYWx1ZSBmb3Igb25lIG9mIHRoZSBheGVzIGlzIHVuZGVmaW5lZCcsICgpID0+IHtcbiAgICAvLyB4XG4gICAgY29uc3QgaW50ZXJ2YWxYID0gWzEsIDIsIDMsIDQsIDUsIDZdO1xuICAgIGNvbnN0IGZpcnN0TmVnYXRpdmVYID0gZmlyc3ROZWdhdGl2ZVZhbHVlKGludGVydmFsWCk7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCA9IC0yMjtcblxuICAgIC8vIHlcbiAgICBjb25zdCBpbnRlcnZhbFkgPSBbLTEsIC0yLCAxLCAyLCAzLCA0LCA1LCA2XTtcbiAgICBjb25zdCBmaXJzdE5lZ2F0aXZlWSA9IGZpcnN0TmVnYXRpdmVWYWx1ZShpbnRlcnZhbFkpO1xuICAgIGNvbnN0IGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkgPSAtMjI7XG5cbiAgICBjb25zdCBkZWx0YUFsbG93YW5jZSA9IDU7XG5cbiAgICBjb25zdCByZXN1bHQgPSBzaGFyZWRWYWx1ZXMoXG4gICAgICBmaXJzdE5lZ2F0aXZlWCxcbiAgICAgIGZpcnN0TmVnYXRpdmVZLFxuICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVksXG4gICAgICBkZWx0YUFsbG93YW5jZSxcbiAgICApO1xuXG4gICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChbXSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYmUgZW1wdHkgYXJyYXkgaWYgZmlyc3ROZWdhdGl2ZVggYW5kIGZpcnN0TmVnYXRpdmVZIGFyZSBlcXVhbCBidXQgdGhleSBkbyBub3Qgb3ZlcmxhcCcsICgpID0+IHtcbiAgICAvLyB4XG4gICAgY29uc3QgaW50ZXJ2YWxYID0gWy0xLCAtMiwgMSwgMiwgMywgNCwgNSwgNl07XG4gICAgY29uc3QgZmlyc3ROZWdhdGl2ZVggPSBmaXJzdE5lZ2F0aXZlVmFsdWUoaW50ZXJ2YWxYKTtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYID0gLTc7XG5cbiAgICAvLyB5XG4gICAgY29uc3QgaW50ZXJ2YWxZID0gWy0xLCAtMiwgMSwgMiwgMywgNCwgNSwgNl07XG4gICAgY29uc3QgZmlyc3ROZWdhdGl2ZVkgPSBmaXJzdE5lZ2F0aXZlVmFsdWUoaW50ZXJ2YWxZKTtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZID0gLTIyO1xuXG4gICAgY29uc3QgZGVsdGFBbGxvd2FuY2UgPSA1O1xuXG4gICAgY29uc3QgcmVzdWx0ID0gc2hhcmVkVmFsdWVzKFxuICAgICAgZmlyc3ROZWdhdGl2ZVgsXG4gICAgICBmaXJzdE5lZ2F0aXZlWSxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVgsXG4gICAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZLFxuICAgICAgZGVsdGFBbGxvd2FuY2UsXG4gICAgKTtcblxuICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJlIC0xIGlmIGZpcnN0TmVnYXRpdmVYIGFuZCBmaXJzdE5lZ2F0aXZlWSBhcmUgZXF1YWwgYW5kIHRoZXkgb3ZlcmxhcCcsICgpID0+IHtcbiAgICAvLyB4XG4gICAgY29uc3QgaW50ZXJ2YWxYID0gWy0xLCAtMiwgMSwgMiwgMywgNCwgNSwgNl07XG4gICAgY29uc3QgZmlyc3ROZWdhdGl2ZVggPSBmaXJzdE5lZ2F0aXZlVmFsdWUoaW50ZXJ2YWxYKTtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYID0gLTIwO1xuXG4gICAgLy8geVxuICAgIGNvbnN0IGludGVydmFsWSA9IFstMSwgLTIsIDEsIDIsIDMsIDQsIDUsIDZdO1xuICAgIGNvbnN0IGZpcnN0TmVnYXRpdmVZID0gZmlyc3ROZWdhdGl2ZVZhbHVlKGludGVydmFsWSk7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSA9IC0yMjtcblxuICAgIGNvbnN0IGRlbHRhQWxsb3dhbmNlID0gNTtcbiAgICBjb25zdCBkeSA9IC0yMDsgLy8gZHkgbmVlZHMgdG8gYmUgd2l0aGluIHRoZSByYW5nZSBmb3IgdGhlIGNvbmRpdGlvbiB0byBwYXNzXG5cbiAgICBjb25zdCByZXN1bHQgPSBzaGFyZWRWYWx1ZXMoXG4gICAgICBmaXJzdE5lZ2F0aXZlWCxcbiAgICAgIGZpcnN0TmVnYXRpdmVZLFxuICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVksXG4gICAgICBkZWx0YUFsbG93YW5jZSxcbiAgICAgIGR5LFxuICAgICk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKFstMV0pO1xuICB9KTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUFxRixTQUFBSyx3QkFBQUMsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUgsdUJBQUEsWUFBQUEsd0JBQUFDLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLENBQUFLLEdBQUEsSUFBQUwsQ0FBQSxDQUFBTSxHQUFBLElB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QUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQU1DLGNBQWMsR0FBRyxJQUFBTix3QkFBa0IsRUFBQ0ssU0FBUyxDQUFDO0lBQ3BELElBQU10QyxrQ0FBa0MsR0FBRyxDQUFDLEVBQUU7SUFFOUMsSUFBTXdDLGNBQWMsR0FBRyxDQUFDO0lBRXhCLElBQU1SLE1BQU0sR0FBRyxJQUFBUyxrQkFBWSxFQUN6QkwsY0FBYyxFQUNkRyxjQUFjLEVBQ2RGLGtDQUFrQyxFQUNsQ3JDLGtDQUFrQyxFQUNsQ3dDLGNBQ0YsQ0FBQztJQUVEL0IsTUFBTSxDQUFDdUIsTUFBTSxDQUFDLENBQUNFLE9BQU8sQ0FBQyxFQUFFLENBQUM7RUFDNUIsQ0FBQyxDQUFDO0VBRUY1QixFQUFFLENBQUMsOEVBQThFLEVBQUUsWUFBTTtJQUN2RjtJQUNBLElBQU02QixTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxJQUFNQyxjQUFjLEdBQUcsSUFBQUgsd0JBQWtCLEVBQUNFLFNBQVMsQ0FBQztJQUNwRCxJQUFNRSxrQ0FBa0MsR0FBRyxDQUFDLEVBQUU7O0lBRTlDO0lBQ0EsSUFBTUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsSUFBTUMsY0FBYyxHQUFHLElBQUFOLHdCQUFrQixFQUFDSyxTQUFTLENBQUM7SUFDcEQsSUFBTXRDLGtDQUFrQyxHQUFHLENBQUMsRUFBRTtJQUU5QyxJQUFNd0MsY0FBYyxHQUFHLENBQUM7SUFDeEIsSUFBTXZDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztJQUVoQixJQUFNK0IsTUFBTSxHQUFHLElBQUFTLGtCQUFZLEVBQ3pCTCxjQUFjLEVBQ2RHLGNBQWMsRUFDZEYsa0NBQWtDLEVBQ2xDckMsa0NBQWtDLEVBQ2xDd0MsY0FBYyxFQUNkdkMsRUFDRixDQUFDO0lBRURRLE1BQU0sQ0FBQ3VCLE1BQU0sQ0FBQyxDQUFDRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzlCLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==