@nivo/bar
Version:
3 lines (2 loc) • 27.9 kB
JavaScript
import{useMemo as e,createElement as t,useCallback as a,useState as i,forwardRef as n,Fragment as l,useRef as r,useEffect as o}from"react";import{Axes as d,Grid as u,renderGridLinesToCanvas as s,renderAxesToCanvas as c}from"@nivo/axes";import{getPropertyAccessor as h,usePropertyAccessor as f,useValueFormatter as b,Container as g,useMotionConfig as v,useDimensions as m,bindDefs as p,CartesianMarkers as y,SvgWrapper as x,getRelativeCursor as S,mergeRefs as k,isCursorInRect as w,ResponsiveWrapper as L}from"@nivo/core";import{animated as C,to as W,useTransition as M}from"@react-spring/web";import{useAnnotations as B,Annotation as R,useComputedAnnotations as O,renderAnnotationsToCanvas as I}from"@nivo/annotations";import{jsx as V,Fragment as T,jsxs as H}from"react/jsx-runtime";import{BoxLegendSvg as P,renderLegendToCanvas as E}from"@nivo/legends";import{useOrdinalColorScale as F,useInheritedColor as z}from"@nivo/colors";import{useTheme as D}from"@nivo/theming";import{useTooltip as A,BasicTooltip as X}from"@nivo/tooltip";import{Text as Y,drawCanvasText as G,setCanvasFont as N}from"@nivo/text";import{roundedRect as j}from"@nivo/canvas";import{computeScale as K}from"@nivo/scales";import{stack as _,stackOffsetDiverging as q}from"d3-shape";import J from"lodash/uniqBy.js";function Q(){return Q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var i in a)({}).hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},Q.apply(null,arguments)}function U(e,t){if(null==e)return{};var a={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(-1!==t.indexOf(i))continue;a[i]=e[i]}return a}var Z,$=function(e){var t=e.bars,a=e.annotations,i=B({data:t,annotations:a,getPosition:function(e){return{x:e.x+e.width/2,y:e.y+e.height/2}},getDimensions:function(e){var t=e.height,a=e.width;return{width:a,height:t,size:Math.max(a,t)}}});return V(T,{children:i.map((function(e,t){return V(R,Q({},e),t)}))})},ee=function(e){var t=e.width,a=e.height,i=e.legends,n=e.toggleSerie;return V(T,{children:i.map((function(e,i){var l,r=e[0],o=e[1];return V(P,Q({},r,{containerWidth:t,containerHeight:a,data:null!=(l=r.data)?l:o,toggleSerie:r.toggleSerie&&"keys"===r.dataFrom?n:void 0}),i)}))})},te=["data"],ae=function(i){var n,l=i.bar,r=l.data,o=U(l,te),d=i.style,u=d.borderColor,s=d.color,c=d.height,h=d.labelColor,f=d.labelOpacity,b=d.labelX,g=d.labelY,v=d.transform,m=d.width,p=d.textAnchor,y=i.borderRadius,x=i.borderWidth,S=i.label,k=i.shouldRenderLabel,w=i.isInteractive,L=i.onClick,M=i.onMouseEnter,B=i.onMouseLeave,R=i.tooltip,O=i.isFocusable,I=i.ariaLabel,T=i.ariaLabelledBy,P=i.ariaDescribedBy,E=i.ariaDisabled,F=i.ariaHidden,z=D(),X=A(),G=X.showTooltipFromEvent,N=X.showTooltipAt,j=X.hideTooltip,K=e((function(){return function(){return t(R,Q({},o,r))}}),[R,o,r]),_=a((function(e){null==L||L(Q({color:o.color},r),e)}),[o,r,L]),q=a((function(e){return G(K(),e)}),[G,K]),J=a((function(e){null==M||M(r,e),G(K(),e)}),[r,M,G,K]),Z=a((function(e){null==B||B(r,e),j()}),[r,j,B]),$=a((function(){N(K(),[o.absX+o.width/2,o.absY])}),[N,K,o]),ee=a((function(){j()}),[j]);return H(C.g,{transform:v,children:[V(C.rect,{width:W(m,(function(e){return Math.max(e,0)})),height:W(c,(function(e){return Math.max(e,0)})),rx:y,ry:y,fill:null!=(n=r.fill)?n:s,strokeWidth:x,stroke:u,focusable:O,tabIndex:O?0:void 0,"aria-label":I?I(r):void 0,"aria-labelledby":T?T(r):void 0,"aria-describedby":P?P(r):void 0,"aria-disabled":E?E(r):void 0,"aria-hidden":F?F(r):void 0,onMouseEnter:w?J:void 0,onMouseMove:w?q:void 0,onMouseLeave:w?Z:void 0,onClick:w?_:void 0,onFocus:w&&O?$:void 0,onBlur:w&&O?ee:void 0,"data-testid":"bar.item."+r.id+"."+r.index}),k&&V(Y,{x:b,y:g,textAnchor:p,dominantBaseline:"central",fillOpacity:f,style:Q({},z.labels.text,{pointerEvents:"none",fill:h}),children:S})]})},ie=["color","label"],ne=function(e){var t=e.color,a=e.label,i=U(e,ie);return V(X,{id:a,value:i.formattedValue,enableChip:!0,color:t})},le={indexBy:"id",keys:["value"],groupMode:"stacked",layout:"vertical",valueScale:{type:"linear",nice:!0,round:!1},indexScale:{type:"band",round:!1},padding:.1,innerPadding:0,enableGridX:!1,enableGridY:!0,enableLabel:!0,label:"formattedValue",labelPosition:"middle",labelOffset:0,labelSkipWidth:0,labelSkipHeight:0,labelTextColor:{theme:"labels.text.fill"},colorBy:"id",colors:{scheme:"nivo"},borderRadius:0,borderWidth:0,borderColor:{from:"color"},isInteractive:!0,tooltip:ne,tooltipLabel:function(e){return e.id+" - "+e.indexValue},legends:[],initialHiddenIds:[],annotations:[],enableTotals:!1,totalsOffset:10},re=Q({},le,{layers:["grid","axes","bars","totals","markers","legends","annotations"],axisTop:null,axisRight:null,axisBottom:{},axisLeft:{},barComponent:ae,defs:[],fill:[],markers:[],animate:!0,animateOnMount:!1,motionConfig:"default",role:"img",isFocusable:!1}),oe=Q({},le,{layers:["grid","axes","bars","totals","legends","annotations"],axisTop:null,axisRight:null,axisBottom:{},axisLeft:{},renderBar:function(e,t){var a=t.bar,i=a.color,n=a.height,l=a.width,r=a.x,o=a.y,d=t.borderColor,u=t.borderRadius,s=t.borderWidth,c=t.label,h=t.shouldRenderLabel,f=t.labelStyle,b=t.labelX,g=t.labelY,v=t.textAnchor;e.fillStyle=i,s>0&&(e.strokeStyle=d,e.lineWidth=s),e.beginPath(),j(e,r,o,l,n,Math.min(u,n)),e.fill(),s>0&&e.stroke(),h&&(e.textBaseline="middle",e.textAlign="middle"===v?"center":v,G(e,f,c,r+b,o+g))},pixelRatio:"undefined"!=typeof window&&null!=(Z=window.devicePixelRatio)?Z:1}),de=function(e,t,a,i,n,l){return K(i,{all:e.map(t),min:0,max:0},n,l).padding(a)},ue=function(e,t){return e.map((function(e){return Q({},t.reduce((function(e,t){return e[t]=null,e}),{}),e)}))},se=function(e){return Object.keys(e).reduce((function(t,a){return e[a]&&(t[a]=e[a]),t}),{})},ce=function(e){return[e,Number(e)]};function he(e,t,a,i){return void 0===e&&(e=le.layout),void 0===a&&(a=le.labelPosition),void 0===i&&(i=le.labelOffset),function(n,l){var r=i*(t?-1:1);if("horizontal"===e){var o=n/2;return"start"===a?o=t?n:0:"end"===a&&(o=t?0:n),{labelX:o+r,labelY:l/2,textAnchor:"middle"===a?"middle":t?"end":"start"}}var d=l/2;return"start"===a?d=t?0:l:"end"===a&&(d=t?l:0),{labelX:n/2,labelY:d-r,textAnchor:"middle"}}}var fe=["layout","width","height","padding","innerPadding","valueScale","indexScale","hiddenIds"],be=function(e,t){return e>t},ge=function(e,t){return e<t},ve=function(e,t){return Array.from(" ".repeat(t-e),(function(t,a){return e+a}))},me=function(e){return be(e,0)?0:e},pe=function(e,t,a,i){var n=e.data,l=e.formatValue,r=e.getColor,o=e.getIndex,d=e.getTooltipLabel,u=e.innerPadding,s=void 0===u?0:u,c=e.keys,h=e.xScale,f=e.yScale,b=e.margin,g=a?ge:be,v=n.map(se),m=[];return c.forEach((function(e,a){return ve(0,h.domain().length).forEach((function(u){var c,p,y,x=ce(n[u][e]),S=x[0],k=x[1],w=o(n[u]),L=(null!=(c=h(w))?c:0)+t*a+s*a,C=g(p=k,0)?null!=(y=f(p))?y:0:i,W=function(e,t){var a;return g(e,0)?i-t:(null!=(a=f(e))?a:0)-i}(k,C),M={id:e,value:null===S?S:k,formattedValue:l(k),hidden:!1,index:u,indexValue:w,data:v[u]};m.push({key:e+"."+M.indexValue,index:m.length,data:M,x:L,y:C,absX:b.left+L,absY:b.top+C,width:t,height:W,color:r(M),label:d(M)})}))})),m},ye=function(e,t,a,i){var n=e.data,l=e.formatValue,r=e.getIndex,o=e.getColor,d=e.getTooltipLabel,u=e.keys,s=e.innerPadding,c=void 0===s?0:s,h=e.xScale,f=e.yScale,b=e.margin,g=a?ge:be,v=n.map(se),m=[];return u.forEach((function(e,a){return ve(0,f.domain().length).forEach((function(u){var s,p,y,x=ce(n[u][e]),S=x[0],k=x[1],w=r(n[u]),L=g(p=k,0)?i:null!=(y=h(p))?y:0,C=(null!=(s=f(w))?s:0)+t*a+c*a,W=function(e,t){var a;return g(e,0)?(null!=(a=h(e))?a:0)-i:i-t}(k,L),M={id:e,value:null===S?S:k,formattedValue:l(k),hidden:!1,index:u,indexValue:w,data:v[u]};m.push({key:e+"."+M.indexValue,index:m.length,data:M,x:L,y:C,absX:b.left+L,absY:b.top+C,width:W,height:t,color:o(M),label:d(M)})}))})),m},xe=function(e){var t,a,i,n=e.layout,l=e.width,r=e.height,o=e.padding,d=void 0===o?0:o,u=e.innerPadding,s=void 0===u?0:u,c=e.valueScale,h=e.indexScale,f=e.hiddenIds,b=void 0===f?[]:f,g=U(e,fe),v=g.keys.filter((function(e){return!b.includes(e)})),m=ue(g.data,v),p="vertical"===n?["y","x",l]:["x","y",r],y=p[0],x=p[1],S=p[2],k=de(m,g.getIndex,d,h,S,x),w="auto"===c.min?me:function(e){return e},L=m.reduce((function(e,t){return[].concat(e,v.map((function(e){return t[e]})))}),[]).filter(Boolean),C=w(Math.min.apply(Math,L)),W=(i=Math.max.apply(Math,L),isFinite(i)?i:0),M=K(c,{all:L,min:C,max:W},"x"===y?l:r,y),B="vertical"===n?[k,M]:[M,k],R=B[0],O=B[1],I=(k.bandwidth()-s*(v.length-1))/v.length,V=[Q({},g,{data:m,keys:v,innerPadding:s,xScale:R,yScale:O}),I,null!=(t=c.reverse)&&t,null!=(a=M(0))?a:0];return{xScale:R,yScale:O,bars:I>0?"vertical"===n?pe.apply(void 0,V):ye.apply(void 0,V):[]}},Se=["data","layout","width","height","padding","valueScale","indexScale","hiddenIds"],ke=function(e){var t;return e.some(Array.isArray)?ke((t=[]).concat.apply(t,e)):e},we=function(e,t,a){var i=e.formatValue,n=e.getColor,l=e.getIndex,r=e.getTooltipLabel,o=e.innerPadding,d=e.stackedData,u=e.xScale,s=e.yScale,c=e.margin,h=[];return d.forEach((function(e){return u.domain().forEach((function(d,f){var b,g,v=e[f],m=null!=(b=u(l(v.data)))?b:0,p=(null!=(g=function(e){return s(e[a?0:1])}(v))?g:0)+.5*o,y=function(e,t){var i;return(null!=(i=s(e[a?1:0]))?i:0)-t}(v,p)-o,x=ce(v.data[e.key]),S=x[0],k=x[1],w={id:e.key,value:null===S?S:k,formattedValue:i(k),hidden:!1,index:f,indexValue:d,data:se(v.data)};h.push({key:e.key+"."+d,index:h.length,data:w,x:m,y:p,absX:c.left+m,absY:c.top+p,width:t,height:y,color:n(w),label:r(w)})}))})),h},Le=function(e,t,a){var i=e.formatValue,n=e.getColor,l=e.getIndex,r=e.getTooltipLabel,o=e.innerPadding,d=e.stackedData,u=e.xScale,s=e.yScale,c=e.margin,h=[];return d.forEach((function(e){return s.domain().forEach((function(d,f){var b,g,v=e[f],m=null!=(b=s(l(v.data)))?b:0,p=(null!=(g=function(e){return u(e[a?1:0])}(v))?g:0)+.5*o,y=function(e,t){var i;return(null!=(i=u(e[a?0:1]))?i:0)-t}(v,p)-o,x=ce(v.data[e.key]),S=x[0],k=x[1],w={id:e.key,value:null===S?S:k,formattedValue:i(k),hidden:!1,index:f,indexValue:d,data:se(v.data)};h.push({key:e.key+"."+d,index:h.length,data:w,x:p,y:m,absX:c.left+p,absY:c.top+m,width:y,height:t,color:n(w),label:r(w)})}))})),h},Ce=function(e){var t,a,i=e.data,n=e.layout,l=e.width,r=e.height,o=e.padding,d=void 0===o?0:o,u=e.valueScale,s=e.indexScale,c=e.hiddenIds,h=void 0===c?[]:c,f=U(e,Se),b=f.keys.filter((function(e){return!h.includes(e)})),g=_().keys(b).offset(q)(ue(i,b)),v="vertical"===n?["y","x",l]:["x","y",r],m=v[0],p=v[1],y=v[2],x=de(i,f.getIndex,d,s,y,p),S=(a=ke(g),"log"===u.type?a.filter((function(e){return 0!==e})):a),k=Math.min.apply(Math,S),w=Math.max.apply(Math,S),L=K(u,{all:S,min:k,max:w},"x"===m?l:r,m),C="vertical"===n?[x,L]:[L,x],W=C[0],M=C[1],B=f.innerPadding>0?f.innerPadding:0,R=x.bandwidth(),O=[Q({},f,{innerPadding:B,stackedData:g,xScale:W,yScale:M}),R,null!=(t=u.reverse)&&t];return{xScale:W,yScale:M,bars:R>0?"vertical"===n?we.apply(void 0,O):Le.apply(void 0,O):[]}},We=function(e){var t=e.bars,a=e.direction,i=e.from,n=e.groupMode,l=e.layout,r=e.legendLabel,o=e.reverse,d=h(null!=r?r:"indexes"===i?"indexValue":"id");return"indexes"===i?function(e,t,a){var i=J(e.map((function(e){var t,i;return{id:null!=(t=e.data.indexValue)?t:"",label:a(e.data),hidden:e.data.hidden,color:null!=(i=e.color)?i:"#000"}})),(function(e){return e.id}));return"horizontal"===t&&i.reverse(),i}(t,l,d):function(e,t,a,i,n,l){var r=J(e.map((function(e){var t;return{id:e.data.id,label:l(e.data),hidden:e.data.hidden,color:null!=(t=e.color)?t:"#000"}})),(function(e){return e.id}));return("vertical"===t&&"stacked"===i&&"column"===a&&!0!==n||"horizontal"===t&&"stacked"===i&&!0===n)&&r.reverse(),r}(t,l,a,n,o,d)},Me=function(e,t,a){var i=e.get(t)||0;e.set(t,i+a)},Be=function(e,t,a){var i=e.get(t)||0;e.set(t,i+(a>0?a:0))},Re=function(e,t,a){var i=e.get(t)||0;e.set(t,Math.max(i,Number(a)))},Oe=function(e,t){var a=e.get(t)||0;e.set(t,a+1)},Ie=function(t){var n,l=t.indexBy,r=void 0===l?le.indexBy:l,o=t.keys,d=void 0===o?le.keys:o,u=t.label,s=void 0===u?le.label:u,c=t.tooltipLabel,h=void 0===c?le.tooltipLabel:c,g=t.valueFormat,v=t.colors,m=void 0===v?le.colors:v,p=t.colorBy,y=void 0===p?le.colorBy:p,x=t.borderColor,S=void 0===x?le.borderColor:x,k=t.labelTextColor,w=void 0===k?le.labelTextColor:k,L=t.groupMode,C=void 0===L?le.groupMode:L,W=t.layout,M=void 0===W?le.layout:W,B=t.data,R=t.margin,O=t.width,I=t.height,V=t.padding,T=void 0===V?le.padding:V,H=t.innerPadding,P=void 0===H?le.innerPadding:H,E=t.valueScale,A=void 0===E?le.valueScale:E,X=t.indexScale,Y=void 0===X?le.indexScale:X,G=t.initialHiddenIds,N=void 0===G?le.initialHiddenIds:G,j=t.enableLabel,K=void 0===j?le.enableLabel:j,_=t.labelSkipWidth,q=void 0===_?le.labelSkipWidth:_,J=t.labelSkipHeight,U=void 0===J?le.labelSkipHeight:J,Z=t.legends,$=void 0===Z?le.legends:Z,ee=t.legendLabel,te=t.totalsOffset,ae=void 0===te?le.totalsOffset:te,ie=i(null!=N?N:[]),ne=ie[0],re=ie[1],oe=a((function(e){re((function(t){return t.indexOf(e)>-1?t.filter((function(t){return t!==e})):[].concat(t,[e])}))}),[]),de=f(r),ue=f(s),se=f(h),ce=b(g),he=D(),fe=F(m,y),be=z(S,he),ge=z(w,he),ve=("grouped"===C?xe:Ce)({layout:M,data:B,getIndex:de,keys:d,width:O,height:I,getColor:fe,padding:T,innerPadding:P,valueScale:A,indexScale:Y,hiddenIds:ne,formatValue:ce,getTooltipLabel:se,margin:R}),me=ve.bars,pe=ve.xScale,ye=ve.yScale,Se=e((function(){return me.filter((function(e){return null!==e.data.value})).map((function(e,t){return Q({},e,{index:t})}))}),[me]),ke=a((function(e){var t=e.width,a=e.height;return!!K&&(!(q>0&&t<q)&&!(U>0&&a<U))}),[K,q,U]),we=e((function(){return d.map((function(e){var t=me.find((function(t){return t.data.id===e}));return Q({},t,{data:Q({id:e},null==t?void 0:t.data,{hidden:ne.includes(e)})})}))}),[ne,d,me]),Le=null!=(n=A.reverse)&&n,Ie=e((function(){return $.map((function(e){return[e,We({bars:"keys"===e.dataFrom?we:me,direction:e.direction,from:e.dataFrom,groupMode:C,layout:M,legendLabel:ee,reverse:Le})]}))}),[$,we,me,C,M,ee,Le]),Ve=e((function(){return function(e,t,a,i,n,l,r){void 0===i&&(i=le.layout),void 0===n&&(n=le.groupMode);var o=[];if(0===e.length)return o;var d=new Map,u=e[0].width,s=e[0].height;if("stacked"===n){var c=new Map;e.forEach((function(e){var t=e.data,a=t.indexValue,i=t.value;Me(d,a,Number(i)),Be(c,a,Number(i))})),c.forEach((function(e,n){var c,h,f,b=d.get(n)||0;"vertical"===i?(c=t(n),h=a(e),f=a(e/2)):(c=t(e),h=a(n),f=t(e/2)),c+="vertical"===i?u/2:l,h+="vertical"===i?-l:s/2,o.push({key:"total_"+n,x:c,y:h,value:b,formattedValue:r(b),animationOffset:f})}))}else if("grouped"===n){var h=new Map,f=new Map;e.forEach((function(e){var t=e.data,a=t.indexValue,i=t.value;Me(d,a,Number(i)),Re(h,a,Number(i)),Oe(f,a)})),h.forEach((function(e,n){var c,h,b,g=d.get(n)||0,v=f.get(n);"vertical"===i?(c=t(n),h=a(e),b=a(e/2)):(c=t(e),h=a(n),b=t(e/2)),c+="vertical"===i?v*u/2:l,h+="vertical"===i?-l:v*s/2,o.push({key:"total_"+n,x:c,y:h,value:g,formattedValue:r(g),animationOffset:b})}))}return o}(me,pe,ye,M,C,ae,ce)}),[me,pe,ye,M,C,ae,ce]);return{bars:me,barsWithValue:Se,xScale:pe,yScale:ye,getIndex:de,getLabel:ue,getTooltipLabel:se,formatValue:ce,getColor:fe,getBorderColor:be,getLabelColor:ge,shouldRenderBarLabel:ke,hiddenIds:ne,toggleSerie:oe,legendsWithData:Ie,barTotals:Ve}},Ve=function(e){var t=e.data,a=e.springConfig,i=e.animate,n=e.layout,l=void 0===n?re.layout:n,r=D();return M(t,{keys:function(e){return e.key},from:function(e){return{x:"vertical"===l?e.x:e.animationOffset,y:"vertical"===l?e.animationOffset:e.y,labelOpacity:0}},enter:function(e){return{x:e.x,y:e.y,labelOpacity:1}},update:function(e){return{x:e.x,y:e.y,labelOpacity:1}},leave:function(e){return{x:"vertical"===l?e.x:e.animationOffset,y:"vertical"===l?e.animationOffset:e.y,labelOpacity:0}},config:a,immediate:!i,initial:i?void 0:null})((function(e,t){return V(C.text,{x:e.x,y:e.y,fillOpacity:e.labelOpacity,style:Q({},r.labels.text,{pointerEvents:"none"}),fontWeight:"bold",fontSize:r.labels.text.fontSize,fontFamily:r.labels.text.fontFamily,textAnchor:"vertical"===l?"middle":"start",alignmentBaseline:"vertical"===l?"alphabetic":"middle",children:t.formattedValue},t.key)}))},Te=["isInteractive","animate","motionConfig","theme","renderWrapper"],He=function(a){var i,n=a.data,r=a.indexBy,o=a.keys,s=a.margin,c=a.width,h=a.height,f=a.groupMode,b=a.layout,g=a.valueScale,S=a.indexScale,k=a.padding,w=a.innerPadding,L=a.axisTop,C=a.axisRight,W=a.axisBottom,B=void 0===W?re.axisBottom:W,R=a.axisLeft,O=void 0===R?re.axisLeft:R,I=a.enableGridX,T=void 0===I?re.enableGridX:I,H=a.enableGridY,P=void 0===H?re.enableGridY:H,E=a.gridXValues,F=a.gridYValues,z=a.layers,D=void 0===z?re.layers:z,A=a.barComponent,X=void 0===A?re.barComponent:A,Y=a.enableLabel,G=void 0===Y?re.enableLabel:Y,N=a.label,j=a.labelSkipWidth,K=void 0===j?re.labelSkipWidth:j,_=a.labelSkipHeight,q=void 0===_?re.labelSkipHeight:_,J=a.labelTextColor,U=a.labelPosition,Z=void 0===U?re.labelPosition:U,te=a.labelOffset,ae=void 0===te?re.labelOffset:te,ie=a.markers,ne=void 0===ie?re.markers:ie,le=a.colorBy,oe=a.colors,de=a.defs,ue=void 0===de?re.defs:de,se=a.fill,ce=void 0===se?re.fill:se,fe=a.borderRadius,be=void 0===fe?re.borderRadius:fe,ge=a.borderWidth,ve=void 0===ge?re.borderWidth:ge,me=a.borderColor,pe=a.annotations,ye=void 0===pe?re.annotations:pe,xe=a.legendLabel,Se=a.tooltipLabel,ke=a.valueFormat,we=a.isInteractive,Le=void 0===we?re.isInteractive:we,Ce=a.tooltip,We=void 0===Ce?re.tooltip:Ce,Me=a.onClick,Be=a.onMouseEnter,Re=a.onMouseLeave,Oe=a.legends,Te=a.role,He=void 0===Te?re.role:Te,Pe=a.ariaLabel,Ee=a.ariaLabelledBy,Fe=a.ariaDescribedBy,ze=a.isFocusable,De=void 0===ze?re.isFocusable:ze,Ae=a.barAriaLabel,Xe=a.barAriaLabelledBy,Ye=a.barAriaDescribedBy,Ge=a.barAriaHidden,Ne=a.barAriaDisabled,je=a.initialHiddenIds,Ke=a.enableTotals,_e=void 0===Ke?re.enableTotals:Ke,qe=a.totalsOffset,Je=void 0===qe?re.totalsOffset:qe,Qe=a.forwardedRef,Ue=v(),Ze=Ue.animate,$e=Ue.config,et=m(c,h,s),tt=et.outerWidth,at=et.outerHeight,it=et.margin,nt=et.innerWidth,lt=et.innerHeight,rt=Ie({indexBy:r,label:N,tooltipLabel:Se,valueFormat:ke,colors:oe,colorBy:le,borderColor:me,labelTextColor:J,groupMode:f,layout:b,data:n,keys:o,margin:it,width:nt,height:lt,padding:k,innerPadding:w,valueScale:g,indexScale:S,enableLabel:G,labelSkipWidth:K,labelSkipHeight:q,legends:Oe,legendLabel:xe,initialHiddenIds:je,totalsOffset:Je}),ot=rt.bars,dt=rt.barsWithValue,ut=rt.xScale,st=rt.yScale,ct=rt.getLabel,ht=rt.getTooltipLabel,ft=rt.getBorderColor,bt=rt.getLabelColor,gt=rt.shouldRenderBarLabel,vt=rt.toggleSerie,mt=rt.legendsWithData,pt=rt.barTotals,yt=rt.getColor,xt=he(b,null!=(i=null==g?void 0:g.reverse)&&i,Z,ae),St=M(dt,{keys:function(e){return e.key},from:function(e){return Q({borderColor:ft(e),color:e.color,height:0,labelColor:bt(e),labelOpacity:0},xt(e.width,e.height),{transform:"translate("+e.x+", "+(e.y+e.height)+")",width:e.width},"vertical"===b?{}:{height:e.height,transform:"translate("+e.x+", "+e.y+")",width:0})},enter:function(e){return Q({borderColor:ft(e),color:e.color,height:e.height,labelColor:bt(e),labelOpacity:1},xt(e.width,e.height),{transform:"translate("+e.x+", "+e.y+")",width:e.width})},update:function(e){return Q({borderColor:ft(e),color:e.color,height:e.height,labelColor:bt(e),labelOpacity:1},xt(e.width,e.height),{transform:"translate("+e.x+", "+e.y+")",width:e.width})},leave:function(e){return Q({borderColor:ft(e),color:e.color,height:0,labelColor:bt(e),labelOpacity:0},xt(e.width,e.height),{labelY:0,transform:"translate("+e.x+", "+(e.y+e.height)+")",width:e.width},"vertical"===b?{}:Q({},xt(e.width,e.height),{labelX:0,height:e.height,transform:"translate("+e.x+", "+e.y+")",width:0}))},config:$e,immediate:!Ze,initial:Ze?void 0:null}),kt=e((function(){return{borderRadius:be,borderWidth:ve,enableLabel:G,isInteractive:Le,labelSkipWidth:K,labelSkipHeight:q,onClick:Me,onMouseEnter:Be,onMouseLeave:Re,getTooltipLabel:ht,tooltip:We,isFocusable:De,ariaLabel:Ae,ariaLabelledBy:Xe,ariaDescribedBy:Ye,ariaHidden:Ge,ariaDisabled:Ne}}),[be,ve,G,ht,Le,q,K,Me,Be,Re,We,De,Ae,Xe,Ye,Ge,Ne]),wt=p(ue,ot,ce,{dataKey:"data",targetKey:"data.fill"}),Lt={annotations:null,axes:null,bars:null,grid:null,legends:null,markers:null,totals:null};D.includes("annotations")&&(Lt.annotations=V($,{bars:ot,annotations:ye},"annotations")),D.includes("axes")&&(Lt.axes=V(d,{xScale:ut,yScale:st,width:nt,height:lt,top:L,right:C,bottom:B,left:O},"axes")),D.includes("bars")&&(Lt.bars=V(l,{children:St((function(e,a){return t(X,Q({},kt,{bar:a,style:e,shouldRenderLabel:gt(a),label:ct(a.data)}))}))},"bars")),D.includes("grid")&&(Lt.grid=V(u,{width:nt,height:lt,xScale:T?ut:null,yScale:P?st:null,xValues:E,yValues:F},"grid")),D.includes("legends")&&(Lt.legends=V(ee,{width:nt,height:lt,legends:mt,toggleSerie:vt},"legends")),D.includes("markers")&&(Lt.markers=V(y,{markers:ne,width:nt,height:lt,xScale:ut,yScale:st},"markers")),D.includes("totals")&&_e&&(Lt.totals=V(Ve,{data:pt,springConfig:$e,animate:Ze,layout:b},"totals"));var Ct=Q({},kt,{margin:it,width:c,height:h,innerWidth:nt,innerHeight:lt,bars:ot,legendData:mt,enableLabel:G,xScale:ut,yScale:st,tooltip:We,getTooltipLabel:ht,onClick:Me,onMouseEnter:Be,onMouseLeave:Re,getColor:yt});return V(x,{width:tt,height:at,margin:it,defs:wt,role:He,ariaLabel:Pe,ariaLabelledBy:Ee,ariaDescribedBy:Fe,isFocusable:De,ref:Qe,children:D.map((function(e,a){var i;return"function"==typeof e?V(l,{children:t(e,Ct)},a):null!=(i=null==Lt?void 0:Lt[e])?i:null}))})},Pe=n((function(e,t){var a=e.isInteractive,i=void 0===a?re.isInteractive:a,n=e.animate,l=void 0===n?re.animate:n,r=e.motionConfig,o=void 0===r?re.motionConfig:r,d=e.theme,u=e.renderWrapper,s=U(e,Te);return V(g,{animate:l,isInteractive:i,motionConfig:o,renderWrapper:u,theme:d,children:V(He,Q({},s,{isInteractive:i,forwardedRef:t}))})})),Ee=["isInteractive","renderWrapper","theme"],Fe=function(e,t,a,i){return e.find((function(e){return w(e.x+t.left,e.y+t.top,e.width,e.height,a,i)}))};var ze=function(i){var n,l=i.data,d=i.indexBy,u=i.keys,h=i.margin,f=i.width,g=i.height,v=i.groupMode,p=i.layout,y=i.valueScale,x=i.indexScale,w=i.padding,L=i.innerPadding,C=i.axisTop,W=i.axisRight,M=i.axisBottom,R=void 0===M?oe.axisBottom:M,T=i.axisLeft,H=void 0===T?oe.axisLeft:T,P=i.enableGridX,F=void 0===P?oe.enableGridX:P,z=i.enableGridY,X=void 0===z?oe.enableGridY:z,Y=i.gridXValues,j=i.gridYValues,K=i.labelPosition,_=void 0===K?oe.labelPosition:K,q=i.labelOffset,J=void 0===q?oe.labelOffset:q,U=i.layers,Z=void 0===U?oe.layers:U,$=i.renderBar,ee=void 0===$?oe.renderBar:$,te=i.enableLabel,ae=void 0===te?oe.enableLabel:te,ie=i.label,ne=i.labelSkipWidth,le=void 0===ne?oe.labelSkipWidth:ne,re=i.labelSkipHeight,de=void 0===re?oe.labelSkipHeight:re,ue=i.labelTextColor,se=i.colorBy,ce=i.colors,fe=i.borderRadius,be=void 0===fe?oe.borderRadius:fe,ge=i.borderWidth,ve=void 0===ge?oe.borderWidth:ge,me=i.borderColor,pe=i.annotations,ye=void 0===pe?oe.annotations:pe,xe=i.legendLabel,Se=i.tooltipLabel,ke=i.valueFormat,we=i.isInteractive,Le=void 0===we?oe.isInteractive:we,Ce=i.tooltip,We=void 0===Ce?oe.tooltip:Ce,Me=i.onClick,Be=i.onMouseEnter,Re=i.onMouseLeave,Oe=i.legends,Ve=i.pixelRatio,Te=void 0===Ve?oe.pixelRatio:Ve,He=i.role,Pe=i.forwardedRef,Ee=i.enableTotals,ze=void 0===Ee?oe.enableTotals:Ee,De=i.totalsOffset,Ae=void 0===De?oe.totalsOffset:De,Xe=r(null),Ye=D(),Ge=m(f,g,h),Ne=Ge.margin,je=Ge.innerWidth,Ke=Ge.innerHeight,_e=Ge.outerWidth,qe=Ge.outerHeight,Je=Ie({indexBy:d,label:ie,tooltipLabel:Se,valueFormat:ke,colors:ce,colorBy:se,borderColor:me,labelTextColor:ue,groupMode:v,layout:p,data:l,keys:u,margin:Ne,width:je,height:Ke,padding:w,innerPadding:L,valueScale:y,indexScale:x,enableLabel:ae,labelSkipWidth:le,labelSkipHeight:de,legends:Oe,legendLabel:xe,totalsOffset:Ae}),Qe=Je.bars,Ue=Je.barsWithValue,Ze=Je.xScale,$e=Je.yScale,et=Je.getLabel,tt=Je.getTooltipLabel,at=Je.getBorderColor,it=Je.getLabelColor,nt=Je.shouldRenderBarLabel,lt=Je.legendsWithData,rt=Je.barTotals,ot=Je.getColor,dt=A(),ut=dt.showTooltipFromEvent,st=dt.hideTooltip,ct=O({annotations:B({data:Qe,annotations:ye,getPosition:function(e){return{x:e.x,y:e.y}},getDimensions:function(e){var t=e.width,a=e.height;return{width:t,height:a,size:Math.max(t,a)}}})}),ht=e((function(){return{borderRadius:be,borderWidth:ve,isInteractive:Le,isFocusable:!1,labelSkipWidth:le,labelSkipHeight:de,margin:Ne,width:f,height:g,innerWidth:je,innerHeight:Ke,bars:Qe,legendData:lt,enableLabel:ae,xScale:Ze,yScale:$e,tooltip:We,getTooltipLabel:tt,onClick:Me,onMouseEnter:Be,onMouseLeave:Re,getColor:ot}}),[be,ve,Le,le,de,Ne,f,g,je,Ke,Qe,lt,ae,Ze,$e,We,tt,Me,Be,Re,ot]),ft=b(ke),bt=he(p,null!=(n=null==y?void 0:y.reverse)&&n,_,J);o((function(){if(Xe.current){Xe.current.width=_e*Te,Xe.current.height=qe*Te;var e=Xe.current.getContext("2d");e.scale(Te,Te),e.fillStyle=Ye.background,e.fillRect(0,0,_e,qe),e.translate(Ne.left,Ne.top),Z.forEach((function(t){"grid"===t?"number"==typeof Ye.grid.line.strokeWidth&&Ye.grid.line.strokeWidth>0&&(e.lineWidth=Ye.grid.line.strokeWidth,e.strokeStyle=Ye.grid.line.stroke,F&&s(e,{width:je,height:Ke,scale:Ze,axis:"x",values:Y}),X&&s(e,{width:je,height:Ke,scale:$e,axis:"y",values:j})):"axes"===t?c(e,{xScale:Ze,yScale:$e,width:je,height:Ke,top:C,right:W,bottom:R,left:H,theme:Ye}):"bars"===t?(N(e,Ye.text),Ue.forEach((function(t){ee(e,Q({bar:t,borderColor:at(t),borderRadius:be,borderWidth:ve,label:et(t.data),shouldRenderLabel:nt(t),labelStyle:Q({},Ye.labels.text,{fill:it(t)})},bt(t.width,t.height)))}))):"legends"===t?lt.forEach((function(t){var a=t[0],i=t[1];E(e,Q({},a,{data:i,containerWidth:je,containerHeight:Ke,theme:Ye}))})):"annotations"===t?I(e,{annotations:ct,theme:Ye}):"totals"===t&&ze?function(e,t,a,i){void 0===i&&(i=oe.layout),N(e,a.labels.text),e.textBaseline="vertical"===i?"alphabetic":"middle",e.textAlign="vertical"===i?"center":"start",t.forEach((function(t){G(e,a.labels.text,t.formattedValue,t.x,t.y)}))}(e,rt,Ye,p):"function"==typeof t&&t(e,ht)})),e.save()}}),[R,H,W,C,Ue,be,ve,ct,F,X,at,et,it,Y,j,v,g,Ke,je,ht,Z,p,lt,Ne.left,Ne.top,qe,_e,Te,ee,Ze,$e,nt,Ye,f,rt,ze,ft,bt]);var gt=a((function(e){if(Qe&&Xe.current){var a=S(Xe.current,e),i=a[0],n=a[1],l=Fe(Qe,Ne,i,n);void 0!==l?(ut(t(We,Q({},l.data,{color:l.color,label:l.label,value:Number(l.data.value)})),e),"mouseenter"===e.type&&(null==Be||Be(l.data,e))):st()}}),[st,Ne,Be,Qe,ut,We]),vt=a((function(e){if(Qe&&Xe.current){st();var t=S(Xe.current,e),a=t[0],i=t[1],n=Fe(Qe,Ne,a,i);n&&(null==Re||Re(n.data,e))}}),[st,Ne,Re,Qe]),mt=a((function(e){if(Qe&&Xe.current){var t=S(Xe.current,e),a=t[0],i=t[1],n=Fe(Qe,Ne,a,i);void 0!==n&&(null==Me||Me(Q({},n.data,{color:n.color}),e))}}),[Ne,Me,Qe]);return V("canvas",{ref:k(Xe,Pe),width:_e*Te,height:qe*Te,style:{width:_e,height:qe,cursor:Le?"auto":"normal"},onMouseEnter:Le?gt:void 0,onMouseMove:Le?gt:void 0,onMouseLeave:Le?vt:void 0,onClick:Le?mt:void 0,role:He})},De=n((function(e,t){var a=e.isInteractive,i=e.renderWrapper,n=e.theme,l=U(e,Ee);return V(g,{isInteractive:a,renderWrapper:i,theme:n,animate:!1,children:V(ze,Q({},l,{isInteractive:a,forwardedRef:t}))})})),Ae=["defaultWidth","defaultHeight","onResize","debounceResize"],Xe=n((function(e,t){var a=e.defaultWidth,i=e.defaultHeight,n=e.onResize,l=e.debounceResize,r=U(e,Ae);return V(L,{defaultWidth:a,defaultHeight:i,onResize:n,debounceResize:l,children:function(e){var a=e.width,i=e.height;return V(Pe,Q({},r,{width:a,height:i,ref:t}))}})})),Ye=["defaultWidth","defaultHeight","onResize","debounceResize"],Ge=n((function(e,t){var a=e.defaultWidth,i=e.defaultHeight,n=e.onResize,l=e.debounceResize,r=U(e,Ye);return V(L,{defaultWidth:a,defaultHeight:i,onResize:n,debounceResize:l,children:function(e){var a=e.width,i=e.height;return V(De,Q({},r,{width:a,height:i,ref:t}))}})}));export{Pe as Bar,De as BarCanvas,ae as BarItem,ne as BarTooltip,Ve as BarTotals,Xe as ResponsiveBar,Ge as ResponsiveBarCanvas,oe as canvasDefaultProps,le as commonDefaultProps,re as svgDefaultProps};
//# sourceMappingURL=nivo-bar.mjs.map