@nivo/bullet
Version:
<a href="https://nivo.rocks"><img alt="nivo" src="https://raw.githubusercontent.com/plouc/nivo/master/nivo.png" width="216" height="68"/></a>
3 lines (2 loc) • 10.2 kB
JavaScript
import{motionDefaultProps as e,defaultMargin as r,useMotionConfig as o,useTheme as t,getColorScale as n,useDimensions as i,Container as a,SvgWrapper as l,ResponsiveWrapper as u}from"@nivo/core";import{animated as s,to as c,useTransition as h,useSpring as m}from"@react-spring/web";import{jsx as d,jsxs as f,Fragment as v}from"react/jsx-runtime";import{BasicTooltip as g,useTooltip as p}from"@nivo/tooltip";import*as y from"react";import{useMemo as x,createElement as C}from"react";import{Axis as k}from"@nivo/axes";import{useInheritedColor as M}from"@nivo/colors";import{createLinearScale as z}from"@nivo/scales";function w(){return w=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var o=arguments[r];for(var t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t])}return e},w.apply(this,arguments)}var b=function(e){var r=e.animatedProps,o=r.x,t=r.y,n=r.width,i=r.height,a=r.color,l=e.borderColor,u=e.borderWidth,h=e.data,m=e.onMouseEnter,f=e.onMouseMove,v=e.onMouseLeave,g=e.onClick;return d(s.rect,{x:o,y:t,width:c(n,(function(e){return Math.max(e,0)})),height:c(i,(function(e){return Math.max(e,0)})),fill:a,strokeWidth:u,stroke:l,onMouseMove:function(e){return f(h,e)},onMouseEnter:function(e){return m(h,e)},onMouseLeave:function(e){return v(h,e)},onClick:function(e){return g(h,e)}})},B={layout:"horizontal",reverse:!1,spacing:30,minValue:0,maxValue:"auto",axisPosition:"after",titlePosition:"before",titleAlign:"middle",titleRotation:0,titleOffsetX:0,titleOffsetY:0,rangeComponent:b,rangeColors:"seq:cool",measureComponent:b,measureColors:"seq:red_purple",markers:[],markerComponent:function(e){var r=e.animatedProps,o=r.color,t=r.transform,n=r.x,i=r.y1,a=r.y2,l=e.data,u=e.onMouseEnter,c=e.onMouseMove,h=e.onMouseLeave,m=e.onClick;return d(s.line,{transform:t,x1:n,x2:n,y1:i,y2:a,fill:"none",stroke:o,strokeWidth:"5",onMouseMove:function(e){return c(l,e)},onMouseEnter:function(e){return u(l,e)},onMouseLeave:function(e){return h(l,e)},onClick:function(e){return m(l,e)}})},markerColors:"seq:red_purple",rangeBorderWidth:0,rangeBorderColor:{from:"color"},measureSize:.4,measureBorderWidth:0,measureBorderColor:{from:"color"},markerSize:.6,isInteractive:!0,tooltip:function(e){var r=e.color,o=e.v0,t=e.v1;return d(g,{id:t?f("span",{children:[d("strong",{children:o})," to ",d("strong",{children:t})]}):d("strong",{children:o}),enableChip:!0,color:r})},animate:e.animate,motionConfig:e.config,margin:r,role:"img"},P=function(e,r,o,t,n){void 0===n&&(n=!1);var i=r.domain(),a=i[0],l=i[1];return[].concat(e,["measures"===t||e.includes(l)?0:l]).filter((function(e){return 0!==e})).sort((function(e,r){return e-r})).reduce((function(e,r,t){var i,l=e.slice(-1)[0],u=null!=(i=null==l?void 0:l.v1)?i:a,s=!0===n?u+(r-u)/2:r;return[].concat(e,[{index:t,v0:u,v1:r,color:o("sequential"===o.type?s:t)}])}),[])},W=["position"],O=function(e){var r=e.scale,t=e.layout,n=e.reverse,i=e.markers,a=e.height,l=e.markerSize,u=e.component,s=e.onMouseEnter,c=e.onMouseLeave,m=e.onClick,f=x((function(){return function(e){var r=e.layout,o=e.reverse,t=e.scale,n=e.height,i=e.markerSize;return"horizontal"===r?function(e){return{x:t(e.value),y:n/2,size:i,rotation:!0===o?180:0}}:function(e){return{x:n/2,y:t(e.value),size:i,rotation:!0===o?270:90}}}({layout:t,reverse:n,scale:r,height:a,markerSize:l})}),[t,n,r,a,l]),g=o(),p=g.animate,C=g.config,k=h(i.map((function(e){return w({},e,{position:f(e)})})),{keys:function(e){return""+e.index},enter:function(e){var r=e.color,o=e.position;return{color:r,transform:"rotate("+o.rotation+", "+o.x+", "+o.y+")",x:o.x,y1:o.y-o.size/2,y2:o.y+o.size/2}},update:function(e){var r=e.color,o=e.position;return{color:r,transform:"rotate("+o.rotation+", "+o.x+", "+o.y+")",x:o.x,y1:o.y-o.size/2,y2:o.y+o.size/2}},config:C,immediate:!p});return d(v,{children:k((function(e,r){var o=r.position,t=function(e,r){if(null==e)return{};var o,t,n={},i=Object.keys(e);for(t=0;t<i.length;t++)o=i[t],r.indexOf(o)>=0||(n[o]=e[o]);return n}(r,W);return y.createElement(u,w({key:t.index},t,o,{animatedProps:e,data:t,onMouseEnter:s,onMouseMove:s,onMouseLeave:c,onClick:m}))}))})},E=function(e){var r=e.animatedProps,n=e.data,i=e.layout,a=e.y,l=e.borderColor,u=e.borderWidth,m=e.component,f=e.reverse,v=e.scale,g=e.height,p=e.onMouseEnter,y=e.onMouseLeave,k=e.onClick,z=x((function(){return function(e){var r=e.data,o=function(e){var r=e.layout,o=e.reverse,t=e.scale,n=e.height;return"horizontal"===r?!0===o?function(e){var r=t(e.v1);return{x:r,y:0,width:t(e.v0)-r,height:n}}:function(e){var r=t(e.v0);return{x:r,y:0,width:t(e.v1)-r,height:n}}:!0===o?function(e){var r=t(e.v0),o=t(e.v1)-r;return{x:0,y:r,width:n,height:o}}:function(e){var r=t(e.v1),o=t(e.v0)-r;return{x:0,y:r,width:n,height:o}}}({layout:e.layout,reverse:e.reverse,scale:e.scale,height:e.height});return r.map((function(e){return w({data:e},o(e))}))}({data:n,layout:i,reverse:f,scale:v,height:g})}),[n,i,f,v,g]),b=t(),B=M(l,b),P=function(e){return"translate("+("horizontal"===i?0:e)+","+("horizontal"===i?e:0)+")"},W=r?c(r.measuresY,P):P(a),O=o(),E=O.animate,L=O.config,S=h(z,{keys:function(e){return""+e.data.index},enter:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height,color:e.data.color}},update:function(e){return{x:e.x,y:e.y,width:e.width,height:e.height,color:e.data.color}},config:L,immediate:!E});return d(s.g,{transform:W,children:S((function(e,r){return C(m,{key:r.data.index,index:r.data.index,animatedProps:e,data:r.data,x:e.x.get(),y:e.y.get(),borderColor:B(r.data),borderWidth:u,width:c(e.width,(function(e){return Math.max(e,0)})).get(),height:c(e.height,(function(e){return Math.max(e,0)})).get(),color:e.color.get(),onMouseEnter:p,onMouseMove:p,onMouseLeave:y,onClick:k})}))})},L=function(e){var r,i=e.id,a=e.scale,l=e.layout,u=e.reverse,c=e.axisPosition,h=e.x,v=e.y,g=e.width,y=e.height,C=e.title,M=void 0===C?i:C,z=e.titlePosition,b=e.titleAlign,B=e.titleOffsetX,W=e.titleOffsetY,L=e.titleRotation,S=e.tooltip,V=e.rangeBorderColor,R=e.rangeBorderWidth,Y=e.rangeComponent,j=e.rangeColors,q=e.ranges,A=e.measureBorderColor,H=e.measureBorderWidth,X=e.measureComponent,I=e.measureHeight,T=e.measureColors,_=e.measures,F=e.markerComponent,D=e.markerColors,G=e.markerHeight,J=e.markers,K=void 0===J?[]:J,N=e.onRangeClick,Q=e.onMeasureClick,U=e.onMarkerClick,Z=t(),$=p(),ee=$.showTooltipFromEvent,re=$.hideTooltip,oe=x((function(){var e=n(j,a,!0);return P(q,a,e,"range")}),[j,q,a]),te=x((function(){var e=n(T,a);return P(_,a,e,"measures")}),[T,_,a]),ne=x((function(){var e=n(D,a);return K.map((function(r,o){return{value:r,index:o,color:e("sequential"===e.type?r:o)}}))}),[D,K,a]),ie=S,ae=d(E,{data:oe,scale:a,layout:l,reverse:u,x:0,y:0,width:g,height:y,component:Y,borderColor:V,borderWidth:R,onMouseEnter:function(e,r){ee(d(ie,{color:e.color,v0:e.v0,v1:e.v1}),r)},onMouseLeave:re,onClick:function(e,r){null==N||N(w({id:i},e),r)}}),le=d(O,{markers:ne,scale:a,layout:l,reverse:u,height:y,markerSize:G,component:F,onMouseEnter:function(e,r){ee(d(ie,{color:e.color,v0:e.value}),r)},onMouseLeave:re,onClick:function(e,r){null==U||U(w({id:i},e),r)}}),ue=d("g",{transform:"translate("+("vertical"===l&&"after"===c?y:0)+","+("horizontal"===l&&"after"===c?y:0)+")",children:d(k,{axis:"horizontal"===l?"x":"y",length:"horizontal"===l?g:y,scale:a,ticksPosition:c})}),se=d("g",{transform:"translate("+("horizontal"===l?"before"===z?B:g+B:y/2+B)+","+("horizontal"===l?y/2+W:"before"===z?W:g+W)+") rotate("+L+")",children:"string"==typeof M?d("text",{style:w({},null==Z||null==(r=Z.labels)?void 0:r.text,{dominantBaseline:"central",textAnchor:b}),children:M}):M}),ce=o(),he=ce.animate,me=ce.config,de=m({measuresY:(y-I)/2,transform:"translate("+h+","+v+")",config:me,immediate:!he});return f(s.g,{transform:de.transform,children:[ae,d(E,{animatedProps:de,data:te,scale:a,layout:l,reverse:u,x:0,y:0,width:g,height:I,component:X,borderColor:A,borderWidth:H,onMouseEnter:function(e,r){ee(d(ie,{color:e.color,v0:e.v1}),r)},onMouseLeave:re,onClick:function(e,r){null==Q||Q(w({id:i},e),r)}}),ue,le,se]})},S=function(e){var r=w({},B,e),o=r.data,t=r.layout,n=r.spacing,u=r.measureSize,s=r.markerSize,c=r.reverse,h=r.axisPosition,m=r.minValue,f=r.maxValue,v=r.margin,g=r.width,p=r.height,y=r.titlePosition,C=r.titleAlign,k=r.titleOffsetX,M=r.titleOffsetY,b=r.titleRotation,P=r.rangeBorderColor,W=r.rangeBorderWidth,O=r.rangeComponent,E=r.rangeColors,S=r.measureBorderColor,V=r.measureBorderWidth,R=r.measureComponent,Y=r.measureColors,j=r.markerComponent,q=r.markerColors,A=r.theme,H=r.tooltip,X=void 0===H?B.tooltip:H,I=r.animate,T=r.motionConfig,_=r.isInteractive,F=r.onRangeClick,D=r.onMeasureClick,G=r.onMarkerClick,J=r.role,K=i(g,p,v),N=K.margin,Q=K.innerWidth,U=K.innerHeight,Z="horizontal"===t?(U-n*(o.length-1))/o.length:(Q-n*(o.length-1))/o.length,$=Z*u,ee=Z*s,re=function(e,r){var o=r.layout,t=r.maxValue,n=r.minValue,i=r.reverse,a=r.height,l=r.width;return x((function(){return e.map((function(e){var r,u=[].concat(e.ranges,e.measures,null!=(r=e.markers)?r:[]),s=null!=t?t:Math.max.apply(Math,u),c=null!=n?n:Math.min.apply(Math,u);return w({},e,{scale:z({clamp:!0,min:c,max:s,type:"linear"},{all:u,max:s,min:c},"horizontal"===o?l:a,"horizontal"===o?i?"y":"x":i?"x":"y")})}))}),[e,a,o,t,n,i,l])}(o,{height:U,layout:t,maxValue:"auto"===f?void 0:f,minValue:"auto"===m?void 0:m,reverse:c,width:Q});return d(a,{isInteractive:_,theme:A,animate:I,motionConfig:T,children:d(l,{width:g,height:p,margin:N,role:J,children:re.map((function(e,r){return d(L,w({},e,{layout:t,reverse:c,x:"vertical"===t?Z*r+n*r:0,y:"horizontal"===t?Z*r+n*r:0,width:Q,height:Z,titlePosition:y,titleAlign:C,titleOffsetX:k,titleOffsetY:M,titleRotation:b,measureHeight:$,markerHeight:ee,rangeBorderColor:P,rangeBorderWidth:W,rangeComponent:O,rangeColors:E,measureBorderColor:S,measureBorderWidth:V,measureComponent:R,measureColors:Y,markerComponent:j,markerColors:q,axisPosition:h,onRangeClick:F,onMeasureClick:D,onMarkerClick:G,tooltip:X}),e.id)}))})})},V=function(e){return d(u,{children:function(r){var o=r.width,t=r.height;return d(S,w({width:o,height:t},e))}})};export{S as Bullet,L as BulletItem,V as ResponsiveBullet,B as defaultProps};
//# sourceMappingURL=nivo-bullet.es.js.map