UNPKG

@nivo/axes

Version:
3 lines (2 loc) 9.57 kB
"use strict";var e=require("react"),t=require("@nivo/core"),n=require("@nivo/theming"),i=require("@nivo/text"),r=require("@react-spring/web"),a=require("d3-time-format"),o=require("d3-format"),s=require("@nivo/scales"),l=require("react/jsx-runtime");function c(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var u=c(e);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},d.apply(null,arguments)}var x=function(e){var n,i=e.axis,r=e.scale,a=e.ticksPosition,o=e.tickValues,l=e.tickSize,c=e.tickPadding,u=e.tickRotation,x=e.truncateTickAt,f=e.engine,m=void 0===f?"svg":f,g=s.getScaleTicks(r,o),y=t.textPropsByEngine[m],v="bandwidth"in r?s.centerScale(r):r,k={lineX:0,lineY:0},h={textX:0,textY:0},p="object"==typeof document&&"rtl"===document.dir,b=y.align.center,T=y.baseline.center;"x"===i?(n=function(e){var t;return{x:null!=(t=v(e))?t:0,y:0}},k.lineY=l*("after"===a?1:-1),h.textY=(l+c)*("after"===a?1:-1),T="after"===a?y.baseline.top:y.baseline.bottom,0===u?b=y.align.center:"after"===a&&u<0||"before"===a&&u>0?(b=y.align[p?"left":"right"],T=y.baseline.center):("after"===a&&u>0||"before"===a&&u<0)&&(b=y.align[p?"right":"left"],T=y.baseline.center)):(n=function(e){var t;return{x:0,y:null!=(t=v(e))?t:0}},k.lineX=l*("after"===a?1:-1),h.textX=(l+c)*("after"===a?1:-1),b="after"===a?y.align.left:y.align.right);return{ticks:g.map((function(e){var t="string"==typeof e?function(e){var t=String(e).length;return x&&x>0&&t>x?""+String(e).slice(0,x).concat("..."):""+e}(e):e;return d({key:e instanceof Date?""+e.valueOf():""+e,value:t},n(e),k,h)})),textAlign:b,textBaseline:T}},f=function(e,t){if(void 0===e||"function"==typeof e)return e;if("time"===t.type){var n=a.timeFormat(e);return function(e){return n(e instanceof Date?e:new Date(e))}}return o.format(e)},m=function(e){var t,n=e.width,i=e.height,r=e.scale,a=e.axis,o=e.values,l=(t=o,Array.isArray(t)?o:void 0)||s.getScaleTicks(r,o),c="bandwidth"in r?s.centerScale(r):r,u="x"===a?l.map((function(e){var t,n;return{key:e instanceof Date?""+e.valueOf():""+e,x1:null!=(t=c(e))?t:0,x2:null!=(n=c(e))?n:0,y1:0,y2:i}})):l.map((function(e){var t,i;return{key:e instanceof Date?""+e.valueOf():""+e,x1:0,x2:n,y1:null!=(t=c(e))?t:0,y2:null!=(i=c(e))?i:0}}));return u},g=e.memo((function(t){var n,a=t.value,o=t.format,s=t.lineX,c=t.lineY,u=t.onClick,x=t.textBaseline,f=t.textAnchor,m=t.theme,g=t.animatedProps,y=null!=(n=null==o?void 0:o(a))?n:a,v=e.useMemo((function(){var e={opacity:g.opacity};return u?{style:d({},e,{cursor:"pointer"}),onClick:function(e){return u(e,y)}}:{style:e}}),[g.opacity,u,y]);return l.jsxs(r.animated.g,d({transform:g.transform},v,{children:[l.jsx("line",{x1:0,x2:s,y1:0,y2:c,style:m.line}),l.jsx(i.Text,{dominantBaseline:x,textAnchor:f,transform:g.textTransform,style:m.text,children:""+y})]}))})),y={tickSize:5,tickPadding:5,tickRotation:0,legendPosition:"middle",legendOffset:0},v=function(a){var o=a.axis,s=a.scale,c=a.x,m=void 0===c?0:c,v=a.y,k=void 0===v?0:v,h=a.length,p=a.ticksPosition,b=a.tickValues,T=a.tickSize,P=void 0===T?y.tickSize:T,A=a.tickPadding,S=void 0===A?y.tickPadding:A,j=a.tickRotation,C=void 0===j?y.tickRotation:j,O=a.format,w=a.renderTick,q=void 0===w?g:w,X=a.truncateTickAt,Y=a.legend,z=a.legendPosition,B=void 0===z?y.legendPosition:z,R=a.legendOffset,E=void 0===R?y.legendOffset:R,M=a.style,V=a.onClick,D=a.ariaHidden,F=n.useTheme(),G=n.useExtendedAxisTheme(F.axis,M),W=e.useMemo((function(){return f(O,s)}),[O,s]),L=x({axis:o,scale:s,ticksPosition:p,tickValues:b,tickSize:P,tickPadding:S,tickRotation:C,truncateTickAt:X}),H=L.ticks,I=L.textAlign,N=L.textBaseline,J=null;if(void 0!==Y){var K,Q=0,U=0,Z=0;"y"===o?(Z=-90,Q=E,"start"===B?(K="start",U=h):"middle"===B?(K="middle",U=h/2):"end"===B&&(K="end")):(U=E,"start"===B?K="start":"middle"===B?(K="middle",Q=h/2):"end"===B&&(K="end",Q=h)),J=l.jsx(l.Fragment,{children:l.jsx(i.Text,{transform:"translate("+Q+", "+U+") rotate("+Z+")",textAnchor:K,style:d({},G.legend.text,{dominantBaseline:"central"}),children:Y})})}var $=t.useMotionConfig(),_=$.animate,ee=$.config,te=r.useSpring({transform:"translate("+m+","+k+")",lineX2:"x"===o?h:0,lineY2:"x"===o?0:h,config:ee,immediate:!_}),ne=e.useCallback((function(e){return{opacity:1,transform:"translate("+e.x+","+e.y+")",textTransform:"translate("+e.textX+","+e.textY+") rotate("+C+")"}}),[C]),ie=e.useCallback((function(e){return{opacity:0,transform:"translate("+e.x+","+e.y+")",textTransform:"translate("+e.textX+","+e.textY+") rotate("+C+")"}}),[C]),re=r.useTransition(H,{keys:function(e){return e.key},initial:ne,from:ie,enter:ne,update:ne,leave:{opacity:0},config:ee,immediate:!_});return l.jsxs(r.animated.g,{transform:te.transform,"aria-hidden":D,children:[re((function(e,t,n,i){return u.createElement(q,d({tickIndex:i,format:W,rotate:C,textBaseline:N,textAnchor:I,truncateTickAt:X,animatedProps:e,theme:G.ticks},t,V?{onClick:V}:{}))})),l.jsx(r.animated.line,{style:G.domain.line,x1:0,x2:te.lineX2,y1:0,y2:te.lineY2}),J]})},k=e.memo(v),h=["top","right","bottom","left"],p=e.memo((function(e){var t=e.xScale,n=e.yScale,i=e.width,r=e.height,a={top:e.top,right:e.right,bottom:e.bottom,left:e.left};return l.jsx(l.Fragment,{children:h.map((function(e){var o=a[e];if(!o)return null;var s="top"===e||"bottom"===e,c="top"===e||"left"===e?"before":"after";return l.jsx(k,d({},o,{axis:s?"x":"y",x:"right"===e?i:0,y:"bottom"===e?r:0,scale:s?t:n,length:s?i:r,ticksPosition:c,truncateTickAt:o.truncateTickAt}),e)}))})})),b=e.memo((function(e){var t=e.animatedProps,i=n.useTheme();return l.jsx(r.animated.line,d({},t,i.grid.line))})),T=e.memo((function(n){var i=n.lines,a=t.useMotionConfig(),o=a.animate,s=a.config,c=r.useTransition(i,{keys:function(e){return e.key},initial:function(e){return{opacity:1,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2}},from:function(e){return{opacity:0,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2}},enter:function(e){return{opacity:1,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2}},update:function(e){return{opacity:1,x1:e.x1,x2:e.x2,y1:e.y1,y2:e.y2}},leave:{opacity:0},config:s,immediate:!o});return l.jsx("g",{children:c((function(t,n){return e.createElement(b,d({},n,{key:n.key,animatedProps:t}))}))})})),P=e.memo((function(t){var n=t.width,i=t.height,r=t.xScale,a=t.yScale,o=t.xValues,s=t.yValues,c=e.useMemo((function(){return!!r&&m({width:n,height:i,scale:r,axis:"x",values:o})}),[r,o,n,i]),u=e.useMemo((function(){return!!a&&m({width:n,height:i,scale:a,axis:"y",values:s})}),[i,n,a,s]);return l.jsxs(l.Fragment,{children:[c&&l.jsx(T,{lines:c}),u&&l.jsx(T,{lines:u})]})})),A=function(e,r){var a,o,s=r.axis,l=r.scale,c=r.x,u=void 0===c?0:c,d=r.y,f=void 0===d?0:d,m=r.length,g=r.ticksPosition,v=r.tickValues,k=r.tickSize,h=void 0===k?y.tickSize:k,p=r.tickPadding,b=void 0===p?y.tickPadding:p,T=r.tickRotation,P=void 0===T?y.tickRotation:T,A=r.format,S=r.legend,j=r.legendPosition,C=void 0===j?y.legendPosition:j,O=r.legendOffset,w=void 0===O?y.legendOffset:O,q=r.theme,X=r.style,Y=x({axis:s,scale:l,ticksPosition:g,tickValues:v,tickSize:h,tickPadding:b,tickRotation:P,engine:"canvas"}),z=Y.ticks,B=Y.textAlign,R=Y.textBaseline;e.save(),e.translate(u,f);var E=n.extendAxisTheme(q.axis,X);e.textAlign=B,e.textBaseline=R,i.setCanvasFont(e,E.ticks.text);var M=null!=(a=E.domain.line.strokeWidth)?a:0;"string"!=typeof M&&M>0&&(e.lineWidth=M,e.lineCap="square",E.domain.line.stroke&&(e.strokeStyle=E.domain.line.stroke),e.beginPath(),e.moveTo(0,0),e.lineTo("x"===s?m:0,"x"===s?0:m),e.stroke());var V="function"==typeof A?A:function(e){return""+e},D=null!=(o=E.ticks.line.strokeWidth)?o:0,F="string"!=typeof D&&D>0;if(z.forEach((function(n){F&&(e.lineWidth=D,e.lineCap="square",E.ticks.line.stroke&&(e.strokeStyle=E.ticks.line.stroke),e.beginPath(),e.moveTo(n.x,n.y),e.lineTo(n.x+n.lineX,n.y+n.lineY),e.stroke());var r=V(n.value);e.save(),e.translate(n.x+n.textX,n.y+n.textY),e.rotate(t.degreesToRadians(P)),i.drawCanvasText(e,E.ticks.text,""+r),e.fillText(""+r,0,0),e.restore()})),void 0!==S){var G=0,W=0,L=0,H="center";"y"===s?(L=-90,G=w,"start"===C?(H="start",W=m):"middle"===C?(H="center",W=m/2):"end"===C&&(H="end")):(W=w,"start"===C?H="start":"middle"===C?(H="center",G=m/2):"end"===C&&(H="end",G=m)),e.translate(G,W),e.rotate(t.degreesToRadians(L)),i.setCanvasFont(e,E.legend.text),E.legend.text.fill&&(e.fillStyle=E.legend.text.fill),e.textAlign=H,e.textBaseline="middle",i.drawCanvasText(e,E.legend.text,S)}e.restore()};exports.Axes=p,exports.Axis=k,exports.AxisTick=g,exports.Grid=P,exports.GridLine=b,exports.GridLines=T,exports.NonMemoizedAxis=v,exports.defaultAxisProps=y,exports.positions=h,exports.renderAxesToCanvas=function(e,t){var n=t.xScale,i=t.yScale,r=t.width,a=t.height,o=t.top,s=t.right,l=t.bottom,c=t.left,u=t.theme,x={top:o,right:s,bottom:l,left:c};h.forEach((function(t){var o=x[t];if(!o)return null;var s="top"===t||"bottom"===t,l="top"===t||"left"===t?"before":"after",c=s?n:i,m=f(o.format,c);A(e,d({},o,{axis:s?"x":"y",x:"right"===t?r:0,y:"bottom"===t?a:0,scale:c,format:m,length:s?r:a,ticksPosition:l,theme:u}))}))},exports.renderAxisToCanvas=A,exports.renderGridLinesToCanvas=function(e,t){var n=t.width,i=t.height,r=t.scale,a=t.axis,o=t.values;m({width:n,height:i,scale:r,axis:a,values:o}).forEach((function(t){e.beginPath(),e.moveTo(t.x1,t.y1),e.lineTo(t.x2,t.y2),e.stroke()}))}; //# sourceMappingURL=nivo-axes.cjs.js.map