ab5465588cde02214b8029f1b9899626.json 15.2 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 _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 _propTypes=_interopRequireDefault(require(\"prop-types\"));var _Text=_interopRequireDefault(require(\"react-native-web/dist/exports/Text\"));var _View=_interopRequireDefault(require(\"react-native-web/dist/exports/View\"));var d3Scale=_interopRequireWildcard(require(\"d3-scale\"));var array=_interopRequireWildcard(require(\"d3-array\"));var _reactNativeSvg=_interopRequireWildcard(require(\"react-native-svg\"));var XAxis=function(_PureComponent){(0,_inherits2.default)(XAxis,_PureComponent);function XAxis(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,XAxis);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)(XAxis)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={width:0,height:0};return _this;}(0,_createClass2.default)(XAxis,[{key:\"_onLayout\",value:function _onLayout(event){var _event$nativeEvent$la=event.nativeEvent.layout,width=_event$nativeEvent$la.width,height=_event$nativeEvent$la.height;if(width!==this.state.width){this.setState({width:width,height:height});}}},{key:\"_getX\",value:function _getX(domain){var _this$props=this.props,scale=_this$props.scale,spacingInner=_this$props.spacingInner,spacingOuter=_this$props.spacingOuter,_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;var width=this.state.width;var x=scale().domain(domain).range([left,width-right]);if(scale===d3Scale.scaleBand){x.paddingInner([spacingInner]).paddingOuter([spacingOuter]);return function(value){return x(value)+x.bandwidth()/2;};}return x;}},{key:\"render\",value:function render(){var _this2=this;var _this$props2=this.props,style=_this$props2.style,scale=_this$props2.scale,data=_this$props2.data,xAccessor=_this$props2.xAccessor,formatLabel=_this$props2.formatLabel,numberOfTicks=_this$props2.numberOfTicks,svg=_this$props2.svg,children=_this$props2.children,min=_this$props2.min,max=_this$props2.max;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 values=data.map(function(item,index){return xAccessor({item:item,index:index});});var extent=array.extent(values);var domain=scale===d3Scale.scaleBand?values:[min||extent[0],max||extent[1]];var x=this._getX(domain);var ticks=numberOfTicks?x.ticks(numberOfTicks):values;var extraProps={x:x,ticks:ticks,width:width,height:height,formatLabel:formatLabel};return _react.default.createElement(_View.default,{style:style},_react.default.createElement(_View.default,{style:{flexGrow:1},onLayout:function onLayout(event){return _this2._onLayout(event);}},_react.default.createElement(_Text.default,{style:{opacity:0,fontSize:svg.fontSize}},formatLabel(ticks[0],0)),height>0&&width>0&&_react.default.createElement(_reactNativeSvg.default,{style:{position:'absolute',top:0,left:0,height:height,width:width}},_react.default.createElement(_reactNativeSvg.G,null,_react.default.Children.map(children,function(child){return _react.default.cloneElement(child,extraProps);}),width>0&&ticks.map(function(value,index){var _ref=data[index]||{},_ref$svg=_ref.svg,valueSvg=_ref$svg===void 0?{}:_ref$svg;return _react.default.createElement(_reactNativeSvg.Text,(0,_extends2.default)({textAnchor:'middle',originX:x(value),alignmentBaseline:'hanging'},svg,valueSvg,{key:index,x:x(value)}),formatLabel(value,index));})))));}}]);return XAxis;}(_react.PureComponent);XAxis.propTypes={data:_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number,_propTypes.default.object])).isRequired,spacingInner:_propTypes.default.number,spacingOuter:_propTypes.default.number,formatLabel:_propTypes.default.func,contentInset:_propTypes.default.shape({left:_propTypes.default.number,right:_propTypes.default.number}),scale:_propTypes.default.oneOf([d3Scale.scaleTime,d3Scale.scaleLinear,d3Scale.scaleBand]),numberOfTicks:_propTypes.default.number,xAccessor:_propTypes.default.func,svg:_propTypes.default.object,min:_propTypes.default.any,max:_propTypes.default.any};XAxis.defaultProps={spacingInner:0.05,spacingOuter:0.05,contentInset:{},svg:{},xAccessor:function xAccessor(_ref2){var index=_ref2.index;return index;},scale:d3Scale.scaleLinear,formatLabel:function formatLabel(value){return value;}};var _default=XAxis;exports.default=_default;","map":{"version":3,"sources":["C:/Users/bluej/Desktop/2_2/searchGuide/searchGuide/node_modules/react-native-svg-charts/src/x-axis.js"],"names":["XAxis","state","width","height","event","nativeEvent","layout","setState","domain","props","scale","spacingInner","spacingOuter","contentInset","left","right","x","range","d3Scale","scaleBand","paddingInner","paddingOuter","value","bandwidth","style","data","xAccessor","formatLabel","numberOfTicks","svg","children","min","max","length","values","map","item","index","extent","array","_getX","ticks","extraProps","flexGrow","_onLayout","opacity","fontSize","position","top","React","Children","child","cloneElement","valueSvg","PureComponent","propTypes","PropTypes","arrayOf","oneOfType","number","object","isRequired","func","shape","oneOf","scaleTime","scaleLinear","any","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react'\nimport PropTypes from 'prop-types'\nimport { Text, View } from 'react-native'\nimport * as d3Scale from 'd3-scale'\nimport * as array from 'd3-array'\nimport Svg, { G, Text as SVGText } from 'react-native-svg'\n\nclass XAxis extends PureComponent {\n    state = {\n        width: 0,\n        height: 0,\n    }\n\n    _onLayout(event) {\n        const {\n            nativeEvent: {\n                layout: { width, height },\n            },\n        } = event\n\n        if (width !== this.state.width) {\n            this.setState({ width, height })\n        }\n    }\n\n    _getX(domain) {\n        const {\n            scale,\n            spacingInner,\n            spacingOuter,\n            contentInset: { left = 0, right = 0 },\n        } = this.props\n\n        const { width } = this.state\n\n        const x = scale()\n            .domain(domain)\n            .range([left, width - right])\n\n        if (scale === d3Scale.scaleBand) {\n            x.paddingInner([spacingInner]).paddingOuter([spacingOuter])\n\n            //add half a bar to center label\n            return (value) => x(value) + x.bandwidth() / 2\n        }\n\n        return x\n    }\n\n    render() {\n        const { style, scale, data, xAccessor, formatLabel, numberOfTicks, svg, children, min, max } = this.props\n\n        const { height, width } = this.state\n\n        if (data.length === 0) {\n            return <View style={style} />\n        }\n\n        const values = data.map((item, index) => xAccessor({ item, index }))\n        const extent = array.extent(values)\n        const domain = scale === d3Scale.scaleBand ? values : [min || extent[0], max || extent[1]]\n\n        const x = this._getX(domain)\n        const ticks = numberOfTicks ? x.ticks(numberOfTicks) : values\n\n        const extraProps = {\n            x,\n            ticks,\n            width,\n            height,\n            formatLabel,\n        }\n\n        return (\n            <View style={style}>\n                <View style={{ flexGrow: 1 }} onLayout={(event) => this._onLayout(event)}>\n                    {/*invisible text to allow for parent resizing*/}\n                    <Text style={{ opacity: 0, fontSize: svg.fontSize }}>{formatLabel(ticks[0], 0)}</Text>\n                    {height > 0 && width > 0 && (\n                        <Svg\n                            style={{\n                                position: 'absolute',\n                                top: 0,\n                                left: 0,\n                                height,\n                                width,\n                            }}\n                        >\n                            <G>\n                                {React.Children.map(children, (child) => {\n                                    return React.cloneElement(child, extraProps)\n                                })}\n                                {// don't render labels if width isn't measured yet,\n                                // causes rendering issues\n                                width > 0 &&\n                                    ticks.map((value, index) => {\n                                        const { svg: valueSvg = {} } = data[index] || {}\n\n                                        return (\n                                            <SVGText\n                                                textAnchor={'middle'}\n                                                originX={x(value)}\n                                                alignmentBaseline={'hanging'}\n                                                {...svg}\n                                                {...valueSvg}\n                                                key={index}\n                                                x={x(value)}\n                                            >\n                                                {formatLabel(value, index)}\n                                            </SVGText>\n                                        )\n                                    })}\n                            </G>\n                        </Svg>\n                    )}\n                </View>\n            </View>\n        )\n    }\n}\n\nXAxis.propTypes = {\n    data: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.object])).isRequired,\n    spacingInner: PropTypes.number,\n    spacingOuter: PropTypes.number,\n    formatLabel: PropTypes.func,\n    contentInset: PropTypes.shape({\n        left: PropTypes.number,\n        right: PropTypes.number,\n    }),\n    scale: PropTypes.oneOf([d3Scale.scaleTime, d3Scale.scaleLinear, d3Scale.scaleBand]),\n    numberOfTicks: PropTypes.number,\n    xAccessor: PropTypes.func,\n    svg: PropTypes.object,\n    min: PropTypes.any,\n    max: PropTypes.any,\n}\n\nXAxis.defaultProps = {\n    spacingInner: 0.05,\n    spacingOuter: 0.05,\n    contentInset: {},\n    svg: {},\n    xAccessor: ({ index }) => index,\n    scale: d3Scale.scaleLinear,\n    formatLabel: (value) => value,\n}\n\nexport default XAxis\n"]},"metadata":{},"sourceType":"script"}