@pie-lib/charting 5.17.0-beta.0 → 5.17.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 (74) hide show
  1. package/CHANGELOG.json +1 -581
  2. package/CHANGELOG.md +149 -43
  3. package/package.json +5 -5
  4. package/src/__tests__/__snapshots__/axes.test.jsx.snap +1 -0
  5. package/src/__tests__/__snapshots__/chart.test.jsx.snap +0 -18
  6. package/src/__tests__/__snapshots__/grid.test.jsx.snap +61 -17
  7. package/src/__tests__/axes.test.jsx +0 -5
  8. package/src/__tests__/chart.test.jsx +8 -0
  9. package/src/actions-button.jsx +109 -0
  10. package/src/axes.jsx +5 -31
  11. package/src/bars/common/bars.jsx +8 -10
  12. package/src/chart-setup.jsx +1 -1
  13. package/src/chart.jsx +31 -26
  14. package/src/common/drag-handle.jsx +3 -3
  15. package/src/common/styles.js +1 -1
  16. package/src/grid.jsx +38 -13
  17. package/src/index.js +2 -1
  18. package/src/key-legend.jsx +75 -0
  19. package/src/line/common/drag-handle.jsx +3 -9
  20. package/src/line/common/line.jsx +2 -6
  21. package/src/line/line-cross.js +29 -2
  22. package/src/line/line-dot.js +36 -19
  23. package/src/mark-label.jsx +7 -2
  24. package/src/plot/common/plot.jsx +8 -5
  25. package/src/tool-menu.jsx +1 -1
  26. package/lib/__tests__/axes.test.js +0 -181
  27. package/lib/__tests__/chart-setup.test.js +0 -58
  28. package/lib/__tests__/chart-type.test.js +0 -42
  29. package/lib/__tests__/chart.test.js +0 -108
  30. package/lib/__tests__/grid.test.js +0 -48
  31. package/lib/__tests__/mark-label.test.js +0 -57
  32. package/lib/__tests__/utils.js +0 -56
  33. package/lib/__tests__/utils.test.js +0 -197
  34. package/lib/axes.js +0 -643
  35. package/lib/bars/__tests__/bar.test.js +0 -62
  36. package/lib/bars/__tests__/histogram.test.js +0 -64
  37. package/lib/bars/__tests__/utils.js +0 -56
  38. package/lib/bars/bar.js +0 -86
  39. package/lib/bars/common/__tests__/bars.test.js +0 -100
  40. package/lib/bars/common/__tests__/utils.js +0 -56
  41. package/lib/bars/common/bars.js +0 -301
  42. package/lib/bars/histogram.js +0 -87
  43. package/lib/chart-setup.js +0 -458
  44. package/lib/chart-type.js +0 -71
  45. package/lib/chart-types.js +0 -31
  46. package/lib/chart.js +0 -438
  47. package/lib/common/__tests__/drag-handle.test.js +0 -134
  48. package/lib/common/__tests__/utils.js +0 -56
  49. package/lib/common/drag-handle.js +0 -175
  50. package/lib/common/drag-icon.js +0 -52
  51. package/lib/common/styles.js +0 -40
  52. package/lib/grid.js +0 -104
  53. package/lib/index.js +0 -40
  54. package/lib/line/__tests__/line-cross.test.js +0 -64
  55. package/lib/line/__tests__/line-dot.test.js +0 -64
  56. package/lib/line/__tests__/utils.js +0 -56
  57. package/lib/line/common/__tests__/drag-handle.test.js +0 -134
  58. package/lib/line/common/__tests__/line.test.js +0 -128
  59. package/lib/line/common/__tests__/utils.js +0 -56
  60. package/lib/line/common/drag-handle.js +0 -157
  61. package/lib/line/common/line.js +0 -261
  62. package/lib/line/line-cross.js +0 -168
  63. package/lib/line/line-dot.js +0 -131
  64. package/lib/mark-label.js +0 -255
  65. package/lib/plot/__tests__/dot.test.js +0 -64
  66. package/lib/plot/__tests__/line.test.js +0 -64
  67. package/lib/plot/__tests__/utils.js +0 -56
  68. package/lib/plot/common/__tests__/plot.test.js +0 -103
  69. package/lib/plot/common/__tests__/utils.js +0 -56
  70. package/lib/plot/common/plot.js +0 -280
  71. package/lib/plot/dot.js +0 -123
  72. package/lib/plot/line.js +0 -152
  73. package/lib/tool-menu.js +0 -142
  74. package/lib/utils.js +0 -244
package/lib/mark-label.js DELETED
@@ -1,255 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = exports.MarkLabel = void 0;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _classnames = _interopRequireDefault(require("classnames"));
19
-
20
- var _styles = require("@material-ui/core/styles");
21
-
22
- var _reactInputAutosize = _interopRequireDefault(require("react-input-autosize"));
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- var _plot = require("@pie-lib/plot");
27
-
28
- var _styles2 = require("./common/styles");
29
-
30
- var _renderUi = require("@pie-lib/render-ui");
31
-
32
- var _mathRendering = require("@pie-lib/math-rendering");
33
-
34
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
-
36
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
-
38
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
-
40
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
-
42
- var styles = function styles(theme) {
43
- return {
44
- input: {
45
- "float": 'right',
46
- fontFamily: theme.typography.fontFamily,
47
- fontSize: theme.typography.fontSize,
48
- border: 'none',
49
- color: _renderUi.color.primaryDark(),
50
- '&.correct': (0, _styles2.correct)('color'),
51
- '&.incorrect': (0, _styles2.incorrect)('color'),
52
- '&.disabled': {
53
- backgroundColor: 'transparent !important'
54
- },
55
- '&.error': {
56
- border: "2px solid ".concat(theme.palette.error.main)
57
- }
58
- },
59
- mathInput: {
60
- pointerEvents: 'auto',
61
- textAlign: 'center',
62
- fontSize: theme.typography.fontSize + 2,
63
- fontFamily: theme.typography.fontFamily,
64
- color: _renderUi.color.primaryDark(),
65
- paddingTop: theme.typography.fontSize / 2
66
- },
67
- disabled: _objectSpread(_objectSpread({}, (0, _styles2.disabled)('color')), {}, {
68
- backgroundColor: 'transparent !important'
69
- }),
70
- error: {
71
- border: "2px solid ".concat(theme.palette.error.main)
72
- },
73
- correct: _objectSpread({}, (0, _styles2.correct)('color')),
74
- incorrect: _objectSpread({}, (0, _styles2.incorrect)('color'))
75
- };
76
- };
77
-
78
- function isFractionFormat(label) {
79
- var trimmedLabel = (label === null || label === void 0 ? void 0 : label.trim()) || '';
80
- var fracRegex = new RegExp(/^[1-9]*[0-9]*\s?[1-9][0-9]*\/[1-9][0-9]*$/);
81
- return fracRegex.test(trimmedLabel);
82
- }
83
-
84
- function getLabelMathFormat(label) {
85
- var trimmedLabel = (label === null || label === void 0 ? void 0 : label.trim()) || '';
86
- var fraction;
87
- var mixedNr = '';
88
- var improperFraction = trimmedLabel.split(' ');
89
-
90
- if (improperFraction[1] && improperFraction[1].includes('/')) {
91
- fraction = improperFraction[1].split('/') || '';
92
- } else {
93
- fraction = (trimmedLabel === null || trimmedLabel === void 0 ? void 0 : trimmedLabel.split('/')) || '';
94
- }
95
-
96
- var formattedLLabel;
97
-
98
- if (isFractionFormat(label)) {
99
- if (improperFraction[0] && improperFraction[1]) {
100
- mixedNr = improperFraction[0];
101
- }
102
-
103
- formattedLLabel = "\\(".concat(mixedNr, "\\frac{").concat(fraction[0], "}{").concat(fraction[1], "}\\)");
104
- return formattedLLabel;
105
- }
106
-
107
- return undefined;
108
- }
109
-
110
- var MarkLabel = function MarkLabel(props) {
111
- var _classNames;
112
-
113
- // eslint-disable-next-line no-unused-vars
114
- var _useState = (0, _react.useState)(null),
115
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
116
- input = _useState2[0],
117
- setInput = _useState2[1];
118
-
119
- var _ref = (0, _react.useCallback)(function (node) {
120
- return setInput(node);
121
- }, null);
122
-
123
- var mark = props.mark,
124
- classes = props.classes,
125
- disabled = props.disabled,
126
- externalInputRef = props.inputRef,
127
- barWidth = props.barWidth,
128
- rotate = props.rotate,
129
- correctness = props.correctness,
130
- autoFocus = props.autoFocus,
131
- error = props.error,
132
- isHiddenLabel = props.isHiddenLabel;
133
-
134
- var _useState3 = (0, _react.useState)(mark.label),
135
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
136
- label = _useState4[0],
137
- setLabel = _useState4[1];
138
-
139
- var _useState5 = (0, _react.useState)(getLabelMathFormat(mark.label)),
140
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
141
- mathLabel = _useState6[0],
142
- setMathLabel = _useState6[1];
143
-
144
- var _useState7 = (0, _react.useState)(false),
145
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
146
- isEditing = _useState8[0],
147
- setIsEditing = _useState8[1];
148
-
149
- var root = (0, _react.useRef)(null);
150
-
151
- var onChange = function onChange(e) {
152
- setLabel(e.target.value);
153
- };
154
-
155
- var isMathRendering = function isMathRendering() {
156
- return isEditing === false && mathLabel !== undefined;
157
- };
158
-
159
- var onChangeProp = function onChangeProp(e) {
160
- setMathLabel(getLabelMathFormat(mark.label));
161
- setIsEditing(false);
162
- props.onChange(e.target.value);
163
- };
164
-
165
- var extraStyle = {};
166
-
167
- if (rotate) {
168
- extraStyle = {
169
- width: 'unset',
170
- textAlign: 'left'
171
- };
172
- } // useState only sets the value once, to synch props to state need useEffect
173
-
174
-
175
- (0, _react.useEffect)(function () {
176
- setLabel(mark.label);
177
- }, [mark.label]);
178
- (0, _react.useEffect)(function () {
179
- (0, _mathRendering.renderMath)(root);
180
- }, []);
181
- return isMathRendering() ? /*#__PURE__*/_react["default"].createElement("div", {
182
- ref: function ref(r) {
183
- root = r;
184
- externalInputRef(r);
185
- },
186
- dangerouslySetInnerHTML: {
187
- __html: getLabelMathFormat(label)
188
- },
189
- className: (0, _classnames["default"])(classes.mathInput, (_classNames = {}, (0, _defineProperty2["default"])(_classNames, classes.disabled, disabled), (0, _defineProperty2["default"])(_classNames, classes.error, error), (0, _defineProperty2["default"])(_classNames, classes.correct, mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'correct'), (0, _defineProperty2["default"])(_classNames, classes.incorrect, mark.editable && (correctness === null || correctness === void 0 ? void 0 : correctness.label) === 'incorrect'), _classNames)),
190
- onClick: function onClick() {
191
- return setIsEditing(true);
192
- },
193
- style: {
194
- minWidth: barWidth,
195
- position: 'fixed',
196
- transformOrigin: 'left',
197
- transform: "rotate(".concat(rotate, "deg)"),
198
- visibility: isHiddenLabel ? 'hidden' : 'unset'
199
- }
200
- }) : /*#__PURE__*/_react["default"].createElement(_reactInputAutosize["default"], {
201
- inputRef: function inputRef(r) {
202
- _ref(r);
203
-
204
- externalInputRef(r);
205
- },
206
- autoFocus: isEditing || autoFocus,
207
- disabled: disabled,
208
- inputClassName: (0, _classnames["default"])(classes.input, correctness && mark.editable ? correctness.label : null, disabled && 'disabled', error && 'error'),
209
- inputStyle: _objectSpread({
210
- minWidth: barWidth,
211
- textAlign: 'center',
212
- background: 'transparent',
213
- boxSizing: 'border-box',
214
- paddingLeft: 0,
215
- paddingRight: 0
216
- }, extraStyle),
217
- value: label,
218
- style: {
219
- position: 'fixed',
220
- pointerEvents: 'auto',
221
- top: 0,
222
- left: 0,
223
- minWidth: barWidth,
224
- transformOrigin: 'left',
225
- transform: "rotate(".concat(rotate, "deg)"),
226
- visibility: isHiddenLabel ? 'hidden' : 'unset'
227
- },
228
- onChange: onChange,
229
- onBlur: onChangeProp
230
- });
231
- };
232
-
233
- exports.MarkLabel = MarkLabel;
234
- MarkLabel.propTypes = {
235
- autoFocus: _propTypes["default"].bool,
236
- disabled: _propTypes["default"].bool,
237
- error: _propTypes["default"].any,
238
- onChange: _propTypes["default"].func,
239
- graphProps: _plot.types.GraphPropsType,
240
- classes: _propTypes["default"].object,
241
- inputRef: _propTypes["default"].func,
242
- mark: _propTypes["default"].object,
243
- barWidth: _propTypes["default"].number,
244
- rotate: _propTypes["default"].number,
245
- correctness: _propTypes["default"].shape({
246
- value: _propTypes["default"].string,
247
- label: _propTypes["default"].string
248
- }),
249
- isHiddenLabel: _propTypes["default"].bool
250
- };
251
-
252
- var _default = (0, _styles.withStyles)(styles)(MarkLabel);
253
-
254
- exports["default"] = _default;
255
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXJrLWxhYmVsLmpzeCJdLCJuYW1lcyI6WyJzdHlsZXMiLCJ0aGVtZSIsImlucHV0IiwiZm9udEZhbWlseSIsInR5cG9ncmFwaHkiLCJmb250U2l6ZSIsImJvcmRlciIsImNvbG9yIiwicHJpbWFyeURhcmsiLCJiYWNrZ3JvdW5kQ29sb3IiLCJwYWxldHRlIiwiZXJyb3IiLCJtYWluIiwibWF0aElucHV0IiwicG9pbnRlckV2ZW50cyIsInRleHRBbGlnbiIsInBhZGRpbmdUb3AiLCJkaXNhYmxlZCIsImNvcnJlY3QiLCJpbmNvcnJlY3QiLCJpc0ZyYWN0aW9uRm9ybWF0IiwibGFiZWwiLCJ0cmltbWVkTGFiZWwiLCJ0cmltIiwiZnJhY1JlZ2V4IiwiUmVnRXhwIiwidGVzdCIsImdldExhYmVsTWF0aEZvcm1hdCIsImZyYWN0aW9uIiwibWl4ZWROciIsImltcHJvcGVyRnJhY3Rpb24iLCJzcGxpdCIsImluY2x1ZGVzIiwiZm9ybWF0dGVkTExhYmVsIiwidW5kZWZpbmVkIiwiTWFya0xhYmVsIiwicHJvcHMiLCJzZXRJbnB1dCIsIl9yZWYiLCJub2RlIiwibWFyayIsImNsYXNzZXMiLCJleHRlcm5hbElucHV0UmVmIiwiaW5wdXRSZWYiLCJiYXJXaWR0aCIsInJvdGF0ZSIsImNvcnJlY3RuZXNzIiwiYXV0b0ZvY3VzIiwiaXNIaWRkZW5MYWJlbCIsInNldExhYmVsIiwibWF0aExhYmVsIiwic2V0TWF0aExhYmVsIiwiaXNFZGl0aW5nIiwic2V0SXNFZGl0aW5nIiwicm9vdCIsIm9uQ2hhbmdlIiwiZSIsInRhcmdldCIsInZhbHVlIiwiaXNNYXRoUmVuZGVyaW5nIiwib25DaGFuZ2VQcm9wIiwiZXh0cmFTdHlsZSIsIndpZHRoIiwiciIsIl9faHRtbCIsImVkaXRhYmxlIiwibWluV2lkdGgiLCJwb3NpdGlvbiIsInRyYW5zZm9ybU9yaWdpbiIsInRyYW5zZm9ybSIsInZpc2liaWxpdHkiLCJiYWNrZ3JvdW5kIiwiYm94U2l6aW5nIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiLCJ0b3AiLCJsZWZ0IiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYm9vbCIsImFueSIsImZ1bmMiLCJncmFwaFByb3BzIiwidHlwZXMiLCJHcmFwaFByb3BzVHlwZSIsIm9iamVjdCIsIm51bWJlciIsInNoYXBlIiwic3RyaW5nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNDLEtBQUQ7QUFBQSxTQUFZO0FBQ3pCQyxJQUFBQSxLQUFLLEVBQUU7QUFDTCxlQUFPLE9BREY7QUFFTEMsTUFBQUEsVUFBVSxFQUFFRixLQUFLLENBQUNHLFVBQU4sQ0FBaUJELFVBRnhCO0FBR0xFLE1BQUFBLFFBQVEsRUFBRUosS0FBSyxDQUFDRyxVQUFOLENBQWlCQyxRQUh0QjtBQUlMQyxNQUFBQSxNQUFNLEVBQUUsTUFKSDtBQUtMQyxNQUFBQSxLQUFLLEVBQUVBLGdCQUFNQyxXQUFOLEVBTEY7QUFNTCxtQkFBYSxzQkFBUSxPQUFSLENBTlI7QUFPTCxxQkFBZSx3QkFBVSxPQUFWLENBUFY7QUFRTCxvQkFBYztBQUNaQyxRQUFBQSxlQUFlLEVBQUU7QUFETCxPQVJUO0FBV0wsaUJBQVc7QUFBRUgsUUFBQUEsTUFBTSxzQkFBZUwsS0FBSyxDQUFDUyxPQUFOLENBQWNDLEtBQWQsQ0FBb0JDLElBQW5DO0FBQVI7QUFYTixLQURrQjtBQWN6QkMsSUFBQUEsU0FBUyxFQUFFO0FBQ1RDLE1BQUFBLGFBQWEsRUFBRSxNQUROO0FBRVRDLE1BQUFBLFNBQVMsRUFBRSxRQUZGO0FBR1RWLE1BQUFBLFFBQVEsRUFBRUosS0FBSyxDQUFDRyxVQUFOLENBQWlCQyxRQUFqQixHQUE0QixDQUg3QjtBQUlURixNQUFBQSxVQUFVLEVBQUVGLEtBQUssQ0FBQ0csVUFBTixDQUFpQkQsVUFKcEI7QUFLVEksTUFBQUEsS0FB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VSxNQURVO0FBRTNCbkUsSUFBQUEsS0FBSyxFQUFFeUQsc0JBQVVVO0FBRlUsR0FBaEIsQ0FYTztBQWVwQnhDLEVBQUFBLGFBQWEsRUFBRThCLHNCQUFVQztBQWZMLENBQXRCOztlQWtCZSx3QkFBVy9FLE1BQVgsRUFBbUJtQyxTQUFuQixDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IEF1dG9zaXplSW5wdXQgZnJvbSAncmVhY3QtaW5wdXQtYXV0b3NpemUnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHR5cGVzIH0gZnJvbSAnQHBpZS1saWIvcGxvdCc7XG5pbXBvcnQgeyBjb3JyZWN0LCBpbmNvcnJlY3QsIGRpc2FibGVkIH0gZnJvbSAnLi9jb21tb24vc3R5bGVzJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnQHBpZS1saWIvcmVuZGVyLXVpJztcbmltcG9ydCB7IHJlbmRlck1hdGggfSBmcm9tICdAcGllLWxpYi9tYXRoLXJlbmRlcmluZyc7XG5cbmNvbnN0IHN0eWxlcyA9ICh0aGVtZSkgPT4gKHtcbiAgaW5wdXQ6IHtcbiAgICBmbG9hdDogJ3JpZ2h0JyxcbiAgICBmb250RmFtaWx5OiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRGYW1pbHksXG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUsXG4gICAgYm9yZGVyOiAnbm9uZScsXG4gICAgY29sb3I6IGNvbG9yLnByaW1hcnlEYXJrKCksXG4gICAgJyYuY29ycmVjdCc6IGNvcnJlY3QoJ2NvbG9yJyksXG4gICAgJyYuaW5jb3JyZWN0JzogaW5jb3JyZWN0KCdjb2xvcicpLFxuICAgICcmLmRpc2FibGVkJzoge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQgIWltcG9ydGFudCcsXG4gICAgfSxcbiAgICAnJi5lcnJvcic6IHsgYm9yZGVyOiBgMnB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5lcnJvci5tYWlufWAgfSxcbiAgfSxcbiAgbWF0aElucHV0OiB7XG4gICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZm9udFNpemU6IHRoZW1lLnR5cG9ncmFwaHkuZm9udFNpemUgKyAyLFxuICAgIGZvbnRGYW1pbHk6IHRoZW1lLnR5cG9ncmFwaHkuZm9udEZhbWlseSxcbiAgICBjb2xvcjogY29sb3IucHJpbWFyeURhcmsoKSxcbiAgICBwYWRkaW5nVG9wOiB0aGVtZS50eXBvZ3JhcGh5LmZvbnRTaXplIC8gMixcbiAgfSxcbiAgZGlzYWJsZWQ6IHtcbiAgICAuLi5kaXNhYmxlZCgnY29sb3InKSxcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCAhaW1wb3J0YW50JyxcbiAgfSxcbiAgZXJyb3I6IHtcbiAgICBib3JkZXI6IGAycHggc29saWQgJHt0aGVtZS5wYWxldHRlLmVycm9yLm1haW59YCxcbiAgfSxcbiAgY29ycmVjdDoge1xuICAgIC4uLmNvcnJlY3QoJ2NvbG9yJyksXG4gIH0sXG4gIGluY29ycmVjdDoge1xuICAgIC4uLmluY29ycmVjdCgnY29sb3InKSxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBpc0ZyYWN0aW9uRm9ybWF0KGxhYmVsKSB7XG4gIGNvbnN0IHRyaW1tZWRMYWJlbCA9IGxhYmVsPy50cmltKCkgfHwgJyc7XG4gIGNvbnN0IGZyYWNSZWdleCA9IG5ldyBSZWdFeHAoL15bMS05XSpbMC05XSpcXHM/WzEtOV1bMC05XSpcXC9bMS05XVswLTldKiQvKTtcbiAgcmV0dXJuIGZyYWNSZWdleC50ZXN0KHRyaW1tZWRMYWJlbCk7XG59XG5cbmZ1bmN0aW9uIGdldExhYmVsTWF0aEZvcm1hdChsYWJlbCkge1xuICBjb25zdCB0cmltbWVkTGFiZWwgPSBsYWJlbD8udHJpbSgpIHx8ICcnO1xuICBsZXQgZnJhY3Rpb247XG4gIGxldCBtaXhlZE5yID0gJyc7XG4gIGxldCBpbXByb3BlckZyYWN0aW9uID0gdHJpbW1lZExhYmVsLnNwbGl0KCcgJyk7XG4gIGlmIChpbXByb3BlckZyYWN0aW9uWzFdICYmIGltcHJvcGVyRnJhY3Rpb25bMV0uaW5jbHVkZXMoJy8nKSkge1xuICAgIGZyYWN0aW9uID0gaW1wcm9wZXJGcmFjdGlvblsxXS5zcGxpdCgnLycpIHx8ICcnO1xuICB9IGVsc2Uge1xuICAgIGZyYWN0aW9uID0gdHJpbW1lZExhYmVsPy5zcGxpdCgnLycpIHx8ICcnO1xuICB9XG5cbiAgbGV0IGZvcm1hdHRlZExMYWJlbDtcbiAgaWYgKGlzRnJhY3Rpb25Gb3JtYXQobGFiZWwpKSB7XG4gICAgaWYgKGltcHJvcGVyRnJhY3Rpb25bMF0gJiYgaW1wcm9wZXJGcmFjdGlvblsxXSkge1xuICAgICAgbWl4ZWROciA9IGltcHJvcGVyRnJhY3Rpb25bMF07XG4gICAgfVxuICAgIGZvcm1hdHRlZExMYWJlbCA9IGBcXFxcKCR7bWl4ZWROcn1cXFxcZnJhY3ske2ZyYWN0aW9uWzBdfX17JHtmcmFjdGlvblsxXX19XFxcXClgO1xuICAgIHJldHVybiBmb3JtYXR0ZWRMTGFiZWw7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGNvbnN0IE1hcmtMYWJlbCA9IChwcm9wcykgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgY29uc3QgW2lucHV0LCBzZXRJbnB1dF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgX3JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiBzZXRJbnB1dChub2RlKSwgbnVsbCk7XG5cbiAgY29uc3Qge1xuICAgIG1hcmssXG4gICAgY2xhc3NlcyxcbiAgICBkaXNhYmxlZCxcbiAgICBpbnB1dFJlZjogZXh0ZXJuYWxJbnB1dFJlZixcbiAgICBiYXJXaWR0aCxcbiAgICByb3RhdGUsXG4gICAgY29ycmVjdG5lc3MsXG4gICAgYXV0b0ZvY3VzLFxuICAgIGVycm9yLFxuICAgIGlzSGlkZGVuTGFiZWwsXG4gIH0gPSBwcm9wcztcblxuICBjb25zdCBbbGFiZWwsIHNldExhYmVsXSA9IHVzZVN0YXRlKG1hcmsubGFiZWwpO1xuICBjb25zdCBbbWF0aExhYmVsLCBzZXRNYXRoTGFiZWxdID0gdXNlU3RhdGUoZ2V0TGFiZWxNYXRoRm9ybWF0KG1hcmsubGFiZWwpKTtcbiAgY29uc3QgW2lzRWRpdGluZywgc2V0SXNFZGl0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgbGV0IHJvb3QgPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3Qgb25DaGFuZ2UgPSAoZSkgPT4ge1xuICAgIHNldExhYmVsKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcblxuICBjb25zdCBpc01hdGhSZW5kZXJpbmcgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGlzRWRpdGluZyA9PT0gZmFsc2UgJiYgbWF0aExhYmVsICE9PSB1bmRlZmluZWQ7XG4gIH07XG5cbiAgY29uc3Qgb25DaGFuZ2VQcm9wID0gKGUpID0+IHtcbiAgICBzZXRNYXRoTGFiZWwoZ2V0TGFiZWxNYXRoRm9ybWF0KG1hcmsubGFiZWwpKTtcbiAgICBzZXRJc0VkaXRpbmcoZmFsc2UpO1xuICAgIHByb3BzLm9uQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgfTtcbiAgbGV0IGV4dHJhU3R5bGUgPSB7fTtcblxuICBpZiAocm90YXRlKSB7XG4gICAgZXh0cmFTdHlsZSA9IHtcbiAgICAgIHdpZHRoOiAndW5zZXQnLFxuICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgfTtcbiAgfVxuXG4gIC8vIHVzZVN0YXRlIG9ubHkgc2V0cyB0aGUgdmFsdWUgb25jZSwgdG8gc3luY2ggcHJvcHMgdG8gc3RhdGUgbmVlZCB1c2VFZmZlY3RcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRMYWJlbChtYXJrLmxhYmVsKTtcbiAgfSwgW21hcmsubGFiZWxdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJlbmRlck1hdGgocm9vdCk7XG4gIH0sIFtdKTtcblxuICByZXR1cm4gaXNNYXRoUmVuZGVyaW5nKCkgPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXsocikgPT4ge1xuICAgICAgICByb290ID0gcjtcbiAgICAgICAgZXh0ZXJuYWxJbnB1dFJlZihyKTtcbiAgICAgIH19XG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17eyBfX2h0bWw6IGdldExhYmVsTWF0aEZvcm1hdChsYWJlbCkgfX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLm1hdGhJbnB1dCwge1xuICAgICAgICBbY2xhc3Nlcy5kaXNhYmxlZF06IGRpc2FibGVkLFxuICAgICAgICBbY2xhc3Nlcy5lcnJvcl06IGVycm9yLFxuICAgICAgICBbY2xhc3Nlcy5jb3JyZWN0XTogbWFyay5lZGl0YWJsZSAmJiBjb3JyZWN0bmVzcz8ubGFiZWwgPT09ICdjb3JyZWN0JyxcbiAgICAgICAgW2NsYXNzZXMuaW5jb3JyZWN0XTogbWFyay5lZGl0YWJsZSAmJiBjb3JyZWN0bmVzcz8ubGFiZWwgPT09ICdpbmNvcnJlY3QnLFxuICAgICAgfSl9XG4gICAgICBvbkNsaWNrPXsoKSA9PiBzZXRJc0VkaXRpbmcodHJ1ZSl9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBtaW5XaWR0aDogYmFyV2lkdGgsXG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICB0cmFuc2Zvcm1PcmlnaW46ICdsZWZ0JyxcbiAgICAgICAgdHJhbnNmb3JtOiBgcm90YXRlKCR7cm90YXRlfWRlZylgLFxuICAgICAgICB2aXNpYmlsaXR5OiBpc0hpZGRlbkxhYmVsID8gJ2hpZGRlbicgOiAndW5zZXQnLFxuICAgICAgfX1cbiAgICA+PC9kaXY+XG4gICkgOiAoXG4gICAgPEF1dG9zaXplSW5wdXRcbiAgICAgIGlucHV0UmVmPXsocikgPT4ge1xuICAgICAgICBfcmVmKHIpO1xuICAgICAgICBleHRlcm5hbElucHV0UmVmKHIpO1xuICAgICAgfX1cbiAgICAgIGF1dG9Gb2N1cz17aXNFZGl0aW5nIHx8IGF1dG9Gb2N1c31cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIGlucHV0Q2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICBjbGFzc2VzLmlucHV0LFxuICAgICAgICBjb3JyZWN0bmVzcyAmJiBtYXJrLmVkaXRhYmxlID8gY29ycmVjdG5lc3MubGFiZWwgOiBudWxsLFxuICAgICAgICBkaXNhYmxlZCAmJiAnZGlzYWJsZWQnLFxuICAgICAgICBlcnJvciAmJiAnZXJyb3InLFxuICAgICAgKX1cbiAgICAgIGlucHV0U3R5bGU9e3tcbiAgICAgICAgbWluV2lkdGg6IGJhcldpZHRoLFxuICAgICAgICB0ZXh0QWxpZ246ICdjZW50ZXInLFxuICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBib3hTaXppbmc6ICdib3JkZXItYm94JyxcbiAgICAgICAgcGFkZGluZ0xlZnQ6IDAsXG4gICAgICAgIHBhZGRpbmdSaWdodDogMCxcbiAgICAgICAgLi4uZXh0cmFTdHlsZSxcbiAgICAgIH19XG4gICAgICB2YWx1ZT17bGFiZWx9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgcG9pbnRlckV2ZW50czogJ2F1dG8nLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIG1pbldpZHRoOiBiYXJXaWR0aCxcbiAgICAgICAgdHJhbnNmb3JtT3JpZ2luOiAnbGVmdCcsXG4gICAgICAgIHRyYW5zZm9ybTogYHJvdGF0ZSgke3JvdGF0ZX1kZWcpYCxcbiAgICAgICAgdmlzaWJpbGl0eTogaXNIaWRkZW5MYWJlbCA/ICdoaWRkZW4nIDogJ3Vuc2V0JyxcbiAgICAgIH19XG4gICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICBvbkJsdXI9e29uQ2hhbmdlUHJvcH1cbiAgICAvPlxuICApO1xufTtcblxuTWFya0xhYmVsLnByb3BUeXBlcyA9IHtcbiAgYXV0b0ZvY3VzOiBQcm9wVHlwZXMuYm9vbCxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBlcnJvcjogUHJvcFR5cGVzLmFueSxcbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICBncmFwaFByb3BzOiB0eXBlcy5HcmFwaFByb3BzVHlwZSxcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgaW5wdXRSZWY6IFByb3BUeXBlcy5mdW5jLFxuICBtYXJrOiBQcm9wVHlwZXMub2JqZWN0LFxuICBiYXJXaWR0aDogUHJvcFR5cGVzLm51bWJlcixcbiAgcm90YXRlOiBQcm9wVHlwZXMubnVtYmVyLFxuICBjb3JyZWN0bmVzczogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICB2YWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgfSksXG4gIGlzSGlkZGVuTGFiZWw6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE1hcmtMYWJlbCk7XG4iXX0=
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _react = _interopRequireDefault(require("react"));
12
-
13
- var _dot = _interopRequireWildcard(require("../dot"));
14
-
15
- var _utils = require("./utils");
16
-
17
- var _bar = require("../../bars/bar");
18
-
19
- 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); }
20
-
21
- 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; }
22
-
23
- 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; }
24
-
25
- 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; }
26
-
27
- describe('DotPlot', function () {
28
- var wrapper = function wrapper(extras) {
29
- var defaults = {
30
- classes: {},
31
- className: 'className',
32
- graphProps: (0, _utils.graphProps)(),
33
- xBand: function xBand() {
34
- return {
35
- bandwidth: function bandwidth() {}
36
- };
37
- }
38
- };
39
-
40
- var props = _objectSpread(_objectSpread({}, defaults), extras);
41
-
42
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_dot.DotPlot, props));
43
- };
44
-
45
- describe('snapshot', function () {
46
- it('renders', function () {
47
- return expect(wrapper()).toMatchSnapshot();
48
- });
49
- it('renders without graphProps', function () {
50
- return expect(wrapper({
51
- graphProps: undefined
52
- })).toMatchSnapshot();
53
- });
54
- });
55
- describe('component', function () {
56
- var chart = (0, _dot["default"])();
57
- expect(chart).toEqual({
58
- type: 'dotPlot',
59
- Component: _dot.DotPlot,
60
- name: 'Dot Plot'
61
- });
62
- });
63
- });
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbG90L19fdGVzdHNfXy9kb3QudGVzdC5qc3giXSwibmFtZXMiOlsiZGVzY3JpYmUiLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsInhCYW5kIiwiYmFuZHdpZHRoIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsInVuZGVmaW5lZCIsImNoYXJ0IiwidG9FcXVhbCIsInR5cGUiLCJDb21wb25lbnQiLCJEb3RQbG90IiwibmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBQSxRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEIsTUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsTUFBRCxFQUFZO0FBQzFCLFFBQU1DLFFBQVEsR0FBRztBQUNmQyxNQUFBQSxPQUFPLEVBQUUsRUFETTtBQUVmQyxNQUFBQSxTQUFTLEVBQUUsV0FGSTtBQUdmQyxNQUFBQSxVQUFVLEVBQUUsd0JBSEc7QUFJZkMsTUFBQUEsS0FBSyxFQUFFLGlCQUFNO0FBQ1gsZUFBTztBQUNMQyxVQUFBQSxTQUFTLEVBQUUscUJBQU0sQ0FBRTtBQURkLFNBQVA7QUFHRDtBQVJjLEtBQWpCOztBQVVBLFFBQU1DLEtBQUssbUNBQVFOLFFBQVIsR0FBcUJELE1BQXJCLENBQVg7O0FBQ0EsV0FBTyxtQ0FBUSxnQ0FBQyxZQUFELEVBQWFPLEtBQWIsQ0FBUixDQUFQO0FBQ0QsR0FiRDs7QUFlQVQsRUFBQUEsUUFBUSxDQUFDLFVBQUQsRUFBYSxZQUFNO0FBQ3pCVSxJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZO0FBQUEsYUFBTUMsTUFBTSxDQUFDVixPQUFPLEVBQVIsQ0FBTixDQUFrQlcsZUFBbEIsRUFBTjtBQUFBLEtBQVosQ0FBRjtBQUVBRixJQUFBQSxFQUFFLENBQUMsNEJBQUQsRUFBK0I7QUFBQSxhQUFNQyxNQUFNLENBQUNWLE9BQU8sQ0FBQztBQUFFSyxRQUFBQSxVQUFVLEVBQUVPO0FBQWQsT0FBRCxDQUFSLENBQU4sQ0FBMkNELGVBQTNDLEVBQU47QUFBQSxLQUEvQixDQUFGO0FBQ0QsR0FKTyxDQUFSO0FBTUFaLEVBQUFBLFFBQVEsQ0FBQyxXQUFELEVBQWMsWUFBTTtBQUMxQixRQUFNYyxLQUFLLEdBQUcsc0JBQWQ7QUFFQUgsSUFBQUEsTUFBTSxDQUFDRyxLQUFELENBQU4sQ0FBY0MsT0FBZCxDQUFzQjtBQUNwQkMsTUFBQUEsSUFBSSxFQUFFLFNBRGM7QUFFcEJDLE1BQUFBLFNBQVMsRUFBRUMsWUFGUztBQUdwQkMsTUFBQUEsSUFBSSxFQUFFO0FBSGMsS0FBdEI7QUFLRCxHQVJPLENBQVI7QUFTRCxDQS9CTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhbGxvdyB9IGZyb20gJ2VuenltZSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IERvdCwgeyBEb3RQbG90IH0gZnJvbSAnLi4vZG90JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJhciBhcyBCYXJDaGFydCB9IGZyb20gJy4uLy4uL2JhcnMvYmFyJztcblxuZGVzY3JpYmUoJ0RvdFBsb3QnLCAoKSA9PiB7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgICB4QmFuZDogKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJhbmR3aWR0aDogKCkgPT4ge30sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gc2hhbGxvdyg8RG90UGxvdCB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKSk7XG5cbiAgICBpdCgncmVuZGVycyB3aXRob3V0IGdyYXBoUHJvcHMnLCAoKSA9PiBleHBlY3Qod3JhcHBlcih7IGdyYXBoUHJvcHM6IHVuZGVmaW5lZCB9KSkudG9NYXRjaFNuYXBzaG90KCkpO1xuICB9KTtcblxuICBkZXNjcmliZSgnY29tcG9uZW50JywgKCkgPT4ge1xuICAgIGNvbnN0IGNoYXJ0ID0gRG90KCk7XG5cbiAgICBleHBlY3QoY2hhcnQpLnRvRXF1YWwoe1xuICAgICAgdHlwZTogJ2RvdFBsb3QnLFxuICAgICAgQ29tcG9uZW50OiBEb3RQbG90LFxuICAgICAgbmFtZTogJ0RvdCBQbG90JyxcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,64 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _react = _interopRequireDefault(require("react"));
12
-
13
- var _line = _interopRequireWildcard(require("../line"));
14
-
15
- var _utils = require("./utils");
16
-
17
- var _bar = require("../../bars/bar");
18
-
19
- 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); }
20
-
21
- 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; }
22
-
23
- 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; }
24
-
25
- 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; }
26
-
27
- describe('LinePlot', function () {
28
- var wrapper = function wrapper(extras) {
29
- var defaults = {
30
- classes: {},
31
- className: 'className',
32
- graphProps: (0, _utils.graphProps)(),
33
- xBand: function xBand() {
34
- return {
35
- bandwidth: function bandwidth() {}
36
- };
37
- }
38
- };
39
-
40
- var props = _objectSpread(_objectSpread({}, defaults), extras);
41
-
42
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_line.LinePlot, props));
43
- };
44
-
45
- describe('snapshot', function () {
46
- it('renders', function () {
47
- return expect(wrapper()).toMatchSnapshot();
48
- });
49
- it('renders without graphProps', function () {
50
- return expect(wrapper({
51
- graphProps: undefined
52
- })).toMatchSnapshot();
53
- });
54
- });
55
- describe('component', function () {
56
- var chart = (0, _line["default"])();
57
- expect(chart).toEqual({
58
- type: 'linePlot',
59
- Component: _line.LinePlot,
60
- name: 'Line Plot'
61
- });
62
- });
63
- });
64
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbG90L19fdGVzdHNfXy9saW5lLnRlc3QuanN4Il0sIm5hbWVzIjpbImRlc2NyaWJlIiwid3JhcHBlciIsImV4dHJhcyIsImRlZmF1bHRzIiwiY2xhc3NlcyIsImNsYXNzTmFtZSIsImdyYXBoUHJvcHMiLCJ4QmFuZCIsImJhbmR3aWR0aCIsInByb3BzIiwiaXQiLCJleHBlY3QiLCJ0b01hdGNoU25hcHNob3QiLCJ1bmRlZmluZWQiLCJjaGFydCIsInRvRXF1YWwiLCJ0eXBlIiwiQ29tcG9uZW50IiwiTGluZVBsb3QiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O0FBRUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QixNQUFNQyxPQUFPLEdBQUcsU0FBVkEsT0FBVSxDQUFDQyxNQUFELEVBQVk7QUFDMUIsUUFBTUMsUUFBUSxHQUFHO0FBQ2ZDLE1BQUFBLE9BQU8sRUFBRSxFQURNO0FBRWZDLE1BQUFBLFNBQVMsRUFBRSxXQUZJO0FBR2ZDLE1BQUFBLFVBQVUsRUFBRSx3QkFIRztBQUlmQyxNQUFBQSxLQUFLLEVBQUUsaUJBQU07QUFDWCxlQUFPO0FBQ0xDLFVBQUFBLFNBQVMsRUFBRSxxQkFBTSxDQUFFO0FBRGQsU0FBUDtBQUdEO0FBUmMsS0FBakI7O0FBVUEsUUFBTUMsS0FBSyxtQ0FBUU4sUUFBUixHQUFxQkQsTUFBckIsQ0FBWDs7QUFDQSxXQUFPLG1DQUFRLGdDQUFDLGNBQUQsRUFBY08sS0FBZCxDQUFSLENBQVA7QUFDRCxHQWJEOztBQWVBVCxFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekJVLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVk7QUFBQSxhQUFNQyxNQUFNLENBQUNWLE9BQU8sRUFBUixDQUFOLENBQWtCVyxlQUFsQixFQUFOO0FBQUEsS0FBWixDQUFGO0FBRUFGLElBQUFBLEVBQUUsQ0FBQyw0QkFBRCxFQUErQjtBQUFBLGFBQU1DLE1BQU0sQ0FBQ1YsT0FBTyxDQUFDO0FBQUVLLFFBQUFBLFVBQVUsRUFBRU87QUFBZCxPQUFELENBQVIsQ0FBTixDQUEyQ0QsZUFBM0MsRUFBTjtBQUFBLEtBQS9CLENBQUY7QUFDRCxHQUpPLENBQVI7QUFNQVosRUFBQUEsUUFBUSxDQUFDLFdBQUQsRUFBYyxZQUFNO0FBQzFCLFFBQU1jLEtBQUssR0FBRyx1QkFBZDtBQUVBSCxJQUFBQSxNQUFNLENBQUNHLEtBQUQsQ0FBTixDQUFjQyxPQUFkLENBQXNCO0FBQ3BCQyxNQUFBQSxJQUFJLEVBQUUsVUFEYztBQUVwQkMsTUFBQUEsU0FBUyxFQUFFQyxjQUZTO0FBR3BCQyxNQUFBQSxJQUFJLEVBQUU7QUFIYyxLQUF0QjtBQUtELEdBUk8sQ0FBUjtBQVNELENBL0JPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFsbG93IH0gZnJvbSAnZW56eW1lJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgTGluZSwgeyBMaW5lUGxvdCB9IGZyb20gJy4uL2xpbmUnO1xuaW1wb3J0IHsgZ3JhcGhQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQmFyIGFzIEJhckNoYXJ0IH0gZnJvbSAnLi4vLi4vYmFycy9iYXInO1xuXG5kZXNjcmliZSgnTGluZVBsb3QnLCAoKSA9PiB7XG4gIGNvbnN0IHdyYXBwZXIgPSAoZXh0cmFzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBjbGFzc2VzOiB7fSxcbiAgICAgIGNsYXNzTmFtZTogJ2NsYXNzTmFtZScsXG4gICAgICBncmFwaFByb3BzOiBncmFwaFByb3BzKCksXG4gICAgICB4QmFuZDogKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGJhbmR3aWR0aDogKCkgPT4ge30sXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gc2hhbGxvdyg8TGluZVBsb3Qgey4uLnByb3BzfSAvPik7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3NuYXBzaG90JywgKCkgPT4ge1xuICAgIGl0KCdyZW5kZXJzJywgKCkgPT4gZXhwZWN0KHdyYXBwZXIoKSkudG9NYXRjaFNuYXBzaG90KCkpO1xuXG4gICAgaXQoJ3JlbmRlcnMgd2l0aG91dCBncmFwaFByb3BzJywgKCkgPT4gZXhwZWN0KHdyYXBwZXIoeyBncmFwaFByb3BzOiB1bmRlZmluZWQgfSkpLnRvTWF0Y2hTbmFwc2hvdCgpKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2NvbXBvbmVudCcsICgpID0+IHtcbiAgICBjb25zdCBjaGFydCA9IExpbmUoKTtcblxuICAgIGV4cGVjdChjaGFydCkudG9FcXVhbCh7XG4gICAgICB0eXBlOiAnbGluZVBsb3QnLFxuICAgICAgQ29tcG9uZW50OiBMaW5lUGxvdCxcbiAgICAgIG5hbWU6ICdMaW5lIFBsb3QnLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.scaleMock = exports.graphProps = void 0;
7
-
8
- var scaleMock = function scaleMock() {
9
- var fn = jest.fn(function (n) {
10
- return n;
11
- });
12
- fn.invert = jest.fn(function (n) {
13
- return n;
14
- });
15
- return fn;
16
- };
17
-
18
- exports.scaleMock = scaleMock;
19
-
20
- var graphProps = function graphProps() {
21
- var dmin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
22
- var dmax = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
23
- var rmin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
24
- var rmax = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
25
- return {
26
- scale: {
27
- x: scaleMock(),
28
- y: scaleMock()
29
- },
30
- snap: {
31
- x: jest.fn(function (n) {
32
- return n;
33
- }),
34
- y: jest.fn(function (n) {
35
- return n;
36
- })
37
- },
38
- domain: {
39
- min: dmin,
40
- max: dmax,
41
- step: 1
42
- },
43
- range: {
44
- min: rmin,
45
- max: rmax,
46
- step: 1
47
- },
48
- size: {
49
- width: 400,
50
- height: 400
51
- }
52
- };
53
- };
54
-
55
- exports.graphProps = graphProps;
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbG90L19fdGVzdHNfXy91dGlscy5qcyJdLCJuYW1lcyI6WyJzY2FsZU1vY2siLCJmbiIsImplc3QiLCJuIiwiaW52ZXJ0IiwiZ3JhcGhQcm9wcyIsImRtaW4iLCJkbWF4Iiwicm1pbiIsInJtYXgiLCJzY2FsZSIsIngiLCJ5Iiwic25hcCIsImRvbWFpbiIsIm1pbiIsIm1heCIsInN0ZXAiLCJyYW5nZSIsInNpemUiLCJ3aWR0aCIsImhlaWdodCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFPLElBQU1BLFNBQVMsR0FBRyxTQUFaQSxTQUFZLEdBQU07QUFDN0IsTUFBTUMsRUFBRSxHQUFHQyxJQUFJLENBQUNELEVBQUwsQ0FBUSxVQUFDRSxDQUFEO0FBQUEsV0FBT0EsQ0FBUDtBQUFBLEdBQVIsQ0FBWDtBQUNBRixFQUFBQSxFQUFFLENBQUNHLE1BQUgsR0FBWUYsSUFBSSxDQUFDRCxFQUFMLENBQVEsVUFBQ0UsQ0FBRDtBQUFBLFdBQU9BLENBQVA7QUFBQSxHQUFSLENBQVo7QUFDQSxTQUFPRixFQUFQO0FBQ0QsQ0FKTTs7OztBQU1BLElBQU1JLFVBQVUsR0FBRyxTQUFiQSxVQUFhO0FBQUEsTUFBQ0MsSUFBRCx1RUFBUSxDQUFSO0FBQUEsTUFBV0MsSUFBWCx1RUFBa0IsQ0FBbEI7QUFBQSxNQUFxQkMsSUFBckIsdUVBQTRCLENBQTVCO0FBQUEsTUFBK0JDLElBQS9CLHVFQUFzQyxDQUF0QztBQUFBLFNBQTZDO0FBQ3JFQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEMsTUFBQUEsQ0FBQyxFQUFFWCxTQUFTLEVBRFA7QUFFTFksTUFBQUEsQ0FBQyxFQUFFWixTQUFTO0FBRlAsS0FEOEQ7QUFLckVhLElBQUFBLElBQUksRUFBRTtBQUNKRixNQUFBQSxDQUFDLEVBQUVULElBQUksQ0FBQ0QsRUFBTCxDQUFRLFVBQUNFLENBQUQ7QUFBQSxlQUFPQSxDQUFQO0FBQUEsT0FBUixDQURDO0FBRUpTLE1BQUFBLENBQUMsRUFBRVYsSUFBSSxDQUFDRCxFQUFMLENBQVEsVUFBQ0UsQ0FBRDtBQUFBLGVBQU9BLENBQVA7QUFBQSxPQUFSO0FBRkMsS0FMK0Q7QUFTckVXLElBQUFBLE1BQU0sRUFBRTtBQUNOQyxNQUFBQSxHQUFHLEVBQUVULElBREM7QUFFTlUsTUFBQUEsR0FBRyxFQUFFVCxJQUZDO0FBR05VLE1BQUFBLElBQUksRUFBRTtBQUhBLEtBVDZEO0FBY3JFQyxJQUFBQSxLQUFLLEVBQUU7QUFDTEgsTUFBQUEsR0FBRyxFQUFFUCxJQURBO0FBRUxRLE1BQUFBLEdBQUcsRUFBRVAsSUFGQTtBQUdMUSxNQUFBQSxJQUFJLEVBQUU7QUFIRCxLQWQ4RDtBQW1CckVFLElBQUFBLElBQUksRUFBRTtBQUNKQyxNQUFBQSxLQUFLLEVBQUUsR0FESDtBQUVKQyxNQUFBQSxNQUFNLEVBQUU7QUFGSjtBQW5CK0QsR0FBN0M7QUFBQSxDQUFuQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBzY2FsZU1vY2sgPSAoKSA9PiB7XG4gIGNvbnN0IGZuID0gamVzdC5mbigobikgPT4gbik7XG4gIGZuLmludmVydCA9IGplc3QuZm4oKG4pID0+IG4pO1xuICByZXR1cm4gZm47XG59O1xuXG5leHBvcnQgY29uc3QgZ3JhcGhQcm9wcyA9IChkbWluID0gMCwgZG1heCA9IDEsIHJtaW4gPSAwLCBybWF4ID0gMSkgPT4gKHtcbiAgc2NhbGU6IHtcbiAgICB4OiBzY2FsZU1vY2soKSxcbiAgICB5OiBzY2FsZU1vY2soKSxcbiAgfSxcbiAgc25hcDoge1xuICAgIHg6IGplc3QuZm4oKG4pID0+IG4pLFxuICAgIHk6IGplc3QuZm4oKG4pID0+IG4pLFxuICB9LFxuICBkb21haW46IHtcbiAgICBtaW46IGRtaW4sXG4gICAgbWF4OiBkbWF4LFxuICAgIHN0ZXA6IDEsXG4gIH0sXG4gIHJhbmdlOiB7XG4gICAgbWluOiBybWluLFxuICAgIG1heDogcm1heCxcbiAgICBzdGVwOiAxLFxuICB9LFxuICBzaXplOiB7XG4gICAgd2lkdGg6IDQwMCxcbiAgICBoZWlnaHQ6IDQwMCxcbiAgfSxcbn0pO1xuIl19
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
-
9
- var _enzyme = require("enzyme");
10
-
11
- var _react = _interopRequireDefault(require("react"));
12
-
13
- var _plot = _interopRequireWildcard(require("@pie-lib/plot"));
14
-
15
- var _utils = require("./utils");
16
-
17
- 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); }
18
-
19
- 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; }
20
-
21
- 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; }
22
-
23
- 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; }
24
-
25
- describe('Plot', function () {
26
- var xBand = function xBand() {};
27
-
28
- xBand.bandwidth = function () {};
29
-
30
- var onChange = jest.fn();
31
-
32
- var wrapper = function wrapper(extras) {
33
- var defaults = {
34
- classes: {},
35
- className: 'className',
36
- graphProps: (0, _utils.graphProps)(),
37
- xBand: xBand,
38
- onChange: onChange,
39
- data: [{
40
- value: 0,
41
- label: '0'
42
- }]
43
- };
44
-
45
- var props = _objectSpread(_objectSpread({}, defaults), extras);
46
-
47
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_plot["default"], props));
48
- };
49
-
50
- describe('snapshot', function () {
51
- it('renders', function () {
52
- return expect(wrapper()).toMatchSnapshot();
53
- });
54
- });
55
- });
56
- describe('RawPlot', function () {
57
- var xBand = function xBand() {};
58
-
59
- xBand.bandwidth = function () {};
60
-
61
- var onChangeCategory = jest.fn();
62
-
63
- var wrapper = function wrapper(extras) {
64
- var defaults = {
65
- classes: {},
66
- className: 'className',
67
- graphProps: (0, _utils.graphProps)(),
68
- xBand: xBand,
69
- onChangeCategory: onChangeCategory,
70
- data: [],
71
- label: 'label',
72
- CustomBarElement: function CustomBarElement() {
73
- return /*#__PURE__*/_react["default"].createElement("div", null);
74
- }
75
- };
76
-
77
- var props = _objectSpread(_objectSpread({}, defaults), extras);
78
-
79
- return (0, _enzyme.shallow)( /*#__PURE__*/_react["default"].createElement(_plot.RawPlot, props));
80
- };
81
-
82
- describe('snapshot', function () {
83
- it('renders', function () {
84
- return expect(wrapper()).toMatchSnapshot();
85
- });
86
- });
87
- describe('logic', function () {
88
- var w = wrapper();
89
- it('dragStop', function () {
90
- w.instance().dragStop();
91
- expect(onChangeCategory).not.toHaveBeenCalled();
92
- w.instance().setState({
93
- dragValue: 2
94
- });
95
- w.instance().dragStop();
96
- expect(onChangeCategory).toHaveBeenCalledWith({
97
- label: 'label',
98
- value: 2
99
- });
100
- });
101
- });
102
- });
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wbG90L2NvbW1vbi9fX3Rlc3RzX18vcGxvdC50ZXN0LmpzeCJdLCJuYW1lcyI6WyJkZXNjcmliZSIsInhCYW5kIiwiYmFuZHdpZHRoIiwib25DaGFuZ2UiLCJqZXN0IiwiZm4iLCJ3cmFwcGVyIiwiZXh0cmFzIiwiZGVmYXVsdHMiLCJjbGFzc2VzIiwiY2xhc3NOYW1lIiwiZ3JhcGhQcm9wcyIsImRhdGEiLCJ2YWx1ZSIsImxhYmVsIiwicHJvcHMiLCJpdCIsImV4cGVjdCIsInRvTWF0Y2hTbmFwc2hvdCIsIm9uQ2hhbmdlQ2F0ZWdvcnkiLCJDdXN0b21CYXJFbGVtZW50IiwidyIsImluc3RhbmNlIiwiZHJhZ1N0b3AiLCJub3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwic2V0U3RhdGUiLCJkcmFnVmFsdWUiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBQSxRQUFRLENBQUMsTUFBRCxFQUFTLFlBQU07QUFDckIsTUFBTUMsS0FBSyxHQUFHLFNBQVJBLEtBQVEsR0FBTSxDQUFFLENBQXRCOztBQUNBQSxFQUFBQSxLQUFLLENBQUNDLFNBQU4sR0FBa0IsWUFBTSxDQUFFLENBQTFCOztBQUNBLE1BQU1DLFFBQVEsR0FBR0MsSUFBSSxDQUFDQyxFQUFMLEVBQWpCOztBQUVBLE1BQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLE1BQUQsRUFBWTtBQUMxQixRQUFNQyxRQUFRLEdBQUc7QUFDZkMsTUFBQUEsT0FBTyxFQUFFLEVBRE07QUFFZkMsTUFBQUEsU0FBUyxFQUFFLFdBRkk7QUFHZkMsTUFBQUEsVUFBVSxFQUFFLHdCQUhHO0FBSWZWLE1BQUFBLEtBQUssRUFBTEEsS0FKZTtBQUtmRSxNQUFBQSxRQUFRLEVBQVJBLFFBTGU7QUFNZlMsTUFBQUEsSUFBSSxFQUFFLENBQUM7QUFBRUMsUUFBQUEsS0FBSyxFQUFFLENBQVQ7QUFBWUMsUUFBQUEsS0FBSyxFQUFFO0FBQW5CLE9BQUQ7QUFOUyxLQUFqQjs7QUFRQSxRQUFNQyxLQUFLLG1DQUFRUCxRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUNBLFdBQU8sbUNBQVEsZ0NBQUMsZ0JBQUQsRUFBVVEsS0FBVixDQUFSLENBQVA7QUFDRCxHQVhEOztBQWFBZixFQUFBQSxRQUFRLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDekJnQixJQUFBQSxFQUFFLENBQUMsU0FBRCxFQUFZO0FBQUEsYUFBTUMsTUFBTSxDQUFDWCxPQUFPLEVBQVIsQ0FBTixDQUFrQlksZUFBbEIsRUFBTjtBQUFBLEtBQVosQ0FBRjtBQUNELEdBRk8sQ0FBUjtBQUdELENBckJPLENBQVI7QUF1QkFsQixRQUFRLENBQUMsU0FBRCxFQUFZLFlBQU07QUFDeEIsTUFBTUMsS0FBSyxHQUFHLFNBQVJBLEtBQVEsR0FBTSxDQUFFLENBQXRCOztBQUNBQSxFQUFBQSxLQUFLLENBQUNDLFNBQU4sR0FBa0IsWUFBTSxDQUFFLENBQTFCOztBQUNBLE1BQU1pQixnQkFBZ0IsR0FBR2YsSUFBSSxDQUFDQyxFQUFMLEVBQXpCOztBQUVBLE1BQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLE1BQUQsRUFBWTtBQUMxQixRQUFNQyxRQUFRLEdBQUc7QUFDZkMsTUFBQUEsT0FBTyxFQUFFLEVBRE07QUFFZkMsTUFBQUEsU0FBUyxFQUFFLFdBRkk7QUFHZkMsTUFBQUEsVUFBVSxFQUFFLHdCQUhHO0FBSWZWLE1BQUFBLEtBQUssRUFBTEEsS0FKZTtBQUtma0IsTUFBQUEsZ0JBQWdCLEVBQWhCQSxnQkFMZTtBQU1mUCxNQUFBQSxJQUFJLEVBQUUsRUFOUztBQU9mRSxNQUFBQSxLQUFLLEVBQUUsT0FQUTtBQVFmTSxNQUFBQSxnQkFBZ0IsRUFBRTtBQUFBLDRCQUFNLDRDQUFOO0FBQUE7QUFSSCxLQUFqQjs7QUFVQSxRQUFNTCxLQUFLLG1DQUFRUCxRQUFSLEdBQXFCRCxNQUFyQixDQUFYOztBQUNBLFdBQU8sbUNBQVEsZ0NBQUMsYUFBRCxFQUFhUSxLQUFiLENBQVIsQ0FBUDtBQUNELEdBYkQ7O0FBZUFmLEVBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QmdCLElBQUFBLEVBQUUsQ0FBQyxTQUFELEVBQVk7QUFBQSxhQUFNQyxNQUFNLENBQUNYLE9BQU8sRUFBUixDQUFOLENBQWtCWSxlQUFsQixFQUFOO0FBQUEsS0FBWixDQUFGO0FBQ0QsR0FGTyxDQUFSO0FBSUFsQixFQUFBQSxRQUFRLENBQUMsT0FBRCxFQUFVLFlBQU07QUFDdEIsUUFBTXFCLENBQUMsR0FBR2YsT0FBTyxFQUFqQjtBQUVBVSxJQUFBQSxFQUFFLENBQUMsVUFBRCxFQUFhLFlBQU07QUFDbkJLLE1BQUFBLENBQUMsQ0FBQ0MsUUFBRixHQUFhQyxRQUFiO0FBRUFOLE1BQUFBLE1BQU0sQ0FBQ0UsZ0JBQUQsQ0FBTixDQUF5QkssR0FBekIsQ0FBNkJDLGdCQUE3QjtBQUVBSixNQUFBQSxDQUFDLENBQUNDLFFBQUYsR0FBYUksUUFBYixDQUFzQjtBQUNwQkMsUUFBQUEsU0FBUyxFQUFFO0FBRFMsT0FBdEI7QUFJQU4sTUFBQUEsQ0FBQyxDQUFDQyxRQUFGLEdBQWFDLFFBQWI7QUFFQU4sTUFBQUEsTUFBTSxDQUFDRSxnQkFBRCxDQUFOLENBQXlCUyxvQkFBekIsQ0FBOEM7QUFBRWQsUUFBQUEsS0FBSyxFQUFFLE9BQVQ7QUFBa0JELFFBQUFBLEtBQUssRUFBRTtBQUF6QixPQUE5QztBQUNELEtBWkMsQ0FBRjtBQWFELEdBaEJPLENBQVI7QUFpQkQsQ0F6Q08sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNoYWxsb3cgfSBmcm9tICdlbnp5bWUnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQbG90LCB7IFJhd1Bsb3QgfSBmcm9tICdAcGllLWxpYi9wbG90JztcbmltcG9ydCB7IGdyYXBoUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZGVzY3JpYmUoJ1Bsb3QnLCAoKSA9PiB7XG4gIGNvbnN0IHhCYW5kID0gKCkgPT4ge307XG4gIHhCYW5kLmJhbmR3aWR0aCA9ICgpID0+IHt9O1xuICBjb25zdCBvbkNoYW5nZSA9IGplc3QuZm4oKTtcblxuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgeEJhbmQsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIGRhdGE6IFt7IHZhbHVlOiAwLCBsYWJlbDogJzAnIH1dLFxuICAgIH07XG4gICAgY29uc3QgcHJvcHMgPSB7IC4uLmRlZmF1bHRzLCAuLi5leHRyYXMgfTtcbiAgICByZXR1cm4gc2hhbGxvdyg8UGxvdCB7Li4ucHJvcHN9IC8+KTtcbiAgfTtcblxuICBkZXNjcmliZSgnc25hcHNob3QnLCAoKSA9PiB7XG4gICAgaXQoJ3JlbmRlcnMnLCAoKSA9PiBleHBlY3Qod3JhcHBlcigpKS50b01hdGNoU25hcHNob3QoKSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdSYXdQbG90JywgKCkgPT4ge1xuICBjb25zdCB4QmFuZCA9ICgpID0+IHt9O1xuICB4QmFuZC5iYW5kd2lkdGggPSAoKSA9PiB7fTtcbiAgY29uc3Qgb25DaGFuZ2VDYXRlZ29yeSA9IGplc3QuZm4oKTtcblxuICBjb25zdCB3cmFwcGVyID0gKGV4dHJhcykgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgY2xhc3Nlczoge30sXG4gICAgICBjbGFzc05hbWU6ICdjbGFzc05hbWUnLFxuICAgICAgZ3JhcGhQcm9wczogZ3JhcGhQcm9wcygpLFxuICAgICAgeEJhbmQsXG4gICAgICBvbkNoYW5nZUNhdGVnb3J5LFxuICAgICAgZGF0YTogW10sXG4gICAgICBsYWJlbDogJ2xhYmVsJyxcbiAgICAgIEN1c3RvbUJhckVsZW1lbnQ6ICgpID0+IDxkaXYgLz4sXG4gICAgfTtcbiAgICBjb25zdCBwcm9wcyA9IHsgLi4uZGVmYXVsdHMsIC4uLmV4dHJhcyB9O1xuICAgIHJldHVybiBzaGFsbG93KDxSYXdQbG90IHsuLi5wcm9wc30gLz4pO1xuICB9O1xuXG4gIGRlc2NyaWJlKCdzbmFwc2hvdCcsICgpID0+IHtcbiAgICBpdCgncmVuZGVycycsICgpID0+IGV4cGVjdCh3cmFwcGVyKCkpLnRvTWF0Y2hTbmFwc2hvdCgpKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2xvZ2ljJywgKCkgPT4ge1xuICAgIGNvbnN0IHcgPSB3cmFwcGVyKCk7XG5cbiAgICBpdCgnZHJhZ1N0b3AnLCAoKSA9PiB7XG4gICAgICB3Lmluc3RhbmNlKCkuZHJhZ1N0b3AoKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlQ2F0ZWdvcnkpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG5cbiAgICAgIHcuaW5zdGFuY2UoKS5zZXRTdGF0ZSh7XG4gICAgICAgIGRyYWdWYWx1ZTogMixcbiAgICAgIH0pO1xuXG4gICAgICB3Lmluc3RhbmNlKCkuZHJhZ1N0b3AoKTtcblxuICAgICAgZXhwZWN0KG9uQ2hhbmdlQ2F0ZWdvcnkpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHsgbGFiZWw6ICdsYWJlbCcsIHZhbHVlOiAyIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19