1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- "use strict";
- exports.__esModule = true;
- exports.default = transformProps;
- var _lodash = require("lodash");
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
- function transformProps(chartProps) {
- const {
- width,
- height,
- formData,
- queryData
- } = chartProps;
- const {
- encoding,
- margin,
- theme
- } = formData;
- const data = queryData.data.map(({
- label,
- values
- }) => ({
- label,
- min: values.whisker_low,
- max: values.whisker_high,
- firstQuartile: values.Q1,
- median: values.Q2,
- thirdQuartile: values.Q3,
- outliers: values.outliers
- }));
- const isHorizontal = encoding.y.type === 'nominal';
- const boxPlotValues = data.reduce((r, e) => {
- r.push(e.min, e.max, ...e.outliers);
- return r;
- }, []);
- const minBoxPlotValue = Math.min(...boxPlotValues);
- const maxBoxPlotValue = Math.max(...boxPlotValues);
- const valueDomain = [minBoxPlotValue - 0.1 * Math.abs(minBoxPlotValue), maxBoxPlotValue + 0.1 * Math.abs(maxBoxPlotValue)];
- if (isHorizontal) {
- encoding.x.scale.domain = valueDomain;
- } else {
- encoding.y.scale.domain = valueDomain;
- }
- const hooks = chartProps.hooks;
- const fieldsFromHooks = ['TooltipRenderer', 'LegendRenderer', 'LegendGroupRenderer', 'LegendItemRenderer', 'LegendItemMarkRenderer', 'LegendItemLabelRenderer'];
- return _extends({
- data,
- width,
- height,
- margin,
- theme,
- encoding
- }, (0, _lodash.pick)(hooks, fieldsFromHooks));
- }
|