@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) • 1.39 kB
JavaScript
;const x=require("react/jsx-runtime"),c=require("react"),m=({children:s,data:o})=>{const{data:a,meta:{fields:n}}=o;n[0];const e=n.slice(1).filter(t=>!t.startsWith("_")),l=e.map(t=>{const r={};return r.id=t,r.data=a.map(i=>{const f={};return Object.keys(i).forEach(u=>{f[u]=i[u]}),{x:i[n[0]],y:i[t],variables:{...f,field:t}}}),r}),d={indexBy:"id",keys:e,data:l};return c.Children.map(s,t=>c.cloneElement(t,{options:d}))},p=({children:s,data:o})=>{const{data:a,meta:{fields:n}}=o;n[0];const e=o.data.map(t=>t.ID),l=a.map(t=>{const r={},i={};return Object.keys(t).forEach(f=>{i[f]=t[f]}),i.field=n[1],r.variables=i,r.id=t[n[0]],r.label=t[n[0]],r.value=t[n[1]],r}),d={keys:e,indexBy:"id",data:l};return c.Children.map(s,t=>c.cloneElement(t,{options:d}))},b=({children:s,data:o,measures:a})=>{const{data:n,meta:{fields:e}}=o,l=e[0],d=a&&a.length>0?a:e.slice(1).filter(r=>!r.startsWith("_")),t={indexBy:l,keys:d,data:n};return c.Children.map(s,r=>c.cloneElement(r,{options:t}))},D=({children:s,data:o,keys:a,type:n,measures:e})=>{if(n=="bar")return x.jsx(b,{data:o,keys:a,measures:e,children:s});if(n=="line")return x.jsx(m,{data:o,keys:a,measures:e,children:s});if(n=="bump")return x.jsx(m,{data:o,keys:a,measures:e,children:s});if(n=="pie")return x.jsx(p,{data:o,keys:a,measures:e,children:s});if(n=="radar")return x.jsx(b,{data:o,keys:a,measures:e,children:s})};module.exports=D;