UNPKG

@data-ui/radial-chart

Version:

A package for radial-axis visualizations https://williaster.github.io/data-ui

1 lines 1.97 kB
"use strict";exports.__esModule=!0,exports.default=RadialChart,exports.propTypes=void 0;var _group=require("@vx/group"),_propTypes=_interopRequireDefault(require("prop-types")),_react=_interopRequireDefault(require("react")),_shared=require("@data-ui/shared");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var propTypes=_extends({},_shared.withTooltipPropTypes,{ariaLabel:_propTypes.default.string.isRequired,children:_propTypes.default.node.isRequired,width:_propTypes.default.number.isRequired,height:_propTypes.default.number.isRequired,margin:_propTypes.default.shape({top:_propTypes.default.number,right:_propTypes.default.number,bottom:_propTypes.default.number,left:_propTypes.default.number}),renderTooltip:_propTypes.default.func});exports.propTypes=propTypes;var defaultProps={margin:{top:10,left:10,right:10,bottom:10},renderTooltip:null},MIN_SIZE=10;function RadialChart(a){var b=a.renderTooltip;if(b)return _react.default.createElement(_shared.WithTooltip,{renderTooltip:b},_react.default.createElement(RadialChart,_extends({},a,{renderTooltip:null})));var c=a.ariaLabel,d=a.children,e=a.width,f=a.height,g=a.margin,h=a.onMouseMove,i=a.onMouseLeave,j=_extends({},defaultProps.margin,g),k=e-j.left-j.right,l=f-j.top-j.bottom,m=Math.min(k,l)/2;return k<MIN_SIZE||l<MIN_SIZE?null:_react.default.createElement("svg",{"aria-label":c,role:"img",width:e,height:f},_react.default.createElement(_group.Group,{top:f/2-j.top,left:e/2+g.left},_react.default.Children.map(d,function(a){return _react.default.cloneElement(a,{onMouseMove:a.props.onMouseMove||h,onMouseLeave:a.props.onMouseLeave||i,radius:m})})))}RadialChart.propTypes=propTypes,RadialChart.defaultProps=defaultProps,RadialChart.displayName="RadialChart";