@devgateway/dvz-ui-react
Version:
A modular, embeddable React component library for data visualization and UI, built with TypeScript. Provides reusable components for charts, maps, dashboards, and more, with built-in support for internationalization and Redux integration.
2 lines (1 loc) • 3.87 kB
JavaScript
"use strict";const e=require("react/jsx-runtime"),ie=require("react"),le=require("@nivo/sankey"),re=require("react-intl"),ae=require("../common/ChartTooltip.js"),ce=s=>{var j,y,p,C,O;const{marginLeft:v,marginTop:N,marginRight:L,marginBottom:B,options:ge,intl:T,format:F,colors:me,height:q,showLegends:h,tickColor:he,colorGenerator:H,legendLabel:k,legendCheckBack:ke,legendLabelBack:ue,legendLabelColor:u,reverseLegend:R,measures:xe,dimension1:fe,dimension2:be,dimension3:je,mode:ye,app:pe,tooltipHTML:Ce,tooltip:m,filters:Oe,layout:w,group:ve,noDataMessage:Ne,tooltipEnabled:E,tooltipEnableMarkdown:I,sort:P,nodeThickness:S,nodeOpacity:z,nodeHoverOpacity:M,nodeInnerPadding:$,nodeSpacing:D,nodeHoverOthersOpacity:G,nodeBorderWidth:W,nodeBorderRadius:A,linkOpacity:J,linkHoverOpacity:K,linkHoverOthersOpacity:Q,linkContract:U,enableLinkGradient:V,enableLabels:X,labelPosition:Y,labelPadding:Z,useCustomLabelColor:_,labelTextColor:ee,labelOrientation:ne,legendPosition:r,useLabelBackground:x,useCheckBoxBackground:c}=s,[a,oe]=ie.useState([]),te=o=>{const t=a.slice();if(t.indexOf(o)>-1){const l=t.indexOf(o);t.splice(l,1)}else t.push(o);oe(t)},se={top:N,right:L,bottom:B,left:v},f=()=>e.jsx(e.Fragment,{children:h&&k&&e.jsx("div",{className:"legend item",children:e.jsx("label",{className:"legend-title",children:k})})}),b=()=>{var t,l,g;const o=(g=(l=(t=s==null?void 0:s.options)==null?void 0:t.data)==null?void 0:l.nodes)==null?void 0:g.slice();return R&&o.reverse(),e.jsx(e.Fragment,{children:h&&(o==null?void 0:o.map(n=>{const i=a.indexOf(n.id)==-1;return e.jsxs("div",{className:`legend item ${i?"":"ignore"}`,onClick:()=>te(n.id),children:[c&&e.jsx("input",{className:i?"":"ignore",type:"checkbox",checked:i,readOnly:!0,style:{backgroundColor:n.color,color:"#000"}}),!c&&e.jsx("input",{type:"checkbox",checked:i,readOnly:!0,style:{color:"#000"}}),c&&e.jsx("span",{className:"checkmark-with-bg",style:{backgroundColor:n.color}}),!c&&e.jsx("span",{className:"checkmark"}),x&&e.jsx("label",{className:i?"":"ignore",style:{backgroundColor:n.color,color:u},children:n.id}),!x&&e.jsx("label",{className:i?"":"ignore",style:{color:u},children:n.id})]})}))})};let d={nodes:[],links:[]};if(console.log("sankey props ===>",s),(j=s.options)!=null&&j.data&&((p=(y=s.options)==null?void 0:y.data)!=null&&p.nodes)&&((O=(C=s.options)==null?void 0:C.data)!=null&&O.nodes.length)){const{links:o,nodes:t}=s.options.data;t.forEach(n=>{n.color=H.getColor(n.id)});const l=o.filter(n=>a.indexOf(n.source)==-1&&a.indexOf(n.target)==-1)||[],g=t.filter(n=>a.indexOf(n.id)==-1&&l.find(i=>i.source==n.id||i.target==n.id));d={links:l,nodes:g}}return e.jsx("div",{style:{height:q},children:e.jsxs(e.Fragment,{children:[d.nodes.length&&d.links.length?e.jsx(le.ResponsiveSankey,{data:d,margin:se,layout:w,align:"justify",sort:P,colors:{datum:"color"},nodeOpacity:z,nodeHoverOthersOpacity:G,nodeThickness:S,nodeSpacing:D,nodeBorderWidth:W,nodeBorderColor:{from:"color",modifiers:[["darker",.8]]},linkTooltip:o=>E&&m&&m.trim().length>0?e.jsx(ae.default,{intl:T,format:F,d:o,tooltip:m,tooltipEnableMarkdown:I}):null,enableLabels:X,linkHoverOpacity:K,nodeHoverOpacity:M,nodeInnerPadding:$,nodeBorderRadius:A,linkOpacity:J,linkHoverOthersOpacity:Q,linkContract:U,enableLinkGradient:V,labelPosition:Y,labelOrientation:ne,labelPadding:Z,labelTextColor:_?ee:{from:"color",modifiers:[["darker",1]]}}):e.jsx(e.Fragment,{}),(r=="top"||r=="bottom")&&e.jsx("div",{className:`legends container has-standard-12-font-size ${r}`,children:e.jsxs("div",{className:"legend-sections",children:[e.jsx("div",{className:"title-section",children:f()}),e.jsx("div",{className:"legends container has-standard-12-font-size items-section",children:b()})]})}),(r=="right"||r=="left")&&e.jsxs("div",{className:`legends container has-standard-12-font-size ${r}`,children:[f(),b()]})]})})},de=re.injectIntl(ce);module.exports=de;