@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
package/lib/mark-label.js CHANGED
@@ -1,111 +1,102 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.position = exports["default"] = exports.coordinates = exports.MarkLabel = void 0;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _classnames = _interopRequireDefault(require("classnames"));
19
-
20
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
21
-
22
- var _styles = require("@material-ui/core/styles");
23
-
13
+ var _styles = require("@mui/material/styles");
24
14
  var _reactInputAutosize = _interopRequireDefault(require("react-input-autosize"));
25
-
26
15
  var _useDebounce = require("./use-debounce");
27
-
28
16
  var _plot = require("@pie-lib/plot");
29
-
30
17
  var _renderUi = require("@pie-lib/render-ui");
31
-
32
18
  var _labelSvgIcon = _interopRequireDefault(require("./label-svg-icon"));
33
-
34
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
-
36
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- var inputStyles = function inputStyles(theme) {
19
+ 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); }
20
+ 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; }
21
+ 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; }
22
+ var StyledInputCorrect = (0, _styles.styled)('div')(function (_ref2) {
23
+ var theme = _ref2.theme;
43
24
  return {
44
25
  "float": 'right',
45
- padding: theme.spacing.unit * 0.5,
26
+ padding: theme.spacing(0.5),
46
27
  borderRadius: '4px',
47
28
  fontSize: '10px',
48
- backgroundColor: _renderUi.color.defaults.WHITE
29
+ backgroundColor: _renderUi.color.defaults.WHITE,
30
+ color: _renderUi.color.defaults.CORRECT_WITH_ICON,
31
+ border: "solid 1px ".concat(_renderUi.color.defaults.CORRECT_WITH_ICON)
32
+ };
33
+ });
34
+ var StyledInputIncorrect = (0, _styles.styled)('div')(function (_ref3) {
35
+ var theme = _ref3.theme;
36
+ return {
37
+ "float": 'right',
38
+ padding: theme.spacing(0.5),
39
+ borderRadius: '4px',
40
+ fontSize: '10px',
41
+ backgroundColor: _renderUi.color.defaults.WHITE,
42
+ color: _renderUi.color.defaults.INCORRECT_WITH_ICON,
43
+ border: "solid 1px ".concat(_renderUi.color.defaults.INCORRECT_WITH_ICON)
44
+ };
45
+ });
46
+ var StyledInputMissing = (0, _styles.styled)('div')(function (_ref4) {
47
+ var theme = _ref4.theme;
48
+ return {
49
+ "float": 'right',
50
+ padding: theme.spacing(0.5),
51
+ borderRadius: '4px',
52
+ fontSize: '10px',
53
+ backgroundColor: _renderUi.color.defaults.WHITE,
54
+ color: _renderUi.color.defaults.MISSING_WITH_ICON,
55
+ border: "solid 1px ".concat(_renderUi.color.defaults.MISSING_WITH_ICON),
56
+ fontWeight: 'bold'
57
+ };
58
+ });
59
+ var StyledIncorrect = (0, _styles.styled)('div')(function () {
60
+ return {
61
+ "float": 'right',
62
+ padding: 0,
63
+ borderRadius: '4px',
64
+ fontSize: '10px',
65
+ backgroundColor: _renderUi.color.defaults.WHITE,
66
+ color: _renderUi.color.defaults.INCORRECT_WITH_ICON,
67
+ fontWeight: 'bold'
68
+ };
69
+ });
70
+ var getInputStyles = function getInputStyles(theme, disabled, markDisabled) {
71
+ return {
72
+ "float": 'right',
73
+ padding: theme.spacing(0.5),
74
+ fontFamily: theme.typography.fontFamily,
75
+ fontSize: '10px',
76
+ border: disabled ? "solid 1px ".concat(_renderUi.color.defaults.PRIMARY_DARK) : markDisabled ? "solid 1px ".concat(_renderUi.color.disabled()) : "solid 1px ".concat(_renderUi.color.defaults.SECONDARY),
77
+ borderRadius: '3px',
78
+ color: markDisabled ? _renderUi.color.disabled() : _renderUi.color.defaults.PRIMARY_DARK,
79
+ backgroundColor: _renderUi.color.defaults.WHITE,
80
+ WebkitOpacity: disabled ? '1' : undefined,
81
+ WebkitTextFillColor: markDisabled ? _renderUi.color.disabled() : undefined
49
82
  };
50
83
  };
51
-
52
- var styles = function styles(theme) {
84
+ var getStudentInputStyles = function getStudentInputStyles() {
53
85
  return {
54
- inputStudent: _objectSpread(_objectSpread({}, inputStyles(theme)), {}, {
55
- padding: '0',
56
- border: 'none',
57
- color: 'inherit',
58
- fontWeight: 'bold'
59
- }),
60
- input: {
61
- "float": 'right',
62
- padding: theme.spacing.unit * 0.5,
63
- fontFamily: theme.typography.fontFamily,
64
- fontSize: '10px',
65
- border: "solid 1px ".concat(_renderUi.color.defaults.SECONDARY),
66
- borderRadius: '3px',
67
- color: _renderUi.color.defaults.PRIMARY_DARK,
68
- backgroundColor: _renderUi.color.defaults.WHITE
69
- },
70
- disabled: {
71
- border: "solid 1px ".concat(_renderUi.color.defaults.PRIMARY_DARK),
72
- backgroundColor: _renderUi.color.defaults.WHITE,
73
- '-webkit-opacity': '1'
74
- },
75
- disabledMark: {
76
- border: "solid 1px ".concat(_renderUi.color.disabled()),
77
- color: _renderUi.color.disabled(),
78
- '-webkit-text-fill-color': _renderUi.color.disabled()
79
- },
80
- inputCorrect: _objectSpread(_objectSpread({}, inputStyles(theme)), {}, {
81
- color: _renderUi.color.defaults.CORRECT_WITH_ICON,
82
- border: "solid 1px ".concat(_renderUi.color.defaults.CORRECT_WITH_ICON)
83
- }),
84
- inputIncorrect: _objectSpread(_objectSpread({}, inputStyles(theme)), {}, {
85
- color: _renderUi.color.defaults.INCORRECT_WITH_ICON,
86
- border: "solid 1px ".concat(_renderUi.color.defaults.INCORRECT_WITH_ICON)
87
- }),
88
- inputMissing: _objectSpread(_objectSpread({}, inputStyles(theme)), {}, {
89
- color: _renderUi.color.defaults.MISSING_WITH_ICON,
90
- border: "solid 1px ".concat(_renderUi.color.defaults.MISSING_WITH_ICON),
91
- fontWeight: 'bold'
92
- }),
93
- incorrect: _objectSpread(_objectSpread({}, inputStyles(theme)), {}, {
94
- color: _renderUi.color.defaults.INCORRECT_WITH_ICON,
95
- fontWeight: 'bold',
96
- padding: '0'
97
- })
86
+ padding: '0',
87
+ border: 'none',
88
+ color: 'inherit',
89
+ fontWeight: 'bold'
98
90
  };
99
91
  };
100
-
101
- var position = function position(graphProps, mark) {
92
+ var position = exports.position = function position(graphProps, mark) {
102
93
  var rect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
103
94
  width: 0,
104
95
  height: 0
105
96
  };
106
97
  var scale = graphProps.scale,
107
- domain = graphProps.domain,
108
- range = graphProps.range;
98
+ domain = graphProps.domain,
99
+ range = graphProps.range;
109
100
  var shift = 5;
110
101
  var rightEdge = scale.x(mark.x) + rect.width + shift;
111
102
  var bottomEdge = scale.y(mark.y) + rect.height + shift;
@@ -113,10 +104,7 @@ var position = function position(graphProps, mark) {
113
104
  var v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';
114
105
  return "".concat(v, "-").concat(h);
115
106
  };
116
-
117
- exports.position = position;
118
-
119
- var coordinates = function coordinates(graphProps, mark) {
107
+ var coordinates = exports.coordinates = function coordinates(graphProps, mark) {
120
108
  var rect = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
121
109
  width: 0,
122
110
  height: 0
@@ -124,97 +112,88 @@ var coordinates = function coordinates(graphProps, mark) {
124
112
  var position = arguments.length > 3 ? arguments[3] : undefined;
125
113
  var scale = graphProps.scale;
126
114
  var shift = 5;
127
-
128
115
  switch (position) {
129
116
  case 'bottom-right':
130
117
  return {
131
118
  left: scale.x(mark.x) + shift,
132
119
  top: scale.y(mark.y) + shift
133
120
  };
134
-
135
121
  case 'bottom-left':
136
122
  return {
137
123
  left: scale.x(mark.x) - shift - rect.width,
138
124
  top: scale.y(mark.y) + shift
139
125
  };
140
-
141
126
  case 'top-left':
142
127
  return {
143
128
  left: scale.x(mark.x) - shift - rect.width,
144
129
  top: scale.y(mark.y) - shift - rect.height
145
130
  };
146
-
147
131
  case 'top-right':
148
132
  return {
149
133
  left: scale.x(mark.x) + shift,
150
134
  top: scale.y(mark.y) - shift - rect.height
151
135
  };
152
-
153
136
  default:
154
137
  return {};
155
138
  }
156
139
  };
157
-
158
- exports.coordinates = coordinates;
159
-
160
- var LabelInput = function LabelInput(_ref2) {
161
- var _ref = _ref2._ref,
162
- externalInputRef = _ref2.externalInputRef,
163
- label = _ref2.label,
164
- disabled = _ref2.disabled,
165
- inputClassName = _ref2.inputClassName,
166
- onChange = _ref2.onChange;
140
+ var LabelInput = function LabelInput(_ref5) {
141
+ var _ref = _ref5._ref,
142
+ externalInputRef = _ref5.externalInputRef,
143
+ label = _ref5.label,
144
+ disabled = _ref5.disabled,
145
+ inputStyle = _ref5.inputStyle,
146
+ onChange = _ref5.onChange;
167
147
  return /*#__PURE__*/_react["default"].createElement(_reactInputAutosize["default"], {
168
148
  inputRef: function inputRef(r) {
169
149
  _ref(r);
170
-
171
150
  externalInputRef(r);
172
151
  },
173
152
  disabled: disabled,
174
- inputClassName: inputClassName,
153
+ inputStyle: inputStyle,
175
154
  value: label,
176
155
  onChange: onChange
177
156
  });
178
157
  };
179
-
180
- var MarkLabel = function MarkLabel(props) {
181
- var _cn;
182
-
158
+ LabelInput.propTypes = {
159
+ _ref: _propTypes["default"].func,
160
+ externalInputRef: _propTypes["default"].func,
161
+ label: _propTypes["default"].string,
162
+ disabled: _propTypes["default"].bool,
163
+ inputStyle: _propTypes["default"].object,
164
+ onChange: _propTypes["default"].func
165
+ };
166
+ var MarkLabel = exports.MarkLabel = function MarkLabel(props) {
183
167
  var _useState = (0, _react.useState)(null),
184
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
185
- input = _useState2[0],
186
- setInput = _useState2[1];
187
-
168
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
169
+ input = _useState2[0],
170
+ setInput = _useState2[1];
188
171
  var _ref = (0, _react.useCallback)(function (node) {
189
172
  return setInput(node);
190
173
  });
191
-
174
+ var theme = (0, _styles.useTheme)();
192
175
  var mark = props.mark,
193
- graphProps = props.graphProps,
194
- classes = props.classes,
195
- disabled = props.disabled,
196
- externalInputRef = props.inputRef,
197
- theme = props.theme;
198
-
176
+ graphProps = props.graphProps,
177
+ disabled = props.disabled,
178
+ externalInputRef = props.inputRef;
199
179
  var _useState3 = (0, _react.useState)(mark.label),
200
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
201
- label = _useState4[0],
202
- setLabel = _useState4[1];
203
-
180
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
181
+ label = _useState4[0],
182
+ setLabel = _useState4[1];
204
183
  var correctness = mark.correctness,
205
- correctnesslabel = mark.correctnesslabel,
206
- correctlabel = mark.correctlabel;
207
-
184
+ correctnesslabel = mark.correctnesslabel,
185
+ correctlabel = mark.correctlabel;
208
186
  var onChange = function onChange(e) {
209
187
  return setLabel(e.target.value);
210
188
  };
189
+ var debouncedLabel = (0, _useDebounce.useDebounce)(label, 200);
211
190
 
212
- var debouncedLabel = (0, _useDebounce.useDebounce)(label, 200); // useState only sets the value once, to synch props to state need useEffect
213
-
191
+ // useState only sets the value once, to synch props to state need useEffect
214
192
  (0, _react.useEffect)(function () {
215
193
  setLabel(mark.label);
216
- }, [mark.label]); // pick up the change to debouncedLabel and save it
194
+ }, [mark.label]);
217
195
 
196
+ // pick up the change to debouncedLabel and save it
218
197
  (0, _react.useEffect)(function () {
219
198
  if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {
220
199
  props.onChange(debouncedLabel);
@@ -226,7 +205,6 @@ var MarkLabel = function MarkLabel(props) {
226
205
  };
227
206
  var pos = position(graphProps, mark, rect);
228
207
  var leftTop = coordinates(graphProps, mark, rect, pos);
229
-
230
208
  var style = _objectSpread({
231
209
  position: 'fixed',
232
210
  pointerEvents: 'auto',
@@ -234,41 +212,35 @@ var MarkLabel = function MarkLabel(props) {
234
212
  alignItems: 'center',
235
213
  gap: '3px'
236
214
  }, leftTop);
237
-
238
215
  var secondLabelStyle = _objectSpread(_objectSpread({}, style), {}, {
239
216
  top: leftTop.top + 25
240
217
  });
241
-
242
218
  var disabledInput = disabled || mark.disabled;
243
-
244
- var renderInput = function renderInput(inputClass, labelValue) {
219
+ var renderInput = function renderInput(inputStyle, labelValue) {
245
220
  return /*#__PURE__*/_react["default"].createElement(LabelInput, {
246
221
  _ref: _ref,
247
222
  externalInputRef: externalInputRef,
248
223
  label: labelValue,
249
224
  disabled: disabledInput,
250
- inputClassName: (0, _classnames["default"])(inputClass),
225
+ inputStyle: inputStyle,
251
226
  onChange: onChange
252
227
  });
253
228
  };
254
-
229
+ var studentInputStyle = getStudentInputStyles();
255
230
  if (correctness === 'correct' && correctnesslabel === 'correct' && correctlabel) {
256
- return /*#__PURE__*/_react["default"].createElement("div", {
257
- className: classes.inputCorrect,
231
+ return /*#__PURE__*/_react["default"].createElement(StyledInputCorrect, {
258
232
  style: style
259
233
  }, /*#__PURE__*/_react["default"].createElement(_labelSvgIcon["default"], {
260
234
  type: "correct"
261
- }), renderInput(classes.inputStudent, correctlabel));
262
- } // avoid rendering empty label when a correct point without label was provided
263
-
235
+ }), renderInput(studentInputStyle, correctlabel));
236
+ }
264
237
 
238
+ // avoid rendering empty label when a correct point without label was provided
265
239
  if (correctness === 'correct' && correctnesslabel === 'correct' && !correctlabel) {
266
240
  return null;
267
241
  }
268
-
269
242
  if (correctness === 'correct' && correctnesslabel === 'incorrect') {
270
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
271
- className: classes.inputIncorrect,
243
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(StyledInputIncorrect, {
272
244
  style: style
273
245
  }, /*#__PURE__*/_react["default"].createElement(_labelSvgIcon["default"], {
274
246
  type: "incorrect"
@@ -277,45 +249,30 @@ var MarkLabel = function MarkLabel(props) {
277
249
  style: {
278
250
  marginLeft: '3px'
279
251
  }
280
- }) : renderInput(classes.inputStudent, label)), /*#__PURE__*/_react["default"].createElement("div", {
281
- className: classes.inputMissing,
252
+ }) : renderInput(studentInputStyle, label)), /*#__PURE__*/_react["default"].createElement(StyledInputMissing, {
282
253
  style: secondLabelStyle
283
- }, renderInput(classes.inputStudent, correctlabel)));
254
+ }, renderInput(studentInputStyle, correctlabel)));
284
255
  }
285
-
286
256
  if (correctness === 'missing') {
287
- return /*#__PURE__*/_react["default"].createElement("div", {
288
- className: classes.inputMissing,
257
+ return /*#__PURE__*/_react["default"].createElement(StyledInputMissing, {
289
258
  style: style
290
- }, renderInput(classes.inputStudent, label));
259
+ }, renderInput(studentInputStyle, label));
291
260
  }
292
-
293
261
  if (correctness === 'incorrect') {
294
- return /*#__PURE__*/_react["default"].createElement("div", {
295
- className: classes.incorrect,
262
+ return /*#__PURE__*/_react["default"].createElement(StyledIncorrect, {
296
263
  style: style
297
- }, renderInput(classes.inputStudent, label));
264
+ }, renderInput(studentInputStyle, label));
298
265
  }
299
-
300
266
  return /*#__PURE__*/_react["default"].createElement("div", {
301
267
  style: style
302
- }, renderInput((0, _classnames["default"])(classes.input, (_cn = {}, (0, _defineProperty2["default"])(_cn, classes.disabled, disabled), (0, _defineProperty2["default"])(_cn, classes.disabledMark, mark.disabled), _cn)), label));
268
+ }, renderInput(getInputStyles(theme, disabled, mark.disabled), label));
303
269
  };
304
-
305
- exports.MarkLabel = MarkLabel;
306
270
  MarkLabel.propTypes = {
307
271
  disabled: _propTypes["default"].bool,
308
272
  onChange: _propTypes["default"].func,
309
273
  graphProps: _plot.types.GraphPropsType,
310
- classes: _propTypes["default"].object,
311
274
  inputRef: _propTypes["default"].func,
312
- mark: _propTypes["default"].object,
313
- theme: _propTypes["default"].object
275
+ mark: _propTypes["default"].object
314
276
  };
315
-
316
- var _default = (0, _styles.withStyles)(styles, {
317
- withTheme: true
318
- })(MarkLabel);
319
-
320
- exports["default"] = _default;
321
- //# sourceMappingURL=mark-label.js.map
277
+ var _default = exports["default"] = MarkLabel;
278
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9zdHlsZXMiLCJfcmVhY3RJbnB1dEF1dG9zaXplIiwiX3VzZURlYm91bmNlIiwiX3Bsb3QiLCJfcmVuZGVyVWkiLCJfbGFiZWxTdmdJY29uIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZElucHV0Q29ycmVjdCIsInN0eWxlZCIsIl9yZWYyIiwidGhlbWUiLCJwYWRkaW5nIiwic3BhY2luZyIsImJvcmRlclJhZGl1cyIsImZvbnRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiY29sb3IiLCJkZWZhdWx0cyIsIldISVRFIiwiQ09SUkVDVF9XSVRIX0lDT04iLCJib3JkZXIiLCJjb25jYXQiLCJTdHlsZWRJbnB1dEluY29ycmVjdCIsIl9yZWYzIiwiSU5DT1JSRUNUX1dJVEhfSUNPTiIsIlN0eWxlZElucHV0TWlzc2luZyIsIl9yZWY0IiwiTUlTU0lOR19XSVRIX0lDT04iLCJmb250V2VpZ2h0IiwiU3R5bGVkSW5jb3JyZWN0IiwiZ2V0SW5wdXRTdHlsZXMiLCJkaXNhYmxlZCIsIm1hcmtEaXNhYmxlZCIsImZvbnRGYW1pbHkiLCJ0eXBvZ3JhcGh5IiwiUFJJTUFSWV9EQVJLIiwiU0VDT05EQVJZIiwiV2Via2l0T3BhY2l0eSIsInVuZGVmaW5lZCIsIldlYmtpdFRleHRGaWxsQ29sb3IiLCJnZXRTdHVkZW50SW5wdXRTdHlsZXMiLCJwb3NpdGlvbiIsImV4cG9ydHMiLCJncmFwaFByb3BzIiwibWFyayIsInJlY3QiLCJ3aWR0aCIsImhlaWdodCIsInNjYWxlIiwiZG9tYWluIiwicmFuZ2UiLCJzaGlmdCIsInJpZ2h0RWRnZSIsIngiLCJib3R0b21FZGdlIiwieSIsImgiLCJtYXgiLCJ2IiwibWluIiwiY29vcmRpbmF0ZXMiLCJsZWZ0IiwidG9wIiwiTGFiZWxJbnB1dCIsIl9yZWY1IiwiX3JlZiIsImV4dGVybmFsSW5wdXRSZWYiLCJsYWJlbCIsImlucHV0U3R5bGUiLCJvbkNoYW5nZSIsImNyZWF0ZUVsZW1lbnQiLCJpbnB1dFJlZiIsInZhbHVlIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiZnVuYyIsInN0cmluZyIsImJvb2wiLCJvYmplY3QiLCJNYXJrTGFiZWwiLCJwcm9wcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlucHV0Iiwic2V0SW5wdXQiLCJ1c2VDYWxsYmFjayIsIm5vZGUiLCJ1c2VUaGVtZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2V0TGFiZWwiLCJjb3JyZWN0bmVzcyIsImNvcnJlY3RuZXNzbGFiZWwiLCJjb3JyZWN0bGFiZWwiLCJ0YXJnZXQiLCJkZWJvdW5jZWRMYWJlbCIsInVzZURlYm91bmNlIiwidXNlRWZmZWN0IiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwicG9zIiwibGVmdFRvcCIsInN0eWxlIiwicG9pbnRlckV2ZW50cyIsImRpc3BsYXkiLCJhbGlnbkl0ZW1zIiwiZ2FwIiwic2Vjb25kTGFiZWxTdHlsZSIsImRpc2FibGVkSW5wdXQiLCJyZW5kZXJJbnB1dCIsImxhYmVsVmFsdWUiLCJzdHVkZW50SW5wdXRTdHlsZSIsInR5cGUiLCJGcmFnbWVudCIsIm1hcmdpbkxlZnQiLCJ0eXBlcyIsIkdyYXBoUHJvcHNUeXBlIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvbWFyay1sYWJlbC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHN0eWxlZCwgdXNlVGhlbWUgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgQXV0b3NpemVJbnB1dCBmcm9tICdyZWFjdC1pbnB1dC1hdXRvc2l6ZSc7XG5pbXBvcnQgeyB1c2VEZWJvdW5jZSB9IGZyb20gJy4vdXNlLWRlYm91bmNlJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgeyBjb2xvciB9IGZyb20gJ0BwaWUtbGliL3JlbmRlci11aSc7XG5pbXBvcnQgU3ZnSWNvbiBmcm9tICcuL2xhYmVsLXN2Zy1pY29uJztcblxuY29uc3QgU3R5bGVkSW5wdXRDb3JyZWN0ID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmbG9hdDogJ3JpZ2h0JyxcbiAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjUpLFxuICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICBmb250U2l6ZTogJzEwcHgnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRlZmF1bHRzLldISVRFLFxuICBjb2xvcjogY29sb3IuZGVmYXVsdHMuQ09SUkVDVF9XSVRIX0lDT04sXG4gIGJvcmRlcjogYHNvbGlkIDFweCAke2NvbG9yLmRlZmF1bHRzLkNPUlJFQ1RfV0lUSF9JQ09OfWAsXG59KSk7XG5cbmNvbnN0IFN0eWxlZElucHV0SW5jb3JyZWN0ID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBmbG9hdDogJ3JpZ2h0JyxcbiAgcGFkZGluZzogdGhlbWUuc3BhY2luZygwLjUpLFxuICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICBmb250U2l6ZTogJzEwcHgnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRlZmF1bHRzLldISVRFLFxuICBjb2xvcjogY29sb3IuZGVmYXVsdHMuSU5DT1JSRUNUX1dJVEhfSUNPTixcbiAgYm9yZGVyOiBgc29saWQgMXB4ICR7Y29sb3IuZGVmYXVsdHMuSU5DT1JSRUNUX1dJVEhfSUNPTn1gLFxufSkpO1xuXG5jb25zdCBTdHlsZWRJbnB1dE1pc3NpbmcgPSBzdHlsZWQoJ2RpdicpKCh7IHRoZW1lIH0pID0+ICh7XG4gIGZsb2F0OiAncmlnaHQnLFxuICBwYWRkaW5nOiB0aGVtZS5zcGFjaW5nKDAuNSksXG4gIGJvcmRlclJhZGl1czogJzRweCcsXG4gIGZvbnRTaXplOiAnMTBweCcsXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3IuZGVmYXVsdHMuV0hJVEUsXG4gIGNvbG9yOiBjb2xvci5kZWZhdWx0cy5NSVNTSU5HX1dJVEhfSUNPTixcbiAgYm9yZGVyOiBgc29saWQgMXB4ICR7Y29sb3IuZGVmYXVsdHMuTUlTU0lOR19XSVRIX0lDT059YCxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufSkpO1xuXG5jb25zdCBTdHlsZWRJbmNvcnJlY3QgPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7XG4gIGZsb2F0OiAncmlnaHQnLFxuICBwYWRkaW5nOiAwLFxuICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICBmb250U2l6ZTogJzEwcHgnLFxuICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmRlZmF1bHRzLldISVRFLFxuICBjb2xvcjogY29sb3IuZGVmYXVsdHMuSU5DT1JSRUNUX1dJVEhfSUNPTixcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufSkpO1xuXG5jb25zdCBnZXRJbnB1dFN0eWxlcyA9ICh0aGVtZSwgZGlzYWJsZWQsIG1hcmtEaXNhYmxlZCkgPT4gKHtcbiAgZmxvYXQ6ICdyaWdodCcsXG4gIHBhZGRpbmc6IHRoZW1lLnNwYWNpbmcoMC41KSxcbiAgZm9udEZhbWlseTogdGhlbWUudHlwb2dyYXBoeS5mb250RmFtaWx5LFxuICBmb250U2l6ZTogJzEwcHgnLFxuICBib3JkZXI6IGRpc2FibGVkIFxuICAgID8gYHNvbGlkIDFweCAke2NvbG9yLmRlZmF1bHRzLlBSSU1BUllfREFSS31gXG4gICAgOiBtYXJrRGlzYWJsZWQgXG4gICAgICA/IGBzb2xpZCAxcHggJHtjb2xvci5kaXNhYmxlZCgpfWBcbiAgICAgIDogYHNvbGlkIDFweCAke2NvbG9yLmRlZmF1bHRzLlNFQ09OREFSWX1gLFxuICBib3JkZXJSYWRpdXM6ICczcHgnLFxuICBjb2xvcjogbWFya0Rpc2FibGVkID8gY29sb3IuZGlzYWJsZWQoKSA6IGNvbG9yLmRlZmF1bHRzLlBSSU1BUllfREFSSyxcbiAgYmFja2dyb3VuZENvbG9yOiBjb2xvci5kZWZhdWx0cy5XSElURSxcbiAgV2Via2l0T3BhY2l0eTogZGlzYWJsZWQgPyAnMScgOiB1bmRlZmluZWQsXG4gIFdlYmtpdFRleHRGaWxsQ29sb3I6IG1hcmtEaXNhYmxlZCA/IGNvbG9yLmRpc2FibGVkKCkgOiB1bmRlZmluZWQsXG59KTtcblxuY29uc3QgZ2V0U3R1ZGVudElucHV0U3R5bGVzID0gKCkgPT4gKHtcbiAgcGFkZGluZzogJzAnLFxuICBib3JkZXI6ICdub25lJyxcbiAgY29sb3I6ICdpbmhlcml0JyxcbiAgZm9udFdlaWdodDogJ2JvbGQnLFxufSk7XG5cbmV4cG9ydCBjb25zdCBwb3NpdGlvbiA9IChncmFwaFByb3BzLCBtYXJrLCByZWN0ID0geyB3aWR0aDogMCwgaGVpZ2h0OiAwIH0pID0+IHtcbiAgY29uc3QgeyBzY2FsZSwgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcztcbiAgY29uc3Qgc2hpZnQgPSA1O1xuXG4gIGNvbnN0IHJpZ2h0RWRnZSA9IHNjYWxlLngobWFyay54KSArIHJlY3Qud2lkdGggKyBzaGlmdDtcbiAgY29uc3QgYm90dG9tRWRnZSA9IHNjYWxlLnkobWFyay55KSArIHJlY3QuaGVpZ2h0ICsgc2hpZnQ7XG5cbiAgY29uc3QgaCA9IHJpZ2h0RWRnZSA+PSBzY2FsZS54KGRvbWFpbi5tYXgpID8gJ2xlZnQnIDogJ3JpZ2h0JztcbiAgY29uc3QgdiA9IGJvdHRvbUVkZ2UgPj0gc2NhbGUueShyYW5nZS5taW4pID8gJ3RvcCcgOiAnYm90dG9tJztcblxuICByZXR1cm4gYCR7dn0tJHtofWA7XG59O1xuXG5leHBvcnQgY29uc3QgY29vcmRpbmF0ZXMgPSAoZ3JhcGhQcm9wcywgbWFyaywgcmVjdCA9IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9LCBwb3NpdGlvbikgPT4ge1xuICBjb25zdCB7IHNjYWxlIH0gPSBncmFwaFByb3BzO1xuICBjb25zdCBzaGlmdCA9IDU7XG5cbiAgc3dpdGNoIChwb3NpdGlvbikge1xuICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICByZXR1cm4geyBsZWZ0OiBzY2FsZS54KG1hcmsueCkgKyBzaGlmdCwgdG9wOiBzY2FsZS55KG1hcmsueSkgKyBzaGlmdCB9O1xuICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgIHJldHVybiB7IGxlZnQ6IHNjYWxlLngobWFyay54KSAtIHNoaWZ0IC0gcmVjdC53aWR0aCwgdG9wOiBzY2FsZS55KG1hcmsueSkgKyBzaGlmdCB9O1xuICAgIGNhc2UgJ3RvcC1sZWZ0JzpcbiAgICAgIHJldHVybiB7IGxlZnQ6IHNjYWxlLngobWFyay54KSAtIHNoaWZ0IC0gcmVjdC53aWR0aCwgdG9wOiBzY2FsZS55KG1hcmsueSkgLSBzaGlmdCAtIHJlY3QuaGVpZ2h0IH07XG4gICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgIHJldHVybiB7IGxlZnQ6IHNjYWxlLngobWFyay54KSArIHNoaWZ0LCB0b3A6IHNjYWxlLnkobWFyay55KSAtIHNoaWZ0IC0gcmVjdC5oZWlnaHQgfTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHt9O1xuICB9XG59O1xuXG5jb25zdCBMYWJlbElucHV0ID0gKHsgX3JlZiwgZXh0ZXJuYWxJbnB1dFJlZiwgbGFiZWwsIGRpc2FibGVkLCBpbnB1dFN0eWxlLCBvbkNoYW5nZSB9KSA9PiAoXG4gIDxBdXRvc2l6ZUlucHV0XG4gICAgaW5wdXRSZWY9eyhyKSA9PiB7XG4gICAgICBfcmVmKHIpO1xuICAgICAgZXh0ZXJuYWxJbnB1dFJlZihyKTtcbiAgICB9fVxuICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICBpbnB1dFN0eWxlPXtpbnB1dFN0eWxlfVxuICAgIHZhbHVlPXtsYWJlbH1cbiAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gIC8+XG4pO1xuXG5MYWJlbElucHV0LnByb3BUeXBlcyA9IHtcbiAgX3JlZjogUHJvcFR5cGVzLmZ1bmMsXG4gIGV4dGVybmFsSW5wdXRSZWY6IFByb3BUeXBlcy5mdW5jLFxuICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBpbnB1dFN0eWxlOiBQcm9wVHlwZXMub2JqZWN0LFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5leHBvcnQgY29uc3QgTWFya0xhYmVsID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IFtpbnB1dCwgc2V0SW5wdXRdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IF9yZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4gc2V0SW5wdXQobm9kZSkpO1xuICBjb25zdCB0aGVtZSA9IHVzZVRoZW1lKCk7XG5cbiAgY29uc3QgeyBtYXJrLCBncmFwaFByb3BzLCBkaXNhYmxlZCwgaW5wdXRSZWY6IGV4dGVybmFsSW5wdXRSZWYgfSA9IHByb3BzO1xuXG4gIGNvbnN0IFtsYWJlbCwgc2V0TGFiZWxdID0gdXNlU3RhdGUobWFyay5sYWJlbCk7XG4gIGNvbnN0IHsgY29ycmVjdG5lc3MsIGNvcnJlY3RuZXNzbGFiZWwsIGNvcnJlY3RsYWJlbCB9ID0gbWFyaztcbiAgY29uc3Qgb25DaGFuZ2UgPSAoZSkgPT4gc2V0TGFiZWwoZS50YXJnZXQudmFsdWUpO1xuXG4gIGNvbnN0IGRlYm91bmNlZExhYmVsID0gdXNlRGVib3VuY2UobGFiZWwsIDIwMCk7XG5cbiAgLy8gdXNlU3RhdGUgb25seSBzZXRzIHRoZSB2YWx1ZSBvbmNlLCB0byBzeW5jaCBwcm9wcyB0byBzdGF0ZSBuZWVkIHVzZUVmZmVjdFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExhYmVsKG1hcmsubGFiZWwpO1xuICB9LCBbbWFyay5sYWJlbF0pO1xuXG4gIC8vIHBpY2sgdXAgdGhlIGNoYW5nZSB0byBkZWJvdW5jZWRMYWJlbCBhbmQgc2F2ZSBpdFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgZGVib3VuY2VkTGFiZWwgPT09ICdzdHJpbmcnICYmIGRlYm91bmNlZExhYmVsICE9PSBtYXJrLmxhYmVsKSB7XG4gICAgICBwcm9wcy5vbkNoYW5nZShkZWJvdW5jZWRMYWJlbCk7XG4gICAgfVxuICB9LCBbZGVib3VuY2VkTGFiZWxdKTtcblxuICBjb25zdCByZWN0ID0gaW5wdXQgPyBpbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSA6IHsgd2lkdGg6IDAsIGhlaWdodDogMCB9O1xuICBjb25zdCBwb3MgPSBwb3NpdGlvbihncmFwaFByb3BzLCBtYXJrLCByZWN0KTtcbiAgY29uc3QgbGVmdFRvcCA9IGNvb3JkaW5hdGVzKGdyYXBoUHJvcHMsIG1hcmssIHJlY3QsIHBvcyk7XG5cbiAgY29uc3Qgc3R5bGUgPSB7XG4gICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBnYXA6ICczcHgnLFxuICAgIC4uLmxlZnRUb3AsXG4gIH07XG5cbiAgY29uc3Qgc2Vjb25kTGFiZWxTdHlsZSA9IHtcbiAgICAuLi5zdHlsZSxcbiAgICB0b3A6IGxlZnRUb3AudG9wICsgMjUsXG4gIH07XG5cbiAgY29uc3QgZGlzYWJsZWRJbnB1dCA9IGRpc2FibGVkIHx8IG1hcmsuZGlzYWJsZWQ7XG5cbiAgY29uc3QgcmVuZGVySW5wdXQgPSAoaW5wdXRTdHlsZSwgbGFiZWxWYWx1ZSkgPT4gKFxuICAgIDxMYWJlbElucHV0XG4gICAgICBfcmVmPXtfcmVmfVxuICAgICAgZXh0ZXJuYWxJbnB1dFJlZj17ZXh0ZXJuYWxJbnB1dFJlZn1cbiAgICAgIGxhYmVsPXtsYWJlbFZhbHVlfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkSW5wdXR9XG4gICAgICBpbnB1dFN0eWxlPXtpbnB1dFN0eWxlfVxuICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgIC8+XG4gICk7XG5cbiAgY29uc3Qgc3R1ZGVudElucHV0U3R5bGUgPSBnZXRTdHVkZW50SW5wdXRTdHlsZXMoKTtcblxuICBpZiAoY29ycmVjdG5lc3MgPT09ICdjb3JyZWN0JyAmJiBjb3JyZWN0bmVzc2xhYmVsID09PSAnY29ycmVjdCcgJiYgY29ycmVjdGxhYmVsKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRJbnB1dENvcnJlY3Qgc3R5bGU9e3N0eWxlfT5cbiAgICAgICAgPFN2Z0ljb24gdHlwZT1cImNvcnJlY3RcIiAvPlxuICAgICAgICB7cmVuZGVySW5wdXQoc3R1ZGVudElucHV0U3R5bGUsIGNvcnJlY3RsYWJlbCl9XG4gICAgICA8L1N0eWxlZElucHV0Q29ycmVjdD5cbiAgICApO1xuICB9XG5cbiAgLy8gYXZvaWQgcmVuZGVyaW5nIGVtcHR5IGxhYmVsIHdoZW4gYSBjb3JyZWN0IHBvaW50IHdpdGhvdXQgbGFiZWwgIHdhcyBwcm92aWRlZFxuICBpZiAoY29ycmVjdG5lc3MgPT09ICdjb3JyZWN0JyAmJiBjb3JyZWN0bmVzc2xhYmVsID09PSAnY29ycmVjdCcgJiYgIWNvcnJlY3RsYWJlbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNvcnJlY3RuZXNzID09PSAnY29ycmVjdCcgJiYgY29ycmVjdG5lc3NsYWJlbCA9PT0gJ2luY29ycmVjdCcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFN0eWxlZElucHV0SW5jb3JyZWN0IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgICAgPFN2Z0ljb24gdHlwZT1cImluY29ycmVjdFwiIC8+XG4gICAgICAgICAge2xhYmVsID09PSAnJyA/IChcbiAgICAgICAgICAgIDxTdmdJY29uIHR5cGU9XCJlbXB0eVwiIHN0eWxlPXt7IG1hcmdpbkxlZnQ6ICczcHgnIH19IC8+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIHJlbmRlcklucHV0KHN0dWRlbnRJbnB1dFN0eWxlLCBsYWJlbClcbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZElucHV0SW5jb3JyZWN0PlxuICAgICAgICA8U3R5bGVkSW5wdXRNaXNzaW5nIHN0eWxlPXtzZWNvbmRMYWJlbFN0eWxlfT5cbiAgICAgICAgICB7cmVuZGVySW5wdXQoc3R1ZGVudElucHV0U3R5bGUsIGNvcnJlY3RsYWJlbCl9XG4gICAgICAgIDwvU3R5bGVkSW5wdXRNaXNzaW5nPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuXG4gIGlmIChjb3JyZWN0bmVzcyA9PT0gJ21pc3NpbmcnKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRJbnB1dE1pc3Npbmcgc3R5bGU9e3N0eWxlfT5cbiAgICAgICAge3JlbmRlcklucHV0KHN0dWRlbnRJbnB1dFN0eWxlLCBsYWJlbCl9XG4gICAgICA8L1N0eWxlZElucHV0TWlzc2luZz5cbiAgICApO1xuICB9XG5cbiAgaWYgKGNvcnJlY3RuZXNzID09PSAnaW5jb3JyZWN0Jykge1xuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkSW5jb3JyZWN0IHN0eWxlPXtzdHlsZX0+XG4gICAgICAgIHtyZW5kZXJJbnB1dChzdHVkZW50SW5wdXRTdHlsZSwgbGFiZWwpfVxuICAgICAgPC9TdHlsZWRJbmNvcnJlY3Q+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBzdHlsZT17c3R5bGV9PlxuICAgICAge3JlbmRlcklucHV0KFxuICAgICAgICBnZXRJbnB1dFN0eWxlcyh0aGVtZSwgZGlzYWJsZWQsIG1hcmsuZGlzYWJsZWQpLFxuICAgICAgICBsYWJlbCxcbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5NYXJrTGFiZWwucHJvcFR5cGVzID0ge1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUsXG4gIGlucHV0UmVmOiBQcm9wVHlwZXMuZnVuYyxcbiAgbWFyazogUHJvcFR5cGVzLm9iamVjdCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1hcmtMYWJlbDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFBdUMsU0FBQUQsd0JBQUFVLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFaLHVCQUFBLFlBQUFBLHdCQUFBVSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJBQUFULENBQUEsaUJBQUFBLENBQUEsZ0JBQUFVLE9BQUEsQ0FBQVYsQ0FBQSwwQkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxjQUFBTSxFQUFBLElBQUFkLENBQUEsZ0JBQUFjLEVBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxJQUFBRCxDQUFBLEdBQUFXLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFjLEVBQUEsT0FBQVAsQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQU0sRUFBQSxFQUFBUCxDQUFBLElBQUFDLENBQUEsQ0FBQU0sRUFBQSxJQUFBZCxDQUFBLENBQUFjLEVBQUEsV0FBQU4sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFBQSxTQUFBbUIsUUFBQXBCLENBQUEsRUFBQUcsQ0FBQSxRQUFBRixDQUFBLEdBQUFnQixNQUFBLENBQUFJLElBQUEsQ0FBQXJCLENBQUEsT0FBQWlCLE1BQUEsQ0FBQUsscUJBQUEsUUFBQWhCLENBQUEsR0FBQVcsTUFBQSxDQUFBSyxxQkFBQSxDQUFBdEIsQ0FBQSxHQUFBRyxDQUFBLEtBQUFHLENBQUEsR0FBQUEsQ0FBQSxDQUFBaUIsTUFBQSxXQUFBcEIsQ0FBQSxXQUFBYyxNQUFBLENBQUFFLHdCQUFBLENBQUFuQixDQUFBLEVBQUFHLENBQUEsRUFBQXFCLFVBQUEsT0FBQXZCLENBQUEsQ0FBQXdCLElBQUEsQ0FBQUMsS0FBQSxDQUFBekIsQ0FBQSxFQUFBSyxDQUFBLFlBQUFMLENBQUE7QUFBQSxTQUFBMEIsY0FBQTNCLENBQUEsYUFBQUcsQ0FBQSxNQUFBQSxDQUFBLEdBQUF5QixTQUFBLENBQUFDLE1BQUEsRUFBQTFCLENBQUEsVUFBQUYsQ0FBQSxXQUFBMkIsU0FBQSxDQUFBekIsQ0FBQSxJQUFBeUIsU0FBQSxDQUFBekIsQ0FBQSxRQUFBQSxDQUFBLE9BQUFpQixPQUFBLENBQUFILE1BQUEsQ0FBQWhCLENBQUEsT0FBQTZCLE9BQUEsV0FBQTNCLENBQUEsUUFBQTRCLGdCQUFBLGFBQUEvQixDQUFBLEVBQUFHLENBQUEsRUFBQUYsQ0FBQSxDQUFBRSxDQUFBLFNBQUFjLE1BQUEsQ0FBQWUseUJBQUEsR0FBQWYsTUFBQSxDQUFBZ0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQWlCLE1BQUEsQ0FBQWUseUJBQUEsQ0FBQS9CLENBQUEsS0FBQW1CLE9BQUEsQ0FBQUgsTUFBQSxDQUFBaEIsQ0FBQSxHQUFBNkIsT0FBQSxXQUFBM0IsQ0FBQSxJQUFBYyxNQUFBLENBQUFDLGNBQUEsQ0FBQWxCLENBQUEsRUFBQUcsQ0FBQSxFQUFBYyxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFFLENBQUEsaUJBQUFILENBQUE7QUFFdkMsSUFBTWtDLGtCQUFrQixHQUFHLElBQUFDLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFBQyxLQUFBO0VBQUEsSUFBR0MsS0FBSyxHQUFBRCxLQUFBLENBQUxDLEtBQUs7RUFBQSxPQUFRO0lBQ3ZELFNBQU8sT0FBTztJQUNkQyxPQUFPLEVBQUVELEtBQUssQ0FBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMzQkMsWUFBWSxFQUFFLEtBQUs7SUFDbkJDLFFBQVEsRUFBRSxNQUFNO0lBQ2hCQyxlQUFlLEVBQUVDLGVBQUssQ0FBQ0MsUUFBUSxDQUFDQyxLQUFLO0lBQ3JDRixLQUFLLEVBQUVBLGVBQUssQ0FBQ0MsUUFBUSxDQUFDRSxpQkFBaUI7SUFDdkNDLE1BQU0sZUFBQUMsTUFBQSxDQUFlTCxlQUFLLENBQUNDLFFBQVEsQ0FBQ0UsaUJBQWlCO0VBQ3ZELENBQUM7QUFBQSxDQUFDLENBQUM7QUFFSCxJQUFNRyxvQkFBb0IsR0FBRyxJQUFBZCxjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsVUFBQWUsS0FBQTtFQUFBLElBQUdiLEtBQUssR0FBQWEsS0FBQSxDQUFMYixLQUFLO0VBQUEsT0FBUTtJQUN6RCxTQUFPLE9BQU87SUFDZEMsT0FBTyxFQUFFRCxLQUFLLENBQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDM0JDLFlBQVksRUFBRSxLQUFLO0lBQ25CQyxRQUFRLEVBQUUsTUFBTTtJQUNoQkMsZUFBZSxFQUFFQyxlQUFLLENBQUNDLFFBQVEsQ0FBQ0MsS0FBSztJQUNyQ0YsS0FBSyxFQUFFQSxlQUFLLENBQUNDLFFBQVEsQ0FBQ08sbUJBQW1CO0lBQ3pDSixNQUFNLGVBQUFDLE1BQUEsQ0FBZUwsZUFBSyxDQUFDQyxRQUFRLENBQUNPLG1CQUFtQjtFQUN6RCxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsSUFBTUMsa0JBQWtCLEdBQUcsSUFBQWpCLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQyxVQUFBa0IsS0FBQTtFQUFBLElBQUdoQixLQUFLLEdBQUFnQixLQUFBLENBQUxoQixLQUFLO0VBQUEsT0FBUTtJQUN2RCxTQUFPLE9BQU87SUFDZEMsT0FBTyxFQUFFRCxLQUFLLENBQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDM0JDLFlBQVksRUFBRSxLQUFLO0lBQ25CQyxRQUFRLEVBQUUsTUFBTTtJQUNoQkMsZUFBZSxFQUFFQyxlQUFLLENBQUNDLFFBQVEsQ0FBQ0MsS0FBSztJQUNyQ0YsS0FBSyxFQUFFQSxlQUFLLENBQUNDLFFBQVEsQ0FBQ1UsaUJBQWlCO0lBQ3ZDUCxNQUFNLGVBQUFDLE1BQUEsQ0FBZUwsZUFBSyxDQUFDQyxRQUFRLENBQUNVLGlCQUFpQixDQUFFO0lBQ3ZEQyxVQUFVLEVBQUU7RUFDZCxDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsSUFBTUMsZUFBZSxHQUFHLElBQUFyQixjQUFNLEVBQUMsS0FBSyxDQUFDLENBQUM7RUFBQSxPQUFPO0lBQzNDLFNBQU8sT0FBTztJQUNkRyxPQUFPLEVBQUUsQ0FBQztJQUNWRSxZQUFZLEVBQUUsS0FBSztJQUNuQkMsUUFBUSxFQUFFLE1BQU07SUFDaEJDLGVBQWUsRUFBRUMsZUFBSyxDQUFDQyxRQUFRLENBQUNDLEtBQUs7SUFDckNGLEtBQUssRUFBRUEsZUFBSyxDQUFDQyxRQUFRLENBQUNPLG1CQUFtQjtJQUN6Q0ksVUFBVSxFQUFFO0VBQ2QsQ0FBQztBQUFBLENBQUMsQ0FBQztBQUVILElBQU1FLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSXBCLEtBQUssRUFBRXFCLFFBQVEsRUFBRUMsWUFBWTtFQUFBLE9BQU07SUFDekQsU0FBTyxPQUFPO0lBQ2RyQixPQUFPLEVBQUVELEtBQUssQ0FBQ0UsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMzQnFCLFVBQVUsRUFBRXZCLEtBQUssQ0FBQ3dCLFVBQVUsQ0FBQ0QsVUFBVTtJQUN2Q25CLFFBQVEsRUFBRSxNQUFNO0lBQ2hCTSxNQUFNLEVBQUVXLFFBQVEsZ0JBQUFWLE1BQUEsQ0FDQ0wsZUFBSyxDQUFDQyxRQUFRLENBQUNrQixZQUFZLElBQ3hDSCxZQUFZLGdCQUFBWCxNQUFBLENBQ0dMLGVBQUssQ0FBQ2UsUUFBUSxDQUFDLENBQUMsaUJBQUFWLE1BQUEsQ0FDaEJMLGVBQUssQ0FBQ0MsUUFBUSxDQUFDbUIsU0FBUyxDQUFFO0lBQzdDdkIsWUFBWSxFQUFFLEtBQUs7SUFDbkJHLEtBQUssRUFBRWdCLFlBQVksR0FBR2hCLGVBQUssQ0FBQ2UsUUFBUSxDQUFDLENBQUMsR0FBR2YsZUFBSyxDQUFDQyxRQUFRLENBQUNrQixZQUFZO0lBQ3BFcEIsZUFBZSxFQUFFQyxlQUFLLENBQUNDLFFBQVEsQ0FBQ0MsS0FBSztJQUNyQ21CLGFBQWEsRUFBRU4sUUFBUSxHQUFHLEdBQUcsR0FBR08sU0FBUztJQUN6Q0MsbUJBQW1CLEVBQUVQLFlBQVksR0FBR2hCLGVBQUssQ0FBQ2UsUUFBUSxDQUFDLENBQUMsR0FBR087RUFDekQsQ0FBQztBQUFBLENBQUM7QUFFRixJQUFNRSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUFBO0VBQUEsT0FBVTtJQUNuQzdCLE9BQU8sRUFBRSxHQUFHO0lBQ1pTLE1BQU0sRUFBRSxNQUFNO0lBQ2RKLEtBQUssRUFBRSxTQUFTO0lBQ2hCWSxVQUFVLEVBQUU7RUFDZCxDQUFDO0FBQUEsQ0FBQztBQUVLLElBQU1hLFFBQVEsR0FBQUMsT0FBQSxDQUFBRCxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBSUUsVUFBVSxFQUFFQyxJQUFJLEVBQXFDO0VBQUEsSUFBbkNDLElBQUksR0FBQTVDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFxQyxTQUFBLEdBQUFyQyxTQUFBLE1BQUc7SUFBRTZDLEtBQUssRUFBRSxDQUFDO0lBQUVDLE1BQU0sRUFBRTtFQUFFLENBQUM7RUFDdkUsSUFBUUMsS0FBSyxHQUFvQkwsVUFBVSxDQUFuQ0ssS0FBSztJQUFFQyxNQUFNLEdBQVlOLFVBQVUsQ0FBNUJNLE1BQU07SUFBRUMsS0FBSyxHQUFLUCxVQUFVLENBQXBCTyxLQUFLO0VBQzVCLElBQU1DLEtBQUssR0FBRyxDQUFDO0VBRWYsSUFBTUMsU0FBUyxHQUFHSixLQUFLLENBQUNLLENBQUMsQ0FBQ1QsSUFBSSxDQUFDUyxDQUFDLENBQUMsR0FBR1IsSUFBSSxDQUFDQyxLQUFLLEdBQUdLLEtBQUs7RUFDdEQsSUFBTUcsVUFBVSxHQUFHTixLQUFLLENBQUNPLENBQUMsQ0FBQ1gsSUFBSSxDQUFDVyxDQUFDLENBQUMsR0FBR1YsSUFBSSxDQUFDRSxNQUFNLEdBQUdJLEtBQUs7RUFFeEQsSUFBTUssQ0FBQyxHQUFHSixTQUFTLElBQUlKLEtBQUssQ0FBQ0ssQ0FBQyxDQUFDSixNQUFNLENBQUNRLEdBQUcsQ0FBQyxHQUFHLE1BQU0sR0FBRyxPQUFPO0VBQzdELElBQU1DLENBQUMsR0FBR0osVUFBVSxJQUFJTixLQUFLLENBQUNPLENBQUMsQ0FBQ0wsS0FBSyxDQUFDUyxHQUFHLENBQUMsR0FBRyxLQUFLLEdBQUcsUUFBUTtFQUU3RCxVQUFBdEMsTUFBQSxDQUFVcUMsQ0FBQyxPQUFBckMsTUFBQSxDQUFJbUMsQ0FBQztBQUNsQixDQUFDO0FBRU0sSUFBTUksV0FBVyxHQUFBbEIsT0FBQSxDQUFBa0IsV0FBQSxHQUFHLFNBQWRBLFdBQVdBLENBQUlqQixVQUFVLEVBQUVDLElBQUksRUFBK0M7RUFBQSxJQUE3Q0MsSUFBSSxHQUFBNUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQXFDLFNBQUEsR0FBQXJDLFNBQUEsTUFBRztJQUFFNkMsS0FBSyxFQUFFLENBQUM7SUFBRUMsTUFBTSxFQUFFO0VBQUUsQ0FBQztFQUFBLElBQUVOLFFBQVEsR0FBQXhDLFNBQUEsQ0FBQUMsTUFBQSxPQUFBRCxTQUFBLE1BQUFxQyxTQUFBO0VBQ3BGLElBQVFVLEtBQUssR0FBS0wsVUFBVSxDQUFwQkssS0FBSztFQUNiLElBQU1HLEtBQUssR0FBRyxDQUFDO0VBRWYsUUFBUVYsUUFBUTtJQUNkLEtBQUssY0FBYztNQUNqQixPQUFPO1FBQUVvQixJQUFJLEVBQUViLEtBQUssQ0FBQ0ssQ0FBQyxDQUFDVCxJQUFJLENBQUNTLENBQUMsQ0FBQyxHQUFHRixLQUFLO1FBQUVXLEdBQUcsRUFBRWQsS0FBSyxDQUFDTyxDQUFDLENBQUNYLElBQUksQ0FBQ1csQ0FBQyxDQUFDLEdBQUdKO01BQU0sQ0FBQztJQUN4RSxLQUFLLGFBQWE7TUFDaEIsT0FBTztRQUFFVSxJQUFJLEVBQUViLEtBQUssQ0FBQ0ssQ0FBQyxDQUFDVCxJQUFJLENBQUNTLENBQUMsQ0FBQyxHQUFHRixLQUFLLEdBQUdOLElBQUksQ0FBQ0MsS0FBSztRQUFFZ0IsR0FBRyxFQUFFZCxLQUFLLENBQUNPLENBQUMsQ0FBQ1gsSUFBSSxDQUFDVyxDQUFDLENBQUMsR0FBR0o7TUFBTSxDQUFDO0lBQ3JGLEtBQUssVUFBVTtNQUNiLE9BQU87UUFBRVUsSUFBSSxFQUFFYixLQUFLLENBQUNLLENBQUMsQ0FBQ1QsSUFBSSxDQUFDUyxDQUFDLENBQUMsR0FBR0YsS0FBSyxHQUFHTixJQUFJLENBQUNDLEtBQUs7UUFBRWdCLEdBQUcsRUFBRWQsS0FBSyxDQUFDTyxDQUFDLENBQUNYLElBQUksQ0FBQ1csQ0FBQyxDQUFDLEdBQUdKLEtBQUssR0FBR04sSUFBSSxDQUFDRTtNQUFPLENBQUM7SUFDbkcsS0FBSyxXQUFXO01BQ2QsT0FBTztRQUFFYyxJQUFJLEVBQUViLEtBQUssQ0FBQ0ssQ0FBQyxDQUFDVCxJQUFJLENBQUNTLENBQUMsQ0FBQyxHQUFHRixLQUFLO1FBQUVXLEdBQUcsRUFBRWQsS0FBSyxDQUFDTyxDQUFDLENBQUNYLElBQUksQ0FBQ1csQ0FBQyxDQUFDLEdBQUdKLEtBQUssR0FBR04sSUFBSSxDQUFDRTtNQUFPLENBQUM7SUFDdEY7TUFDRSxPQUFPLENBQUMsQ0FBQztFQUNiO0FBQ0YsQ0FBQztBQUVELElBQU1nQixVQUFVLEdBQUcsU0FBYkEsVUFBVUEsQ0FBQUMsS0FBQTtFQUFBLElBQU1DLElBQUksR0FBQUQsS0FBQSxDQUFKQyxJQUFJO0lBQUVDLGdCQUFnQixHQUFBRixLQUFBLENBQWhCRSxnQkFBZ0I7SUFBRUMsS0FBSyxHQUFBSCxLQUFBLENBQUxHLEtBQUs7SUFBRXBDLFFBQVEsR0FBQWlDLEtBQUEsQ0FBUmpDLFFBQVE7SUFBRXFDLFVBQVUsR0FBQUosS0FBQSxDQUFWSSxVQUFVO0lBQUVDLFFBQVEsR0FBQUwsS0FBQSxDQUFSSyxRQUFRO0VBQUEsb0JBQ2pGM0csTUFBQSxZQUFBNEcsYUFBQSxDQUFDdEcsbUJBQUEsV0FBYTtJQUNadUcsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUcvRixDQUFDLEVBQUs7TUFDZnlGLElBQUksQ0FBQ3pGLENBQUMsQ0FBQztNQUNQMEYsZ0JBQWdCLENBQUMxRixDQUFDLENBQUM7SUFDckIsQ0FBRTtJQUNGdUQsUUFBUSxFQUFFQSxRQUFTO0lBQ25CcUMsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCSSxLQUFLLEVBQUVMLEtBQU07SUFDYkUsUUFBUSxFQUFFQTtFQUFTLENBQ3BCLENBQUM7QUFBQSxDQUNIO0FBRUROLFVBQVUsQ0FBQ1UsU0FBUyxHQUFHO0VBQ3JCUixJQUFJLEVBQUVTLHFCQUFTLENBQUNDLElBQUk7RUFDcEJULGdCQUFnQixFQUFFUSxxQkFBUyxDQUFDQyxJQUFJO0VBQ2hDUixLQUFLLEVBQUVPLHFCQUFTLENBQUNFLE1BQU07RUFDdkI3QyxRQUFRLEVBQUUyQyxxQkFBUyxDQUFDRyxJQUFJO0VBQ3hCVCxVQUFVLEVBQUVNLHFCQUFTLENBQUNJLE1BQU07RUFDNUJULFFBQVEsRUFBRUsscUJBQVMsQ0FBQ0M7QUFDdEIsQ0FBQztBQUVNLElBQU1JLFNBQVMsR0FBQXJDLE9BQUEsQ0FBQXFDLFNBQUEsR0FBRyxTQUFaQSxTQUFTQSxDQUFJQyxLQUFLLEVBQUs7RUFDbEMsSUFBQUMsU0FBQSxHQUEwQixJQUFBQyxlQUFRLEVBQUMsSUFBSSxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQWpDSSxLQUFLLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBQ3RCLElBQU1sQixJQUFJLEdBQUcsSUFBQXNCLGtCQUFXLEVBQUMsVUFBQ0MsSUFBSTtJQUFBLE9BQUtGLFFBQVEsQ0FBQ0UsSUFBSSxDQUFDO0VBQUEsRUFBQztFQUNsRCxJQUFNOUUsS0FBSyxHQUFHLElBQUErRSxnQkFBUSxFQUFDLENBQUM7RUFFeEIsSUFBUTdDLElBQUksR0FBdURvQyxLQUFLLENBQWhFcEMsSUFBSTtJQUFFRCxVQUFVLEdBQTJDcUMsS0FBSyxDQUExRHJDLFVBQVU7SUFBRVosUUFBUSxHQUFpQ2lELEtBQUssQ0FBOUNqRCxRQUFRO0lBQVltQyxnQkFBZ0IsR0FBS2MsS0FBSyxDQUFwQ1QsUUFBUTtFQUU1QyxJQUFBbUIsVUFBQSxHQUEwQixJQUFBUixlQUFRLEVBQUN0QyxJQUFJLENBQUN1QixLQUFLLENBQUM7SUFBQXdCLFVBQUEsT0FBQVAsZUFBQSxhQUFBTSxVQUFBO0lBQXZDdkIsS0FBSyxHQUFBd0IsVUFBQTtJQUFFQyxRQUFRLEdBQUFELFVBQUE7RUFDdEIsSUFBUUUsV0FBVyxHQUFxQ2pELElBQUksQ0FBcERpRCxXQUFXO0lBQUVDLGdCQUFnQixHQUFtQmxELElBQUksQ0FBdkNrRCxnQkFBZ0I7SUFBRUMsWUFBWSxHQUFLbkQsSUFBSSxDQUFyQm1ELFlBQVk7RUFDbkQsSUFBTTFCLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFJaEcsQ0FBQztJQUFBLE9BQUt1SCxRQUFRLENBQUN2SCxDQUFDLENBQUMySCxNQUFNLENBQUN4QixLQUFLLENBQUM7RUFBQTtFQUVoRCxJQUFNeUIsY0FBYyxHQUFHLElBQUFDLHdCQUFXLEVBQUMvQixLQUFLLEVBQUUsR0FBRyxDQUFDOztFQUU5QztFQUNBLElBQUFnQyxnQkFBUyxFQUFDLFlBQU07SUFDZFAsUUFBUSxDQUFDaEQsSUFBSSxDQUFDdUIsS0FBSyxDQUFDO0VBQ3RCLENBQUMsRUFBRSxDQUFDdkIsSUFBSSxDQUFDdUIsS0FBSyxDQUFDLENBQUM7O0VBRWhCO0VBQ0EsSUFBQWdDLGdCQUFTLEVBQUMsWUFBTTtJQUNkLElBQUksT0FBT0YsY0FBYyxLQUFLLFFBQVEsSUFBSUEsY0FBYyxLQUFLckQsSUFBSSxDQUFDdUIsS0FBSyxFQUFFO01BQ3ZFYSxLQUFLLENBQUNYLFFBQVEsQ0FBQzRCLGNBQWMsQ0FBQztJQUNoQztFQUNGLENBQUMsRUFBRSxDQUFDQSxjQUFjLENBQUMsQ0FBQztFQUVwQixJQUFNcEQsSUFBSSxHQUFHd0MsS0FBSyxHQUFHQSxLQUFLLENBQUNlLHFCQUFxQixDQUFDLENBQUMsR0FBRztJQUFFdEQsS0FBSyxFQUFFLENBQUM7SUFBRUMsTUFBTSxFQUFFO0VBQUUsQ0FBQztFQUM1RSxJQUFNc0QsR0FBRyxHQUFHNUQsUUFBUSxDQUFDRSxVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxDQUFDO0VBQzVDLElBQU15RCxPQUFPLEdBQUcxQyxXQUFXLENBQUNqQixVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFd0QsR0FBRyxDQUFDO0VBRXhELElBQU1FLEtBQUssR0FBQXZHLGFBQUE7SUFDVHlDLFFBQVEsRUFBRSxPQUFPO0lBQ2pCK0QsYUFBYSxFQUFFLE1BQU07SUFDckJDLE9BQU8sRUFBRSxNQUFNO0lBQ2ZDLFVBQVUsRUFBRSxRQUFRO0lBQ3BCQyxHQUFHLEVBQUU7RUFBSyxHQUNQTCxPQUFPLENBQ1g7RUFFRCxJQUFNTSxnQkFBZ0IsR0FBQTVHLGFBQUEsQ0FBQUEsYUFBQSxLQUNqQnVHLEtBQUs7SUFDUnpDLEdBQUcsRUFBRXdDLE9BQU8sQ0FBQ3hDLEdBQUcsR0FBRztFQUFFLEVBQ3RCO0VBRUQsSUFBTStDLGFBQWEsR0FBRzlFLFFBQVEsSUFBSWEsSUFBSSxDQUFDYixRQUFRO0VBRS9DLElBQU0rRSxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBSTFDLFVBQVUsRUFBRTJDLFVBQVU7SUFBQSxvQkFDekNySixNQUFBLFlBQUE0RyxhQUFBLENBQUNQLFVBQVU7TUFDVEUsSUFBSSxFQUFFQSxJQUFLO01BQ1hDLGdCQUFnQixFQUFFQSxnQkFBaUI7TUFDbkNDLEtBQUssRUFBRTRDLFVBQVc7TUFDbEJoRixRQUFRLEVBQUU4RSxhQUFjO01BQ3hCekMsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCQyxRQUFRLEVBQUVBO0lBQVMsQ0FDcEIsQ0FBQztFQUFBLENBQ0g7RUFFRCxJQUFNMkMsaUJBQWlCLEdBQUd4RSxxQkFBcUIsQ0FBQyxDQUFDO0VBRWpELElBQUlxRCxXQUFXLEtBQUssU0FBUyxJQUFJQyxnQkFBZ0IsS0FBSyxTQUFTLElBQUlDLFlBQVksRUFBRTtJQUMvRSxvQkFDRXJJLE1BQUEsWUFBQTRHLGFBQUEsQ0FBQy9ELGtCQUFrQjtNQUFDZ0csS0FBSyxFQUFFQTtJQUFNLGdCQUMvQjdJLE1BQUEsWUFBQTRHLGFBQUEsQ0FBQ2xHLGFBQUEsV0FBTztNQUFDNkksSUFBSSxFQUFDO0lBQVMsQ0FBRSxDQUFDLEVBQ3pCSCxXQUFXLENBQUNFLGlCQUFpQixFQUFFakIsWUFBWSxDQUMxQixDQUFDO0VBRXpCOztFQUVBO0VBQ0EsSUFBSUYsV0FBVyxLQUFLLFNBQVMsSUFBSUMsZ0JBQWdCLEtBQUssU0FBUyxJQUFJLENBQUNDLFlBQVksRUFBRTtJQUNoRixPQUFPLElBQUk7RUFDYjtFQUVBLElBQUlGLFdBQVcsS0FBSyxTQUFTLElBQUlDLGdCQUFnQixLQUFLLFdBQVcsRUFBRTtJQUNqRSxvQkFDRXBJLE1BQUEsWUFBQTRHLGFBQUEsQ0FBQTVHLE1BQUEsWUFBQXdKLFFBQUEscUJBQ0V4SixNQUFBLFlBQUE0RyxhQUFBLENBQUNoRCxvQkFBb0I7TUFBQ2lGLEtBQUssRUFBRUE7SUFBTSxnQkFDakM3SSxNQUFBLFlBQUE0RyxhQUFBLENBQUNsRyxhQUFBLFdBQU87TUFBQzZJLElBQUksRUFBQztJQUFXLENBQUUsQ0FBQyxFQUMzQjlDLEtBQUssS0FBSyxFQUFFLGdCQUNYekcsTUFBQSxZQUFBNEcsYUFBQSxDQUFDbEcsYUFBQSxXQUFPO01BQUM2SSxJQUFJLEVBQUMsT0FBTztNQUFDVixLQUFLLEVBQUU7UUFBRVksVUFBVSxFQUFFO01BQU07SUFBRSxDQUFFLENBQUMsR0FFdERMLFdBQVcsQ0FBQ0UsaUJBQWlCLEVBQUU3QyxLQUFLLENBRWxCLENBQUMsZUFDdkJ6RyxNQUFBLFlBQUE0RyxhQUFBLENBQUM3QyxrQkFBa0I7TUFBQzhFLEtBQUssRUFBRUs7SUFBaUIsR0FDekNFLFdBQVcsQ0FBQ0UsaUJBQWlCLEVBQUVqQixZQUFZLENBQzFCLENBQ3BCLENBQUM7RUFFUDtFQUVBLElBQUlGLFdBQVcsS0FBSyxTQUFTLEVBQUU7SUFDN0Isb0JBQ0VuSSxNQUFBLFlBQUE0RyxhQUFBLENBQUM3QyxrQkFBa0I7TUFBQzhFLEtBQUssRUFBRUE7SUFBTSxHQUM5Qk8sV0FBVyxDQUFDRSxpQkFBaUIsRUFBRTdDLEtBQUssQ0FDbkIsQ0FBQztFQUV6QjtFQUVBLElBQUkwQixXQUFXLEtBQUssV0FBVyxFQUFFO0lBQy9CLG9CQUNFbkksTUFBQSxZQUFBNEcsYUFBQSxDQUFDekMsZUFBZTtNQUFDMEUsS0FBSyxFQUFFQTtJQUFNLEdBQzNCTyxXQUFXLENBQUNFLGlCQUFpQixFQUFFN0MsS0FBSyxDQUN0QixDQUFDO0VBRXRCO0VBRUEsb0JBQ0V6RyxNQUFBLFlBQUE0RyxhQUFBO0lBQUtpQyxLQUFLLEVBQUVBO0VBQU0sR0FDZk8sV0FBVyxDQUNWaEYsY0FBYyxDQUFDcEIsS0FBSyxFQUFFcUIsUUFBUSxFQUFFYSxJQUFJLENBQUNiLFFBQVEsQ0FBQyxFQUM5Q29DLEtBQ0YsQ0FDRyxDQUFDO0FBRVYsQ0FBQztBQUVEWSxTQUFTLENBQUNOLFNBQVMsR0FBRztFQUNwQjFDLFFBQVEsRUFBRTJDLHFCQUFTLENBQUNHLElBQUk7RUFDeEJSLFFBQVEsRUFBRUsscUJBQVMsQ0FBQ0MsSUFBSTtFQUN4QmhDLFVBQVUsRUFBRXlFLFdBQUssQ0FBQ0MsY0FBYztFQUNoQzlDLFFBQVEsRUFBRUcscUJBQVMsQ0FBQ0MsSUFBSTtFQUN4Qi9CLElBQUksRUFBRThCLHFCQUFTLENBQUNJO0FBQ2xCLENBQUM7QUFBQyxJQUFBd0MsUUFBQSxHQUFBNUUsT0FBQSxjQUVhcUMsU0FBUyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark-label.jsx"],"names":["inputStyles","theme","padding","spacing","unit","borderRadius","fontSize","backgroundColor","color","defaults","WHITE","styles","inputStudent","border","fontWeight","input","fontFamily","typography","SECONDARY","PRIMARY_DARK","disabled","disabledMark","inputCorrect","CORRECT_WITH_ICON","inputIncorrect","INCORRECT_WITH_ICON","inputMissing","MISSING_WITH_ICON","incorrect","position","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","LabelInput","_ref","externalInputRef","label","inputClassName","onChange","r","MarkLabel","props","setInput","node","classes","inputRef","setLabel","correctness","correctnesslabel","correctlabel","e","target","value","debouncedLabel","getBoundingClientRect","pos","leftTop","style","pointerEvents","display","alignItems","gap","secondLabelStyle","disabledInput","renderInput","inputClass","labelValue","marginLeft","propTypes","PropTypes","bool","func","types","GraphPropsType","object","withTheme"],"mappings":"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","sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport SvgIcon from './label-svg-icon';\n\nconst inputStyles = (theme) => ({\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n});\n\nconst styles = (theme) => ({\n inputStudent: {\n ...inputStyles(theme),\n padding: '0',\n border: 'none',\n color: 'inherit',\n fontWeight: 'bold',\n },\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: '10px',\n border: `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: color.defaults.PRIMARY_DARK,\n backgroundColor: color.defaults.WHITE,\n },\n disabled: {\n border: `solid 1px ${color.defaults.PRIMARY_DARK}`,\n backgroundColor: color.defaults.WHITE,\n '-webkit-opacity': '1',\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n color: color.disabled(),\n '-webkit-text-fill-color': color.disabled(),\n },\n inputCorrect: {\n ...inputStyles(theme),\n color: color.defaults.CORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.CORRECT_WITH_ICON}`,\n },\n inputIncorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.INCORRECT_WITH_ICON}`,\n },\n inputMissing: {\n ...inputStyles(theme),\n color: color.defaults.MISSING_WITH_ICON,\n border: `solid 1px ${color.defaults.MISSING_WITH_ICON}`,\n fontWeight: 'bold',\n },\n incorrect: {\n ...inputStyles(theme),\n color: color.defaults.INCORRECT_WITH_ICON,\n fontWeight: 'bold',\n padding: '0',\n },\n});\n\nexport const position = (graphProps, mark, rect = { width: 0, height: 0 }) => {\n const { scale, domain, range } = graphProps;\n const shift = 5;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect = { width: 0, height: 0 }, position) => {\n const { scale } = graphProps;\n const shift = 5;\n\n switch (position) {\n case 'bottom-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n case 'bottom-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n case 'top-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) - shift - rect.height };\n case 'top-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) - shift - rect.height };\n default:\n return {};\n }\n};\n\nconst LabelInput = ({ _ref, externalInputRef, label, disabled, inputClassName, onChange }) => (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabled}\n inputClassName={inputClassName}\n value={label}\n onChange={onChange}\n />\n);\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef, theme } = props;\n\n const [label, setLabel] = useState(mark.label);\n const { correctness, correctnesslabel, correctlabel } = mark;\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '3px',\n ...leftTop,\n };\n\n const secondLabelStyle = {\n ...style,\n top: leftTop.top + 25,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n const renderInput = (inputClass, labelValue) => (\n <LabelInput\n _ref={_ref}\n externalInputRef={externalInputRef}\n label={labelValue}\n disabled={disabledInput}\n inputClassName={cn(inputClass)}\n onChange={onChange}\n />\n );\n\n if (correctness === 'correct' && correctnesslabel === 'correct' && correctlabel) {\n return (\n <div className={classes.inputCorrect} style={style}>\n <SvgIcon type=\"correct\" />\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n );\n }\n\n // avoid rendering empty label when a correct point without label was provided\n if (correctness === 'correct' && correctnesslabel === 'correct' && !correctlabel) {\n return null;\n }\n\n if (correctness === 'correct' && correctnesslabel === 'incorrect') {\n return (\n <>\n <div className={classes.inputIncorrect} style={style}>\n <SvgIcon type=\"incorrect\" />\n {label === '' ? (\n <SvgIcon type=\"empty\" style={{ marginLeft: '3px' }} />\n ) : (\n renderInput(classes.inputStudent, label)\n )}\n </div>\n <div className={classes.inputMissing} style={secondLabelStyle}>\n {renderInput(classes.inputStudent, correctlabel)}\n </div>\n </>\n );\n }\n\n if (correctness === 'missing') {\n return (\n <div className={classes.inputMissing} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n if (correctness === 'incorrect') {\n return (\n <div className={classes.incorrect} style={style}>\n {renderInput(classes.inputStudent, label)}\n </div>\n );\n }\n\n return (\n <div style={style}>\n {renderInput(\n cn(classes.input, {\n [classes.disabled]: disabled,\n [classes.disabledMark]: mark.disabled,\n }),\n label,\n )}\n </div>\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n theme: PropTypes.object,\n};\n\nexport default withStyles(styles, { withTheme: true })(MarkLabel);\n"],"file":"mark-label.js"}
1
+ {"version":3,"file":"mark-label.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_styles","_reactInputAutosize","_useDebounce","_plot","_renderUi","_labelSvgIcon","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","StyledInputCorrect","styled","_ref2","theme","padding","spacing","borderRadius","fontSize","backgroundColor","color","defaults","WHITE","CORRECT_WITH_ICON","border","concat","StyledInputIncorrect","_ref3","INCORRECT_WITH_ICON","StyledInputMissing","_ref4","MISSING_WITH_ICON","fontWeight","StyledIncorrect","getInputStyles","disabled","markDisabled","fontFamily","typography","PRIMARY_DARK","SECONDARY","WebkitOpacity","undefined","WebkitTextFillColor","getStudentInputStyles","position","exports","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","LabelInput","_ref5","_ref","externalInputRef","label","inputStyle","onChange","createElement","inputRef","value","propTypes","PropTypes","func","string","bool","object","MarkLabel","props","_useState","useState","_useState2","_slicedToArray2","input","setInput","useCallback","node","useTheme","_useState3","_useState4","setLabel","correctness","correctnesslabel","correctlabel","target","debouncedLabel","useDebounce","useEffect","getBoundingClientRect","pos","leftTop","style","pointerEvents","display","alignItems","gap","secondLabelStyle","disabledInput","renderInput","labelValue","studentInputStyle","type","Fragment","marginLeft","types","GraphPropsType","_default"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { styled, useTheme } from '@mui/material/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport { useDebounce } from './use-debounce';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport SvgIcon from './label-svg-icon';\n\nconst StyledInputCorrect = styled('div')(({ theme }) => ({\n float: 'right',\n padding: theme.spacing(0.5),\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n color: color.defaults.CORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.CORRECT_WITH_ICON}`,\n}));\n\nconst StyledInputIncorrect = styled('div')(({ theme }) => ({\n float: 'right',\n padding: theme.spacing(0.5),\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n color: color.defaults.INCORRECT_WITH_ICON,\n border: `solid 1px ${color.defaults.INCORRECT_WITH_ICON}`,\n}));\n\nconst StyledInputMissing = styled('div')(({ theme }) => ({\n float: 'right',\n padding: theme.spacing(0.5),\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n color: color.defaults.MISSING_WITH_ICON,\n border: `solid 1px ${color.defaults.MISSING_WITH_ICON}`,\n fontWeight: 'bold',\n}));\n\nconst StyledIncorrect = styled('div')(() => ({\n float: 'right',\n padding: 0,\n borderRadius: '4px',\n fontSize: '10px',\n backgroundColor: color.defaults.WHITE,\n color: color.defaults.INCORRECT_WITH_ICON,\n fontWeight: 'bold',\n}));\n\nconst getInputStyles = (theme, disabled, markDisabled) => ({\n float: 'right',\n padding: theme.spacing(0.5),\n fontFamily: theme.typography.fontFamily,\n fontSize: '10px',\n border: disabled \n ? `solid 1px ${color.defaults.PRIMARY_DARK}`\n : markDisabled \n ? `solid 1px ${color.disabled()}`\n : `solid 1px ${color.defaults.SECONDARY}`,\n borderRadius: '3px',\n color: markDisabled ? color.disabled() : color.defaults.PRIMARY_DARK,\n backgroundColor: color.defaults.WHITE,\n WebkitOpacity: disabled ? '1' : undefined,\n WebkitTextFillColor: markDisabled ? color.disabled() : undefined,\n});\n\nconst getStudentInputStyles = () => ({\n padding: '0',\n border: 'none',\n color: 'inherit',\n fontWeight: 'bold',\n});\n\nexport const position = (graphProps, mark, rect = { width: 0, height: 0 }) => {\n const { scale, domain, range } = graphProps;\n const shift = 5;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect = { width: 0, height: 0 }, position) => {\n const { scale } = graphProps;\n const shift = 5;\n\n switch (position) {\n case 'bottom-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n case 'bottom-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n case 'top-left':\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) - shift - rect.height };\n case 'top-right':\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) - shift - rect.height };\n default:\n return {};\n }\n};\n\nconst LabelInput = ({ _ref, externalInputRef, label, disabled, inputStyle, onChange }) => (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabled}\n inputStyle={inputStyle}\n value={label}\n onChange={onChange}\n />\n);\n\nLabelInput.propTypes = {\n _ref: PropTypes.func,\n externalInputRef: PropTypes.func,\n label: PropTypes.string,\n disabled: PropTypes.bool,\n inputStyle: PropTypes.object,\n onChange: PropTypes.func,\n};\n\nexport const MarkLabel = (props) => {\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node));\n const theme = useTheme();\n\n const { mark, graphProps, disabled, inputRef: externalInputRef } = props;\n\n const [label, setLabel] = useState(mark.label);\n const { correctness, correctnesslabel, correctlabel } = mark;\n const onChange = (e) => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'fixed',\n pointerEvents: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '3px',\n ...leftTop,\n };\n\n const secondLabelStyle = {\n ...style,\n top: leftTop.top + 25,\n };\n\n const disabledInput = disabled || mark.disabled;\n\n const renderInput = (inputStyle, labelValue) => (\n <LabelInput\n _ref={_ref}\n externalInputRef={externalInputRef}\n label={labelValue}\n disabled={disabledInput}\n inputStyle={inputStyle}\n onChange={onChange}\n />\n );\n\n const studentInputStyle = getStudentInputStyles();\n\n if (correctness === 'correct' && correctnesslabel === 'correct' && correctlabel) {\n return (\n <StyledInputCorrect style={style}>\n <SvgIcon type=\"correct\" />\n {renderInput(studentInputStyle, correctlabel)}\n </StyledInputCorrect>\n );\n }\n\n // avoid rendering empty label when a correct point without label was provided\n if (correctness === 'correct' && correctnesslabel === 'correct' && !correctlabel) {\n return null;\n }\n\n if (correctness === 'correct' && correctnesslabel === 'incorrect') {\n return (\n <>\n <StyledInputIncorrect style={style}>\n <SvgIcon type=\"incorrect\" />\n {label === '' ? (\n <SvgIcon type=\"empty\" style={{ marginLeft: '3px' }} />\n ) : (\n renderInput(studentInputStyle, label)\n )}\n </StyledInputIncorrect>\n <StyledInputMissing style={secondLabelStyle}>\n {renderInput(studentInputStyle, correctlabel)}\n </StyledInputMissing>\n </>\n );\n }\n\n if (correctness === 'missing') {\n return (\n <StyledInputMissing style={style}>\n {renderInput(studentInputStyle, label)}\n </StyledInputMissing>\n );\n }\n\n if (correctness === 'incorrect') {\n return (\n <StyledIncorrect style={style}>\n {renderInput(studentInputStyle, label)}\n </StyledIncorrect>\n );\n }\n\n return (\n <div style={style}>\n {renderInput(\n getInputStyles(theme, disabled, mark.disabled),\n label,\n )}\n </div>\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n};\n\nexport default MarkLabel;\n"],"mappings":"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","ignoreList":[]}