@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) • 15.5 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react/jsx-runtime"),h=require("react"),ue=require("semantic-ui-react"),Ja=require("../data/DataProvider.js"),ja=require("../data/DataConsumer.js"),Ka=require("../../utils/deviceType.js"),Qa=require("./Pie.js");require("immutable");const Za=require("./Radar.js"),Oa=require("./Bar.js"),er=require("./Line.js"),tr=require("@devgateway/wp-react-lib"),Q=require("./data/index.js"),ar=require("./CSVDataFrame.js"),rr=require("./colors/ColorProvider.js"),ot=require("./Messages.js"),or=require("react-redux"),nr=require("react-intl"),sr=L=>{console.log("manual colors...",L["data-manual-colors"]);let{parent:me,editing:i=!1,unique:Z,childContent:y,categories:S,injectedMeasures:l,"data-app":o="csv","data-dvz-proxy-dataset-id":pe,"data-group":he="default","data-height":V=500,"data-type":B="bar","data-dimension1":E,"data-dimension2":fe,"data-dimension3":cr,"data-color-by":q="index","data-scheme":O="system","data-group-mode":nt="grouped","data-left-legend":st="Left Legend","data-legend-label":it="","data-bottom-legend":lt="Bottom Legend","data-dualmode":dt,"data-legend-position":ge="right","data-show-legends":be="true","data-data-source-label":ur="Source","data-chart-data-source":mr="Data Source","data-toggle-info-label":pr="Info Graphic","data-toggle-chart-label":hr="Chart","data-tick-rotation":m=0,"data-tick-color":ct="rgb(92,93,99)","data-measures":ut="{}","data-format":fr="{}","data-csv":mt="","data-margin-left":pt=50,"data-margin-top":ht=25,"data-margin-right":ft=25,"data-margin-bottom":gt=25,"data-start-angle":bt=0,"data-end-angle":wt=360,"data-view-mode":we="info","data-filters":xt="[]","data-tooltip-html":vt="","data-layout":ee="vertical","data-reverse":xe="false","data-offset-y":Lt="-40","data-line-layer-enabled":ve="false","data-overlays":yt="[]","data-max-value":Tt="auto","data-value-scale":kt="linear","data-swap":G="false","data-no-data-message":Ct="No data matches your selection","data-bar-color":Mt="rgb(0,0,0)","data-override-tick-color":Le="false","data-fixed-min-value":Rt=0,"data-fixed-max-value":It=0,"data-bar-padding":At=.15,"data-bar-label-position":Dt="middle","data-line-label-position":Ft="none","data-show-grid":ye="true","data-include-overall":Te="false","data-bar-inner-padding":Pt=.7,"data-x-label-color":Bt="#000","data-bar-label-color":Et="#000","data-legend-label-color":qt="#000","data-tooltip-enabled":ke="true","data-use-check-box-background":Ce="false","data-use-label-background":Me="true","data-highlight-xaxis-line":Re="false","data-show-tick-line":Ie="true","data-show-right-axis":Ae="true","data-manual-colors":Nt="{}","data-right-legend":zt="","data-offset-right":St="40","data-offset-bottom":Vt="40","data-hidden-bars":Gt=[],"data-confidence-intervals":Xt="[]","data-enable-area":De="false","data-area-shading-criteria":Ut="DEFAULT","data-area-lower-bound":$t="","data-area-upper-bound":Wt="","data-show-points":Fe="true","data-center-label":Ht="","data-show-arc-labels":Pe="true","data-show-arc-link-labels":Be="true","data-slice-padding":Yt=1,"data-center-label-font-weight":_t="normal","data-center-label-font-size":Jt="12","data-center-label-xoffset":jt=0,"data-center-label-yoffset":Kt=0,"data-group-total-measure":Qt="","data-show-group-total":Ee="true","data-group-total-label":Zt="","data-group-total-format":Ot="{}","data-group-total-label-offset":ea,"data-group-total-fixed-position":qe="false","data-tooltip-enable-markdown":X="false","data-y-axis-tick-values":Ne="10","data-x-axis-tick-values":ze="10","data-enable-grid-y":T="true","data-enable-grid-x":k="false","data-offset-text":ta=0,"data-overall-label":te="Overall","data-min-max-clamp":aa="false","data-reverse-legend":Se="false","data-sort":Ve="default","data-sort-reverse":U="false","data-sort-second-dimension":Ge="default","data-sort-reverse-second-dimension":$="false","data-radar-curve":ra="linearClosed","data-radar-fill-opacity":oa=.25,"data-radar-border-width":na=2,"data-radar-grid-levels":sa=3,"data-radar-grid-shape":ia="circular","data-radar-grid-label-offset":la=36,"data-radar-enable-dots":Xe="true","data-radar-dot-size":da=8,"data-radar-enable-dot-label":Ue="true","data-radar-dot-label-offset":ca=-12,"data-mobile-customization":$e="{}","data-show-percentage":We="false","data-preview-mode":f="Desktop","data-wait-for-filters":ua="false","data-line-curve":ma="linear","data-show-legends-in-columns":He="false","data-number-of-legend-columns":pa=4,pageModuleProps:g}=L;const ha=i,t=JSON.parse(decodeURIComponent($e)),[ae,fa]=h.useState(window.innerWidth<=1250),w=ae&&((t==null?void 0:t.showCustomization)??!1);g!=null&&g.previewMode&&(g!=null&&g.editing)&&(f=g.previewMode,i=g.editing);const ga=["Tablet"].includes(f)&&i,ba=["Mobile"].includes(f)&&i,wa=["Desktop"].includes(f)&&i,c=w&&f!=="Desktop",u=w&&!i,re=()=>{const e=window.matchMedia("(min-width: 768px) and (max-width: 1250px)").matches,r=window.matchMedia("(max-width: 767px)").matches;switch(!0){case wa:return m;case ga:return w?(t==null?void 0:t.tabletXAxisTextRotation)??m:m;case ba:return w?(t==null?void 0:t.mobileXAxisTextRotation)??m:m;case e:return w?(t==null?void 0:t.tabletXAxisTextRotation)??m:m;case r:return w?(t==null?void 0:t.mobileXAxisTextRotation)??m:m;default:return m}},xa=re(),[va,Ye]=h.useState(xa),_e=L.intl.locale,W=h.useRef(null),Je=e=>{try{return ha?e:decodeURIComponent(e)}catch{return console.error(`error decoding value:${e}`),e}},C=e=>{try{return JSON.parse(Je(e))}catch{console.error(`error parsing value:${e}`)}return null},La=()=>{const e=C(Nt);if(!e)return null;const r=e[o];if(o==="csv"&&r&&O==="manual"){if(r[q]!==void 0)return r;if(typeof r=="object"&&r!==null&&!Array.isArray(r)&&Object.values(r).some(p=>typeof p=="string"&&(p.startsWith("#")||p.startsWith("rgb"))))return{[q]:r}}return r},ya=()=>C(ut),je=()=>{var e;if(a!=null&&a[o]){let r=(e=a==null?void 0:a[o])==null?void 0:e.format;if(!r){const n=Object.keys(a==null?void 0:a[o]);for(let p=0;p<n.length;p++)if(a!=null&&a[o][n[p]].selected&&(a!=null&&a[o][n[p]].format)){r=a==null?void 0:a[o][n[p]].format;break}}return r}return a!=null&&a.csv?a.csv.format:null},Ta=()=>{let e=null;return a!=null&&a[o]?a[o].useCustomAxisFormat&&a[o].customFormat&&(e=a[o].customFormat):a!=null&&a.csv&&a.csv.useCustomAxisFormat&&a.csv.customFormat&&(e=a.csv.customFormat),e},ka=()=>a!=null&&a[o]?Object.keys(a[o]).map(e=>({value:e,...a[o][e]})).filter(e=>e.selected).map(e=>e.value):[],Ke=()=>{const e={};return a!=null&&a[o]&&Object.keys(a[o]).map(n=>({value:n,...a[o][n]})).filter(n=>n.selected&&n.hasCustomLabel).forEach(n=>{e[n.value]=n.customLabel}),e},Ca=()=>a!=null&&a[o]?Object.keys(a[o]).filter(e=>a[o][e].allowSelection):[];let a=ya(),x=ka(),b=je();const Ma=Ca();let oe=st,ne=zt,se=Je(vt);if(l!=null&&l[o]){const e=Object.keys(l[o].measures).map(r=>({value:r,...l[o].measures[r]})).filter(r=>r.selected).map(r=>r.value);a=l,x=e,b=je(),oe=l.leftTitle,ne=l.rightTitle,l.customTooltip&&(se=l.customTooltip)}const Ra=b?{style:b.style==="compacted"?"decimal":b.style,notation:b.style==="compacted"?"compact":"standard",currency:b.currency,minimumFractionDigits:parseInt(b.minimumFractionDigits),maximumFractionDigits:parseInt(b.maximumFractionDigits)}:{notation:"standard",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2},Ia=Ta(),s=C(Ot),Aa={style:(s==null?void 0:s.style)==="compacted"?"decimal":s==null?void 0:s.style,notation:(s==null?void 0:s.style)==="compacted"?"compact":"standard",currency:s==null?void 0:s.currency,minimumFractionDigits:parseInt(s==null?void 0:s.minimumFractionDigits),maximumFractionDigits:parseInt(s==null?void 0:s.maximumFractionDigits)},[Da,gr]=h.useState(we),Fa=i?we:Da,Pa={scheme:O,colorBy:q},H=i?V-80:V,Ba=()=>(c||u)&&!(t!=null&&t.showXAxisTitle)?"":lt,Ea=()=>c||u?t!=null&&t.showYAxisTitle?oe:"":oe,qa=()=>c||u?t!=null&&t.showRightAxisTitle?ne:"":ne,Na={left:Ea(),bottom:Ba(),right:qa()},Y=e=>{if(e==="true"||e===!0)return!0;if(e==="false"||e===!1)return!1},Qe=()=>{Y(k)&&!Y(T)?(k=!1,T=!0):!Y(k)&&Y(T)&&(k=!0,T=!1)},za=()=>ee==="horizontal"?(Qe(),"vertical"):(Qe(),"horizontal"),Sa=()=>t!=null&&t.chartLayoutOverride?za():ee,_=(e,r,n)=>e?Number.parseInt(r)??n:n,Ze=(e,r,n)=>e?r??n:n;h.useEffect(()=>{const e=()=>{fa(window.innerWidth<=1250);const r=re();Ye(r)};return window.addEventListener("resize",e),Ye(re()),()=>{window.removeEventListener("resize",e)}},[i,f,w,m,t==null?void 0:t.tabletXAxisTextRotation,t==null?void 0:t.mobileXAxisTextRotation]);const Va=()=>{const e=["tablet","mobile","midTablet"].includes(Ka.default());return i&&f==="Desktop"?ge:e?"bottom":ge},Oe={app:o,editing:i,tickColor:decodeURIComponent(ct),tickRotation:va,layout:c||u?Sa():ee,reverse:xe==!0||xe=="true",showLegends:be==!0||be=="true",legendLabel:it,swap:G==!0||G=="true",showGrid:ye==!0||ye=="true",showPercentage:We==!0||We=="true",marginLeft:_(c||u,Number.parseInt(t==null?void 0:t.marginLeft),parseInt(pt)),marginTop:_(c||u,Number.parseInt(t==null?void 0:t.marginTop),parseInt(ht)),marginRight:_(c||u,Number.parseInt(t==null?void 0:t.marginRight),Number.parseInt(ft)),marginBottom:_(c||u,Number.parseInt(t==null?void 0:t.marginBottom),Number.parseInt(gt)),height:`${H}px`,legendPosition:Va(),legends:Na,tooltip:X==!0||X=="true"?se:se.replace(/\r\n/g,"<hr/>").replace(/[\r\n]/g,"<hr/>"),colors:Pa,groupMode:nt,format:Ra,startAngle:bt,endAngle:wt,offsetY:Lt,maxValue:Tt,valueScale:kt,categories:S,lineLayerEnabled:ve==!0||ve=="true",overlays:C(yt)||[],barColor:decodeURIComponent(Mt),overrideTickColor:Le==!0||Le=="true",fixedMinValue:Rt,fixedMaxValue:It,barPadding:Ze(c||u,t==null?void 0:t.barPadding,At),barLabelPosition:Dt,lineLabelPosition:Ft,barInnerPadding:Ze(c||u,t==null?void 0:t.barInnerPadding,Pt),xLabelColor:decodeURIComponent(Bt),barLabelColor:decodeURIComponent(Et),legendLabelColor:decodeURIComponent(qt),tooltipEnabled:ke==!0||ke=="true",legendLabelBack:Me==!0||Me=="true",legendCheckBack:Ce==!0||Ce=="true",highlightXAxisLine:Re==!0||Re=="true",showTickLine:Ie==!0||Ie=="true",showRightAxis:Ae==!0||Ae=="true",offsetRight:St,offsetBottom:Vt,confidenceIntervals:C(Xt)||[],showPoints:Fe==!0||Fe=="true",enableArea:De==!0||De=="true",areaShadingCriteria:Ut,areaLowerBound:$t,areaUpperBound:Wt,showGroupTotal:Ee==!0||Ee=="true",groupTotalMeasure:Qt,groupTotalLabel:Zt,groupTotalFormat:Aa,groupTotalOffset:ea,groupTotalFixedPosition:qe==!0||qe=="true",centerLabel:Ht,showArcLabels:Pe==!0||Pe=="true",showArcLinkLabels:Be==!0||Be=="true",slicePadding:Yt,centerLabelFontWeight:_t,centerLabelFontSize:Jt,centerLabelXOffset:jt,centerLabelYOffset:Kt,userMeasures:Ma,tooltipEnableMarkdown:X==!0||X=="true",yAxisTickValues:c||u?t.yAxisTickValues??Ne:Ne,xAxisTickValues:c||u?t.xAxisTickValues??ze:ze,enableGridY:T==!0||T=="true",enableGridX:k==!0||k=="true",offsetText:ta,selectedMeasures:x,overallLabel:te,minMaxClamp:aa,reverseLegend:Se==!0||Se=="true",customAxisFormat:Ia,sort:Ve,sortReverse:U==!0||U=="true",sortReverseSecondDimension:$==!0||$=="true",radarCurve:ra,radarFillOpacity:oa,radarBorderWidth:na,radarGridLevels:sa,radarGridShape:ia,radarGridLabelOffset:la,radarEnableDots:Xe==!0||Xe=="true",radarDotSize:da,radarEnableDotLabel:Ue==!0||Ue=="true",radarDotLabelOffset:ca,sortSecondDimension:Ge,mobileCustomization:$e,dimension1:E,previewMode:f,lineCurve:ma,showLegendsInColumns:He==!0||He=="true",numberOfLegendColumns:parseInt(pa)||4},ie={},le=C(xt)||{};le&&le.forEach&&le.forEach(e=>{e.value!=null&&e.value.filter(r=>r!=null&&r.toString().trim()!="").length>0&&(ie[e.param]=e.value)}),pe&&(ie.dvzProxyDatasetId=pe);let M=null,R=null;if(o==="csv")M=ar.default;else switch(B){case"line":M=Q.default.LineDataFrame;break;case"pie":M=Q.default.PieDataFrame;break;case"radar":M=Q.default.BarDataFrame;break;default:M=Q.default.BarDataFrame;break}let I=!1;switch(B){case"bar":R=Oa.default,I=o!="csv"&&E=="none"&&x.length==0;break;case"line":R=er.default,I=o!=="csv"&&(x.length===0||E==="none");break;case"pie":I=o!="csv"&&x.length==0,R=Qa.default;break;case"radar":I=o!="csv"&&x.length==0,R=Za.default;break;default:R=d.jsx("div",{children:"No Chart"});break}const Ga=dt==="true",N=[];E!="none"&&N.push(E),fe!="none"&&N.push(fe);const[et,Xa]=h.useState(0),[br,Ua]=h.useState(tt());function tt(){var e;return((e=window.screen.orientation)==null?void 0:e.type)||(window.innerWidth>window.innerHeight?"landscape-primary":"portrait-primary")}return h.useEffect(()=>{const e=setTimeout(()=>{ae&&(()=>{const n=W.current.querySelector(".legends.container.has-standard-12-font-size.bottom")||W.current.querySelector(".legends.container.items-section:not(.legends.container.top .items-section)");if(!n||n.closest(".legends.container.top"))return;const{clientHeight:p}=n,z=window.getComputedStyle(n),$a=parseInt(z.marginTop),at=parseInt(z.marginBottom),Wa=parseInt(z.paddingTop),Ha=parseInt(z.paddingBottom),Ya=p+$a+at+Wa+Ha,rt=n.closest(".ui.fluid.container.content");if(rt){const v=rt.querySelector(".data-source");if(v){const A=v.getBoundingClientRect(),D=n.getBoundingClientRect();if(D.bottom!==0&&A.top!==0){if(n.textContent.trim()==="")return;const J=at,j=D.bottom+J,ce=window.getComputedStyle(v),K=parseFloat(ce.marginTop)||0,F=A.top-K;if(j>F){let P=j-F;P<5&&(P+=1),v.style.marginTop=`${P+1}px`}}else setTimeout(()=>{A.top<D.bottom&&(v.style.marginTop=`${D.bottom-A.top+1}px`)},1e3)}}const de=n.closest(".chart.container");if(de){const v=de.getBoundingClientRect(),A=window.getComputedStyle(de),D=Number.parseFloat(A.marginBottom)||0,J=v.bottom+D,j=n.getBoundingClientRect(),ce=Number.parseFloat(z.marginTop)||0,K=j.top-ce;if(K<J){const F=J-K,P=200,_a=Math.min(F+1,P);F>0&&F<P&&(n.style.marginTop=`${_a}px`)}}Xa(Ya)})()},100);return()=>{clearTimeout(e)}},[ae,W]),h.useEffect(()=>{const e=()=>{setTimeout(()=>{Ua(tt())},100)};return window.screen.orientation?window.screen.orientation.addEventListener("change",e):window.addEventListener("resize",e),()=>{window.screen.orientation?window.screen.orientation.removeEventListener("change",e):window.removeEventListener("resize",e)}},[]),d.jsx("div",{ref:W,children:d.jsxs(ue.Container,{className:"chart container",style:{minHeight:B==="pie"&&window.innerWidth<=480?`${parseInt(V)+parseInt(et)*.5}px`:`${parseInt(V)+parseInt(et)}px`},fluid:!0,children:[d.jsx(Ja.default,{editing:i,style:{height:`${H}px`},params:ie,waitForFilters:ua==="true",app:o,group:he,csv:mt,store:[o,Z,...N],source:N.join("/"),children:d.jsxs(ue.Container,{style:{height:`${H}px`},className:"body",fluid:!0,children:[I&&d.jsx(ot.default,{editing:i}),!I&&d.jsxs(ja.default,{children:[d.jsx(ot.default,{app:o,group:he,noDataMsg:Ct,children:" "}),d.jsx(M,{locale:_e,colorBy:q,hiddenBars:Gt,swap:G==="true"||G===!0,type:B,includeTotal:!0,includeOverall:Te===!0||Te==="true",overallLabel:te,measures:x,dimensions:[...N],sort:Ve,sortReverse:U===!0||U==="true",sortSecondDimension:Ge,sortReverseSecondDimension:$===!0||$==="true",customLabels:Ke(),children:d.jsx(rr.default,{type:B,app:o,locale:_e,overallLabel:te,customLabels:Ke(),manualColors:La(),colorBy:q,scheme:O,barColor:Oe.barColor,children:d.jsx(R,{...Oe})})})]})]})}),d.jsx("br",{}),Ga&&y&&Fa==="info"&&d.jsx(ue.Container,{fluid:!0,style:{height:H+"px"},className:"body",children:d.jsx(tr.PostContent,{post:{content:{rendered:y}}})})]})})},ir=(L,me)=>{const{"data-app":i,"data-group":Z}=me,y=L.getIn(["data","measures",i,Z]),S=L.getIn(["data","pageModuleProps"]),l={};return y&&Object.keys(y).length>0&&(l.injectedMeasures=y??{}),S&&(l.pageModuleProps=S),l},lr={},dr=or.connect(ir,lr)(nr.injectIntl(sr));exports.default=dr;