@pie-lib/charting 5.22.0 → 5.24.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.
- package/CHANGELOG.md +10 -15
- package/lib/actions-button.js +174 -0
- package/lib/actions-button.js.map +1 -0
- package/lib/axes.js +614 -0
- package/lib/axes.js.map +1 -0
- package/lib/bars/bar.js +86 -0
- package/lib/bars/bar.js.map +1 -0
- package/lib/bars/common/bars.js +299 -0
- package/lib/bars/common/bars.js.map +1 -0
- package/lib/bars/histogram.js +87 -0
- package/lib/bars/histogram.js.map +1 -0
- package/lib/chart-setup.js +458 -0
- package/lib/chart-setup.js.map +1 -0
- package/lib/chart-type.js +71 -0
- package/lib/chart-type.js.map +1 -0
- package/lib/chart-types.js +31 -0
- package/lib/chart-types.js.map +1 -0
- package/lib/chart.js +447 -0
- package/lib/chart.js.map +1 -0
- package/lib/common/drag-handle.js +175 -0
- package/lib/common/drag-handle.js.map +1 -0
- package/lib/common/drag-icon.js +52 -0
- package/lib/common/drag-icon.js.map +1 -0
- package/lib/common/styles.js +40 -0
- package/lib/common/styles.js.map +1 -0
- package/lib/grid.js +141 -0
- package/lib/grid.js.map +1 -0
- package/lib/index.js +48 -0
- package/lib/index.js.map +1 -0
- package/lib/key-legend.js +111 -0
- package/lib/key-legend.js.map +1 -0
- package/lib/line/common/drag-handle.js +151 -0
- package/lib/line/common/drag-handle.js.map +1 -0
- package/lib/line/common/line.js +257 -0
- package/lib/line/common/line.js.map +1 -0
- package/lib/line/line-cross.js +203 -0
- package/lib/line/line-cross.js.map +1 -0
- package/lib/line/line-dot.js +156 -0
- package/lib/line/line-dot.js.map +1 -0
- package/lib/mark-label.js +260 -0
- package/lib/mark-label.js.map +1 -0
- package/lib/plot/common/plot.js +281 -0
- package/lib/plot/common/plot.js.map +1 -0
- package/lib/plot/dot.js +123 -0
- package/lib/plot/dot.js.map +1 -0
- package/lib/plot/line.js +152 -0
- package/lib/plot/line.js.map +1 -0
- package/lib/tool-menu.js +142 -0
- package/lib/tool-menu.js.map +1 -0
- package/lib/utils.js +244 -0
- package/lib/utils.js.map +1 -0
- package/package.json +5 -5
- package/src/chart-types.js +2 -2
- package/src/line/common/__tests__/drag-handle.test.jsx +2 -2
- package/src/plot/common/__tests__/plot.test.jsx +1 -1
- package/src/plot/dot.js +1 -1
- package/src/plot/line.js +1 -1
|
@@ -0,0 +1,257 @@
|
|
|
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.RawLine = exports.Line = void 0;
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
21
|
+
|
|
22
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
+
|
|
24
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
+
|
|
26
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
|
+
|
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
|
+
|
|
30
|
+
var _react = _interopRequireDefault(require("react"));
|
|
31
|
+
|
|
32
|
+
var _group = require("@vx/group");
|
|
33
|
+
|
|
34
|
+
var _shape = require("@vx/shape");
|
|
35
|
+
|
|
36
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
37
|
+
|
|
38
|
+
var _plot = require("@pie-lib/plot");
|
|
39
|
+
|
|
40
|
+
var _dragHandle = _interopRequireWildcard(require("./drag-handle"));
|
|
41
|
+
|
|
42
|
+
var _index = require("@material-ui/core/styles/index");
|
|
43
|
+
|
|
44
|
+
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
|
|
45
|
+
|
|
46
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
47
|
+
|
|
48
|
+
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); }
|
|
49
|
+
|
|
50
|
+
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; }
|
|
51
|
+
|
|
52
|
+
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); }; }
|
|
53
|
+
|
|
54
|
+
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; } }
|
|
55
|
+
|
|
56
|
+
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; }
|
|
57
|
+
|
|
58
|
+
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; }
|
|
59
|
+
|
|
60
|
+
var getData = function getData(data, domain) {
|
|
61
|
+
var _ref = domain || {},
|
|
62
|
+
max = _ref.max;
|
|
63
|
+
|
|
64
|
+
var length = data.length;
|
|
65
|
+
|
|
66
|
+
if (!max || !length) {
|
|
67
|
+
return [];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return data.map(function (el, i) {
|
|
71
|
+
return _objectSpread(_objectSpread({}, el), {}, {
|
|
72
|
+
x: length > 1 ? i * (max / (length - 1)) : 0.5,
|
|
73
|
+
y: el.value
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var RawLine = /*#__PURE__*/function (_React$Component) {
|
|
79
|
+
(0, _inherits2["default"])(RawLine, _React$Component);
|
|
80
|
+
|
|
81
|
+
var _super = _createSuper(RawLine);
|
|
82
|
+
|
|
83
|
+
function RawLine(props) {
|
|
84
|
+
var _this;
|
|
85
|
+
|
|
86
|
+
(0, _classCallCheck2["default"])(this, RawLine);
|
|
87
|
+
_this = _super.call(this, props);
|
|
88
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setDragValue", function (line) {
|
|
89
|
+
return _this.setState({
|
|
90
|
+
line: line
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragStop", function (index) {
|
|
94
|
+
var onChange = _this.props.onChange;
|
|
95
|
+
|
|
96
|
+
_this.setState({
|
|
97
|
+
dragging: false
|
|
98
|
+
}, function () {
|
|
99
|
+
onChange(index, _this.state.line[index]);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dragValue", function (index, existing, next) {
|
|
103
|
+
var newLine = (0, _toConsumableArray2["default"])(_this.state.line);
|
|
104
|
+
newLine[index].dragValue = next;
|
|
105
|
+
|
|
106
|
+
_this.setDragValue(newLine);
|
|
107
|
+
});
|
|
108
|
+
_this.state = {
|
|
109
|
+
dragValue: undefined,
|
|
110
|
+
line: getData(props.data, props.graphProps.domain)
|
|
111
|
+
};
|
|
112
|
+
return _this;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
(0, _createClass2["default"])(RawLine, [{
|
|
116
|
+
key: "UNSAFE_componentWillReceiveProps",
|
|
117
|
+
value: function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
118
|
+
if (!(0, _isEqual["default"])(this.props.data, nextProps.data)) {
|
|
119
|
+
this.setState({
|
|
120
|
+
line: getData(nextProps.data, nextProps.graphProps.domain)
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, {
|
|
125
|
+
key: "render",
|
|
126
|
+
value: function render() {
|
|
127
|
+
var _this2 = this;
|
|
128
|
+
|
|
129
|
+
var _this$props = this.props,
|
|
130
|
+
graphProps = _this$props.graphProps,
|
|
131
|
+
data = _this$props.data,
|
|
132
|
+
classes = _this$props.classes,
|
|
133
|
+
CustomDraggableComponent = _this$props.CustomDraggableComponent,
|
|
134
|
+
defineChart = _this$props.defineChart;
|
|
135
|
+
var _this$state = this.state,
|
|
136
|
+
lineState = _this$state.line,
|
|
137
|
+
dragging = _this$state.dragging;
|
|
138
|
+
var scale = graphProps.scale;
|
|
139
|
+
var lineToUse = dragging ? lineState : getData(data, graphProps.domain);
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_shape.LinePath, {
|
|
141
|
+
data: lineToUse,
|
|
142
|
+
x: function x(d) {
|
|
143
|
+
return scale.x(d.x);
|
|
144
|
+
},
|
|
145
|
+
y: function y(d) {
|
|
146
|
+
return scale.y(d.dragValue !== undefined ? d.dragValue : d.y);
|
|
147
|
+
},
|
|
148
|
+
className: classes.line
|
|
149
|
+
}), lineToUse && lineToUse.map(function (point, i) {
|
|
150
|
+
var r = 6;
|
|
151
|
+
var enableDraggable = defineChart || point.interactive;
|
|
152
|
+
var Component = enableDraggable ? _dragHandle["default"] : _dragHandle.DragHandle;
|
|
153
|
+
return /*#__PURE__*/_react["default"].createElement(Component, {
|
|
154
|
+
key: "point-".concat(point.x, "-").concat(i),
|
|
155
|
+
x: point.x,
|
|
156
|
+
y: point.dragValue !== undefined ? point.dragValue : point.y,
|
|
157
|
+
interactive: enableDraggable,
|
|
158
|
+
r: r,
|
|
159
|
+
onDragStart: function onDragStart() {
|
|
160
|
+
return _this2.setState({
|
|
161
|
+
dragging: true
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
onDrag: function onDrag(v) {
|
|
165
|
+
return _this2.dragValue(i, point.dragValue !== undefined ? point.dragValue : point.y, v);
|
|
166
|
+
},
|
|
167
|
+
onDragStop: function onDragStop() {
|
|
168
|
+
return _this2.dragStop(i);
|
|
169
|
+
},
|
|
170
|
+
graphProps: graphProps,
|
|
171
|
+
CustomDraggableComponent: CustomDraggableComponent,
|
|
172
|
+
correctness: point.correctness
|
|
173
|
+
});
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
}]);
|
|
177
|
+
return RawLine;
|
|
178
|
+
}(_react["default"].Component);
|
|
179
|
+
|
|
180
|
+
exports.RawLine = RawLine;
|
|
181
|
+
(0, _defineProperty2["default"])(RawLine, "propTypes", {
|
|
182
|
+
onChange: _propTypes["default"].func,
|
|
183
|
+
value: _propTypes["default"].number,
|
|
184
|
+
classes: _propTypes["default"].object,
|
|
185
|
+
label: _propTypes["default"].string,
|
|
186
|
+
xBand: _propTypes["default"].func,
|
|
187
|
+
index: _propTypes["default"].number.isRequired,
|
|
188
|
+
graphProps: _plot.types.GraphPropsType.isRequired,
|
|
189
|
+
defineChart: _propTypes["default"].bool,
|
|
190
|
+
data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
191
|
+
label: _propTypes["default"].string,
|
|
192
|
+
value: _propTypes["default"].number
|
|
193
|
+
})),
|
|
194
|
+
CustomDraggableComponent: _propTypes["default"].func
|
|
195
|
+
});
|
|
196
|
+
(0, _defineProperty2["default"])(RawLine, "defaultProps", {
|
|
197
|
+
index: 0
|
|
198
|
+
});
|
|
199
|
+
var StyledLine = (0, _index.withStyles)(function () {
|
|
200
|
+
return {
|
|
201
|
+
line: {
|
|
202
|
+
fill: 'transparent',
|
|
203
|
+
stroke: _renderUi.color.defaults.TERTIARY,
|
|
204
|
+
strokeWidth: 3,
|
|
205
|
+
transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in'
|
|
206
|
+
}
|
|
207
|
+
};
|
|
208
|
+
})(RawLine);
|
|
209
|
+
|
|
210
|
+
var Line = /*#__PURE__*/function (_React$Component2) {
|
|
211
|
+
(0, _inherits2["default"])(Line, _React$Component2);
|
|
212
|
+
|
|
213
|
+
var _super2 = _createSuper(Line);
|
|
214
|
+
|
|
215
|
+
function Line() {
|
|
216
|
+
var _this3;
|
|
217
|
+
|
|
218
|
+
(0, _classCallCheck2["default"])(this, Line);
|
|
219
|
+
|
|
220
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
221
|
+
args[_key] = arguments[_key];
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
_this3 = _super2.call.apply(_super2, [this].concat(args));
|
|
225
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this3), "changeLine", function (index, category) {
|
|
226
|
+
var onChange = _this3.props.onChange;
|
|
227
|
+
var newLine = (0, _toConsumableArray2["default"])(_this3.props.data);
|
|
228
|
+
var dragValue = category.dragValue,
|
|
229
|
+
value = category.value;
|
|
230
|
+
newLine[index].value = dragValue >= 0 ? dragValue : value;
|
|
231
|
+
onChange(newLine);
|
|
232
|
+
});
|
|
233
|
+
return _this3;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
(0, _createClass2["default"])(Line, [{
|
|
237
|
+
key: "render",
|
|
238
|
+
value: function render() {
|
|
239
|
+
var props = this.props;
|
|
240
|
+
return /*#__PURE__*/_react["default"].createElement(_group.Group, null, /*#__PURE__*/_react["default"].createElement(StyledLine, (0, _extends2["default"])({}, props, {
|
|
241
|
+
onChange: this.changeLine
|
|
242
|
+
})));
|
|
243
|
+
}
|
|
244
|
+
}]);
|
|
245
|
+
return Line;
|
|
246
|
+
}(_react["default"].Component);
|
|
247
|
+
|
|
248
|
+
exports.Line = Line;
|
|
249
|
+
(0, _defineProperty2["default"])(Line, "propTypes", {
|
|
250
|
+
data: _propTypes["default"].array,
|
|
251
|
+
onChange: _propTypes["default"].func,
|
|
252
|
+
xBand: _propTypes["default"].func,
|
|
253
|
+
graphProps: _plot.types.GraphPropsType.isRequired
|
|
254
|
+
});
|
|
255
|
+
var _default = Line;
|
|
256
|
+
exports["default"] = _default;
|
|
257
|
+
//# sourceMappingURL=line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/line/common/line.jsx"],"names":["getData","data","domain","max","length","map","el","i","x","y","value","RawLine","props","line","setState","index","onChange","dragging","state","existing","next","newLine","dragValue","setDragValue","undefined","graphProps","nextProps","classes","CustomDraggableComponent","defineChart","lineState","scale","lineToUse","d","point","r","enableDraggable","interactive","Component","DraggableHandle","DragHandle","v","dragStop","correctness","React","PropTypes","func","number","object","label","string","xBand","isRequired","types","GraphPropsType","bool","arrayOf","shape","StyledLine","fill","stroke","color","defaults","TERTIARY","strokeWidth","transition","Line","category","changeLine","array"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Group } from '@vx/group';\nimport { LinePath } from '@vx/shape';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport DraggableHandle, { DragHandle } from './drag-handle';\nimport { withStyles } from '@material-ui/core/styles/index';\nimport isEqual from 'lodash/isEqual';\nimport { color } from '@pie-lib/render-ui';\n\nconst getData = (data, domain) => {\n const { max } = domain || {};\n const length = data.length;\n\n if (!max || !length) {\n return [];\n }\n\n return data.map((el, i) => ({\n ...el,\n x: length > 1 ? i * (max / (length - 1)) : 0.5,\n y: el.value,\n }));\n};\n\nexport class RawLine extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.number,\n classes: PropTypes.object,\n label: PropTypes.string,\n xBand: PropTypes.func,\n index: PropTypes.number.isRequired,\n graphProps: types.GraphPropsType.isRequired,\n defineChart: PropTypes.bool,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.number,\n }),\n ),\n CustomDraggableComponent: PropTypes.func,\n };\n\n static defaultProps = {\n index: 0,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dragValue: undefined,\n line: getData(props.data, props.graphProps.domain),\n };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (!isEqual(this.props.data, nextProps.data)) {\n this.setState({\n line: getData(nextProps.data, nextProps.graphProps.domain),\n });\n }\n }\n\n setDragValue = (line) => this.setState({ line });\n\n dragStop = (index) => {\n const { onChange } = this.props;\n this.setState({ dragging: false }, () => {\n onChange(index, this.state.line[index]);\n });\n };\n\n dragValue = (index, existing, next) => {\n const newLine = [...this.state.line];\n newLine[index].dragValue = next;\n this.setDragValue(newLine);\n };\n\n render() {\n const { graphProps, data, classes, CustomDraggableComponent, defineChart } = this.props;\n const { line: lineState, dragging } = this.state;\n const { scale } = graphProps;\n const lineToUse = dragging ? lineState : getData(data, graphProps.domain);\n\n return (\n <React.Fragment>\n <LinePath\n data={lineToUse}\n x={(d) => scale.x(d.x)}\n y={(d) => scale.y(d.dragValue !== undefined ? d.dragValue : d.y)}\n className={classes.line}\n />\n {lineToUse &&\n lineToUse.map((point, i) => {\n const r = 6;\n const enableDraggable = defineChart || point.interactive;\n const Component = enableDraggable ? DraggableHandle : DragHandle;\n\n return (\n <Component\n key={`point-${point.x}-${i}`}\n x={point.x}\n y={point.dragValue !== undefined ? point.dragValue : point.y}\n interactive={enableDraggable}\n r={r}\n onDragStart={() => this.setState({ dragging: true })}\n onDrag={(v) => this.dragValue(i, point.dragValue !== undefined ? point.dragValue : point.y, v)}\n onDragStop={() => this.dragStop(i)}\n graphProps={graphProps}\n CustomDraggableComponent={CustomDraggableComponent}\n correctness={point.correctness}\n />\n );\n })}\n </React.Fragment>\n );\n }\n}\n\nconst StyledLine = withStyles(() => ({\n line: {\n fill: 'transparent',\n stroke: color.defaults.TERTIARY,\n strokeWidth: 3,\n transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',\n },\n}))(RawLine);\n\nexport class Line extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChange: PropTypes.func,\n xBand: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n changeLine = (index, category) => {\n const { onChange } = this.props;\n const newLine = [...this.props.data];\n const { dragValue, value } = category;\n\n newLine[index].value = dragValue >= 0 ? dragValue : value;\n\n onChange(newLine);\n };\n\n render() {\n const props = this.props;\n\n return (\n <Group>\n <StyledLine {...props} onChange={this.changeLine} />\n </Group>\n );\n }\n}\n\nexport default Line;\n"],"file":"line.js"}
|
|
@@ -0,0 +1,203 @@
|
|
|
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.LineCross = void 0;
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
25
|
+
|
|
26
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
+
|
|
28
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
29
|
+
|
|
30
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
31
|
+
|
|
32
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
|
+
|
|
34
|
+
var _plot = require("@pie-lib/plot");
|
|
35
|
+
|
|
36
|
+
var _shape = require("@vx/shape");
|
|
37
|
+
|
|
38
|
+
var _group = require("@vx/group");
|
|
39
|
+
|
|
40
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
41
|
+
|
|
42
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
43
|
+
|
|
44
|
+
var _utils = require("../utils");
|
|
45
|
+
|
|
46
|
+
var _line = _interopRequireDefault(require("./common/line"));
|
|
47
|
+
|
|
48
|
+
var _excluded = ["classes", "className", "scale", "x", "y", "r", "correctness"];
|
|
49
|
+
|
|
50
|
+
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); }
|
|
51
|
+
|
|
52
|
+
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; }
|
|
53
|
+
|
|
54
|
+
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); }; }
|
|
55
|
+
|
|
56
|
+
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; } }
|
|
57
|
+
|
|
58
|
+
var DraggableComponent = function DraggableComponent(props) {
|
|
59
|
+
var _props$classes = props.classes,
|
|
60
|
+
classes = _props$classes === void 0 ? {} : _props$classes,
|
|
61
|
+
className = props.className,
|
|
62
|
+
scale = props.scale,
|
|
63
|
+
x = props.x,
|
|
64
|
+
y = props.y,
|
|
65
|
+
r = props.r,
|
|
66
|
+
correctness = props.correctness,
|
|
67
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
68
|
+
|
|
69
|
+
var _useState = (0, _react.useState)(false),
|
|
70
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
71
|
+
hover = _useState2[0],
|
|
72
|
+
setHover = _useState2[1];
|
|
73
|
+
|
|
74
|
+
var squareSize = r * 4;
|
|
75
|
+
var squareHalf = squareSize / 2;
|
|
76
|
+
var cx = scale.x(x);
|
|
77
|
+
var cy = scale.y(y);
|
|
78
|
+
return /*#__PURE__*/_react["default"].createElement(_group.Group, {
|
|
79
|
+
className: (0, _classnames["default"])(className, classes.line, correctness && correctness.value)
|
|
80
|
+
}, /*#__PURE__*/_react["default"].createElement(_shape.LinePath, {
|
|
81
|
+
data: [{
|
|
82
|
+
x: scale.x(x) - r,
|
|
83
|
+
y: scale.y(y) + r
|
|
84
|
+
}, {
|
|
85
|
+
x: scale.x(x) + r,
|
|
86
|
+
y: scale.y(y) - r
|
|
87
|
+
}],
|
|
88
|
+
key: "point-".concat(x, "-").concat(y, "-1"),
|
|
89
|
+
x: function x(d) {
|
|
90
|
+
return d.x;
|
|
91
|
+
},
|
|
92
|
+
y: function y(d) {
|
|
93
|
+
return d.y;
|
|
94
|
+
},
|
|
95
|
+
strokeWidth: 5,
|
|
96
|
+
style: {
|
|
97
|
+
pointerEvents: 'none'
|
|
98
|
+
}
|
|
99
|
+
}), /*#__PURE__*/_react["default"].createElement(_shape.LinePath, {
|
|
100
|
+
data: [{
|
|
101
|
+
x: scale.x(x) - r,
|
|
102
|
+
y: scale.y(y) - r
|
|
103
|
+
}, {
|
|
104
|
+
x: scale.x(x) + r,
|
|
105
|
+
y: scale.y(y) + r
|
|
106
|
+
}],
|
|
107
|
+
key: "point-".concat(x, "-").concat(y, "-2"),
|
|
108
|
+
x: function x(d) {
|
|
109
|
+
return d.x;
|
|
110
|
+
},
|
|
111
|
+
y: function y(d) {
|
|
112
|
+
return d.y;
|
|
113
|
+
},
|
|
114
|
+
strokeWidth: 5,
|
|
115
|
+
style: {
|
|
116
|
+
pointerEvents: 'none'
|
|
117
|
+
}
|
|
118
|
+
}), hover && /*#__PURE__*/_react["default"].createElement("rect", {
|
|
119
|
+
x: cx - squareHalf,
|
|
120
|
+
y: cy - squareHalf,
|
|
121
|
+
width: squareSize,
|
|
122
|
+
height: squareSize,
|
|
123
|
+
stroke: _renderUi.color.defaults.BORDER_GRAY,
|
|
124
|
+
fill: "none",
|
|
125
|
+
strokeWidth: 2,
|
|
126
|
+
pointerEvents: "none"
|
|
127
|
+
}), /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({
|
|
128
|
+
cx: cx,
|
|
129
|
+
cy: cy,
|
|
130
|
+
r: r * 2,
|
|
131
|
+
className: (0, _classnames["default"])(classes.transparentHandle),
|
|
132
|
+
onMouseEnter: function onMouseEnter() {
|
|
133
|
+
return setHover(true);
|
|
134
|
+
},
|
|
135
|
+
onMouseLeave: function onMouseLeave() {
|
|
136
|
+
return setHover(false);
|
|
137
|
+
}
|
|
138
|
+
}, rest)));
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
DraggableComponent.propTypes = {
|
|
142
|
+
scale: _propTypes["default"].object,
|
|
143
|
+
x: _propTypes["default"].number,
|
|
144
|
+
y: _propTypes["default"].number,
|
|
145
|
+
r: _propTypes["default"].number,
|
|
146
|
+
className: _propTypes["default"].string,
|
|
147
|
+
classes: _propTypes["default"].object,
|
|
148
|
+
correctness: _propTypes["default"].shape({
|
|
149
|
+
value: _propTypes["default"].string,
|
|
150
|
+
label: _propTypes["default"].string
|
|
151
|
+
})
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
var LineCross = /*#__PURE__*/function (_React$Component) {
|
|
155
|
+
(0, _inherits2["default"])(LineCross, _React$Component);
|
|
156
|
+
|
|
157
|
+
var _super = _createSuper(LineCross);
|
|
158
|
+
|
|
159
|
+
function LineCross() {
|
|
160
|
+
(0, _classCallCheck2["default"])(this, LineCross);
|
|
161
|
+
return _super.apply(this, arguments);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
(0, _createClass2["default"])(LineCross, [{
|
|
165
|
+
key: "render",
|
|
166
|
+
value: function render() {
|
|
167
|
+
var props = this.props;
|
|
168
|
+
var data = props.data,
|
|
169
|
+
graphProps = props.graphProps;
|
|
170
|
+
|
|
171
|
+
var _ref = graphProps || {},
|
|
172
|
+
_ref$scale = _ref.scale,
|
|
173
|
+
scale = _ref$scale === void 0 ? {} : _ref$scale,
|
|
174
|
+
_ref$size = _ref.size,
|
|
175
|
+
size = _ref$size === void 0 ? {} : _ref$size;
|
|
176
|
+
|
|
177
|
+
var xBand = (0, _utils.dataToXBand)(scale.x, data, size.width, 'lineCross');
|
|
178
|
+
return /*#__PURE__*/_react["default"].createElement(_line["default"], (0, _extends2["default"])({}, props, {
|
|
179
|
+
xBand: xBand,
|
|
180
|
+
CustomDraggableComponent: DraggableComponent
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
}]);
|
|
184
|
+
return LineCross;
|
|
185
|
+
}(_react["default"].Component);
|
|
186
|
+
|
|
187
|
+
exports.LineCross = LineCross;
|
|
188
|
+
(0, _defineProperty2["default"])(LineCross, "propTypes", {
|
|
189
|
+
data: _propTypes["default"].array,
|
|
190
|
+
onChange: _propTypes["default"].func,
|
|
191
|
+
graphProps: _plot.types.GraphPropsType.isRequired
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
var _default = function _default() {
|
|
195
|
+
return {
|
|
196
|
+
type: 'lineCross',
|
|
197
|
+
Component: LineCross,
|
|
198
|
+
name: 'Line Cross'
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
exports["default"] = _default;
|
|
203
|
+
//# sourceMappingURL=line-cross.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/line/line-cross.js"],"names":["DraggableComponent","props","classes","className","scale","x","y","r","correctness","rest","hover","setHover","squareSize","squareHalf","cx","cy","line","value","d","pointerEvents","color","defaults","BORDER_GRAY","transparentHandle","propTypes","PropTypes","object","number","string","shape","label","LineCross","data","graphProps","size","xBand","width","React","Component","array","onChange","func","types","GraphPropsType","isRequired","type","name"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { LinePath } from '@vx/shape';\nimport { Group } from '@vx/group';\nimport classNames from 'classnames';\nimport { color } from '@pie-lib/render-ui';\nimport { dataToXBand } from '../utils';\nimport RawLine from './common/line';\n\nconst DraggableComponent = (props) => {\n const { classes = {}, className, scale, x, y, r, correctness, ...rest } = props;\n const [hover, setHover] = useState(false);\n\n const squareSize = r * 4;\n const squareHalf = squareSize / 2;\n const cx = scale.x(x);\n const cy = scale.y(y);\n\n return (\n <Group className={classNames(className, classes.line, correctness && correctness.value)}>\n <LinePath\n data={[\n { x: scale.x(x) - r, y: scale.y(y) + r },\n { x: scale.x(x) + r, y: scale.y(y) - r },\n ]}\n key={`point-${x}-${y}-1`}\n x={(d) => d.x}\n y={(d) => d.y}\n strokeWidth={5}\n style={{ pointerEvents: 'none' }}\n />\n <LinePath\n data={[\n { x: scale.x(x) - r, y: scale.y(y) - r },\n { x: scale.x(x) + r, y: scale.y(y) + r },\n ]}\n key={`point-${x}-${y}-2`}\n x={(d) => d.x}\n y={(d) => d.y}\n strokeWidth={5}\n style={{ pointerEvents: 'none' }}\n />\n {hover && (\n <rect\n x={cx - squareHalf}\n y={cy - squareHalf}\n width={squareSize}\n height={squareSize}\n stroke={color.defaults.BORDER_GRAY}\n fill=\"none\"\n strokeWidth={2}\n pointerEvents=\"none\"\n />\n )}\n <circle\n cx={cx}\n cy={cy}\n r={r * 2}\n className={classNames(classes.transparentHandle)}\n onMouseEnter={() => setHover(true)}\n onMouseLeave={() => setHover(false)}\n {...rest}\n />\n </Group>\n );\n};\n\nDraggableComponent.propTypes = {\n scale: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n r: PropTypes.number,\n className: PropTypes.string,\n classes: PropTypes.object,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n};\n\nexport class LineCross extends React.Component {\n static propTypes = {\n data: PropTypes.array,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType.isRequired,\n };\n\n render() {\n const props = this.props;\n const { data, graphProps } = props;\n const { scale = {}, size = {} } = graphProps || {};\n const xBand = dataToXBand(scale.x, data, size.width, 'lineCross');\n\n return <RawLine {...props} xBand={xBand} CustomDraggableComponent={DraggableComponent} />;\n }\n}\n\nexport default () => ({\n type: 'lineCross',\n Component: LineCross,\n name: 'Line Cross',\n});\n"],"file":"line-cross.js"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = exports.LineDot = 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 _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
22
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
23
|
+
|
|
24
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
25
|
+
|
|
26
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
27
|
+
|
|
28
|
+
var _react = _interopRequireDefault(require("react"));
|
|
29
|
+
|
|
30
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
+
|
|
32
|
+
var _plot = require("@pie-lib/plot");
|
|
33
|
+
|
|
34
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
35
|
+
|
|
36
|
+
var _utils = require("../utils");
|
|
37
|
+
|
|
38
|
+
var _line = _interopRequireDefault(require("./common/line"));
|
|
39
|
+
|
|
40
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
41
|
+
|
|
42
|
+
var _excluded = ["scale", "x", "y", "className", "classes", "r", "correctness", "interactive"];
|
|
43
|
+
|
|
44
|
+
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); }; }
|
|
45
|
+
|
|
46
|
+
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; } }
|
|
47
|
+
|
|
48
|
+
var DraggableComponent = function DraggableComponent(_ref) {
|
|
49
|
+
var scale = _ref.scale,
|
|
50
|
+
x = _ref.x,
|
|
51
|
+
y = _ref.y,
|
|
52
|
+
className = _ref.className,
|
|
53
|
+
classes = _ref.classes,
|
|
54
|
+
r = _ref.r,
|
|
55
|
+
correctness = _ref.correctness,
|
|
56
|
+
interactive = _ref.interactive,
|
|
57
|
+
rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
58
|
+
|
|
59
|
+
var _React$useState = _react["default"].useState(false),
|
|
60
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
61
|
+
isHovered = _React$useState2[0],
|
|
62
|
+
setIsHovered = _React$useState2[1];
|
|
63
|
+
|
|
64
|
+
var allowRolloverEvent = !correctness && interactive;
|
|
65
|
+
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
66
|
+
onMouseEnter: function onMouseEnter() {
|
|
67
|
+
return setIsHovered(true);
|
|
68
|
+
},
|
|
69
|
+
onMouseLeave: function onMouseLeave() {
|
|
70
|
+
return setIsHovered(false);
|
|
71
|
+
}
|
|
72
|
+
}, /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({
|
|
73
|
+
cx: scale.x(x),
|
|
74
|
+
cy: scale.y(y),
|
|
75
|
+
r: r * 3,
|
|
76
|
+
className: (0, _classnames["default"])(classes.transparentHandle, className),
|
|
77
|
+
pointerEvents: correctness ? 'none' : ''
|
|
78
|
+
}, rest)), /*#__PURE__*/_react["default"].createElement("circle", (0, _extends2["default"])({
|
|
79
|
+
cx: scale.x(x),
|
|
80
|
+
cy: scale.y(y),
|
|
81
|
+
r: r,
|
|
82
|
+
className: (0, _classnames["default"])(className, classes.handle, correctness && correctness.value)
|
|
83
|
+
}, rest)), isHovered && allowRolloverEvent && /*#__PURE__*/_react["default"].createElement("rect", {
|
|
84
|
+
x: scale.x(x) - r * 2,
|
|
85
|
+
y: scale.y(y) - r * 2,
|
|
86
|
+
width: r * 4,
|
|
87
|
+
height: r * 4,
|
|
88
|
+
stroke: _renderUi.color.defaults.BORDER_GRAY,
|
|
89
|
+
strokeWidth: "1",
|
|
90
|
+
fill: "none"
|
|
91
|
+
}));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
DraggableComponent.propTypes = {
|
|
95
|
+
scale: _propTypes["default"].object,
|
|
96
|
+
x: _propTypes["default"].number,
|
|
97
|
+
y: _propTypes["default"].number,
|
|
98
|
+
r: _propTypes["default"].number,
|
|
99
|
+
className: _propTypes["default"].string,
|
|
100
|
+
classes: _propTypes["default"].object,
|
|
101
|
+
correctness: _propTypes["default"].shape({
|
|
102
|
+
value: _propTypes["default"].string,
|
|
103
|
+
label: _propTypes["default"].string
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var LineDot = /*#__PURE__*/function (_React$Component) {
|
|
108
|
+
(0, _inherits2["default"])(LineDot, _React$Component);
|
|
109
|
+
|
|
110
|
+
var _super = _createSuper(LineDot);
|
|
111
|
+
|
|
112
|
+
function LineDot() {
|
|
113
|
+
(0, _classCallCheck2["default"])(this, LineDot);
|
|
114
|
+
return _super.apply(this, arguments);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
(0, _createClass2["default"])(LineDot, [{
|
|
118
|
+
key: "render",
|
|
119
|
+
value: function render() {
|
|
120
|
+
var props = this.props;
|
|
121
|
+
var data = props.data,
|
|
122
|
+
graphProps = props.graphProps;
|
|
123
|
+
|
|
124
|
+
var _ref2 = graphProps || {},
|
|
125
|
+
_ref2$scale = _ref2.scale,
|
|
126
|
+
scale = _ref2$scale === void 0 ? {} : _ref2$scale,
|
|
127
|
+
_ref2$size = _ref2.size,
|
|
128
|
+
size = _ref2$size === void 0 ? {} : _ref2$size;
|
|
129
|
+
|
|
130
|
+
var xBand = (0, _utils.dataToXBand)(scale.x, data, size.width, 'lineDot');
|
|
131
|
+
return /*#__PURE__*/_react["default"].createElement(_line["default"], (0, _extends2["default"])({}, props, {
|
|
132
|
+
xBand: xBand,
|
|
133
|
+
CustomDraggableComponent: DraggableComponent
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
}]);
|
|
137
|
+
return LineDot;
|
|
138
|
+
}(_react["default"].Component);
|
|
139
|
+
|
|
140
|
+
exports.LineDot = LineDot;
|
|
141
|
+
(0, _defineProperty2["default"])(LineDot, "propTypes", {
|
|
142
|
+
data: _propTypes["default"].array,
|
|
143
|
+
onChange: _propTypes["default"].func,
|
|
144
|
+
graphProps: _plot.types.GraphPropsType.isRequired
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
var _default = function _default() {
|
|
148
|
+
return {
|
|
149
|
+
type: 'lineDot',
|
|
150
|
+
Component: LineDot,
|
|
151
|
+
name: 'Line Dot'
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
exports["default"] = _default;
|
|
156
|
+
//# sourceMappingURL=line-dot.js.map
|