@pie-lib/graphing 2.16.0-beta.0 → 2.16.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 (117) hide show
  1. package/CHANGELOG.json +1 -1017
  2. package/CHANGELOG.md +104 -27
  3. package/package.json +13 -9
  4. package/src/axis/axes.jsx +1 -1
  5. package/src/coordinates-label.jsx +1 -1
  6. package/src/graph-with-controls.jsx +1 -1
  7. package/src/grid-setup.jsx +7 -10
  8. package/src/key-legend.jsx +131 -101
  9. package/src/labels.jsx +1 -1
  10. package/src/mark-label.jsx +1 -1
  11. package/src/toggle-bar.jsx +1 -1
  12. package/src/tools/circle/bg-circle.jsx +1 -1
  13. package/src/tools/circle/component.jsx +1 -1
  14. package/src/tools/polygon/line.jsx +1 -1
  15. package/src/tools/polygon/polygon.jsx +3 -3
  16. package/src/tools/shared/line/index.jsx +1 -1
  17. package/src/tools/shared/line/line-path.jsx +1 -1
  18. package/src/tools/shared/point/index.jsx +1 -1
  19. package/src/tools/shared/styles.js +1 -1
  20. package/src/undo-redo.jsx +1 -1
  21. package/lib/__tests__/graph-with-controls.test.js +0 -215
  22. package/lib/__tests__/graph.test.js +0 -290
  23. package/lib/__tests__/grid.test.js +0 -40
  24. package/lib/__tests__/labels.test.js +0 -59
  25. package/lib/__tests__/mark-label.test.js +0 -154
  26. package/lib/__tests__/toggle-bar.test.js +0 -54
  27. package/lib/__tests__/tool-menu.test.js +0 -43
  28. package/lib/__tests__/undo-redo.test.js +0 -42
  29. package/lib/__tests__/use-debounce.test.js +0 -28
  30. package/lib/__tests__/utils.js +0 -72
  31. package/lib/__tests__/utils.test.js +0 -133
  32. package/lib/axis/__tests__/arrow.test.js +0 -68
  33. package/lib/axis/__tests__/axes.test.js +0 -214
  34. package/lib/axis/arrow.js +0 -115
  35. package/lib/axis/axes.js +0 -415
  36. package/lib/axis/index.js +0 -26
  37. package/lib/bg.js +0 -139
  38. package/lib/container/actions.js +0 -24
  39. package/lib/container/index.js +0 -163
  40. package/lib/container/marks.js +0 -27
  41. package/lib/container/middleware.js +0 -25
  42. package/lib/container/reducer.js +0 -25
  43. package/lib/coordinates-label.js +0 -109
  44. package/lib/graph-with-controls.js +0 -359
  45. package/lib/graph.js +0 -371
  46. package/lib/grid-setup.js +0 -462
  47. package/lib/grid.js +0 -176
  48. package/lib/index.js +0 -59
  49. package/lib/key-legend.js +0 -246
  50. package/lib/label-svg-icon.js +0 -56
  51. package/lib/labels.js +0 -299
  52. package/lib/mark-label.js +0 -321
  53. package/lib/toggle-bar.js +0 -336
  54. package/lib/tool-menu.js +0 -112
  55. package/lib/tools/absolute/__tests__/component.test.js +0 -74
  56. package/lib/tools/absolute/component.js +0 -35
  57. package/lib/tools/absolute/index.js +0 -63
  58. package/lib/tools/circle/__tests__/bg-circle.test.js +0 -46
  59. package/lib/tools/circle/__tests__/component.test.js +0 -259
  60. package/lib/tools/circle/bg-circle.js +0 -173
  61. package/lib/tools/circle/component.js +0 -406
  62. package/lib/tools/circle/index.js +0 -51
  63. package/lib/tools/exponential/__tests__/component.test.js +0 -73
  64. package/lib/tools/exponential/component.js +0 -34
  65. package/lib/tools/exponential/index.js +0 -71
  66. package/lib/tools/index.js +0 -99
  67. package/lib/tools/line/__tests__/component.test.js +0 -56
  68. package/lib/tools/line/component.js +0 -103
  69. package/lib/tools/line/index.js +0 -16
  70. package/lib/tools/parabola/__tests__/component.test.js +0 -73
  71. package/lib/tools/parabola/component.js +0 -34
  72. package/lib/tools/parabola/index.js +0 -63
  73. package/lib/tools/point/__tests__/component.test.js +0 -97
  74. package/lib/tools/point/component.js +0 -186
  75. package/lib/tools/point/index.js +0 -32
  76. package/lib/tools/polygon/__tests__/component.test.js +0 -255
  77. package/lib/tools/polygon/__tests__/index.test.js +0 -95
  78. package/lib/tools/polygon/__tests__/line.test.js +0 -43
  79. package/lib/tools/polygon/__tests__/polygon.test.js +0 -73
  80. package/lib/tools/polygon/component.js +0 -518
  81. package/lib/tools/polygon/index.js +0 -106
  82. package/lib/tools/polygon/line.js +0 -157
  83. package/lib/tools/polygon/polygon.js +0 -165
  84. package/lib/tools/ray/__tests__/component.test.js +0 -48
  85. package/lib/tools/ray/component.js +0 -102
  86. package/lib/tools/ray/index.js +0 -16
  87. package/lib/tools/segment/__tests__/component.test.js +0 -48
  88. package/lib/tools/segment/component.js +0 -75
  89. package/lib/tools/segment/index.js +0 -16
  90. package/lib/tools/shared/__tests__/arrow-head.test.js +0 -62
  91. package/lib/tools/shared/arrow-head.js +0 -70
  92. package/lib/tools/shared/icons/CorrectSVG.js +0 -36
  93. package/lib/tools/shared/icons/IncorrectSVG.js +0 -36
  94. package/lib/tools/shared/icons/MissingSVG.js +0 -35
  95. package/lib/tools/shared/line/__tests__/index.test.js +0 -301
  96. package/lib/tools/shared/line/__tests__/line-path.test.js +0 -78
  97. package/lib/tools/shared/line/__tests__/with-root-edge.test.js +0 -122
  98. package/lib/tools/shared/line/index.js +0 -599
  99. package/lib/tools/shared/line/line-path.js +0 -151
  100. package/lib/tools/shared/line/with-root-edge.js +0 -155
  101. package/lib/tools/shared/point/__tests__/arrow-point.test.js +0 -137
  102. package/lib/tools/shared/point/__tests__/base-point.test.js +0 -134
  103. package/lib/tools/shared/point/arrow-point.js +0 -113
  104. package/lib/tools/shared/point/arrow.js +0 -96
  105. package/lib/tools/shared/point/base-point.js +0 -175
  106. package/lib/tools/shared/point/index.js +0 -97
  107. package/lib/tools/shared/styles.js +0 -58
  108. package/lib/tools/shared/types.js +0 -23
  109. package/lib/tools/sine/__tests__/component.test.js +0 -81
  110. package/lib/tools/sine/component.js +0 -51
  111. package/lib/tools/sine/index.js +0 -63
  112. package/lib/tools/vector/__tests__/component.test.js +0 -45
  113. package/lib/tools/vector/component.js +0 -88
  114. package/lib/tools/vector/index.js +0 -16
  115. package/lib/undo-redo.js +0 -123
  116. package/lib/use-debounce.js +0 -32
  117. package/lib/utils.js +0 -307
@@ -1,406 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = exports.RawBaseCircle = exports.BaseCircle = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _react = _interopRequireDefault(require("react"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _styles = require("@material-ui/core/styles");
31
-
32
- var _point = require("../shared/point");
33
-
34
- var _bgCircle = _interopRequireDefault(require("./bg-circle"));
35
-
36
- var _utils = require("../../utils");
37
-
38
- var _classnames = _interopRequireDefault(require("classnames"));
39
-
40
- var _plot = require("@pie-lib/plot");
41
-
42
- var _withRootEdge = require("../shared/line/with-root-edge");
43
-
44
- var _reactDom = _interopRequireDefault(require("react-dom"));
45
-
46
- var _markLabel = _interopRequireDefault(require("../../mark-label"));
47
-
48
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
49
-
50
- var _renderUi = require("@pie-lib/render-ui");
51
-
52
- 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; }
53
-
54
- 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; }
55
-
56
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
57
-
58
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
59
-
60
- var opacityPulsate = function opacityPulsate(opacity) {
61
- return {
62
- '0%': {
63
- opacity: '0.0'
64
- },
65
- '50%': {
66
- opacity: opacity
67
- },
68
- '100%': {
69
- opacity: '0.0'
70
- }
71
- };
72
- };
73
-
74
- var getRadius = function getRadius(from, outer) {
75
- var c = (0, _utils.point)(from);
76
- return c.dist((0, _utils.point)(outer));
77
- };
78
-
79
- var RawBaseCircle = /*#__PURE__*/function (_React$Component) {
80
- (0, _inherits2["default"])(RawBaseCircle, _React$Component);
81
-
82
- var _super = _createSuper(RawBaseCircle);
83
-
84
- function RawBaseCircle() {
85
- var _this;
86
-
87
- (0, _classCallCheck2["default"])(this, RawBaseCircle);
88
-
89
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
90
- args[_key] = arguments[_key];
91
- }
92
-
93
- _this = _super.call.apply(_super, [this].concat(args));
94
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangePoint", function (point) {
95
- var _this$props = _this.props,
96
- middle = _this$props.middle,
97
- onChange = _this$props.onChange;
98
- var from = point.from,
99
- to = point.to; // because point.from.label and point.to.label can be different
100
-
101
- if (!(0, _utils.equalPoints)(from, to)) {
102
- if (middle) {
103
- point.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(from, to));
104
- }
105
-
106
- onChange(point);
107
- }
108
- });
109
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragFrom", function (draggedFrom) {
110
- var _this$props2 = _this.props,
111
- from = _this$props2.from,
112
- to = _this$props2.to;
113
-
114
- if (from.label) {
115
- draggedFrom.label = from.label;
116
- }
117
-
118
- if (!(0, _utils.equalPoints)(draggedFrom, to)) {
119
- _this.onChangePoint({
120
- from: draggedFrom,
121
- to: to
122
- });
123
- }
124
- });
125
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragTo", function (draggedTo) {
126
- var _this$props3 = _this.props,
127
- from = _this$props3.from,
128
- to = _this$props3.to;
129
-
130
- if (to.label) {
131
- draggedTo.label = to.label;
132
- }
133
-
134
- if (!(0, _utils.equalPoints)(from, draggedTo)) {
135
- _this.onChangePoint({
136
- from: from,
137
- to: draggedTo
138
- });
139
- }
140
- });
141
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragCircle", function (draggedFrom) {
142
- var _this$props4 = _this.props,
143
- from = _this$props4.from,
144
- to = _this$props4.to,
145
- onChange = _this$props4.onChange,
146
- middle = _this$props4.middle;
147
- var diff = (0, _utils.point)(from).sub((0, _utils.point)(draggedFrom));
148
- var draggedTo = (0, _utils.point)(to).sub(diff);
149
-
150
- if (from.label) {
151
- draggedFrom.label = from.label;
152
- }
153
-
154
- if (to.label) {
155
- draggedTo.label = to.label;
156
- }
157
-
158
- var updated = {
159
- from: draggedFrom,
160
- to: draggedTo
161
- };
162
-
163
- if (middle) {
164
- updated.middle = _objectSpread(_objectSpread({}, middle), (0, _utils.getMiddleOfTwoPoints)(draggedFrom, draggedTo));
165
- }
166
-
167
- _this.setState({
168
- draggedroot: undefined,
169
- draggedOuter: undefined,
170
- isCircleDrag: false
171
- }, function () {
172
- onChange(updated);
173
- });
174
- });
175
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "labelChange", function (point, type) {
176
- var changeMarkProps = _this.props.changeMarkProps;
177
-
178
- var update = _objectSpread({}, point);
179
-
180
- if (!point.label || (0, _isEmpty["default"])(point.label)) {
181
- delete update.label;
182
- }
183
-
184
- changeMarkProps((0, _defineProperty2["default"])({}, type, update));
185
- });
186
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "clickPoint", function (point, type, data) {
187
- var _this$props5 = _this.props,
188
- changeMarkProps = _this$props5.changeMarkProps,
189
- disabled = _this$props5.disabled,
190
- from = _this$props5.from,
191
- to = _this$props5.to,
192
- labelModeEnabled = _this$props5.labelModeEnabled,
193
- limitLabeling = _this$props5.limitLabeling,
194
- onClick = _this$props5.onClick;
195
-
196
- if (!labelModeEnabled) {
197
- onClick(point || data);
198
- return;
199
- }
200
-
201
- if (disabled) {
202
- return;
203
- } // limit labeling the points of the circle
204
-
205
-
206
- if (limitLabeling) {
207
- return;
208
- }
209
-
210
- if (type === 'middle' && !point && from && to) {
211
- point = _objectSpread(_objectSpread({}, point), (0, _utils.getMiddleOfTwoPoints)(from, to));
212
- }
213
-
214
- changeMarkProps((0, _defineProperty2["default"])({
215
- from: from,
216
- to: to
217
- }, type, _objectSpread({
218
- label: ''
219
- }, point)));
220
-
221
- if (_this.input[type]) {
222
- _this.input[type].focus();
223
- }
224
- });
225
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "input", {});
226
- return _this;
227
- }
228
-
229
- (0, _createClass2["default"])(RawBaseCircle, [{
230
- key: "render",
231
- value: function render() {
232
- var _this2 = this;
233
-
234
- var _this$props6 = this.props,
235
- from = _this$props6.from,
236
- to = _this$props6.to,
237
- middle = _this$props6.middle,
238
- disabled = _this$props6.disabled,
239
- classes = _this$props6.classes,
240
- coordinatesOnHover = _this$props6.coordinatesOnHover,
241
- building = _this$props6.building,
242
- onDragStart = _this$props6.onDragStart,
243
- onDragStop = _this$props6.onDragStop,
244
- onClick = _this$props6.onClick,
245
- correctness = _this$props6.correctness,
246
- graphProps = _this$props6.graphProps,
247
- labelNode = _this$props6.labelNode,
248
- labelModeEnabled = _this$props6.labelModeEnabled;
249
- var common = {
250
- onDragStart: onDragStart,
251
- onDragStop: onDragStop,
252
- graphProps: graphProps,
253
- onClick: onClick
254
- };
255
- to = to || from;
256
- var radius = getRadius(from, to);
257
- var fromLabelNode = null;
258
- var toLabelNode = null;
259
- var circleLabelNode = null;
260
-
261
- if (labelNode) {
262
- if (from && from.hasOwnProperty('label')) {
263
- fromLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
264
- inputRef: function inputRef(r) {
265
- return _this2.input.from = r;
266
- },
267
- disabled: !labelModeEnabled,
268
- mark: from,
269
- graphProps: graphProps,
270
- onChange: function onChange(label) {
271
- return _this2.labelChange(_objectSpread(_objectSpread({}, from), {}, {
272
- label: label
273
- }), 'from');
274
- }
275
- }), labelNode);
276
- }
277
-
278
- if (to && to.hasOwnProperty('label')) {
279
- toLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
280
- inputRef: function inputRef(r) {
281
- return _this2.input.to = r;
282
- },
283
- disabled: !labelModeEnabled,
284
- mark: to,
285
- graphProps: graphProps,
286
- onChange: function onChange(label) {
287
- return _this2.labelChange(_objectSpread(_objectSpread({}, to), {}, {
288
- label: label
289
- }), 'to');
290
- }
291
- }), labelNode);
292
- }
293
-
294
- if (middle && middle.hasOwnProperty('label')) {
295
- circleLabelNode = /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_markLabel["default"], {
296
- inputRef: function inputRef(r) {
297
- return _this2.input.middle = r;
298
- },
299
- disabled: !labelModeEnabled,
300
- mark: middle,
301
- graphProps: graphProps,
302
- onChange: function onChange(label) {
303
- return _this2.labelChange(_objectSpread(_objectSpread({}, middle), {}, {
304
- label: label
305
- }), 'middle');
306
- }
307
- }), labelNode);
308
- }
309
- }
310
-
311
- return /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement(_bgCircle["default"], (0, _extends2["default"])({
312
- disabled: building || disabled,
313
- correctness: correctness,
314
- className: (0, _classnames["default"])(building && classes.bgCircleBuilding),
315
- x: from.x,
316
- y: from.y,
317
- radius: radius,
318
- onDrag: this.dragCircle
319
- }, common, {
320
- onClick: function onClick(data) {
321
- return _this2.clickPoint(middle, 'middle', data);
322
- }
323
- })), circleLabelNode, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, (0, _extends2["default"])({
324
- disabled: building || disabled,
325
- coordinatesOnHover: coordinatesOnHover,
326
- correctness: correctness,
327
- labelNode: labelNode,
328
- x: to.x,
329
- y: to.y,
330
- onDrag: this.dragTo
331
- }, common, {
332
- onClick: function onClick(data) {
333
- return _this2.clickPoint(to, 'to', data);
334
- }
335
- })), toLabelNode, /*#__PURE__*/_react["default"].createElement(_point.BasePoint, (0, _extends2["default"])({
336
- disabled: building || disabled,
337
- coordinatesOnHover: coordinatesOnHover,
338
- correctness: correctness,
339
- labelNode: labelNode,
340
- x: from.x,
341
- y: from.y,
342
- className: classes.from,
343
- onDrag: this.dragFrom
344
- }, common, {
345
- onClick: function onClick(data) {
346
- return _this2.clickPoint(from, 'from', data);
347
- }
348
- })), fromLabelNode);
349
- }
350
- }]);
351
- return RawBaseCircle;
352
- }(_react["default"].Component);
353
-
354
- exports.RawBaseCircle = RawBaseCircle;
355
- (0, _defineProperty2["default"])(RawBaseCircle, "propTypes", {
356
- building: _propTypes["default"].bool,
357
- classes: _propTypes["default"].object.isRequired,
358
- className: _propTypes["default"].string,
359
- coordinatesOnHover: _propTypes["default"].bool,
360
- correctness: _propTypes["default"].string,
361
- from: _plot.types.PointType,
362
- disabled: _propTypes["default"].bool,
363
- to: _plot.types.PointType,
364
- middle: _plot.types.PointType,
365
- onChange: _propTypes["default"].func.isRequired,
366
- onDragStart: _propTypes["default"].func,
367
- onDragStop: _propTypes["default"].func,
368
- graphProps: _plot.types.GraphPropsType.isRequired,
369
- onClick: _propTypes["default"].func,
370
- labelNode: _propTypes["default"].object,
371
- labelModeEnabled: _propTypes["default"].bool,
372
- changeMarkProps: _propTypes["default"].func,
373
- limitLabeling: _propTypes["default"].bool
374
- });
375
- (0, _defineProperty2["default"])(RawBaseCircle, "defaultProps", {
376
- onClick: function onClick() {
377
- return {};
378
- }
379
- });
380
- var BaseCircle = (0, _styles.withStyles)(function () {
381
- return {
382
- outerLine: {
383
- fill: 'rgb(0,0,0,0)',
384
- // TODO hardcoded color
385
- stroke: _renderUi.color.defaults.BLACK,
386
- strokeWidth: 4,
387
- '&:hover': {
388
- strokeWidth: 6,
389
- stroke: _renderUi.color.defaults.PRIMARY_DARK
390
- }
391
- },
392
- root: {},
393
- bgCircleBuilding: {
394
- stroke: _renderUi.color.defaults.BLACK,
395
- animation: 'opacityPulse 2s ease-out',
396
- animationIterationCount: 'infinite',
397
- opacity: 1
398
- },
399
- '@keyframes opacityPulse': opacityPulsate('0.3')
400
- };
401
- })(RawBaseCircle);
402
- exports.BaseCircle = BaseCircle;
403
- var Component = (0, _withRootEdge.rootEdgeComponent)(BaseCircle);
404
- var _default = Component;
405
- exports["default"] = _default;
406
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9jaXJjbGUvY29tcG9uZW50LmpzeCJdLCJuYW1lcyI6WyJvcGFjaXR5UHVsc2F0ZSIsIm9wYWNpdHkiLCJnZXRSYWRpdXMiLCJmcm9tIiwib3V0ZXIiLCJjIiwiZGlzdCIsIlJhd0Jhc2VDaXJjbGUiLCJwb2ludCIsInByb3BzIiwibWlkZGxlIiwib25DaGFuZ2UiLCJ0byIsImRyYWdnZWRGcm9tIiwibGFiZWwiLCJvbkNoYW5nZVBvaW50IiwiZHJhZ2dlZFRvIiwiZGlmZiIsInN1YiIsInVwZGF0ZWQiLCJzZXRTdGF0ZSIsImRyYWdnZWRyb290IiwidW5kZWZpbmVkIiwiZHJhZ2dlZE91dGVyIiwiaXNDaXJjbGVEcmFnIiwidHlwZSIsImNoYW5nZU1hcmtQcm9wcyIsInVwZGF0ZSIsImRhdGEiLCJkaXNhYmxlZCIsImxhYmVsTW9kZUVuYWJsZWQiLCJsaW1pdExhYmVsaW5nIiwib25DbGljayIsImlucHV0IiwiZm9jdXMiLCJjbGFzc2VzIiwiY29vcmRpbmF0ZXNPbkhvdmVyIiwiYnVpbGRpbmciLCJvbkRyYWdTdGFydCIsIm9uRHJhZ1N0b3AiLCJjb3JyZWN0bmVzcyIsImdyYXBoUHJvcHMiLCJsYWJlbE5vZGUiLCJjb21tb24iLCJyYWRpdXMiLCJmcm9tTGFiZWxOb2RlIiwidG9MYWJlbE5vZGUiLCJjaXJjbGVMYWJlbE5vZGUiLCJoYXNPd25Qcm9wZXJ0eSIsIlJlYWN0RE9NIiwiY3JlYXRlUG9ydGFsIiwiciIsImxhYmVsQ2hhbmdlIiwiYmdDaXJjbGVCdWlsZGluZyIsIngiLCJ5IiwiZHJhZ0NpcmNsZSIsImNsaWNrUG9pbnQiLCJkcmFnVG8iLCJkcmFnRnJvbSIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwiYm9vbCIsIm9iamVjdCIsImlzUmVxdWlyZWQiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJ0eXBlcyIsIlBvaW50VHlwZSIsImZ1bmMiLCJHcmFwaFByb3BzVHlwZSIsIkJhc2VDaXJjbGUiLCJvdXRlckxpbmUiLCJmaWxsIiwic3Ryb2tlIiwiY29sb3IiLCJkZWZhdWx0cyIsIkJMQUNLIiwic3Ryb2tlV2lkdGgiLCJQUklNQVJZX0RBUksiLCJyb290IiwiYW5pbWF0aW9uIiwiYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQ0MsT0FBRDtBQUFBLFNBQWM7QUFDbkMsVUFBTTtBQUFFQSxNQUFBQSxPQUFPLEVBQUU7QUFBWCxLQUQ2QjtBQUVuQyxXQUFPO0FBQUVBLE1BQUFBLE9BQU8sRUFBUEE7QUFBRixLQUY0QjtBQUduQyxZQUFRO0FBQUVBLE1BQUFBLE9BQU8sRUFBRTtBQUFYO0FBSDJCLEdBQWQ7QUFBQSxDQUF2Qjs7QUFNQSxJQUFNQyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFDQyxJQUFELEVBQU9DLEtBQVAsRUFBaUI7QUFDakMsTUFBTUMsQ0FBQyxHQUFHLGtCQUFNRixJQUFOLENBQVY7QUFDQSxTQUFPRSxDQUFDLENBQUNDLElBQUYsQ0FBTyxrQkFBTUYsS0FBTixDQUFQLENBQVA7QUFDRCxDQUhEOztJQUthRyxhOzs7Ozs7Ozs7Ozs7Ozs7c0dBMEJLLFVBQUNDLEtBQUQsRUFBVztBQUN6Qix3QkFBNkIsTUFBS0MsS0FBbEM7QUFBQSxVQUFRQyxNQUFSLGVBQVFBLE1BQVI7QUFBQSxVQUFnQkMsUUFBaEIsZUFBZ0JBLFFBQWhCO0FBQ0EsVUFBUVIsSUFBUixHQUFxQkssS0FBckIsQ0FBUUwsSUFBUjtBQUFBLFVBQWNTLEVBQWQsR0FBcUJKLEtBQXJCLENBQWNJLEVBQWQsQ0FGeUIsQ0FJekI7O0FBQ0EsVUFBSSxDQUFDLHdCQUFZVCxJQUFaLEVBQWtCUyxFQUFsQixDQUFMLEVBQTRCO0FBQzFCLFlB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Q2E7QUFDdEJDLE1BQUFBLE1BQU0sRUFBRUMsZ0JBQU1DLFFBQU4sQ0FBZUMsS0FGZDtBQUdUQyxNQUFBQSxXQUFXLEVBQUUsQ0FISjtBQUlULGlCQUFXO0FBQ1RBLFFBQUFBLFdBQVcsRUFBRSxDQURKO0FBRVRKLFFBQUFBLE1BQU0sRUFBRUMsZ0JBQU1DLFFBQU4sQ0FBZUc7QUFGZDtBQUpGLEtBRCtCO0FBVTFDQyxJQUFBQSxJQUFJLEVBQUUsRUFWb0M7QUFXMUM1QixJQUFBQSxnQkFBZ0IsRUFBRTtBQUNoQnNCLE1BQUFBLE1BQU0sRUFBRUMsZ0JBQU1DLFFBQU4sQ0FBZUMsS0FEUDtBQUVoQkksTUFBQUEsU0FBUyxFQUFFLDBCQUZLO0FBR2hCQyxNQUFBQSx1QkFBdUIsRUFBRSxVQUhUO0FBSWhCbEYsTUFBQUEsT0FBTyxFQUFFO0FBSk8sS0FYd0I7QUFpQjFDLCtCQUEyQkQsY0FBYyxDQUFDLEtBQUQ7QUFqQkMsR0FBUDtBQUFBLENBQVgsRUFrQnRCTyxhQWxCc0IsQ0FBbkI7O0FBb0JQLElBQU1zRCxTQUFTLEdBQUcscUNBQWtCVyxVQUFsQixDQUFsQjtlQUNlWCxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IEJhc2VQb2ludCB9IGZyb20gJy4uL3NoYXJlZC9wb2ludCc7XG5pbXBvcnQgQmdDaXJjbGUgZnJvbSAnLi9iZy1jaXJjbGUnO1xuaW1wb3J0IHsgZ2V0TWlkZGxlT2ZUd29Qb2ludHMsIHBvaW50LCBlcXVhbFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdHlwZXMgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IHJvb3RFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2xpbmUvd2l0aC1yb290LWVkZ2UnO1xuaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgTWFya0xhYmVsIGZyb20gJy4uLy4uL21hcmstbGFiZWwnO1xuaW1wb3J0IGlzRW1wdHkgZnJvbSAnbG9kYXNoL2lzRW1wdHknO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICdAcGllLWxpYi9yZW5kZXItdWknO1xuXG5jb25zdCBvcGFjaXR5UHVsc2F0ZSA9IChvcGFjaXR5KSA9PiAoe1xuICAnMCUnOiB7IG9wYWNpdHk6ICcwLjAnIH0sXG4gICc1MCUnOiB7IG9wYWNpdHkgfSxcbiAgJzEwMCUnOiB7IG9wYWNpdHk6ICcwLjAnIH0sXG59KTtcblxuY29uc3QgZ2V0UmFkaXVzID0gKGZyb20sIG91dGVyKSA9PiB7XG4gIGNvbnN0IGMgPSBwb2ludChmcm9tKTtcbiAgcmV0dXJuIGMuZGlzdChwb2ludChvdXRlcikpO1xufTtcblxuZXhwb3J0IGNsYXNzIFJhd0Jhc2VDaXJjbGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIGJ1aWxkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNvb3JkaW5hdGVzT25Ib3ZlcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgY29ycmVjdG5lc3M6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZnJvbTogdHlwZXMuUG9pbnRUeXBlLFxuICAgIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICB0bzogdHlwZXMuUG9pbnRUeXBlLFxuICAgIG1pZGRsZTogdHlwZXMuUG9pbnRUeXBlLFxuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIG9uRHJhZ1N0YXJ0OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBvbkRyYWdTdG9wOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBncmFwaFByb3BzOiB0eXBlcy5HcmFwaFByb3BzVHlwZS5pc1JlcXVpcmVkLFxuICAgIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAgIGxhYmVsTm9kZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBsYWJlbE1vZGVFbmFibGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBjaGFuZ2VNYXJrUHJvcHM6IFByb3BUeXBlcy5mdW5jLFxuICAgIGxpbWl0TGFiZWxpbmc6IFByb3BUeXBlcy5ib29sLFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgb25DbGljazogKCkgPT4gKHt9KSxcbiAgfTtcblxuICBvbkNoYW5nZVBvaW50ID0gKHBvaW50KSA9PiB7XG4gICAgY29uc3QgeyBtaWRkbGUsIG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9IHBvaW50O1xuXG4gICAgLy8gYmVjYXVzZSBwb2ludC5mcm9tLmxhYmVsIGFuZCBwb2ludC50by5sYWJlbCBjYW4gYmUgZGlmZmVyZW50XG4gICAgaWYgKCFlcXVhbFBvaW50cyhmcm9tLCB0bykpIHtcbiAgICAgIGlmIChtaWRkbGUpIHtcbiAgICAgICAgcG9pbnQubWlkZGxlID0geyAuLi5taWRkbGUsIC4uLmdldE1pZGRsZU9mVHdvUG9pbnRzKGZyb20sIHRvKSB9O1xuICAgICAgfVxuXG4gICAgICBvbkNoYW5nZShwb2ludCk7XG4gICAgfVxuICB9O1xuXG4gIGRyYWdGcm9tID0gKGRyYWdnZWRGcm9tKSA9PiB7XG4gICAgY29uc3QgeyBmcm9tLCB0byB9ID0gdGhpcy5wcm9wcztcblxuICAgIGlmIChmcm9tLmxhYmVsKSB7XG4gICAgICBkcmFnZ2VkRnJvbS5sYWJlbCA9IGZyb20ubGFiZWw7XG4gICAgfVxuXG4gICAgaWYgKCFlcXVhbFBvaW50cyhkcmFnZ2VkRnJvbSwgdG8pKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlUG9pbnQoeyBmcm9tOiBkcmFnZ2VkRnJvbSwgdG8gfSk7XG4gICAgfVxuICB9O1xuXG4gIGRyYWdUbyA9IChkcmFnZ2VkVG8pID0+IHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgaWYgKHRvLmxhYmVsKSB7XG4gICAgICBkcmFnZ2VkVG8ubGFiZWwgPSB0by5sYWJlbDtcbiAgICB9XG5cbiAgICBpZiAoIWVxdWFsUG9pbnRzKGZyb20sIGRyYWdnZWRUbykpIHtcbiAgICAgIHRoaXMub25DaGFuZ2VQb2ludCh7IGZyb20sIHRvOiBkcmFnZ2VkVG8gfSk7XG4gICAgfVxuICB9O1xuXG4gIGRyYWdDaXJjbGUgPSAoZHJhZ2dlZEZyb20pID0+IHtcbiAgICBjb25zdCB7IGZyb20sIHRvLCBvbkNoYW5nZSwgbWlkZGxlIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGRpZmYgPSBwb2ludChmcm9tKS5zdWIocG9pbnQoZHJhZ2dlZEZyb20pKTtcbiAgICBjb25zdCBkcmFnZ2VkVG8gPSBwb2ludCh0bykuc3ViKGRpZmYpO1xuXG4gICAgaWYgKGZyb20ubGFiZWwpIHtcbiAgICAgIGRyYWdnZWRGcm9tLmxhYmVsID0gZnJvbS5sYWJlbDtcbiAgICB9XG5cbiAgICBpZiAodG8ubGFiZWwpIHtcbiAgICAgIGRyYWdnZWRUby5sYWJlbCA9IHRvLmxhYmVsO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSB7IGZyb206IGRyYWdnZWRGcm9tLCB0bzogZHJhZ2dlZFRvIH07XG5cbiAgICBpZiAobWlkZGxlKSB7XG4gICAgICB1cGRhdGVkLm1pZGRsZSA9IHsgLi4ubWlkZGxlLCAuLi5nZXRNaWRkbGVPZlR3b1BvaW50cyhkcmFnZ2VkRnJvbSwgZHJhZ2dlZFRvKSB9O1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoXG4gICAgICB7XG4gICAgICAgIGRyYWdnZWRyb290OiB1bmRlZmluZWQsXG4gICAgICAgIGRyYWdnZWRPdXRlcjogdW5kZWZpbmVkLFxuICAgICAgICBpc0NpcmNsZURyYWc6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgb25DaGFuZ2UodXBkYXRlZCk7XG4gICAgICB9LFxuICAgICk7XG4gIH07XG5cbiAgbGFiZWxDaGFuZ2UgPSAocG9pbnQsIHR5cGUpID0+IHtcbiAgICBjb25zdCB7IGNoYW5nZU1hcmtQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGUgPSB7IC4uLnBvaW50IH07XG5cbiAgICBpZiAoIXBvaW50LmxhYmVsIHx8IGlzRW1wdHkocG9pbnQubGFiZWwpKSB7XG4gICAgICBkZWxldGUgdXBkYXRlLmxhYmVsO1xuICAgIH1cblxuICAgIGNoYW5nZU1hcmtQcm9wcyh7IFt0eXBlXTogdXBkYXRlIH0pO1xuICB9O1xuXG4gIGNsaWNrUG9pbnQgPSAocG9pbnQsIHR5cGUsIGRhdGEpID0+IHtcbiAgICBjb25zdCB7IGNoYW5nZU1hcmtQcm9wcywgZGlzYWJsZWQsIGZyb20sIHRvLCBsYWJlbE1vZGVFbmFibGVkLCBsaW1pdExhYmVsaW5nLCBvbkNsaWNrIH0gPSB0aGlzLnByb3BzO1xuICAgIGlmICghbGFiZWxNb2RlRW5hYmxlZCkge1xuICAgICAgb25DbGljayhwb2ludCB8fCBkYXRhKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBsaW1pdCBsYWJlbGluZyB0aGUgcG9pbnRzIG9mIHRoZSBjaXJjbGVcbiAgICBpZiAobGltaXRMYWJlbGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAnbWlkZGxlJyAmJiAhcG9pbnQgJiYgZnJvbSAmJiB0bykge1xuICAgICAgcG9pbnQgPSB7IC4uLnBvaW50LCAuLi5nZXRNaWRkbGVPZlR3b1BvaW50cyhmcm9tLCB0bykgfTtcbiAgICB9XG5cbiAgICBjaGFuZ2VNYXJrUHJvcHMoeyBmcm9tLCB0bywgW3R5cGVdOiB7IGxhYmVsOiAnJywgLi4ucG9pbnQgfSB9KTtcblxuICAgIGlmICh0aGlzLmlucHV0W3R5cGVdKSB7XG4gICAgICB0aGlzLmlucHV0W3R5cGVdLmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIC8vIElNUE9SVEFOVCwgZG8gbm90IHJlbW92ZVxuICBpbnB1dCA9IHt9O1xuXG4gIHJlbmRlcigpIHtcbiAgICBsZXQge1xuICAgICAgZnJvbSxcbiAgICAgIHRvLFxuICAgICAgbWlkZGxlLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBjbGFzc2VzLFxuICAgICAgY29vcmRpbmF0ZXNPbkhvdmVyLFxuICAgICAgYnVpbGRpbmcsXG4gICAgICBvbkRyYWdTdGFydCxcbiAgICAgIG9uRHJhZ1N0b3AsXG4gICAgICBvbkNsaWNrLFxuICAgICAgY29ycmVjdG5lc3MsXG4gICAgICBncmFwaFByb3BzLFxuICAgICAgbGFiZWxOb2RlLFxuICAgICAgbGFiZWxNb2RlRW5hYmxlZCxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjb21tb24gPSB7IG9uRHJhZ1N0YXJ0LCBvbkRyYWdTdG9wLCBncmFwaFByb3BzLCBvbkNsaWNrIH07XG5cbiAgICB0byA9IHRvIHx8IGZyb207XG5cbiAgICBjb25zdCByYWRpdXMgPSBnZXRSYWRpdXMoZnJvbSwgdG8pO1xuXG4gICAgbGV0IGZyb21MYWJlbE5vZGUgPSBudWxsO1xuICAgIGxldCB0b0xhYmVsTm9kZSA9IG51bGw7XG4gICAgbGV0IGNpcmNsZUxhYmVsTm9kZSA9IG51bGw7XG5cbiAgICBpZiAobGFiZWxOb2RlKSB7XG4gICAgICBpZiAoZnJvbSAmJiBmcm9tLmhhc093blByb3BlcnR5KCdsYWJlbCcpKSB7XG4gICAgICAgIGZyb21MYWJlbE5vZGUgPSBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPE1hcmtMYWJlbFxuICAgICAgICAgICAgaW5wdXRSZWY9eyhyKSA9PiAodGhpcy5pbnB1dC5mcm9tID0gcil9XG4gICAgICAgICAgICBkaXNhYmxlZD17IWxhYmVsTW9kZUVuYWJsZWR9XG4gICAgICAgICAgICBtYXJrPXtmcm9tfVxuICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsobGFiZWwpID0+IHRoaXMubGFiZWxDaGFuZ2UoeyAuLi5mcm9tLCBsYWJlbCB9LCAnZnJvbScpfVxuICAgICAgICAgIC8+LFxuICAgICAgICAgIGxhYmVsTm9kZSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRvICYmIHRvLmhhc093blByb3BlcnR5KCdsYWJlbCcpKSB7XG4gICAgICAgIHRvTGFiZWxOb2RlID0gUmVhY3RET00uY3JlYXRlUG9ydGFsKFxuICAgICAgICAgIDxNYXJrTGFiZWxcbiAgICAgICAgICAgIGlucHV0UmVmPXsocikgPT4gKHRoaXMuaW5wdXQudG8gPSByKX1cbiAgICAgICAgICAgIGRpc2FibGVkPXshbGFiZWxNb2RlRW5hYmxlZH1cbiAgICAgICAgICAgIG1hcms9e3RvfVxuICAgICAgICAgICAgZ3JhcGhQcm9wcz17Z3JhcGhQcm9wc31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXsobGFiZWwpID0+IHRoaXMubGFiZWxDaGFuZ2UoeyAuLi50bywgbGFiZWwgfSwgJ3RvJyl9XG4gICAgICAgICAgLz4sXG4gICAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAobWlkZGxlICYmIG1pZGRsZS5oYXNPd25Qcm9wZXJ0eSgnbGFiZWwnKSkge1xuICAgICAgICBjaXJjbGVMYWJlbE5vZGUgPSBSZWFjdERPTS5jcmVhdGVQb3J0YWwoXG4gICAgICAgICAgPE1hcmtMYWJlbFxuICAgICAgICAgICAgaW5wdXRSZWY9eyhyKSA9PiAodGhpcy5pbnB1dC5taWRkbGUgPSByKX1cbiAgICAgICAgICAgIGRpc2FibGVkPXshbGFiZWxNb2RlRW5hYmxlZH1cbiAgICAgICAgICAgIG1hcms9e21pZGRsZX1cbiAgICAgICAgICAgIGdyYXBoUHJvcHM9e2dyYXBoUHJvcHN9XG4gICAgICAgICAgICBvbkNoYW5nZT17KGxhYmVsKSA9PiB0aGlzLmxhYmVsQ2hhbmdlKHsgLi4ubWlkZGxlLCBsYWJlbCB9LCAnbWlkZGxlJyl9XG4gICAgICAgICAgLz4sXG4gICAgICAgICAgbGFiZWxOb2RlLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8Zz5cbiAgICAgICAgPEJnQ2lyY2xlXG4gICAgICAgICAgZGlzYWJsZWQ9e2J1aWxkaW5nIHx8IGRpc2FibGVkfVxuICAgICAgICAgIGNvcnJlY3RuZXNzPXtjb3JyZWN0bmVzc31cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoYnVpbGRpbmcgJiYgY2xhc3Nlcy5iZ0NpcmNsZUJ1aWxkaW5nKX1cbiAgICAgICAgICB4PXtmcm9tLnh9XG4gICAgICAgICAgeT17ZnJvbS55fVxuICAgICAgICAgIHJhZGl1cz17cmFkaXVzfVxuICAgICAgICAgIG9uRHJhZz17dGhpcy5kcmFnQ2lyY2xlfVxuICAgICAgICAgIHsuLi5jb21tb259XG4gICAgICAgICAgb25DbGljaz17KGRhdGEpID0+IHRoaXMuY2xpY2tQb2ludChtaWRkbGUsICdtaWRkbGUnLCBkYXRhKX1cbiAgICAgICAgLz5cbiAgICAgICAge2NpcmNsZUxhYmVsTm9kZX1cblxuICAgICAgICA8QmFzZVBvaW50XG4gICAgICAgICAgZGlzYWJsZWQ9e2J1aWxkaW5nIHx8IGRpc2FibGVkfVxuICAgICAgICAgIGNvb3JkaW5hdGVzT25Ib3Zlcj17Y29vcmRpbmF0ZXNPbkhvdmVyfVxuICAgICAgICAgIGNvcnJlY3RuZXNzPXtjb3JyZWN0bmVzc31cbiAgICAgICAgICBsYWJlbE5vZGU9e2xhYmVsTm9kZX1cbiAgICAgICAgICB4PXt0by54fVxuICAgICAgICAgIHk9e3RvLnl9XG4gICAgICAgICAgb25EcmFnPXt0aGlzLmRyYWdUb31cbiAgICAgICAgICB7Li4uY29tbW9ufVxuICAgICAgICAgIG9uQ2xpY2s9eyhkYXRhKSA9PiB0aGlzLmNsaWNrUG9pbnQodG8sICd0bycsIGRhdGEpfVxuICAgICAgICAvPlxuICAgICAgICB7dG9MYWJlbE5vZGV9XG5cbiAgICAgICAgPEJhc2VQb2ludFxuICAgICAgICAgIGRpc2FibGVkPXtidWlsZGluZyB8fCBkaXNhYmxlZH1cbiAgICAgICAgICBjb29yZGluYXRlc09uSG92ZXI9e2Nvb3JkaW5hdGVzT25Ib3Zlcn1cbiAgICAgICAgICBjb3JyZWN0bmVzcz17Y29ycmVjdG5lc3N9XG4gICAgICAgICAgbGFiZWxOb2RlPXtsYWJlbE5vZGV9XG4gICAgICAgICAgeD17ZnJvbS54fVxuICAgICAgICAgIHk9e2Zyb20ueX1cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuZnJvbX1cbiAgICAgICAgICBvbkRyYWc9e3RoaXMuZHJhZ0Zyb219XG4gICAgICAgICAgey4uLmNvbW1vbn1cbiAgICAgICAgICBvbkNsaWNrPXsoZGF0YSkgPT4gdGhpcy5jbGlja1BvaW50KGZyb20sICdmcm9tJywgZGF0YSl9XG4gICAgICAgIC8+XG4gICAgICAgIHtmcm9tTGFiZWxOb2RlfVxuICAgICAgPC9nPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEJhc2VDaXJjbGUgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIG91dGVyTGluZToge1xuICAgIGZpbGw6ICdyZ2IoMCwwLDAsMCknLCAvLyBUT0RPIGhhcmRjb2RlZCBjb2xvclxuICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuQkxBQ0ssXG4gICAgc3Ryb2tlV2lkdGg6IDQsXG4gICAgJyY6aG92ZXInOiB7XG4gICAgICBzdHJva2VXaWR0aDogNixcbiAgICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuUFJJTUFSWV9EQVJLLFxuICAgIH0sXG4gIH0sXG4gIHJvb3Q6IHt9LFxuICBiZ0NpcmNsZUJ1aWxkaW5nOiB7XG4gICAgc3Ryb2tlOiBjb2xvci5kZWZhdWx0cy5CTEFDSyxcbiAgICBhbmltYXRpb246ICdvcGFjaXR5UHVsc2UgMnMgZWFzZS1vdXQnLFxuICAgIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiAnaW5maW5pdGUnLFxuICAgIG9wYWNpdHk6IDEsXG4gIH0sXG4gICdAa2V5ZnJhbWVzIG9wYWNpdHlQdWxzZSc6IG9wYWNpdHlQdWxzYXRlKCcwLjMnKSxcbn0pKShSYXdCYXNlQ2lyY2xlKTtcblxuY29uc3QgQ29tcG9uZW50ID0gcm9vdEVkZ2VDb21wb25lbnQoQmFzZUNpcmNsZSk7XG5leHBvcnQgZGVmYXVsdCBDb21wb25lbnQ7XG4iXX0=
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.tool = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _component = _interopRequireDefault(require("./component"));
13
-
14
- var _utils = require("../../utils");
15
-
16
- 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; }
17
-
18
- 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; }
19
-
20
- var tool = function tool() {
21
- return {
22
- type: 'circle',
23
- Component: _component["default"],
24
- hover: function hover(point, mark) {
25
- return _objectSpread(_objectSpread({}, mark), {}, {
26
- edge: point
27
- });
28
- },
29
- addPoint: function addPoint(point, mark) {
30
- if (mark && (0, _utils.equalPoints)(mark.root, point)) {
31
- return mark;
32
- }
33
-
34
- if (!mark) {
35
- return {
36
- type: 'circle',
37
- root: point,
38
- building: true
39
- };
40
- } else {
41
- return _objectSpread(_objectSpread({}, mark), {}, {
42
- edge: point,
43
- building: false
44
- });
45
- }
46
- }
47
- };
48
- };
49
-
50
- exports.tool = tool;
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9jaXJjbGUvaW5kZXguanMiXSwibmFtZXMiOlsidG9vbCIsInR5cGUiLCJDb21wb25lbnQiLCJDaXJjbGUiLCJob3ZlciIsInBvaW50IiwibWFyayIsImVkZ2UiLCJhZGRQb2ludCIsInJvb3QiLCJidWlsZGluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEsSUFBSSxHQUFHLFNBQVBBLElBQU87QUFBQSxTQUFPO0FBQ3pCQyxJQUFBQSxJQUFJLEVBQUUsUUFEbUI7QUFFekJDLElBQUFBLFNBQVMsRUFBRUMscUJBRmM7QUFHekJDLElBQUFBLEtBQUssRUFBRSxlQUFDQyxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDdEIsNkNBQVlBLElBQVo7QUFBa0JDLFFBQUFBLElBQUksRUFBRUY7QUFBeEI7QUFDRCxLQUx3QjtBQU16QkcsSUFBQUEsUUFBUSxFQUFFLGtCQUFDSCxLQUFELEVBQVFDLElBQVIsRUFBaUI7QUFDekIsVUFBSUEsSUFBSSxJQUFJLHdCQUFZQSxJQUFJLENBQUNHLElBQWpCLEVBQXVCSixLQUF2QixDQUFaLEVBQTJDO0FBQ3pDLGVBQU9DLElBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNBLElBQUwsRUFBVztBQUNULGVBQU87QUFDTEwsVUFBQUEsSUFBSSxFQUFFLFFBREQ7QUFFTFEsVUFBQUEsSUFBSSxFQUFFSixLQUZEO0FBR0xLLFVBQUFBLFFBQVEsRUFBRTtBQUhMLFNBQVA7QUFLRCxPQU5ELE1BTU87QUFDTCwrQ0FBWUosSUFBWjtBQUFrQkMsVUFBQUEsSUFBSSxFQUFFRixLQUF4QjtBQUErQkssVUFBQUEsUUFBUSxFQUFFO0FBQXpDO0FBQ0Q7QUFDRjtBQXBCd0IsR0FBUDtBQUFBLENBQWIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2lyY2xlIGZyb20gJy4vY29tcG9uZW50JztcbmltcG9ydCB7IGVxdWFsUG9pbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgdG9vbCA9ICgpID0+ICh7XG4gIHR5cGU6ICdjaXJjbGUnLFxuICBDb21wb25lbnQ6IENpcmNsZSxcbiAgaG92ZXI6IChwb2ludCwgbWFyaykgPT4ge1xuICAgIHJldHVybiB7IC4uLm1hcmssIGVkZ2U6IHBvaW50IH07XG4gIH0sXG4gIGFkZFBvaW50OiAocG9pbnQsIG1hcmspID0+IHtcbiAgICBpZiAobWFyayAmJiBlcXVhbFBvaW50cyhtYXJrLnJvb3QsIHBvaW50KSkge1xuICAgICAgcmV0dXJuIG1hcms7XG4gICAgfVxuXG4gICAgaWYgKCFtYXJrKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnY2lyY2xlJyxcbiAgICAgICAgcm9vdDogcG9pbnQsXG4gICAgICAgIGJ1aWxkaW5nOiB0cnVlLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgLi4ubWFyaywgZWRnZTogcG9pbnQsIGJ1aWxkaW5nOiBmYWxzZSB9O1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _withRootEdge = require("../../shared/line/with-root-edge");
8
-
9
- var _graphingUtils = require("@pie-lib/graphing-utils");
10
-
11
- var _plot = require("@pie-lib/plot");
12
-
13
- var _utils = require("../../../__tests__/utils");
14
-
15
- var xy = _plot.utils.xy;
16
- jest.mock('@pie-lib/graphing-utils', function () {
17
- return {
18
- buildDataPoints: jest.fn().mockReturnValue([]),
19
- exponentialFromTwoPoints: jest.fn(function () {
20
- return jest.fn();
21
- }),
22
- getAmplitudeAndFreq: jest.fn().mockReturnValue({
23
- freq: 4,
24
- amplitude: 1
25
- })
26
- };
27
- });
28
- jest.mock('../../shared/line/with-root-edge', function () {
29
- return {
30
- withRootEdge: jest.fn(),
31
- rootEdgeComponent: jest.fn()
32
- };
33
- });
34
- describe('Exponential', function () {
35
- var fnBody;
36
- var graphProps;
37
- var root;
38
- var edge;
39
- var result;
40
- beforeEach(function () {
41
- require('../component');
42
-
43
- fnBody = _withRootEdge.withRootEdge.mock.calls[0][0];
44
- graphProps = (0, _utils.graphProps)();
45
- root = xy(1, 1);
46
- edge = xy(2, 2);
47
- result = fnBody({
48
- graphProps: graphProps,
49
- root: root,
50
- edge: edge
51
- });
52
- });
53
- it('fnBody is not null', function () {
54
- expect(fnBody).toBeDefined();
55
- });
56
- it('calls buildDataPoints', function () {
57
- var _graphProps = graphProps,
58
- domain = _graphProps.domain,
59
- range = _graphProps.range;
60
- expect(_graphingUtils.buildDataPoints).toHaveBeenCalledWith(domain, range, root, edge, expect.anything(), true);
61
- });
62
- it('calls exponentialFromTwoPoints', function () {
63
- expect(_graphingUtils.exponentialFromTwoPoints).toHaveBeenCalledWith(root, edge);
64
- });
65
- it('returns dataPoints', function () {
66
- expect(result).toEqual({
67
- root: root,
68
- edge: edge,
69
- dataPoints: []
70
- });
71
- });
72
- });
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90b29scy9leHBvbmVudGlhbC9fX3Rlc3RzX18vY29tcG9uZW50LnRlc3QuanN4Il0sIm5hbWVzIjpbInh5IiwidXRpbHMiLCJqZXN0IiwibW9jayIsImJ1aWxkRGF0YVBvaW50cyIsImZuIiwibW9ja1JldHVyblZhbHVlIiwiZXhwb25lbnRpYWxGcm9tVHdvUG9pbnRzIiwiZ2V0QW1wbGl0dWRlQW5kRnJlcSIsImZyZXEiLCJhbXBsaXR1ZGUiLCJ3aXRoUm9vdEVkZ2UiLCJyb290RWRnZUNvbXBvbmVudCIsImRlc2NyaWJlIiwiZm5Cb2R5IiwiZ3JhcGhQcm9wcyIsInJvb3QiLCJlZGdlIiwicmVzdWx0IiwiYmVmb3JlRWFjaCIsInJlcXVpcmUiLCJjYWxscyIsIml0IiwiZXhwZWN0IiwidG9CZURlZmluZWQiLCJkb21haW4iLCJyYW5nZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiYW55dGhpbmciLCJ0b0VxdWFsIiwiZGF0YVBvaW50cyJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBLElBQVFBLEVBQVIsR0FBZUMsV0FBZixDQUFRRCxFQUFSO0FBRUFFLElBQUksQ0FBQ0MsSUFBTCxDQUFVLHlCQUFWLEVBQXFDO0FBQUEsU0FBTztBQUMxQ0MsSUFBQUEsZUFBZSxFQUFFRixJQUFJLENBQUNHLEVBQUwsR0FBVUMsZUFBVixDQUEwQixFQUExQixDQUR5QjtBQUUxQ0MsSUFBQUEsd0JBQXdCLEVBQUVMLElBQUksQ0FBQ0csRUFBTCxDQUFRO0FBQUEsYUFBTUgsSUFBSSxDQUFDRyxFQUFMLEVBQU47QUFBQSxLQUFSLENBRmdCO0FBRzFDRyxJQUFBQSxtQkFBbUIsRUFBRU4sSUFBSSxDQUFDRyxFQUFMLEdBQVVDLGVBQVYsQ0FBMEI7QUFBRUcsTUFBQUEsSUFBSSxFQUFFLENBQVI7QUFBV0MsTUFBQUEsU0FBUyxFQUFFO0FBQXRCLEtBQTFCO0FBSHFCLEdBQVA7QUFBQSxDQUFyQztBQU1BUixJQUFJLENBQUNDLElBQUwsQ0FBVSxrQ0FBVixFQUE4QztBQUFBLFNBQU87QUFDbkRRLElBQUFBLFlBQVksRUFBRVQsSUFBSSxDQUFDRyxFQUFMLEVBRHFDO0FBRW5ETyxJQUFBQSxpQkFBaUIsRUFBRVYsSUFBSSxDQUFDRyxFQUFMO0FBRmdDLEdBQVA7QUFBQSxDQUE5QztBQUtBUSxRQUFRLENBQUMsYUFBRCxFQUFnQixZQUFNO0FBQzVCLE1BQUlDLE1BQUo7QUFDQSxNQUFJQyxVQUFKO0FBQ0EsTUFBSUMsSUFBSjtBQUNBLE1BQUlDLElBQUo7QUFDQSxNQUFJQyxNQUFKO0FBRUFDLEVBQUFBLFVBQVUsQ0FBQyxZQUFNO0FBQ2ZDLElBQUFBLE9BQU8sQ0FBQyxjQUFELENBQVA7O0FBQ0FOLElBQUFBLE1BQU0sR0FBR0gsMkJBQWFSLElBQWIsQ0FBa0JrQixLQUFsQixDQUF3QixDQUF4QixFQUEyQixDQUEzQixDQUFUO0FBQ0FOLElBQUFBLFVBQVUsR0FBRyx3QkFBYjtBQUNBQyxJQUFBQSxJQUFJLEdBQUdoQixFQUFFLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBVDtBQUNBaUIsSUFBQUEsSUFBSSxHQUFHakIsRUFBRSxDQUFDLENBQUQsRUFBSSxDQUFKLENBQVQ7QUFFQWtCLElBQUFBLE1BQU0sR0FBR0osTUFBTSxDQUFDO0FBQUVDLE1BQUFBLFVBQVUsRUFBVkEsVUFBRjtBQUFjQyxNQUFBQSxJQUFJLEVBQUpBLElBQWQ7QUFBb0JDLE1BQUFBLElBQUksRUFBSkE7QUFBcEIsS0FBRCxDQUFmO0FBQ0QsR0FSUyxDQUFWO0FBVUFLLEVBQUFBLEVBQUUsQ0FBQyxvQkFBRCxFQUF1QixZQUFNO0FBQzdCQyxJQUFBQSxNQUFNLENBQUNULE1BQUQsQ0FBTixDQUFlVSxXQUFmO0FBQ0QsR0FGQyxDQUFGO0FBSUFGLEVBQUFBLEVBQUUsQ0FBQyx1QkFBRCxFQUEwQixZQUFNO0FBQ2hDLHNCQUEwQlAsVUFBMUI7QUFBQSxRQUFRVSxNQUFSLGVBQVFBLE1BQVI7QUFBQSxRQUFnQkMsS0FBaEIsZUFBZ0JBLEtBQWhCO0FBQ0FILElBQUFBLE1BQU0sQ0FBQ25CLDhCQUFELENBQU4sQ0FBd0J1QixvQkFBeEIsQ0FBNkNGLE1BQTdDLEVBQXFEQyxLQUFyRCxFQUE0RFYsSUFBNUQsRUFBa0VDLElBQWxFLEVBQXdFTSxNQUFNLENBQUNLLFFBQVAsRUFBeEUsRUFBMkYsSUFBM0Y7QUFDRCxHQUhDLENBQUY7QUFLQU4sRUFBQUEsRUFBRSxDQUFDLGdDQUFELEVBQW1DLFlBQU07QUFDekNDLElBQUFBLE1BQU0sQ0FBQ2hCLHVDQUFELENBQU4sQ0FBaUNvQixvQkFBakMsQ0FBc0RYLElBQXRELEVBQTREQyxJQUE1RDtBQUNELEdBRkMsQ0FBRjtBQUlBSyxFQUFBQSxFQUFFLENBQUMsb0JBQUQsRUFBdUIsWUFBTTtBQUM3QkMsSUFBQUEsTUFBTSxDQUFDTCxNQUFELENBQU4sQ0FBZVcsT0FBZixDQUF1QjtBQUFFYixNQUFBQSxJQUFJLEVBQUpBLElBQUY7QUFBUUMsTUFBQUEsSUFBSSxFQUFKQSxJQUFSO0FBQWNhLE1BQUFBLFVBQVUsRUFBRTtBQUExQixLQUF2QjtBQUNELEdBRkMsQ0FBRjtBQUdELENBakNPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgd2l0aFJvb3RFZGdlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpbmUvd2l0aC1yb290LWVkZ2UnO1xuaW1wb3J0IHsgYnVpbGREYXRhUG9pbnRzLCBleHBvbmVudGlhbEZyb21Ud29Qb2ludHMgfSBmcm9tICdAcGllLWxpYi9ncmFwaGluZy11dGlscyc7XG5pbXBvcnQgeyB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuXG5pbXBvcnQgeyBncmFwaFByb3BzIGFzIGdldEdyYXBoUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9fX3Rlc3RzX18vdXRpbHMnO1xuXG5jb25zdCB7IHh5IH0gPSB1dGlscztcblxuamVzdC5tb2NrKCdAcGllLWxpYi9ncmFwaGluZy11dGlscycsICgpID0+ICh7XG4gIGJ1aWxkRGF0YVBvaW50czogamVzdC5mbigpLm1vY2tSZXR1cm5WYWx1ZShbXSksXG4gIGV4cG9uZW50aWFsRnJvbVR3b1BvaW50czogamVzdC5mbigoKSA9PiBqZXN0LmZuKCkpLFxuICBnZXRBbXBsaXR1ZGVBbmRGcmVxOiBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHsgZnJlcTogNCwgYW1wbGl0dWRlOiAxIH0pLFxufSkpO1xuXG5qZXN0Lm1vY2soJy4uLy4uL3NoYXJlZC9saW5lL3dpdGgtcm9vdC1lZGdlJywgKCkgPT4gKHtcbiAgd2l0aFJvb3RFZGdlOiBqZXN0LmZuKCksXG4gIHJvb3RFZGdlQ29tcG9uZW50OiBqZXN0LmZuKCksXG59KSk7XG5cbmRlc2NyaWJlKCdFeHBvbmVudGlhbCcsICgpID0+IHtcbiAgbGV0IGZuQm9keTtcbiAgbGV0IGdyYXBoUHJvcHM7XG4gIGxldCByb290O1xuICBsZXQgZWRnZTtcbiAgbGV0IHJlc3VsdDtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICByZXF1aXJlKCcuLi9jb21wb25lbnQnKTtcbiAgICBmbkJvZHkgPSB3aXRoUm9vdEVkZ2UubW9jay5jYWxsc1swXVswXTtcbiAgICBncmFwaFByb3BzID0gZ2V0R3JhcGhQcm9wcygpO1xuICAgIHJvb3QgPSB4eSgxLCAxKTtcbiAgICBlZGdlID0geHkoMiwgMik7XG5cbiAgICByZXN1bHQgPSBmbkJvZHkoeyBncmFwaFByb3BzLCByb290LCBlZGdlIH0pO1xuICB9KTtcblxuICBpdCgnZm5Cb2R5IGlzIG5vdCBudWxsJywgKCkgPT4ge1xuICAgIGV4cGVjdChmbkJvZHkpLnRvQmVEZWZpbmVkKCk7XG4gIH0pO1xuXG4gIGl0KCdjYWxscyBidWlsZERhdGFQb2ludHMnLCAoKSA9PiB7XG4gICAgY29uc3QgeyBkb21haW4sIHJhbmdlIH0gPSBncmFwaFByb3BzO1xuICAgIGV4cGVjdChidWlsZERhdGFQb2ludHMpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKGRvbWFpbiwgcmFuZ2UsIHJvb3QsIGVkZ2UsIGV4cGVjdC5hbnl0aGluZygpLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ2NhbGxzIGV4cG9uZW50aWFsRnJvbVR3b1BvaW50cycsICgpID0+IHtcbiAgICBleHBlY3QoZXhwb25lbnRpYWxGcm9tVHdvUG9pbnRzKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChyb290LCBlZGdlKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgZGF0YVBvaW50cycsICgpID0+IHtcbiAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHsgcm9vdCwgZWRnZSwgZGF0YVBvaW50czogW10gfSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _debug = _interopRequireDefault(require("debug"));
11
-
12
- var _graphingUtils = require("@pie-lib/graphing-utils");
13
-
14
- var _withRootEdge = require("../shared/line/with-root-edge");
15
-
16
- var log = (0, _debug["default"])('pie-lib:graphing:exponential');
17
- var Exponential = (0, _withRootEdge.withRootEdge)(function (props) {
18
- var root = props.root,
19
- edge = props.edge,
20
- graphProps = props.graphProps;
21
- var domain = graphProps.domain,
22
- range = graphProps.range;
23
- var dataPoints = edge && edge.x === root.x ? [] : (0, _graphingUtils.buildDataPoints)(domain, range, root, edge, (0, _graphingUtils.exponentialFromTwoPoints)(root, edge), true);
24
- log('dataPoints:', dataPoints);
25
- return {
26
- root: props.root,
27
- edge: props.edge,
28
- dataPoints: dataPoints
29
- };
30
- });
31
- var Component = (0, _withRootEdge.rootEdgeComponent)(Exponential);
32
- var _default = Component;
33
- exports["default"] = _default;
34
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90b29scy9leHBvbmVudGlhbC9jb21wb25lbnQuanN4Il0sIm5hbWVzIjpbImxvZyIsIkV4cG9uZW50aWFsIiwicHJvcHMiLCJyb290IiwiZWRnZSIsImdyYXBoUHJvcHMiLCJkb21haW4iLCJyYW5nZSIsImRhdGFQb2ludHMiLCJ4IiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsdUJBQU0sOEJBQU4sQ0FBWjtBQUVBLElBQU1DLFdBQVcsR0FBRyxnQ0FBYSxVQUFDQyxLQUFELEVBQVc7QUFDMUMsTUFBUUMsSUFBUixHQUFtQ0QsS0FBbkMsQ0FBUUMsSUFBUjtBQUFBLE1BQWNDLElBQWQsR0FBbUNGLEtBQW5DLENBQWNFLElBQWQ7QUFBQSxNQUFvQkMsVUFBcEIsR0FBbUNILEtBQW5DLENBQW9CRyxVQUFwQjtBQUNBLE1BQVFDLE1BQVIsR0FBMEJELFVBQTFCLENBQVFDLE1BQVI7QUFBQSxNQUFnQkMsS0FBaEIsR0FBMEJGLFVBQTFCLENBQWdCRSxLQUFoQjtBQUVBLE1BQU1DLFVBQVUsR0FDZEosSUFBSSxJQUFJQSxJQUFJLENBQUNLLENBQUwsS0FBV04sSUFBSSxDQUFDTSxDQUF4QixHQUNJLEVBREosR0FFSSxvQ0FBZ0JILE1BQWhCLEVBQXdCQyxLQUF4QixFQUErQkosSUFBL0IsRUFBcUNDLElBQXJDLEVBQTJDLDZDQUF5QkQsSUFBekIsRUFBK0JDLElBQS9CLENBQTNDLEVBQWlGLElBQWpGLENBSE47QUFLQUosRUFBQUEsR0FBRyxDQUFDLGFBQUQsRUFBZ0JRLFVBQWhCLENBQUg7QUFFQSxTQUFPO0FBQUVMLElBQUFBLElBQUksRUFBRUQsS0FBSyxDQUFDQyxJQUFkO0FBQW9CQyxJQUFBQSxJQUFJLEVBQUVGLEtBQUssQ0FBQ0UsSUFBaEM7QUFBc0NJLElBQUFBLFVBQVUsRUFBVkE7QUFBdEMsR0FBUDtBQUNELENBWm1CLENBQXBCO0FBY0EsSUFBTUUsU0FBUyxHQUFHLHFDQUFrQlQsV0FBbEIsQ0FBbEI7ZUFFZVMsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyBidWlsZERhdGFQb2ludHMsIGV4cG9uZW50aWFsRnJvbVR3b1BvaW50cyB9IGZyb20gJ0BwaWUtbGliL2dyYXBoaW5nLXV0aWxzJztcbmltcG9ydCB7IHdpdGhSb290RWRnZSwgcm9vdEVkZ2VDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvbGluZS93aXRoLXJvb3QtZWRnZSc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdwaWUtbGliOmdyYXBoaW5nOmV4cG9uZW50aWFsJyk7XG5cbmNvbnN0IEV4cG9uZW50aWFsID0gd2l0aFJvb3RFZGdlKChwcm9wcykgPT4ge1xuICBjb25zdCB7IHJvb3QsIGVkZ2UsIGdyYXBoUHJvcHMgfSA9IHByb3BzO1xuICBjb25zdCB7IGRvbWFpbiwgcmFuZ2UgfSA9IGdyYXBoUHJvcHM7XG5cbiAgY29uc3QgZGF0YVBvaW50cyA9XG4gICAgZWRnZSAmJiBlZGdlLnggPT09IHJvb3QueFxuICAgICAgPyBbXVxuICAgICAgOiBidWlsZERhdGFQb2ludHMoZG9tYWluLCByYW5nZSwgcm9vdCwgZWRnZSwgZXhwb25lbnRpYWxGcm9tVHdvUG9pbnRzKHJvb3QsIGVkZ2UpLCB0cnVlKTtcblxuICBsb2coJ2RhdGFQb2ludHM6JywgZGF0YVBvaW50cyk7XG5cbiAgcmV0dXJuIHsgcm9vdDogcHJvcHMucm9vdCwgZWRnZTogcHJvcHMuZWRnZSwgZGF0YVBvaW50cyB9O1xufSk7XG5cbmNvbnN0IENvbXBvbmVudCA9IHJvb3RFZGdlQ29tcG9uZW50KEV4cG9uZW50aWFsKTtcblxuZXhwb3J0IGRlZmF1bHQgQ29tcG9uZW50O1xuIl19