@castianta/chart-lc
Version:
129 lines (110 loc) • 5.73 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = Point;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireWildcard(require("react"));
var _base = _interopRequireDefault(require("./base"));
var _lcjs = require("@arction/lcjs");
var _utils = require("../utils");
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); }
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; }
var setSeries = function setSeries(_ref) {
var series = _ref.series,
_ref$list = _ref.list,
name = _ref$list.name,
data = _ref$list.data,
cursorEnabled = _ref$list.cursorEnabled,
pointSize = _ref$list.pointSize,
_ref$list$pointColor = _ref$list.pointColor,
pointColor = _ref$list$pointColor === void 0 ? '#000' : _ref$list$pointColor,
point3DStyle = _ref$list.point3DStyle,
point3DShape = _ref$list.point3DShape,
pointSizeEnabled = _ref$list.pointSizeEnabled,
pointRotationEnabled = _ref$list.pointRotationEnabled,
resultTableFormatter = _ref$list.resultTableFormatter,
index = _ref.index,
_ref$chart3D = _ref.chart3D,
chart3D = _ref$chart3D === void 0 ? false : _ref$chart3D;
var config = series.clear().setName(name).add(data === null || data === void 0 ? void 0 : data.map(function (item) {
return (0, _extends2["default"])({
z: index
}, item);
}));
if (chart3D) {
config.setPointStyle(new _lcjs.PointStyle3D[point3DStyle !== null && point3DStyle !== void 0 ? point3DStyle : 'Triangulated']({
size: pointSize ? pointSize : config.getPointStyle().getSize(),
shape: point3DShape !== null && point3DShape !== void 0 ? point3DShape : 'sphere',
fillStyle: (0, _utils.toStyle)(config.getPointStyle().getFillStyle(), pointColor)
}));
} else {
config.setCursorEnabled(cursorEnabled).setPointSize(pointSize ? pointSize : config.getPointSize()).setPointFillStyle((0, _utils.toStyle)(config.getPointFillStyle(), pointColor)).setIndividualPointRotationEnabled(pointRotationEnabled !== null && pointRotationEnabled !== void 0 ? pointRotationEnabled : false).setIndividualPointSizeEnabled(pointSizeEnabled !== null && pointSizeEnabled !== void 0 ? pointSizeEnabled : false).setCursorResultTableFormatter(resultTableFormatter ? resultTableFormatter : config.getCursorResultTableFormatter());
}
return config;
};
var create = function create(chart, dataSource, refSeries, chart3D) {
var seriesData = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (list, index) {
var pointShape = list.pointShape;
var series = chart === null || chart === void 0 ? void 0 : chart.addPointSeries({
pointShape: _lcjs.PointShape[pointShape !== null && pointShape !== void 0 ? pointShape : 'Circle']
});
return setSeries({
series: series,
list: list,
index: index,
chart3D: chart3D
});
});
refSeries.current = seriesData;
};
function Point(props) {
var _props$dataSource = props.dataSource,
dataSource = _props$dataSource === void 0 ? [] : _props$dataSource,
_chartRender = props.chartRender,
chart3D = props.chart3D;
var _useState = (0, _react.useState)(),
chart = _useState[0],
setChart = _useState[1];
var refSeries = (0, _react.useRef)();
(0, _react.useLayoutEffect)(function () {
if (!chart) return;
if (!_chartRender && refSeries.current) {
refSeries.current.forEach(function (series, index) {
setSeries({
series: series,
list: dataSource[index],
index: index,
chart3D: chart3D
});
});
}
}, [chart, dataSource]);
(0, _react.useLayoutEffect)(function () {
if (!chart) return;
if (!_chartRender) {
create(chart, dataSource, refSeries, chart3D);
}
return function () {
if (refSeries.current) {
refSeries.current.forEach(function (line) {
return line.dispose();
});
refSeries.current = null;
}
};
}, [chart].concat(dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (_ref2) {
var pointShape = _ref2.pointShape;
return pointShape;
})));
return /*#__PURE__*/_react["default"].createElement(_base["default"], (0, _extends2["default"])({}, props, {
setChart: setChart,
chart: chart,
refSeries: refSeries,
chartRender: function chartRender(setAxis) {
return _chartRender && _chartRender(chart, {
setAxis: setAxis,
setSeries: setSeries
}, dataSource);
}
}));
}