@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
package/lib/axis/axes.js DELETED
@@ -1,415 +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.sharedValues = exports.firstNegativeValue = exports["default"] = exports.RawYAxis = exports.RawXAxis = exports.AxisPropTypes = void 0;
9
-
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _react = _interopRequireDefault(require("react"));
29
-
30
- var _axis = require("@vx/axis");
31
-
32
- var _plot = require("@pie-lib/plot");
33
-
34
- var _propTypes = _interopRequireDefault(require("prop-types"));
35
-
36
- var _arrow = _interopRequireDefault(require("./arrow"));
37
-
38
- var _core = require("@material-ui/core");
39
-
40
- var _utils = require("../utils");
41
-
42
- var _renderUi = require("@pie-lib/render-ui");
43
-
44
- 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; }
45
-
46
- 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; }
47
-
48
- 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); }; }
49
-
50
- 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; } }
51
-
52
- var AxisPropTypes = {
53
- includeArrows: _propTypes["default"].object,
54
- graphProps: _propTypes["default"].object
55
- };
56
- exports.AxisPropTypes = AxisPropTypes;
57
- var AxisDefaultProps = {
58
- includeArrows: {
59
- left: true,
60
- right: true,
61
- up: true,
62
- down: true
63
- }
64
- };
65
-
66
- var axisStyles = function axisStyles(theme) {
67
- return {
68
- line: {
69
- stroke: _renderUi.color.defaults.PRIMARY,
70
- strokeWidth: 3
71
- },
72
- arrow: {
73
- fill: _renderUi.color.defaults.PRIMARY
74
- },
75
- tick: {
76
- fill: _renderUi.color.defaults.PRIMARY,
77
- '& > line': {
78
- stroke: _renderUi.color.defaults.PRIMARY
79
- }
80
- },
81
- labelFontSize: {
82
- fontSize: theme.typography.fontSize
83
- },
84
- axisLabelHolder: {
85
- padding: 0,
86
- margin: 0,
87
- textAlign: 'center',
88
- '* > *': {
89
- margin: 0,
90
- padding: 0
91
- },
92
- fontSize: theme.typography.fontSize
93
- }
94
- };
95
- };
96
-
97
- var tickLabelStyles = {
98
- fontFamily: 'Roboto',
99
- fontSize: '14px',
100
- cursor: 'inherit'
101
- };
102
-
103
- var sharedValues = function sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy) {
104
- var result = [];
105
-
106
- if (firstNegativeX === firstNegativeY && distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY && distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance && distanceFromOriginToFirstNegativeX - deltaAllowance < dy && dy < distanceFromOriginToFirstNegativeX + deltaAllowance) {
107
- result.push(firstNegativeX);
108
- }
109
-
110
- return result;
111
- };
112
-
113
- exports.sharedValues = sharedValues;
114
-
115
- var firstNegativeValue = function firstNegativeValue(interval) {
116
- return (interval || []).find(function (element) {
117
- return element < 0;
118
- });
119
- };
120
-
121
- exports.firstNegativeValue = firstNegativeValue;
122
-
123
- var RawXAxis = /*#__PURE__*/function (_React$Component) {
124
- (0, _inherits2["default"])(RawXAxis, _React$Component);
125
-
126
- var _super = _createSuper(RawXAxis);
127
-
128
- function RawXAxis() {
129
- (0, _classCallCheck2["default"])(this, RawXAxis);
130
- return _super.apply(this, arguments);
131
- }
132
-
133
- (0, _createClass2["default"])(RawXAxis, [{
134
- key: "render",
135
- value: function render() {
136
- var _this$props = this.props,
137
- includeArrows = _this$props.includeArrows,
138
- classes = _this$props.classes,
139
- graphProps = _this$props.graphProps,
140
- columnTicksValues = _this$props.columnTicksValues,
141
- skipValues = _this$props.skipValues,
142
- distanceFromOriginToFirstNegativeY = _this$props.distanceFromOriginToFirstNegativeY,
143
- dy = _this$props.dy;
144
-
145
- var _ref = graphProps || {},
146
- scale = _ref.scale,
147
- domain = _ref.domain,
148
- size = _ref.size,
149
- range = _ref.range; // Having 0 as a number in columnTicksValues does not make 0 to show up
150
- // so we use this trick, by defining it as a string:
151
-
152
-
153
- var tickValues = (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0'].concat((0, _toConsumableArray2["default"])(columnTicksValues)) : columnTicksValues; // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed
154
-
155
- var labelProps = function labelProps(label) {
156
- var y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;
157
- return _objectSpread(_objectSpread({}, tickLabelStyles), {}, {
158
- textAnchor: 'middle',
159
- y: y,
160
- dx: label === '0' ? -10 : 0,
161
- dy: label === '0' ? -7 : 0
162
- });
163
- };
164
-
165
- var necessaryRows = (0, _utils.countWords)(domain.axisLabel);
166
- var longestWord = (0, _utils.findLongestWord)(domain.axisLabel);
167
- var necessaryWidth = (0, _utils.amountToIncreaseWidth)(longestWord) + 2;
168
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_axis.Axis, {
169
- axisLineClassName: classes.line,
170
- scale: scale.x,
171
- top: scale.y(0),
172
- left: 0,
173
- label: domain.label,
174
- rangePadding: 8,
175
- tickClassName: classes.tick,
176
- tickFormat: function tickFormat(value) {
177
- return value;
178
- },
179
- tickLabelProps: labelProps,
180
- tickValues: tickValues
181
- }), includeArrows && includeArrows.left && /*#__PURE__*/_react["default"].createElement(_arrow["default"], {
182
- direction: "left",
183
- x: domain.min,
184
- y: 0,
185
- className: classes.arrow,
186
- scale: scale
187
- }), includeArrows && includeArrows.right && /*#__PURE__*/_react["default"].createElement(_arrow["default"], {
188
- direction: "right",
189
- x: domain.max,
190
- y: 0,
191
- className: classes.arrow,
192
- scale: scale
193
- }), domain.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
194
- x: size.width + 17,
195
- y: scale.y(0) - 9,
196
- width: necessaryWidth,
197
- height: 20 * necessaryRows
198
- }, /*#__PURE__*/_react["default"].createElement("div", {
199
- dangerouslySetInnerHTML: {
200
- __html: domain.axisLabel
201
- },
202
- className: classes.labelFontSize
203
- })));
204
- }
205
- }]);
206
- return RawXAxis;
207
- }(_react["default"].Component);
208
-
209
- exports.RawXAxis = RawXAxis;
210
- (0, _defineProperty2["default"])(RawXAxis, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
211
- classes: _propTypes["default"].object,
212
- graphProps: _plot.types.GraphPropsType.isRequired
213
- }));
214
- (0, _defineProperty2["default"])(RawXAxis, "defaultProps", AxisDefaultProps);
215
- var XAxis = (0, _core.withStyles)(axisStyles)(RawXAxis);
216
-
217
- var RawYAxis = /*#__PURE__*/function (_React$Component2) {
218
- (0, _inherits2["default"])(RawYAxis, _React$Component2);
219
-
220
- var _super2 = _createSuper(RawYAxis);
221
-
222
- function RawYAxis() {
223
- (0, _classCallCheck2["default"])(this, RawYAxis);
224
- return _super2.apply(this, arguments);
225
- }
226
-
227
- (0, _createClass2["default"])(RawYAxis, [{
228
- key: "render",
229
- value: function render() {
230
- var _this$props2 = this.props,
231
- classes = _this$props2.classes,
232
- includeArrows = _this$props2.includeArrows,
233
- graphProps = _this$props2.graphProps,
234
- skipValues = _this$props2.skipValues,
235
- rowTickValues = _this$props2.rowTickValues;
236
-
237
- var _ref2 = graphProps || {},
238
- scale = _ref2.scale,
239
- range = _ref2.range,
240
- size = _ref2.size;
241
-
242
- var necessaryWidth = range.axisLabel ? (0, _utils.amountToIncreaseWidth)(range.axisLabel.length) : 0;
243
-
244
- var customTickFormat = function customTickFormat(value) {
245
- return skipValues && skipValues.indexOf(value) >= 0 ? '' : value;
246
- };
247
-
248
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_axis.Axis, {
249
- axisLineClassName: classes.line,
250
- orientation: 'left',
251
- scale: scale.y,
252
- top: 0,
253
- height: size.height,
254
- left: scale.x(0),
255
- label: range.label,
256
- labelProps: {
257
- 'data-pie-readable': false
258
- },
259
- rangePadding: 8,
260
- tickLength: 10,
261
- tickClassName: classes.tick,
262
- tickFormat: customTickFormat,
263
- tickLabelProps: function tickLabelProps(value) {
264
- var digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;
265
- return _objectSpread(_objectSpread({}, tickLabelStyles), {}, {
266
- dy: 4,
267
- dx: -10 - digits * 9,
268
- 'data-pie-readable': false
269
- });
270
- },
271
- hideZero: true,
272
- tickTextAnchor: 'bottom',
273
- tickValues: rowTickValues
274
- }), includeArrows && includeArrows.down && /*#__PURE__*/_react["default"].createElement(_arrow["default"], {
275
- direction: "down",
276
- x: 0,
277
- y: range.min,
278
- className: classes.arrow,
279
- scale: scale
280
- }), includeArrows && includeArrows.up && /*#__PURE__*/_react["default"].createElement(_arrow["default"], {
281
- direction: "up",
282
- x: 0,
283
- y: range.max,
284
- className: classes.arrow,
285
- scale: scale
286
- }), range.axisLabel && /*#__PURE__*/_react["default"].createElement("foreignObject", {
287
- x: scale.x(0) - necessaryWidth / 2,
288
- y: -33,
289
- width: necessaryWidth,
290
- height: "20"
291
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
292
- "false": true
293
- }, /*#__PURE__*/_react["default"].createElement("div", {
294
- dangerouslySetInnerHTML: {
295
- __html: range.axisLabel
296
- },
297
- className: classes.axisLabelHolder
298
- }))));
299
- }
300
- }]);
301
- return RawYAxis;
302
- }(_react["default"].Component);
303
-
304
- exports.RawYAxis = RawYAxis;
305
- (0, _defineProperty2["default"])(RawYAxis, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
306
- graphProps: _plot.types.GraphPropsType.isRequired
307
- }));
308
- (0, _defineProperty2["default"])(RawYAxis, "defaultProps", AxisDefaultProps);
309
- var YAxis = (0, _core.withStyles)(axisStyles)(RawYAxis);
310
-
311
- var Axes = /*#__PURE__*/function (_React$Component3) {
312
- (0, _inherits2["default"])(Axes, _React$Component3);
313
-
314
- var _super3 = _createSuper(Axes);
315
-
316
- function Axes() {
317
- var _this;
318
-
319
- (0, _classCallCheck2["default"])(this, Axes);
320
-
321
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
322
- args[_key] = arguments[_key];
323
- }
324
-
325
- _this = _super3.call.apply(_super3, [this].concat(args));
326
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "xValues", function () {
327
- var graphProps = _this.props.graphProps;
328
-
329
- var _ref3 = graphProps || {},
330
- scale = _ref3.scale,
331
- domain = _ref3.domain;
332
-
333
- if (!domain || !scale) {
334
- return;
335
- }
336
-
337
- var ticks = (0, _utils.getTickValues)(_objectSpread(_objectSpread({}, domain), {}, {
338
- step: domain.labelStep
339
- }));
340
- var negative = firstNegativeValue(ticks);
341
- return {
342
- columnTicksValues: ticks,
343
- firstNegativeX: negative,
344
- distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))
345
- };
346
- });
347
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "yValues", function () {
348
- var graphProps = _this.props.graphProps;
349
-
350
- var _ref4 = graphProps || {},
351
- scale = _ref4.scale,
352
- range = _ref4.range;
353
-
354
- if (!range || !scale) {
355
- return;
356
- }
357
-
358
- var ticks = (0, _utils.getTickValues)(_objectSpread(_objectSpread({}, range), {}, {
359
- step: range.labelStep
360
- }));
361
- var negative = firstNegativeValue(ticks);
362
- return {
363
- rowTickValues: ticks,
364
- firstNegativeY: negative,
365
- distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))
366
- };
367
- });
368
- return _this;
369
- }
370
-
371
- (0, _createClass2["default"])(Axes, [{
372
- key: "render",
373
- value: function render() {
374
- var graphProps = this.props.graphProps;
375
-
376
- var _ref5 = graphProps || {},
377
- domain = _ref5.domain,
378
- range = _ref5.range;
379
-
380
- var _this$xValues = this.xValues(),
381
- columnTicksValues = _this$xValues.columnTicksValues,
382
- firstNegativeX = _this$xValues.firstNegativeX,
383
- distanceFromOriginToFirstNegativeX = _this$xValues.distanceFromOriginToFirstNegativeX;
384
-
385
- var _this$yValues = this.yValues(),
386
- rowTickValues = _this$yValues.rowTickValues,
387
- firstNegativeY = _this$yValues.firstNegativeY,
388
- distanceFromOriginToFirstNegativeY = _this$yValues.distanceFromOriginToFirstNegativeY;
389
-
390
- var deltaAllowance = 6;
391
- var dy = 25;
392
- var skipValues = sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy); // each axis has to be displayed only if the domain & range include it
393
-
394
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, range.min <= 0 ? /*#__PURE__*/_react["default"].createElement(XAxis, (0, _extends2["default"])({}, this.props, {
395
- skipValues: skipValues,
396
- columnTicksValues: columnTicksValues,
397
- distanceFromOriginToFirstNegativeY: distanceFromOriginToFirstNegativeY,
398
- dy: dy
399
- })) : null, domain.min <= 0 ? /*#__PURE__*/_react["default"].createElement(YAxis, (0, _extends2["default"])({}, this.props, {
400
- skipValues: skipValues,
401
- rowTickValues: rowTickValues,
402
- distanceFromOriginToFirstNegativeX: distanceFromOriginToFirstNegativeX
403
- })) : null);
404
- }
405
- }]);
406
- return Axes;
407
- }(_react["default"].Component);
408
-
409
- exports["default"] = Axes;
410
- (0, _defineProperty2["default"])(Axes, "propTypes", _objectSpread(_objectSpread({}, AxisPropTypes), {}, {
411
- classes: _propTypes["default"].object,
412
- graphProps: _plot.types.GraphPropsType.isRequired
413
- }));
414
- (0, _defineProperty2["default"])(Axes, "defaultProps", AxisDefaultProps);
415
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9heGlzL2F4ZXMuanN4Il0sIm5hbWVzIjpbIkF4aXNQcm9wVHlwZXMiLCJpbmNsdWRlQXJyb3dzIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiZ3JhcGhQcm9wcyIsIkF4aXNEZWZhdWx0UHJvcHMiLCJsZWZ0IiwicmlnaHQiLCJ1cCIsImRvd24iLCJheGlzU3R5bGVzIiwidGhlbWUiLCJsaW5lIiwic3Ryb2tlIiwiY29sb3IiLCJkZWZhdWx0cyIsIlBSSU1BUlkiLCJzdHJva2VXaWR0aCIsImFycm93IiwiZmlsbCIsInRpY2siLCJsYWJlbEZvbnRTaXplIiwiZm9udFNpemUiLCJ0eXBvZ3JhcGh5IiwiYXhpc0xhYmVsSG9sZGVyIiwicGFkZGluZyIsIm1hcmdpbiIsInRleHRBbGlnbiIsInRpY2tMYWJlbFN0eWxlcyIsImZvbnRGYW1pbHkiLCJjdXJzb3IiLCJzaGFyZWRWYWx1ZXMiLCJmaXJzdE5lZ2F0aXZlWCIsImZpcnN0TmVnYXRpdmVZIiwiZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCIsImRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkiLCJkZWx0YUFsbG93YW5jZSIsImR5IiwicmVzdWx0IiwicHVzaCIsImZpcnN0TmVnYXRpdmVWYWx1ZSIsImludGVydmFsIiwiZmluZCIsImVsZW1lbnQiLCJSYXdYQXhpcyIsInByb3BzIiwiY2xhc3NlcyIsImNvbHVtblRpY2tzVmFsdWVzIiwic2tpcFZhbHVlcyIsInNjYWxlIiwiZG9tYWluIiwic2l6ZSIsInJhbmdlIiwidGlja1ZhbHVlcyIsImxhYmVsU3RlcCIsIm1pbiIsImxhYmVsUHJvcHMiLCJsYWJlbCIsInkiLCJ0ZXh0QW5jaG9yIiwiZHgiLCJuZWNlc3NhcnlSb3dzIiwiYXhpc0xhYmVsIiwibG9uZ2VzdFdvcmQiLCJuZWNlc3NhcnlXaWR0aCIsIngiLCJ2YWx1ZSIsIm1heCIsIndpZHRoIiwiX19odG1sIiwiUmVhY3QiLCJDb21wb25lbnQiLCJ0eXBlcyIsIkdyYXBoUHJvcHNUeXBlIiwiaXNSZXF1aXJlZCIsIlhBeGlzIiwiUmF3WUF4aXMiLCJyb3dUaWNrVmFsdWVzIiwibGVuZ3RoIiwiY3VzdG9tVGlja0Zvcm1hdCIsImluZGV4T2YiLCJoZWlnaHQiLCJkaWdpdHMiLCJ0b0xvY2FsZVN0cmluZyIsInJlcGxhY2UiLCJZQXhpcyIsIkF4ZXMiLCJ0aWNrcyIsInN0ZXAiLCJuZWdhdGl2ZSIsIk1hdGgiLCJhYnMiLCJ4VmFsdWVzIiwieVZhbHVlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxhQUFhLEdBQUc7QUFDM0JDLEVBQUFBLGFBQWEsRUFBRUMsc0JBQVVDLE1BREU7QUFFM0JDLEVBQUFBLFVBQVUsRUFBRUYsc0JBQVVDO0FBRkssQ0FBdEI7O0FBS1AsSUFBTUUsZ0JBQWdCLEdBQUc7QUFDdkJKLEVBQUFBLGFBQWEsRUFBRTtBQUNiSyxJQUFBQSxJQUFJLEVBQUUsSUFETztBQUViQyxJQUFBQSxLQUFLLEVBQUUsSUFGTTtBQUdiQyxJQUFBQSxFQUFFLEVBQUUsSUFIUztBQUliQyxJQUFBQSxJQUFJLEVBQUU7QUFKTztBQURRLENBQXpCOztBQVNBLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQzdCQyxJQUFBQSxJQUFJLEVBQUU7QUFDSkMsTUFBQUEsTUFBTSxFQUFFQyxnQkFBTUMsUUFBTixDQUFlQyxPQURuQjtBQUVKQyxNQUFBQSxXQUFXLEVBQUU7QUFGVCxLQUR1QjtBQUs3QkMsSUFBQUEsS0FBSyxFQUFFO0FBQ0xDLE1BQUFBLElBQUksRUFBRUwsZ0JBQU1DLFFBQU4sQ0FBZUM7QUFEaEIsS0FMc0I7QUFRN0JJLElBQUFBLElBQUksRUFBRTtBQUNKRCxNQUFBQSxJQUFJLEVBQUVMLGdCQUFNQyxRQUFOLENBQWVDLE9BRGpCO0FBRUosa0JBQVk7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QU8sRUFBRTVDLHNCQUFVQyxNO0FBQ25CQyxFQUFBQSxVQUFVLEVBQUVvRSxZQUFNQyxjQUFOLENBQXFCQzs7aUNBSmhCWSxJLGtCQU1HakYsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgQXhpcyB9IGZyb20gJ0B2eC9heGlzJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEFycm93IGZyb20gJy4vYXJyb3cnO1xuaW1wb3J0IHsgd2l0aFN0eWxlcyB9IGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlJztcbmltcG9ydCB7IGNvdW50V29yZHMsIGZpbmRMb25nZXN0V29yZCwgYW1vdW50VG9JbmNyZWFzZVdpZHRoLCBnZXRUaWNrVmFsdWVzIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgY29sb3IsIFJlYWRhYmxlIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcblxuZXhwb3J0IGNvbnN0IEF4aXNQcm9wVHlwZXMgPSB7XG4gIGluY2x1ZGVBcnJvd3M6IFByb3BUeXBlcy5vYmplY3QsXG4gIGdyYXBoUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG59O1xuXG5jb25zdCBBeGlzRGVmYXVsdFByb3BzID0ge1xuICBpbmNsdWRlQXJyb3dzOiB7XG4gICAgbGVmdDogdHJ1ZSxcbiAgICByaWdodDogdHJ1ZSxcbiAgICB1cDogdHJ1ZSxcbiAgICBkb3duOiB0cnVlLFxuICB9LFxufTtcblxuY29uc3QgYXhpc1N0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAgbGluZToge1xuICAgIHN0cm9rZTogY29sb3IuZGVmYXVsdHMuUFJJTUFSWSxcbiAgICBzdHJva2VXaWR0aDogMyxcbiAgfSxcbiAgYXJyb3c6IHtcbiAgICBmaWxsOiBjb2xvci5kZWZhdWx0cy5QUklNQVJZLFxuICB9LFxuICB0aWNrOiB7XG4gICAgZmlsbDogY29sb3IuZGVmYXVsdHMuUFJJTUFSWSxcbiAgICAnJiA+IGxpbmUnOiB7XG4gICAgICBzdHJva2U6IGNvbG9yLmRlZmF1bHRzLlBSSU1BUlksXG4gICAgfSxcbiAgfSxcbiAgbGFiZWxGb250U2l6ZToge1xuICAgIGZvbnRTaXplOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplLFxuICB9LFxuICBheGlzTGFiZWxIb2xkZXI6IHtcbiAgICBwYWRkaW5nOiAwLFxuICAgIG1hcmdpbjogMCxcbiAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICcqID4gKic6IHtcbiAgICAgIG1hcmdpbjogMCxcbiAgICAgIHBhZGRpbmc6IDAsXG4gICAgfSxcbiAgICBmb250U2l6ZTogdGhlbWUudHlwb2dyYXBoeS5mb250U2l6ZSxcbiAgfSxcbn0pO1xuXG5jb25zdCB0aWNrTGFiZWxTdHlsZXMgPSB7XG4gIGZvbnRGYW1pbHk6ICdSb2JvdG8nLFxuICBmb250U2l6ZTogJzE0cHgnLFxuICBjdXJzb3I6ICdpbmhlcml0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBzaGFyZWRWYWx1ZXMgPSAoXG4gIGZpcnN0TmVnYXRpdmVYLFxuICBmaXJzdE5lZ2F0aXZlWSxcbiAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCxcbiAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSxcbiAgZGVsdGFBbGxvd2FuY2UsXG4gIGR5LFxuKSA9PiB7XG4gIGxldCByZXN1bHQgPSBbXTtcblxuICBpZiAoXG4gICAgZmlyc3ROZWdhdGl2ZVggPT09IGZpcnN0TmVnYXRpdmVZICYmXG4gICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCAtIGRlbHRhQWxsb3dhbmNlIDwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSAmJlxuICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkgPCBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYICsgZGVsdGFBbGxvd2FuY2UgJiZcbiAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVYIC0gZGVsdGFBbGxvd2FuY2UgPCBkeSAmJlxuICAgIGR5IDwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCArIGRlbHRhQWxsb3dhbmNlXG4gICkge1xuICAgIHJlc3VsdC5wdXNoKGZpcnN0TmVnYXRpdmVYKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmlyc3ROZWdhdGl2ZVZhbHVlID0gKGludGVydmFsKSA9PiAoaW50ZXJ2YWwgfHwgW10pLmZpbmQoKGVsZW1lbnQpID0+IGVsZW1lbnQgPCAwKTtcblxuZXhwb3J0IGNsYXNzIFJhd1hBeGlzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAuLi5BeGlzUHJvcFR5cGVzLFxuICAgIGNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgfTtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEF4aXNEZWZhdWx0UHJvcHM7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGluY2x1ZGVBcnJvd3MsXG4gICAgICBjbGFzc2VzLFxuICAgICAgZ3JhcGhQcm9wcyxcbiAgICAgIGNvbHVtblRpY2tzVmFsdWVzLFxuICAgICAgc2tpcFZhbHVlcyxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVksXG4gICAgICBkeSxcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlLCBkb21haW4sIHNpemUsIHJhbmdlIH0gPSBncmFwaFByb3BzIHx8IHt9O1xuXG4gICAgLy8gSGF2aW5nIDAgYXMgYSBudW1iZXIgaW4gY29sdW1uVGlja3NWYWx1ZXMgZG9lcyBub3QgbWFrZSAwIHRvIHNob3cgdXBcbiAgICAvLyBzbyB3ZSB1c2UgdGhpcyB0cmljaywgYnkgZGVmaW5pbmcgaXQgYXMgYSBzdHJpbmc6XG4gICAgY29uc3QgdGlja1ZhbHVlcyA9XG4gICAgICAoZG9tYWluLmxhYmVsU3RlcCB8fCByYW5nZS5sYWJlbFN0ZXApICYmIGRvbWFpbi5taW4gPD0gMCA/IFsnMCcsIC4uLmNvbHVtblRpY2tzVmFsdWVzXSA6IGNvbHVtblRpY2tzVmFsdWVzO1xuICAgIC8vIEhvd2V2ZXIsIHRoZSAnMCcgaGFzIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIG90aGVyIHRpY2sgbGFiZWxzICh5LWF4aXMgb3IgeC1heGlzKSBhcmUgZGlzcGxheWVkXG5cbiAgICBjb25zdCBsYWJlbFByb3BzID0gKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCB5ID0gc2tpcFZhbHVlcyAmJiBza2lwVmFsdWVzWzBdID09PSBsYWJlbCA/IGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVkgKyA0IDogZHk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnRpY2tMYWJlbFN0eWxlcyxcbiAgICAgICAgdGV4dEFuY2hvcjogJ21pZGRsZScsXG4gICAgICAgIHk6IHksXG4gICAgICAgIGR4OiBsYWJlbCA9PT0gJzAnID8gLTEwIDogMCxcbiAgICAgICAgZHk6IGxhYmVsID09PSAnMCcgPyAtNyA6IDAsXG4gICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBuZWNlc3NhcnlSb3dzID0gY291bnRXb3Jkcyhkb21haW4uYXhpc0xhYmVsKTtcbiAgICBjb25zdCBsb25nZXN0V29yZCA9IGZpbmRMb25nZXN0V29yZChkb21haW4uYXhpc0xhYmVsKTtcbiAgICBjb25zdCBuZWNlc3NhcnlXaWR0aCA9IGFtb3VudFRvSW5jcmVhc2VXaWR0aChsb25nZXN0V29yZCkgKyAyO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPEF4aXNcbiAgICAgICAgICBheGlzTGluZUNsYXNzTmFtZT17Y2xhc3Nlcy5saW5lfVxuICAgICAgICAgIHNjYWxlPXtzY2FsZS54fVxuICAgICAgICAgIHRvcD17c2NhbGUueSgwKX1cbiAgICAgICAgICBsZWZ0PXswfVxuICAgICAgICAgIGxhYmVsPXtkb21haW4ubGFiZWx9XG4gICAgICAgICAgcmFuZ2VQYWRkaW5nPXs4fVxuICAgICAgICAgIHRpY2tDbGFzc05hbWU9e2NsYXNzZXMudGlja31cbiAgICAgICAgICB0aWNrRm9ybWF0PXsodmFsdWUpID0+IHZhbHVlfVxuICAgICAgICAgIHRpY2tMYWJlbFByb3BzPXtsYWJlbFByb3BzfVxuICAgICAgICAgIHRpY2tWYWx1ZXM9e3RpY2tWYWx1ZXN9XG4gICAgICAgIC8+XG4gICAgICAgIHtpbmNsdWRlQXJyb3dzICYmIGluY2x1ZGVBcnJvd3MubGVmdCAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cImxlZnRcIiB4PXtkb21haW4ubWlufSB5PXswfSBjbGFzc05hbWU9e2NsYXNzZXMuYXJyb3d9IHNjYWxlPXtzY2FsZX0gLz5cbiAgICAgICAgKX1cbiAgICAgICAge2luY2x1ZGVBcnJvd3MgJiYgaW5jbHVkZUFycm93cy5yaWdodCAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cInJpZ2h0XCIgeD17ZG9tYWluLm1heH0geT17MH0gY2xhc3NOYW1lPXtjbGFzc2VzLmFycm93fSBzY2FsZT17c2NhbGV9IC8+XG4gICAgICAgICl9XG4gICAgICAgIHtkb21haW4uYXhpc0xhYmVsICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PXtzaXplLndpZHRoICsgMTd9IHk9e3NjYWxlLnkoMCkgLSA5fSB3aWR0aD17bmVjZXNzYXJ5V2lkdGh9IGhlaWdodD17MjAgKiBuZWNlc3NhcnlSb3dzfT5cbiAgICAgICAgICAgIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3sgX19odG1sOiBkb21haW4uYXhpc0xhYmVsIH19IGNsYXNzTmFtZT17Y2xhc3Nlcy5sYWJlbEZvbnRTaXplfSAvPlxuICAgICAgICAgIDwvZm9yZWlnbk9iamVjdD5cbiAgICAgICAgKX1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBYQXhpcyA9IHdpdGhTdHlsZXMoYXhpc1N0eWxlcykoUmF3WEF4aXMpO1xuXG5leHBvcnQgY2xhc3MgUmF3WUF4aXMgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC4uLkF4aXNQcm9wVHlwZXMsXG4gICAgZ3JhcGhQcm9wczogdHlwZXMuR3JhcGhQcm9wc1R5cGUuaXNSZXF1aXJlZCxcbiAgfTtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IEF4aXNEZWZhdWx0UHJvcHM7XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2xhc3NlcywgaW5jbHVkZUFycm93cywgZ3JhcGhQcm9wcywgc2tpcFZhbHVlcywgcm93VGlja1ZhbHVlcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlLCByYW5nZSwgc2l6ZSB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcblxuICAgIGNvbnN0IG5lY2Vzc2FyeVdpZHRoID0gcmFuZ2UuYXhpc0xhYmVsID8gYW1vdW50VG9JbmNyZWFzZVdpZHRoKHJhbmdlLmF4aXNMYWJlbC5sZW5ndGgpIDogMDtcblxuICAgIGNvbnN0IGN1c3RvbVRpY2tGb3JtYXQgPSAodmFsdWUpID0+IChza2lwVmFsdWVzICYmIHNraXBWYWx1ZXMuaW5kZXhPZih2YWx1ZSkgPj0gMCA/ICcnIDogdmFsdWUpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgPEF4aXNcbiAgICAgICAgICBheGlzTGluZUNsYXNzTmFtZT17Y2xhc3Nlcy5saW5lfVxuICAgICAgICAgIG9yaWVudGF0aW9uPXsnbGVmdCd9XG4gICAgICAgICAgc2NhbGU9e3NjYWxlLnl9XG4gICAgICAgICAgdG9wPXswfVxuICAgICAgICAgIGhlaWdodD17c2l6ZS5oZWlnaHR9XG4gICAgICAgICAgbGVmdD17c2NhbGUueCgwKX1cbiAgICAgICAgICBsYWJlbD17cmFuZ2UubGFiZWx9XG4gICAgICAgICAgbGFiZWxQcm9wcz17eyAnZGF0YS1waWUtcmVhZGFibGUnOiBmYWxzZSB9fVxuICAgICAgICAgIHJhbmdlUGFkZGluZz17OH1cbiAgICAgICAgICB0aWNrTGVuZ3RoPXsxMH1cbiAgICAgICAgICB0aWNrQ2xhc3NOYW1lPXtjbGFzc2VzLnRpY2t9XG4gICAgICAgICAgdGlja0Zvcm1hdD17Y3VzdG9tVGlja0Zvcm1hdH1cbiAgICAgICAgICB0aWNrTGFiZWxQcm9wcz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBsZXQgZGlnaXRzID0gdmFsdWUudG9Mb2NhbGVTdHJpbmcoKS5yZXBsYWNlKC9bLi1dL2csICcnKS5sZW5ndGggfHwgMTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4udGlja0xhYmVsU3R5bGVzLFxuICAgICAgICAgICAgICBkeTogNCxcbiAgICAgICAgICAgICAgZHg6IC0xMCAtIGRpZ2l0cyAqIDksXG4gICAgICAgICAgICAgICdkYXRhLXBpZS1yZWFkYWJsZSc6IGZhbHNlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGhpZGVaZXJvPXt0cnVlfVxuICAgICAgICAgIHRpY2tUZXh0QW5jaG9yPXsnYm90dG9tJ31cbiAgICAgICAgICB0aWNrVmFsdWVzPXtyb3dUaWNrVmFsdWVzfVxuICAgICAgICAvPlxuXG4gICAgICAgIHtpbmNsdWRlQXJyb3dzICYmIGluY2x1ZGVBcnJvd3MuZG93biAmJiAoXG4gICAgICAgICAgPEFycm93IGRpcmVjdGlvbj1cImRvd25cIiB4PXswfSB5PXtyYW5nZS5taW59IGNsYXNzTmFtZT17Y2xhc3Nlcy5hcnJvd30gc2NhbGU9e3NjYWxlfSAvPlxuICAgICAgICApfVxuICAgICAgICB7aW5jbHVkZUFycm93cyAmJiBpbmNsdWRlQXJyb3dzLnVwICYmIChcbiAgICAgICAgICA8QXJyb3cgZGlyZWN0aW9uPVwidXBcIiB4PXswfSB5PXtyYW5nZS5tYXh9IGNsYXNzTmFtZT17Y2xhc3Nlcy5hcnJvd30gc2NhbGU9e3NjYWxlfSAvPlxuICAgICAgICApfVxuICAgICAgICB7cmFuZ2UuYXhpc0xhYmVsICYmIChcbiAgICAgICAgICA8Zm9yZWlnbk9iamVjdCB4PXtzY2FsZS54KDApIC0gbmVjZXNzYXJ5V2lkdGggLyAyfSB5PXstMzN9IHdpZHRoPXtuZWNlc3NhcnlXaWR0aH0gaGVpZ2h0PVwiMjBcIj5cbiAgICAgICAgICAgIDxSZWFkYWJsZSBmYWxzZT5cbiAgICAgICAgICAgICAgPGRpdiBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IHJhbmdlLmF4aXNMYWJlbCB9fSBjbGFzc05hbWU9e2NsYXNzZXMuYXhpc0xhYmVsSG9sZGVyfSAvPlxuICAgICAgICAgICAgPC9SZWFkYWJsZT5cbiAgICAgICAgICA8L2ZvcmVpZ25PYmplY3Q+XG4gICAgICAgICl9XG4gICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgWUF4aXMgPSB3aXRoU3R5bGVzKGF4aXNTdHlsZXMpKFJhd1lBeGlzKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXhlcyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgLi4uQXhpc1Byb3BUeXBlcyxcbiAgICBjbGFzc2VzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gIH07XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSBBeGlzRGVmYXVsdFByb3BzO1xuXG4gIHhWYWx1ZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgc2NhbGUsIGRvbWFpbiB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcblxuICAgIGlmICghZG9tYWluIHx8ICFzY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRpY2tzID0gZ2V0VGlja1ZhbHVlcyh7IC4uLmRvbWFpbiwgc3RlcDogZG9tYWluLmxhYmVsU3RlcCB9KTtcbiAgICBjb25zdCBuZWdhdGl2ZSA9IGZpcnN0TmVnYXRpdmVWYWx1ZSh0aWNrcyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29sdW1uVGlja3NWYWx1ZXM6IHRpY2tzLFxuICAgICAgZmlyc3ROZWdhdGl2ZVg6IG5lZ2F0aXZlLFxuICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWDogTWF0aC5hYnMoc2NhbGUueSgwKSAtIHNjYWxlLnkobmVnYXRpdmUpKSxcbiAgICB9O1xuICB9O1xuXG4gIHlWYWx1ZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgc2NhbGUsIHJhbmdlIH0gPSBncmFwaFByb3BzIHx8IHt9O1xuXG4gICAgaWYgKCFyYW5nZSB8fCAhc2NhbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0aWNrcyA9IGdldFRpY2tWYWx1ZXMoeyAuLi5yYW5nZSwgc3RlcDogcmFuZ2UubGFiZWxTdGVwIH0pO1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gZmlyc3ROZWdhdGl2ZVZhbHVlKHRpY2tzKTtcblxuICAgIHJldHVybiB7XG4gICAgICByb3dUaWNrVmFsdWVzOiB0aWNrcyxcbiAgICAgIGZpcnN0TmVnYXRpdmVZOiBuZWdhdGl2ZSxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVk6IE1hdGguYWJzKHNjYWxlLngoMCkgLSBzY2FsZS54KG5lZ2F0aXZlKSksXG4gICAgfTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBncmFwaFByb3BzIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgZG9tYWluLCByYW5nZSB9ID0gZ3JhcGhQcm9wcyB8fCB7fTtcbiAgICBjb25zdCB7IGNvbHVtblRpY2tzVmFsdWVzLCBmaXJzdE5lZ2F0aXZlWCwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWCB9ID0gdGhpcy54VmFsdWVzKCk7XG4gICAgY29uc3QgeyByb3dUaWNrVmFsdWVzLCBmaXJzdE5lZ2F0aXZlWSwgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWSB9ID0gdGhpcy55VmFsdWVzKCk7XG4gICAgY29uc3QgZGVsdGFBbGxvd2FuY2UgPSA2O1xuICAgIGNvbnN0IGR5ID0gMjU7XG5cbiAgICBjb25zdCBza2lwVmFsdWVzID0gc2hhcmVkVmFsdWVzKFxuICAgICAgZmlyc3ROZWdhdGl2ZVgsXG4gICAgICBmaXJzdE5lZ2F0aXZlWSxcbiAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVgsXG4gICAgICBkaXN0YW5jZUZyb21PcmlnaW5Ub0ZpcnN0TmVnYXRpdmVZLFxuICAgICAgZGVsdGFBbGxvd2FuY2UsXG4gICAgICBkeSxcbiAgICApO1xuXG4gICAgLy8gZWFjaCBheGlzIGhhcyB0byBiZSBkaXNwbGF5ZWQgb25seSBpZiB0aGUgZG9tYWluICYgcmFuZ2UgaW5jbHVkZSBpdFxuICAgIHJldHVybiAoXG4gICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgIHtyYW5nZS5taW4gPD0gMCA/IChcbiAgICAgICAgICA8WEF4aXNcbiAgICAgICAgICAgIHsuLi50aGlzLnByb3BzfVxuICAgICAgICAgICAgc2tpcFZhbHVlcz17c2tpcFZhbHVlc31cbiAgICAgICAgICAgIGNvbHVtblRpY2tzVmFsdWVzPXtjb2x1bW5UaWNrc1ZhbHVlc31cbiAgICAgICAgICAgIGRpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVk9e2Rpc3RhbmNlRnJvbU9yaWdpblRvRmlyc3ROZWdhdGl2ZVl9XG4gICAgICAgICAgICBkeT17ZHl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHtkb21haW4ubWluIDw9IDAgPyAoXG4gICAgICAgICAgPFlBeGlzXG4gICAgICAgICAgICB7Li4udGhpcy5wcm9wc31cbiAgICAgICAgICAgIHNraXBWYWx1ZXM9e3NraXBWYWx1ZXN9XG4gICAgICAgICAgICByb3dUaWNrVmFsdWVzPXtyb3dUaWNrVmFsdWVzfVxuICAgICAgICAgICAgZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWD17ZGlzdGFuY2VGcm9tT3JpZ2luVG9GaXJzdE5lZ2F0aXZlWH1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICAgKTtcbiAgfVxufVxuIl19
package/lib/axis/index.js DELETED
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- Object.defineProperty(exports, "Axes", {
9
- enumerable: true,
10
- get: function get() {
11
- return _axes["default"];
12
- }
13
- });
14
- Object.defineProperty(exports, "AxisPropTypes", {
15
- enumerable: true,
16
- get: function get() {
17
- return _axes.AxisPropTypes;
18
- }
19
- });
20
-
21
- var _axes = _interopRequireWildcard(require("./axes"));
22
-
23
- 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); }
24
-
25
- 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; }
26
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9heGlzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXhlcywgeyBBeGlzUHJvcFR5cGVzIH0gZnJvbSAnLi9heGVzJztcbmV4cG9ydCB7IEF4ZXMsIEF4aXNQcm9wVHlwZXMgfTtcbiJdfQ==
package/lib/bg.js DELETED
@@ -1,139 +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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = _interopRequireDefault(require("react"));
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _d3Selection = require("d3-selection");
29
-
30
- var _plot = require("@pie-lib/plot");
31
-
32
- var _utils = require("./utils");
33
-
34
- 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); }; }
35
-
36
- 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; } }
37
-
38
- var Bg = /*#__PURE__*/function (_React$Component) {
39
- (0, _inherits2["default"])(Bg, _React$Component);
40
-
41
- var _super = _createSuper(Bg);
42
-
43
- function Bg() {
44
- var _this;
45
-
46
- (0, _classCallCheck2["default"])(this, Bg);
47
-
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
50
- }
51
-
52
- _this = _super.call.apply(_super, [this].concat(args));
53
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getRectPadding", function () {
54
- var graphProps = _this.props.graphProps;
55
- return (0, _utils.thinnerShapesNeeded)(graphProps) ? 6 : 10;
56
- });
57
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRectClick", function (rect) {
58
- var _this$props = _this.props,
59
- onClick = _this$props.onClick,
60
- graphProps = _this$props.graphProps;
61
- var scale = graphProps.scale;
62
-
63
- var padding = _this.getRectPadding();
64
-
65
- var coords = (0, _d3Selection.mouse)(rect._groups[0][0]); // decrease the padding from coordinates to indicate the correct point clicked
66
-
67
- var x = scale.x.invert(coords[0] - padding);
68
- var y = scale.y.invert(coords[1] - padding);
69
- var rowTicks = (0, _utils.getTickValues)(graphProps.range);
70
- var columnTicks = (0, _utils.getTickValues)(graphProps.domain);
71
-
72
- var closest = function closest(ticks, value) {
73
- return ticks.length && ticks.reduce(function (prev, curr) {
74
- var currentDistance = Math.abs(curr - value);
75
- var previousDistance = Math.abs(prev - value);
76
- return currentDistance <= previousDistance ? curr : prev;
77
- });
78
- };
79
-
80
- var snapped = {};
81
-
82
- if (columnTicks.indexOf(x) >= 0 && rowTicks.indexOf(y) >= 0) {
83
- snapped.x = x;
84
- snapped.y = y;
85
- } else {
86
- snapped.x = closest(columnTicks, x);
87
- snapped.y = closest(rowTicks, y);
88
- }
89
-
90
- onClick(snapped);
91
- });
92
- return _this;
93
- }
94
-
95
- (0, _createClass2["default"])(Bg, [{
96
- key: "componentDidMount",
97
- value: function componentDidMount() {
98
- var rect = (0, _d3Selection.select)(this.rect);
99
- rect.on('click', this.onRectClick.bind(this, rect));
100
- }
101
- }, {
102
- key: "shouldComponentUpdate",
103
- value: function shouldComponentUpdate(nextProps) {
104
- return !_plot.utils.isDomainRangeEqual(this.props.graphProps, nextProps.graphProps) || this.props.width !== nextProps.width || this.props.height !== nextProps.height;
105
- }
106
- }, {
107
- key: "render",
108
- value: function render() {
109
- var _this2 = this;
110
-
111
- var _this$props2 = this.props,
112
- width = _this$props2.width,
113
- height = _this$props2.height;
114
- var padding = this.getRectPadding(); // expand the size of clickable area so a small area outside the edges of the grid lines to be clickable
115
-
116
- return /*#__PURE__*/_react["default"].createElement("rect", {
117
- ref: function ref(rect) {
118
- return _this2.rect = rect;
119
- },
120
- transform: "translate(-".concat(padding, ", -").concat(padding, ")"),
121
- fill: "red",
122
- fillOpacity: "0.0",
123
- width: width + padding * 2,
124
- height: height + padding * 2
125
- });
126
- }
127
- }]);
128
- return Bg;
129
- }(_react["default"].Component);
130
-
131
- exports["default"] = Bg;
132
- (0, _defineProperty2["default"])(Bg, "propTypes", {
133
- width: _propTypes["default"].number.isRequired,
134
- height: _propTypes["default"].number.isRequired,
135
- onClick: _propTypes["default"].func.isRequired,
136
- graphProps: _plot.types.GraphPropsType.isRequired
137
- });
138
- (0, _defineProperty2["default"])(Bg, "defaultProps", {});
139
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iZy5qc3giXSwibmFtZXMiOlsiQmciLCJncmFwaFByb3BzIiwicHJvcHMiLCJyZWN0Iiwib25DbGljayIsInNjYWxlIiwicGFkZGluZyIsImdldFJlY3RQYWRkaW5nIiwiY29vcmRzIiwiX2dyb3VwcyIsIngiLCJpbnZlcnQiLCJ5Iiwicm93VGlja3MiLCJyYW5nZSIsImNvbHVtblRpY2tzIiwiZG9tYWluIiwiY2xvc2VzdCIsInRpY2tzIiwidmFsdWUiLCJsZW5ndGgiLCJyZWR1Y2UiLCJwcmV2IiwiY3VyciIsImN1cnJlbnREaXN0YW5jZSIsIk1hdGgiLCJhYnMiLCJwcmV2aW91c0Rpc3RhbmNlIiwic25hcHBlZCIsImluZGV4T2YiLCJvbiIsIm9uUmVjdENsaWNrIiwiYmluZCIsIm5leHRQcm9wcyIsInV0aWxzIiwiaXNEb21haW5SYW5nZUVxdWFsIiwid2lkdGgiLCJoZWlnaHQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJmdW5jIiwidHlwZXMiLCJHcmFwaFByb3BzVHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0lBRXFCQSxFOzs7Ozs7Ozs7Ozs7Ozs7dUdBd0JGLFlBQU07QUFDckIsVUFBUUMsVUFBUixHQUF1QixNQUFLQyxLQUE1QixDQUFRRCxVQUFSO0FBRUEsYUFBTyxnQ0FBb0JBLFVBQXBCLElBQWtDLENBQWxDLEdBQXNDLEVBQTdDO0FBQ0QsSztvR0FNYSxVQUFDRSxJQUFELEVBQVU7QUFDdEIsd0JBQWdDLE1BQUtELEtBQXJDO0FBQUEsVUFBUUUsT0FBUixlQUFRQSxPQUFSO0FBQUEsVUFBaUJILFVBQWpCLGVBQWlCQSxVQUFqQjtBQUNBLFVBQVFJLEtBQVIsR0FBa0JKLFVBQWxCLENBQVFJLEtBQVI7O0FBRUEsVUFBTUMsT0FBTyxHQUFHLE1BQUtDLGNBQUwsRUFBaEI7O0FBQ0Es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QSxTQUFTLHVCQUFnQkcsT0FBaEIsZ0JBQTZCQSxPQUE3QixNQUZYO0FBR0UsUUFBQSxJQUFJLEVBQUMsS0FIUDtBQUlFLFFBQUEsV0FBVyxFQUFDLEtBSmQ7QUFLRSxRQUFBLEtBQUssRUFBRThCLEtBQUssR0FBRzlCLE9BQU8sR0FBRyxDQUwzQjtBQU1FLFFBQUEsTUFBTSxFQUFFK0IsTUFBTSxHQUFHL0IsT0FBTyxHQUFHO0FBTjdCLFFBREY7QUFVRDs7O0VBeEY2QmdDLGtCQUFNQyxTOzs7aUNBQWpCdkMsRSxlQUNBO0FBQ2pCb0MsRUFBQUEsS0FBSyxFQUFFSSxzQkFBVUMsTUFBVixDQUFpQkMsVUFEUDtBQUVqQkwsRUFBQUEsTUFBTSxFQUFFRyxzQkFBVUMsTUFBVixDQUFpQkMsVUFGUjtBQUdqQnRDLEVBQUFBLE9BQU8sRUFBRW9DLHNCQUFVRyxJQUFWLENBQWVELFVBSFA7QUFJakJ6QyxFQUFBQSxVQUFVLEVBQUUyQyxZQUFNQyxjQUFOLENBQXFCSDtBQUpoQixDO2lDQURBMUMsRSxrQkFRRyxFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBzZWxlY3QsIG1vdXNlIH0gZnJvbSAnZDMtc2VsZWN0aW9uJztcbmltcG9ydCB7IHR5cGVzLCB1dGlscyB9IGZyb20gJ0BwaWUtbGliL3Bsb3QnO1xuaW1wb3J0IHsgZ2V0VGlja1ZhbHVlcywgdGhpbm5lclNoYXBlc05lZWRlZCB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCZyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgd2lkdGg6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICBoZWlnaHQ6IFByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCxcbiAgICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGdyYXBoUHJvcHM6IHR5cGVzLkdyYXBoUHJvcHNUeXBlLmlzUmVxdWlyZWQsXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHt9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IHJlY3QgPSBzZWxlY3QodGhpcy5yZWN0KTtcblxuICAgIHJlY3Qub24oJ2NsaWNrJywgdGhpcy5vblJlY3RDbGljay5iaW5kKHRoaXMsIHJlY3QpKTtcbiAgfVxuXG4gIHNob3VsZENvbXBvbmVudFVwZGF0ZShuZXh0UHJvcHMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXV0aWxzLmlzRG9tYWluUmFuZ2VFcXVhbCh0aGlzLnByb3BzLmdyYXBoUHJvcHMsIG5leHRQcm9wcy5ncmFwaFByb3BzKSB8fFxuICAgICAgdGhpcy5wcm9wcy53aWR0aCAhPT0gbmV4dFByb3BzLndpZHRoIHx8XG4gICAgICB0aGlzLnByb3BzLmhlaWdodCAhPT0gbmV4dFByb3BzLmhlaWdodFxuICAgICk7XG4gIH1cblxuICBnZXRSZWN0UGFkZGluZyA9ICgpID0+IHtcbiAgICBjb25zdCB7IGdyYXBoUHJvcHMgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gdGhpbm5lclNoYXBlc05lZWRlZChncmFwaFByb3BzKSA/IDYgOiAxMDtcbiAgfTtcblxuICAvKipcbiAgICogTm90ZTogd2UgdXNlIGQzIGNsaWNrICsgbW91c2UgdG8gZ2l2ZSB1cyBkb21haW4gdmFsdWVzIGRpcmVjdGx5LlxuICAgKiBTYXZlcyB1cyBoYXZpbmcgdG8gY2FsY3VsYXRlIHRoZW0gb3Vyc2VsdmVzIGZyb20gYSBNb3VzZUV2ZW50LlxuICAgKi9cbiAgb25SZWN0Q2xpY2sgPSAocmVjdCkgPT4ge1xuICAgIGNvbnN0IHsgb25DbGljaywgZ3JhcGhQcm9wcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7IHNjYWxlIH0gPSBncmFwaFByb3BzO1xuXG4gICAgY29uc3QgcGFkZGluZyA9IHRoaXMuZ2V0UmVjdFBhZGRpbmcoKTtcbiAgICBjb25zdCBjb29yZHMgPSBtb3VzZShyZWN0Ll9ncm91cHNbMF1bMF0pO1xuXG4gICAgLy8gZGVjcmVhc2UgdGhlIHBhZGRpbmcgZnJvbSBjb29yZGluYXRlcyB0byBpbmRpY2F0ZSB0aGUgY29ycmVjdCBwb2ludCBjbGlja2VkXG4gICAgY29uc3QgeCA9IHNjYWxlLnguaW52ZXJ0KGNvb3Jkc1swXSAtIHBhZGRpbmcpO1xuICAgIGNvbnN0IHkgPSBzY2FsZS55LmludmVydChjb29yZHNbMV0gLSBwYWRkaW5nKTtcblxuICAgIGNvbnN0IHJvd1RpY2tzID0gZ2V0VGlja1ZhbHVlcyhncmFwaFByb3BzLnJhbmdlKTtcbiAgICBjb25zdCBjb2x1bW5UaWNrcyA9IGdldFRpY2tWYWx1ZXMoZ3JhcGhQcm9wcy5kb21haW4pO1xuXG4gICAgY29uc3QgY2xvc2VzdCA9ICh0aWNrcywgdmFsdWUpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRpY2tzLmxlbmd0aCAmJlxuICAgICAgICB0aWNrcy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGlzdGFuY2UgPSBNYXRoLmFicyhjdXJyIC0gdmFsdWUpO1xuICAgICAgICAgIGNvbnN0IHByZXZpb3VzRGlzdGFuY2UgPSBNYXRoLmFicyhwcmV2IC0gdmFsdWUpO1xuXG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnREaXN0YW5jZSA8PSBwcmV2aW91c0Rpc3RhbmNlID8gY3VyciA6IHByZXY7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH07XG5cbiAgICBsZXQgc25hcHBlZCA9IHt9O1xuXG4gICAgaWYgKGNvbHVtblRpY2tzLmluZGV4T2YoeCkgPj0gMCAmJiByb3dUaWNrcy5pbmRleE9mKHkpID49IDApIHtcbiAgICAgIHNuYXBwZWQueCA9IHg7XG4gICAgICBzbmFwcGVkLnkgPSB5O1xuICAgIH0gZWxzZSB7XG4gICAgICBzbmFwcGVkLnggPSBjbG9zZXN0KGNvbHVtblRpY2tzLCB4KTtcbiAgICAgIHNuYXBwZWQueSA9IGNsb3Nlc3Qocm93VGlja3MsIHkpO1xuICAgIH1cblxuICAgIG9uQ2xpY2soc25hcHBlZCk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBwYWRkaW5nID0gdGhpcy5nZXRSZWN0UGFkZGluZygpO1xuXG4gICAgLy8gZXhwYW5kIHRoZSBzaXplIG9mIGNsaWNrYWJsZSBhcmVhIHNvIGEgc21hbGwgYXJlYSBvdXRzaWRlIHRoZSBlZGdlcyBvZiB0aGUgZ3JpZCBsaW5lcyB0byBiZSBjbGlja2FibGVcbiAgICByZXR1cm4gKFxuICAgICAgPHJlY3RcbiAgICAgICAgcmVmPXsocmVjdCkgPT4gKHRoaXMucmVjdCA9IHJlY3QpfVxuICAgICAgICB0cmFuc2Zvcm09e2B0cmFuc2xhdGUoLSR7cGFkZGluZ30sIC0ke3BhZGRpbmd9KWB9XG4gICAgICAgIGZpbGw9XCJyZWRcIlxuICAgICAgICBmaWxsT3BhY2l0eT1cIjAuMFwiXG4gICAgICAgIHdpZHRoPXt3aWR0aCArIHBhZGRpbmcgKiAyfVxuICAgICAgICBoZWlnaHQ9e2hlaWdodCArIHBhZGRpbmcgKiAyfVxuICAgICAgLz5cbiAgICApO1xuICB9XG59XG4iXX0=