96b277c00b2c7ada90e3d2683c313dcc.json 36.7 KB
{"ast":null,"code":"var _interopRequireWildcard=require(\"@babel/runtime/helpers/interopRequireWildcard\");var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));var _toConsumableArray2=_interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));var _classCallCheck2=_interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));var _createClass2=_interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));var _possibleConstructorReturn2=_interopRequireDefault(require(\"@babel/runtime/helpers/possibleConstructorReturn\"));var _getPrototypeOf3=_interopRequireDefault(require(\"@babel/runtime/helpers/getPrototypeOf\"));var _inherits2=_interopRequireDefault(require(\"@babel/runtime/helpers/inherits\"));var _react=_interopRequireWildcard(require(\"react\"));var _View=_interopRequireDefault(require(\"react-native-web/dist/exports/View\"));var _propTypes=_interopRequireDefault(require(\"prop-types\"));var _reactNativeSvg=_interopRequireDefault(require(\"react-native-svg\"));var array=_interopRequireWildcard(require(\"d3-array\"));var scale=_interopRequireWildcard(require(\"d3-scale\"));var shape=_interopRequireWildcard(require(\"d3-shape\"));var _animatedPath=_interopRequireDefault(require(\"../animated-path\"));var StackedBarGrouped=function(_PureComponent){(0,_inherits2.default)(StackedBarGrouped,_PureComponent);function StackedBarGrouped(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,StackedBarGrouped);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(StackedBarGrouped)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={width:0,height:0};_this.coordinatesToPathCommands=function(x0,y0,x1,y1,borderRadius,showTopBorder,showBottomBorder){var commands=[];commands.push({marker:'M',values:[x0,y0]});if(showTopBorder){var topLeft1=[x0+borderRadius,y0];var topLeft2=[x0,y0+borderRadius];commands.push({marker:'L',values:topLeft1});commands.push({marker:'C',values:[].concat(topLeft1,[x0,y0],topLeft2)});commands.push({marker:'L',values:topLeft2});}else{commands.push({marker:'L',values:[x0,y0]});}if(showBottomBorder){var bottomLeft1=[x0,y1-borderRadius];var bottomLeft2=[x0+borderRadius,y1];commands.push({marker:'L',values:bottomLeft1});commands.push({marker:'C',values:[].concat(bottomLeft1,[x0,y1],bottomLeft2)});commands.push({marker:'L',values:bottomLeft2});var bottomRight1=[x1-borderRadius,y1];var bottomRight2=[x1,y1-borderRadius];commands.push({marker:'L',values:bottomRight1});commands.push({marker:'C',values:[].concat(bottomRight1,[x1,y1],bottomRight2)});commands.push({marker:'L',values:bottomRight2});}else{commands.push({marker:'L',values:[x0,y1]});commands.push({marker:'L',values:[x1,y1]});}if(showTopBorder){var topRight1=[x1,y0+borderRadius];var topRight2=[x1-borderRadius,y0];commands.push({marker:'L',values:topRight1});commands.push({marker:'C',values:[].concat(topRight1,[x1,y0],topRight2)});commands.push({marker:'L',values:topRight2});}else{commands.push({marker:'L',values:[x1,y0]});}commands.push({marker:'Z',values:[]});return commands;};_this.commandsToSvgPath=function(commands){return commands.map(function(command){return command.marker+\" \"+command.values.join(',');}).join(' ').trim();};return _this;}(0,_createClass2.default)(StackedBarGrouped,[{key:\"_onLayout\",value:function _onLayout(event){var _event$nativeEvent$la=event.nativeEvent.layout,height=_event$nativeEvent$la.height,width=_event$nativeEvent$la.width;this.setState({height:height,width:width});}},{key:\"calcXScale\",value:function calcXScale(domain){var _this$props=this.props,horizontal=_this$props.horizontal,_this$props$contentIn=_this$props.contentInset,_this$props$contentIn2=_this$props$contentIn.left,left=_this$props$contentIn2===void 0?0:_this$props$contentIn2,_this$props$contentIn3=_this$props$contentIn.right,right=_this$props$contentIn3===void 0?0:_this$props$contentIn3,spacingInner=_this$props.spacingInner,spacingOuter=_this$props.spacingOuter;var width=this.state.width;if(horizontal){return scale.scaleLinear().domain(domain).range([left,width-right]);}return scale.scaleBand().domain(domain).range([left,width-right]).paddingInner([spacingInner]).paddingOuter([spacingOuter]);}},{key:\"calcYScale\",value:function calcYScale(domain){var _this$props2=this.props,horizontal=_this$props2.horizontal,_this$props2$contentI=_this$props2.contentInset,_this$props2$contentI2=_this$props2$contentI.top,top=_this$props2$contentI2===void 0?0:_this$props2$contentI2,_this$props2$contentI3=_this$props2$contentI.bottom,bottom=_this$props2$contentI3===void 0?0:_this$props2$contentI3,spacingInner=_this$props2.spacingInner,spacingOuter=_this$props2.spacingOuter;var height=this.state.height;if(horizontal){return scale.scaleBand().domain(domain).range([top,height-bottom]).paddingInner([spacingInner]).paddingOuter([spacingOuter]);}return scale.scaleLinear().domain(domain).range([height-bottom,top]);}},{key:\"calcAreas\",value:function calcAreas(x,y,series){var _this2=this;var _this$props3=this.props,horizontal=_this$props3.horizontal,colors=_this$props3.colors,keys=_this$props3.keys,data=_this$props3.data,initialBorderRadius=_this$props3.borderRadius,innerBarSpace=_this$props3.innerBarSpace;var areas;var barWidth;if(horizontal){barWidth=y.bandwidth()/data.length;areas=series.map(function(stack,stackIndex){return stack.map(function(serie,keyIndex){return serie.map(function(entry,entryIndex){var leftMargin=series.length>1?innerBarSpace/2:0;var path=shape.area().x0(function(d){return x(d[0]);}).x1(function(d){return x(d[1]);}).y(function(d,_index){return(_index===0?y(entryIndex)+barWidth*stackIndex+leftMargin:y(entryIndex)+barWidth+barWidth*stackIndex)-leftMargin;}).defined(function(d){return!isNaN(d[0])&&!isNaN(d[1]);})([entry,entry]);return{path:path,color:colors[stackIndex][keyIndex],key:keys[stackIndex][keyIndex]};});});});}else{barWidth=x.bandwidth()/data.length;areas=series.map(function(stack,stackIndex){return stack.map(function(serie,keyIndex){return serie.map(function(entry,entryIndex){var leftMargin=series.length>1?innerBarSpace/2:0;var x0=x(entryIndex)+barWidth*stackIndex+leftMargin;var x1=x(entryIndex)+barWidth+barWidth*stackIndex-leftMargin;var y0=y(entry[1]);var y1=y(entry[0]);var barHeight=y1-y0;var borderRadius=initialBorderRadius*2>barHeight?barHeight/2:initialBorderRadius;var showTopBorder=keyIndex===stack.length-1;var showBottomBorder=keyIndex===0;var commands=_this2.coordinatesToPathCommands(x0,y0,x1,y1,borderRadius,showTopBorder,showBottomBorder);return{path:_this2.commandsToSvgPath(commands),color:colors[stackIndex][keyIndex],key:keys[stackIndex][keyIndex]};});});});}return array.merge(areas);}},{key:\"calcExtent\",value:function calcExtent(values){var _this$props4=this.props,gridMax=_this$props4.gridMax,gridMin=_this$props4.gridMin;var mergedValues=array.merge(values);return array.extent([].concat((0,_toConsumableArray2.default)(mergedValues),[gridMin,gridMax]));}},{key:\"calcIndexes\",value:function calcIndexes(){var data=this.props.data;return data[0].data.map(function(_,index){return index;});}},{key:\"getSeries\",value:function getSeries(){var _this$props5=this.props,data=_this$props5.data,keys=_this$props5.keys,offset=_this$props5.offset,order=_this$props5.order,valueAccessor=_this$props5.valueAccessor;return data.map(function(obj,index){return shape.stack().keys(keys[index]).value(function(item,key){return valueAccessor({item:item,key:key});}).order(order).offset(offset)(obj.data);});}},{key:\"render\",value:function render(){var _this3=this;var _this$props6=this.props,data=_this$props6.data,animate=_this$props6.animate,animationDuration=_this$props6.animationDuration,style=_this$props6.style,numberOfTicks=_this$props6.numberOfTicks,children=_this$props6.children,horizontal=_this$props6.horizontal;var _this$state=this.state,height=_this$state.height,width=_this$state.width;if(data.length===0){return _react.default.createElement(_View.default,{style:style});}var series=this.getSeries();var values=array.merge(array.merge(series));var indexes=this.calcIndexes(values);var extent=this.calcExtent(values);var ticks=array.ticks(extent[0],extent[1],numberOfTicks);var xDomain=horizontal?extent:indexes;var yDomain=horizontal?indexes:extent;var x=this.calcXScale(xDomain);var y=this.calcYScale(yDomain);var bandwidth=horizontal?y.bandwidth():x.bandwidth();var stacks=this.calcAreas(x,y,series);var extraProps={x:x,y:y,width:width,height:height,ticks:ticks,data:data,bandwidth:bandwidth};return _react.default.createElement(_View.default,{style:style},_react.default.createElement(_View.default,{style:{flex:1},onLayout:function onLayout(event){return _this3._onLayout(event);}},height>0&&width>0&&_react.default.createElement(_reactNativeSvg.default,{style:{height:height,width:width}},_react.default.Children.map(children,function(child){if(child&&child.props.belowChart){return _react.default.cloneElement(child,extraProps);}return null;}),stacks.map(function(areas,indexStack){var areaIndex=indexStack%data.length;return areas.map(function(bar,indexArea){var keyIndex=indexArea%data[areaIndex].data.length;var key=areaIndex+\"-\"+keyIndex+\"-\"+bar.key;var svg=data[areaIndex].data[keyIndex][bar.key].svg;return _react.default.createElement(_animatedPath.default,(0,_extends2.default)({key:key,fill:bar.color},svg,{d:bar.path,animate:animate,animationDuration:animationDuration}));});}),_react.default.Children.map(children,function(child){if(child&&!child.props.belowChart){return _react.default.cloneElement(child,extraProps);}return null;}))));}}]);return StackedBarGrouped;}(_react.PureComponent);StackedBarGrouped.propTypes={data:_propTypes.default.arrayOf(_propTypes.default.object),keys:_propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.string)).isRequired,colors:_propTypes.default.arrayOf(_propTypes.default.arrayOf(_propTypes.default.string)).isRequired,offset:_propTypes.default.func,order:_propTypes.default.func,style:_propTypes.default.any,spacingInner:_propTypes.default.number,spacingOuter:_propTypes.default.number,animate:_propTypes.default.bool,animationDuration:_propTypes.default.number,contentInset:_propTypes.default.shape({top:_propTypes.default.number,left:_propTypes.default.number,right:_propTypes.default.number,bottom:_propTypes.default.number}),gridMin:_propTypes.default.number,gridMax:_propTypes.default.number,valueAccessor:_propTypes.default.func,borderRadius:_propTypes.default.number,innerBarSpace:_propTypes.default.number};StackedBarGrouped.defaultProps={spacingInner:0.05,spacingOuter:0.05,offset:shape.stackOffsetNone,order:shape.stackOrderNone,width:100,height:100,showZeroAxis:true,contentInset:{},numberOfTicks:10,showGrid:true,valueAccessor:function valueAccessor(_ref){var item=_ref.item,key=_ref.key;return item[key];},borderRadius:0,innerBarSpace:0};var _default=StackedBarGrouped;exports.default=_default;","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/react-native-svg-charts/src/stacked-bar-chart/stacked-bar-grouped.js"],"names":["StackedBarGrouped","state","width","height","coordinatesToPathCommands","x0","y0","x1","y1","borderRadius","showTopBorder","showBottomBorder","commands","push","marker","values","topLeft1","topLeft2","bottomLeft1","bottomLeft2","bottomRight1","bottomRight2","topRight1","topRight2","commandsToSvgPath","map","command","join","trim","event","nativeEvent","layout","setState","domain","props","horizontal","contentInset","left","right","spacingInner","spacingOuter","scale","scaleLinear","range","scaleBand","paddingInner","paddingOuter","top","bottom","x","y","series","colors","keys","data","initialBorderRadius","innerBarSpace","areas","barWidth","bandwidth","length","stack","stackIndex","serie","keyIndex","entry","entryIndex","leftMargin","path","shape","area","d","_index","defined","isNaN","color","key","barHeight","array","merge","gridMax","gridMin","mergedValues","extent","_","index","offset","order","valueAccessor","obj","value","item","animate","animationDuration","style","numberOfTicks","children","getSeries","indexes","calcIndexes","calcExtent","ticks","xDomain","yDomain","calcXScale","calcYScale","stacks","calcAreas","extraProps","flex","_onLayout","React","Children","child","belowChart","cloneElement","indexStack","areaIndex","bar","indexArea","svg","PureComponent","propTypes","PropTypes","arrayOf","object","string","isRequired","func","any","number","bool","defaultProps","stackOffsetNone","stackOrderNone","showZeroAxis","showGrid"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react'\nimport { View } from 'react-native'\nimport PropTypes from 'prop-types'\nimport Svg from 'react-native-svg'\nimport * as array from 'd3-array'\nimport * as scale from 'd3-scale'\nimport * as shape from 'd3-shape'\nimport Path from '../animated-path'\n\nclass StackedBarGrouped extends PureComponent {\n    state = {\n        width: 0,\n        height: 0,\n    }\n\n    _onLayout(event) {\n        const {\n            nativeEvent: {\n                layout: { height, width },\n            },\n        } = event\n        this.setState({ height, width })\n    }\n\n    calcXScale(domain) {\n        const {\n            horizontal,\n            contentInset: { left = 0, right = 0 },\n            spacingInner,\n            spacingOuter,\n        } = this.props\n\n        const { width } = this.state\n\n        if (horizontal) {\n            return scale\n                .scaleLinear()\n                .domain(domain)\n                .range([left, width - right])\n        }\n\n        return scale\n            .scaleBand()\n            .domain(domain)\n            .range([left, width - right])\n            .paddingInner([spacingInner])\n            .paddingOuter([spacingOuter])\n    }\n\n    calcYScale(domain) {\n        const {\n            horizontal,\n            contentInset: { top = 0, bottom = 0 },\n            spacingInner,\n            spacingOuter,\n        } = this.props\n\n        const { height } = this.state\n\n        if (horizontal) {\n            return scale\n                .scaleBand()\n                .domain(domain)\n                .range([top, height - bottom])\n                .paddingInner([spacingInner])\n                .paddingOuter([spacingOuter])\n        }\n\n        return scale\n            .scaleLinear()\n            .domain(domain)\n            .range([height - bottom, top])\n    }\n\n    calcAreas(x, y, series) {\n        const { horizontal, colors, keys, data, borderRadius: initialBorderRadius, innerBarSpace } = this.props\n        let areas\n        let barWidth\n\n        if (horizontal) {\n            barWidth = y.bandwidth() / data.length\n\n            areas = series.map((stack, stackIndex) => {\n                return stack.map((serie, keyIndex) => {\n                    return serie.map((entry, entryIndex) => {\n                        const leftMargin = series.length > 1 ? innerBarSpace / 2 : 0\n\n                        const path = shape\n                            .area()\n                            .x0((d) => x(d[0]))\n                            .x1((d) => x(d[1]))\n                            .y(\n                                (d, _index) =>\n                                    (_index === 0\n                                        ? y(entryIndex) + barWidth * stackIndex + leftMargin\n                                        : y(entryIndex) + barWidth + barWidth * stackIndex) - leftMargin\n                            )\n                            .defined((d) => !isNaN(d[0]) && !isNaN(d[1]))([entry, entry])\n\n                        return {\n                            path,\n                            color: colors[stackIndex][keyIndex],\n                            key: keys[stackIndex][keyIndex],\n                        }\n                    })\n                })\n            })\n        } else {\n            barWidth = x.bandwidth() / data.length\n\n            areas = series.map((stack, stackIndex) => {\n                return stack.map((serie, keyIndex) => {\n                    return serie.map((entry, entryIndex) => {\n                        const leftMargin = series.length > 1 ? innerBarSpace / 2 : 0\n                        const x0 = x(entryIndex) + barWidth * stackIndex + leftMargin\n                        const x1 = x(entryIndex) + barWidth + barWidth * stackIndex - leftMargin\n                        const y0 = y(entry[1])\n                        const y1 = y(entry[0])\n                        const barHeight = y1 - y0\n                        const borderRadius = initialBorderRadius * 2 > barHeight ? barHeight / 2 : initialBorderRadius\n                        const showTopBorder = keyIndex === stack.length - 1\n                        const showBottomBorder = keyIndex === 0\n                        const commands = this.coordinatesToPathCommands(\n                            x0,\n                            y0,\n                            x1,\n                            y1,\n                            borderRadius,\n                            showTopBorder,\n                            showBottomBorder\n                        )\n\n                        return {\n                            path: this.commandsToSvgPath(commands),\n                            color: colors[stackIndex][keyIndex],\n                            key: keys[stackIndex][keyIndex],\n                        }\n                    })\n                })\n            })\n        }\n\n        return array.merge(areas)\n    }\n\n    coordinatesToPathCommands = (x0, y0, x1, y1, borderRadius, showTopBorder, showBottomBorder) => {\n        const commands = []\n        commands.push({ marker: 'M', values: [x0, y0] })\n\n        if (showTopBorder) {\n            const topLeft1 = [x0 + borderRadius, y0]\n            const topLeft2 = [x0, y0 + borderRadius]\n            commands.push({ marker: 'L', values: topLeft1 })\n            commands.push({\n                marker: 'C',\n                values: [...topLeft1, x0, y0, ...topLeft2],\n            })\n            commands.push({ marker: 'L', values: topLeft2 })\n        } else {\n            commands.push({ marker: 'L', values: [x0, y0] })\n        }\n\n        if (showBottomBorder) {\n            const bottomLeft1 = [x0, y1 - borderRadius]\n            const bottomLeft2 = [x0 + borderRadius, y1]\n            commands.push({ marker: 'L', values: bottomLeft1 })\n            commands.push({\n                marker: 'C',\n                values: [...bottomLeft1, x0, y1, ...bottomLeft2],\n            })\n            commands.push({ marker: 'L', values: bottomLeft2 })\n            const bottomRight1 = [x1 - borderRadius, y1]\n            const bottomRight2 = [x1, y1 - borderRadius]\n            commands.push({ marker: 'L', values: bottomRight1 })\n            commands.push({\n                marker: 'C',\n                values: [...bottomRight1, x1, y1, ...bottomRight2],\n            })\n            commands.push({ marker: 'L', values: bottomRight2 })\n        } else {\n            commands.push({ marker: 'L', values: [x0, y1] })\n            commands.push({ marker: 'L', values: [x1, y1] })\n        }\n\n        if (showTopBorder) {\n            const topRight1 = [x1, y0 + borderRadius]\n            const topRight2 = [x1 - borderRadius, y0]\n\n            commands.push({ marker: 'L', values: topRight1 })\n            commands.push({\n                marker: 'C',\n                values: [...topRight1, x1, y0, ...topRight2],\n            })\n            commands.push({ marker: 'L', values: topRight2 })\n        } else {\n            commands.push({ marker: 'L', values: [x1, y0] })\n        }\n\n        commands.push({ marker: 'Z', values: [] })\n\n        return commands\n    }\n\n    commandsToSvgPath = (commands) =>\n        commands\n            .map((command) => `${command.marker} ${command.values.join(',')}`)\n            .join(' ')\n            .trim()\n\n    calcExtent(values) {\n        const { gridMax, gridMin } = this.props\n\n        // One more merge for stacked groups\n        const mergedValues = array.merge(values)\n\n        return array.extent([...mergedValues, gridMin, gridMax])\n    }\n\n    calcIndexes() {\n        const { data } = this.props\n\n        // Must return an array with indexes for the number of groups to be shown\n        return data[0].data.map((_, index) => index)\n    }\n\n    getSeries() {\n        const { data, keys, offset, order, valueAccessor } = this.props\n\n        return data.map((obj, index) =>\n            shape\n                .stack()\n                .keys(keys[index])\n                .value((item, key) => valueAccessor({ item, key }))\n                .order(order)\n                .offset(offset)(obj.data)\n        )\n    }\n\n    render() {\n        const { data, animate, animationDuration, style, numberOfTicks, children, horizontal } = this.props\n\n        const { height, width } = this.state\n\n        if (data.length === 0) {\n            return <View style={style} />\n        }\n\n        const series = this.getSeries()\n\n        //double merge arrays to extract just the values\n        const values = array.merge(array.merge(series))\n        const indexes = this.calcIndexes(values)\n\n        const extent = this.calcExtent(values)\n        const ticks = array.ticks(extent[0], extent[1], numberOfTicks)\n\n        const xDomain = horizontal ? extent : indexes\n        const yDomain = horizontal ? indexes : extent\n\n        const x = this.calcXScale(xDomain)\n        const y = this.calcYScale(yDomain)\n\n        const bandwidth = horizontal ? y.bandwidth() : x.bandwidth()\n\n        const stacks = this.calcAreas(x, y, series)\n\n        const extraProps = {\n            x,\n            y,\n            width,\n            height,\n            ticks,\n            data,\n            bandwidth,\n        }\n\n        return (\n            <View style={style}>\n                <View style={{ flex: 1 }} onLayout={(event) => this._onLayout(event)}>\n                    {height > 0 && width > 0 && (\n                        <Svg style={{ height, width }}>\n                            {React.Children.map(children, (child) => {\n                                if (child && child.props.belowChart) {\n                                    return React.cloneElement(child, extraProps)\n                                }\n                                return null\n                            })}\n                            {stacks.map((areas, indexStack) => {\n                                const areaIndex = indexStack % data.length\n\n                                return areas.map((bar, indexArea) => {\n                                    const keyIndex = indexArea % data[areaIndex].data.length\n                                    const key = `${areaIndex}-${keyIndex}-${bar.key}`\n\n                                    const { svg } = data[areaIndex].data[keyIndex][bar.key]\n\n                                    return (\n                                        <Path\n                                            key={key}\n                                            fill={bar.color}\n                                            {...svg}\n                                            d={bar.path}\n                                            animate={animate}\n                                            animationDuration={animationDuration}\n                                        />\n                                    )\n                                })\n                            })}\n                            {React.Children.map(children, (child) => {\n                                if (child && !child.props.belowChart) {\n                                    return React.cloneElement(child, extraProps)\n                                }\n                                return null\n                            })}\n                        </Svg>\n                    )}\n                </View>\n            </View>\n        )\n    }\n}\n\nStackedBarGrouped.propTypes = {\n    data: PropTypes.arrayOf(PropTypes.object),\n    keys: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\n    colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired,\n    offset: PropTypes.func,\n    order: PropTypes.func,\n    style: PropTypes.any,\n    spacingInner: PropTypes.number,\n    spacingOuter: PropTypes.number,\n    animate: PropTypes.bool,\n    animationDuration: PropTypes.number,\n    contentInset: PropTypes.shape({\n        top: PropTypes.number,\n        left: PropTypes.number,\n        right: PropTypes.number,\n        bottom: PropTypes.number,\n    }),\n    gridMin: PropTypes.number,\n    gridMax: PropTypes.number,\n    valueAccessor: PropTypes.func,\n    borderRadius: PropTypes.number,\n    innerBarSpace: PropTypes.number,\n}\n\nStackedBarGrouped.defaultProps = {\n    spacingInner: 0.05,\n    spacingOuter: 0.05,\n    offset: shape.stackOffsetNone,\n    order: shape.stackOrderNone,\n    width: 100,\n    height: 100,\n    showZeroAxis: true,\n    contentInset: {},\n    numberOfTicks: 10,\n    showGrid: true,\n    valueAccessor: ({ item, key }) => item[key],\n    borderRadius: 0,\n    innerBarSpace: 0,\n}\n\nexport default StackedBarGrouped\n"]},"metadata":{},"sourceType":"script"}