@devgateway/dvz-ui-react 1.9.11 → 1.9.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/cjs/embeddable/d3Map/DataLayer.js +1 -1
  2. package/dist/cjs/embeddable/d3Map/FlowLayer.js +1 -1
  3. package/dist/cjs/embeddable/d3Map/LatLongLayer.js +1 -1
  4. package/dist/cjs/embeddable/d3Map/Legends.js +1 -1
  5. package/dist/cjs/embeddable/d3Map/Tooltip.js +1 -1
  6. package/dist/cjs/embeddable/d3Map/Utils.js +1 -1
  7. package/dist/cjs/embeddable/data/D3MapDataProvider.js +1 -1
  8. package/dist/cjs/embeddable/filter/index.js +1 -1
  9. package/dist/cjs/embeddable/map/index.js +2 -2
  10. package/dist/cjs/embeddable/map/map.js +4 -4
  11. package/dist/cjs/embeddable/map/mapHelpers.js +1 -1
  12. package/dist/cjs/embeddable/tabbedposts/index.js +1 -1
  13. package/dist/cjs/styles.css +1 -1
  14. package/dist/esm/embeddable/d3Map/DataLayer.js +322 -311
  15. package/dist/esm/embeddable/d3Map/FlowLayer.js +105 -99
  16. package/dist/esm/embeddable/d3Map/LatLongLayer.js +106 -100
  17. package/dist/esm/embeddable/d3Map/Legends.js +151 -147
  18. package/dist/esm/embeddable/d3Map/Tooltip.js +64 -20
  19. package/dist/esm/embeddable/d3Map/Utils.js +26 -12
  20. package/dist/esm/embeddable/data/D3MapDataProvider.js +31 -30
  21. package/dist/esm/embeddable/filter/index.js +123 -123
  22. package/dist/esm/embeddable/map/index.js +77 -77
  23. package/dist/esm/embeddable/map/map.js +436 -453
  24. package/dist/esm/embeddable/map/mapHelpers.js +88 -104
  25. package/dist/esm/embeddable/tabbedposts/index.js +12 -12
  26. package/dist/esm/styles.css +1 -1
  27. package/dist/types/embeddable/d3Map/Utils.d.ts +4 -0
  28. package/dist/types/embeddable/map/mapHelpers.d.ts +0 -2
  29. package/package.json +1 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const tt=require("react/jsx-runtime");require("react");const ct=require("./BaseLayer.js"),ut=require("../data/D3MapDataProvider.js"),dt=require("../data/D3MapDataConsumer.js"),ht=require("d3"),ft=require("react-intl"),Z=require("./BreaksStyles.js"),lt=require("./GradientColors.js");function mt(d){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(d){for(const i in d)if(i!=="default"){const h=Object.getOwnPropertyDescriptor(d,i);Object.defineProperty(t,i,h.get?h:{enumerable:!0,get:()=>d[i]})}}return t.default=d,Object.freeze(t)}const W=mt(ht),H=d=>d?d.toString().replace(/ /g,"_"):"",S=d=>d?"pattern_"+H(d):"";class gt extends ct.default{constructor(){super(),this.state={geoJson:null,json:null},this.getTooltipVariables=this.getTooltipVariables.bind(this),this.resize=this.resize.bind(this),this.createLayer=this.createLayer.bind(this),this.createCentroids=this.createCentroids.bind(this),this.createPatterns=this.createPatterns.bind(this),this.createPaths=this.createPaths.bind(this)}createLayer(t){const i=this.joinData(t,this.props.app,this.props.featureJoinAttribute,this.props.data,this.props.measures,this.props.patternDiscriminator);this.createDataLayer(i),this.props.onReady&&this.props.onReady()}resize(){const{markerLabelSize:t,markFillColor:i,markBorderColor:h,markSizeScale:s,measures:f,data:C,breaks:n,gradientScheme:A,gradientReverse:o,labelFontSize:b}=this.props,l=this.props.transform?this.props.transform.k:1;super.resize();const c=new Z.default({breaks:n,defaultFillColor:i,defaultBorderColor:h,defaultSize:s});this.g.selectAll(".centroids .point").attr("r",p=>c.getSize(p.properties._value)*1/l),this.g.selectAll(".point-label").attr("font-size",p=>t*(1/l)+"px")}getTooltipVariables(t){const{apiJoinAttribute:i}=this.props;return t.properties._value?{...t.properties,meta:{[i]:t.properties.meta?t.properties.meta.value:"",...t.properties.meta,value:t.properties._value}}:{}}createDataLayer(t){const{app:i,svg:h,format:s,id:f,file:C,path:n,onLayerCreated:A,labelFilter:o=[],labelField:b,labelFontSize:l,labelColor:c,fillColor:p,borderColor:y,tooltip:D,markFillColor:v,markLabelColor:J,markBorderColor:R,markSizeScale:q,markerLabelSize:K,featureJoinAttribute:et,apiJoinAttribute:Q,measures:E,editing:rt,data:k,patternDiscriminator:_,patternDiscriminatorLabel:X,breaks:G,gradientScheme:I,gradientReverse:N,patterns:L,projection:at,useBreaks:Y,useGradients:P,useCentroidPoint:$,usePattern:O,waitForFilters:it,intl:M,patternsVisible:B=!0,togglePatterns:j,colorLayerVisible:U=!0,visible:st}=this.props;if(this.gRef&&this.gRef.current){this.g=W.select(this.gRef.current),this.g.attr("class","base-layer");const z=t.features.filter(V=>V.properties._value!=null);this.createPaths(t),$||this.createColors(z),O&&this.createPatterns(t),b!="none"&&this.createLabels(t),$&&this.createCentroids(z)}}createColors(t){const{app:i,svg:h,format:s,id:f,file:C,path:n,onLayerCreated:A,labelFilter:o=[],labelField:b,labelFontSize:l,labelColor:c,fillColor:p,borderColor:y,tooltip:D,markFillColor:v,markLabelColor:J,markBorderColor:R,markSizeScale:q,markerLabelSize:K,featureJoinAttribute:et,apiJoinAttribute:Q,measures:E,editing:rt,data:k,patternDiscriminator:_,patternDiscriminatorLabel:X,breaks:G,gradientScheme:I,gradientReverse:N,patterns:L,projection:at,useBreaks:Y,useGradients:P,useCentroidPoint:$,usePattern:O,waitForFilters:it,intl:M,patternsVisible:B=!0,togglePatterns:j,colorLayerVisible:U=!0,visible:st}=this.props,{gradientStartColor:z,gradientEndColor:V}=this.props,u=new Z.default({breaks:G,defaultFillColor:v,defaultBorderColor:R,defaultSize:q}),w=new lt.default({data:k?k.children:[],measure:E[0],defaultFillColor:v,gradientScheme:I,gradientReverse:N,gradientStartColor:z,gradientEndColor:V});this.g&&(this.g.selectAll("path").attr("fill",m=>!m||!m.properties||!m.properties._value?p:P?w.getColor(m.properties._value):u.getColor(m.properties._value)).attr("stroke",y).attr("id","state-borders").attr("d",n).on("mouseenter",(m,r)=>{r.properties._value&&this.showToolTip(D,this.getTooltipVariables(r),P?w.getColor(r.properties._value):u.getColor(r.properties._value),r)}).on("mouseleave",m=>{this.hiddenToolTip(m)}).on("mousemove",m=>{this.moveToolTip(m)}),U||this.g.selectAll(".borders").style("fill",this.props.fillColor),this.g.attr("transform",this.props.transform))}createCentroids(t){const{app:i,svg:h,format:s,id:f,file:C,path:n,onLayerCreated:A,labelFilter:o=[],labelField:b,labelFontSize:l,labelColor:c,fillColor:p,borderColor:y,tooltip:D,markFillColor:v,markLabelColor:J,markBorderColor:R,markSizeScale:q,markerLabelSize:K,featureJoinAttribute:et,apiJoinAttribute:Q,measures:E,editing:rt,data:k,patternDiscriminator:_,patternDiscriminatorLabel:X,breaks:G,gradientScheme:I,gradientReverse:N,patterns:L,projection:at,useBreaks:Y,useGradients:P,useCentroidPoint:$,usePattern:O,waitForFilters:it,intl:M,patternsVisible:B=!0,togglePatterns:j,colorLayerVisible:U=!0,visible:st}=this.props,z=new Z.default({breaks:G,defaultFillColor:v,defaultBorderColor:R,defaultSize:q}),V=u=>new lt.default({data:u.children,measure:E[0],defaultFillColor:v,gradientScheme:I,gradientReverse:N});if(this.g){const u={style:s.style==="compacted"?"decimal":s.style,notation:s.style==="compacted"?"compact":"standard",currency:s.currency,minimumFractionDigits:parseInt(s.minimumFractionDigits),maximumFractionDigits:parseInt(s.maximumFractionDigits)},w=this.props.transform?this.props.transform.k:1;this.g.selectAll(".centroids").remove();const m=this.g.selectAll("centroids").data(t).enter().append("g").attr("class","centroids");m.append("circle").attr("fill",r=>P===!0?V(k).getColor(r.properties._value):z.getColor(r.properties._value,!0)).attr("stroke",R).attr("class","point").attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("cx",r=>n.centroid(r)[0]).attr("cy",r=>n.centroid(r)[1]).attr("r",r=>z.getSize(r.properties._value)*1/w).on("mouseenter",(r,g)=>{if(g.properties._value){const e={...g.properties,meta:{[Q]:g.properties.meta?g.properties.meta.value:"",...g.properties.meta,value:g.properties._value}};this.showToolTip(D,e,P===!0?V(k).getColor(g.properties._value):z.getColor(g.properties._value))}}).on("mouseleave",r=>{this.hiddenToolTip()}),m.append("text").attr("class","point-label").attr("x",r=>n.centroid(r)[0]).attr("y",r=>n.centroid(r)[1]).attr("font-size",r=>K*(1/w)+"px").attr("text-anchor","middle").attr("dominant-baseline","middle").style("pointer-events","none").attr("fill",J).text(r=>M.formatNumber(s.style==="percent"?r.properties._value/100:r.properties._value,u)).on("mouseover",r=>{}),U||this.g.selectAll(".centroids").style("display","none")}}createPatterns(t){const{app:i,svg:h,format:s,id:f,file:C,path:n,onLayerCreated:A,labelFilter:o=[],labelField:b,labelFontSize:l,labelColor:c,fillColor:p,borderColor:y,tooltip:D,markFillColor:v,markLabelColor:J,markBorderColor:R,markSizeScale:q,markerLabelSize:K,featureJoinAttribute:et,apiJoinAttribute:Q,measures:E,editing:rt,data:k,patternDiscriminator:_,patternDiscriminatorLabel:X,breaks:G,gradientScheme:I,gradientReverse:N,patterns:L,projection:at,useBreaks:Y,useGradients:P,useCentroidPoint:$,usePattern:O,waitForFilters:it,intl:M,patternsVisible:B=!0,togglePatterns:j,colorLayerVisible:U=!0,visible:st}=this.props,z=new Z.default({breaks:G,defaultFillColor:v,defaultBorderColor:R,defaultSize:q}),V=this.props.transform?this.props.transform.k:1,u=10*1/V,w=10*1/V,m=e=>new lt.default({data:e.children,measure:E[0],defaultFillColor:v,gradientScheme:I,gradientReverse:N,gradientStartColor,gradientEndColor});let r=[];if(i=="csv"&&_!="none")r=[...new Set(k.data.map(e=>e[_]))].map(e=>({key:e,type:L[e+"_symbol"],color:L[e+"_color"],rotation:L[e+"_rotation"]}));else if(_!="none"){const e=k&&k.metadata?k.metadata.types.filter(F=>F.dimension==_):[];r=e&&e.length>0?e[0].items.map(F=>{const x=F.value;return{key:x,type:L[x+"_symbol"],color:L[x+"_color"],rotation:L[x+"_rotation"]}}):[]}this.g.selectAll("defs").remove();const g=this.g.append("defs");if(g.selectAll("pattern").remove(),g.selectAll("pattern").data(r).enter().append("pattern").attr("id",e=>S(e.key)).attr("patternUnits","userSpaceOnUse").attr("width",u).attr("height",w).attr("x",0).attr("y",0).attr("patternTransform",e=>`rotate(${e.rotation})`),r.forEach(e=>{e.type==="lines"&&g.select("#"+S(e.key)).append("rect").attr("x",.05).attr("width",u/2).attr("height",w).attr("opacity",1).attr("fill",e.color),e.type==="squares"&&g.select("#"+S(e.key)).append("rect").attr("width",u/2).attr("height",w/2).attr("fill",e.color).attr("opacity",1).attr("stroke-width",1),e.type==="dots"&&g.select("#"+S(e.key)).append("circle").attr("cx",u/2).attr("cy",w/2).attr("r",u/2.5).attr("fill",e.color).attr("opacity",1).attr("stroke-width",1),e.type==="triangle"&&g.select("#"+S(e.key)).append("polygon").attr("points",`${u/2} 0, 0 ${u}, ${u} ${u} `).attr("fill",e.color).attr("opacity",1).attr("stroke-width",1)}),r=r.filter(e=>e.type!=null).sort((e,F)=>new Intl.Collator(M.locale,{caseFirst:"upper",numeric:!0,sensitivity:"variant"}).compare(e.key,F.key)),O&&t&&t.features){this.g.selectAll(".shape-pattern").remove(),B&&t.features.forEach(a=>{let T=[];a.properties&&a.properties.meta&&(T=i!="csv"?a.properties.meta[_]?a.properties.meta[_]:[]:[a.properties.meta[_]],T&&T.length>0&&T.forEach(nt=>{this.g.append("path").attr("d",n(a)).datum(nt).attr("class","shape-pattern").attr("opacity",ot=>{if(Y)return .7}).attr("fill",ot=>"transparent").attr("style",()=>"none;fill:url(#"+S(nt)+");").on("mouseenter",()=>{this.showToolTip(D,this.getTooltipVariables(a),P===!0?m(k).getColor(a.properties._value):z.getColor(a.properties._value))}).on("mousemove",ot=>{this.moveToolTip()}).on("mouseleave",ot=>{this.hiddenToolTip()})}))}),W.select(this.gRef.current.parentNode.parentNode).select(`.layer_${H(f)}`).select("svg").remove();const e=W.select(this.gRef.current.parentNode.parentNode).select(`.layer_${H(f)}`).append("svg");e.attr("height",30+r.length*23+"px");const F=e.append("svg").append("g"),x=F.append("defs");x.selectAll("pattern").remove(),B&&(x.selectAll("pattern").data(r).enter().append("pattern").attr("id",a=>"l_"+S(a.key)).attr("patternUnits","userSpaceOnUse").attr("width",5).attr("height",5).attr("x",0).attr("y",0).attr("patternTransform",a=>`rotate(${a.rotation?a.rotation:0})`),r.forEach(a=>{a.type==="lines"&&x.select("#l_"+S(a.key)).append("rect").attr("x",0).attr("width",1).attr("height",10).attr("opacity",.75).attr("fill",a.color),a.type==="squares"&&x.select("#l_"+S(a.key)).append("rect").attr("width",3).attr("height",3).attr("fill",a.color).attr("opacity",1).attr("stroke-width",1),a.type==="dots"&&x.select("#l_"+S(a.key)).append("circle").attr("cx",2).attr("cy",2).attr("r",2).attr("fill",a.color).attr("opacity",1).attr("stroke-width",1),a.type==="triangle"&&x.select("#l_"+S(a.key)).append("polygon").attr("points","5,0 8,8 0,5").attr("fill",a.color).attr("opacity",1).attr("stroke-width",1)}));let pt=B?"☑ ":"☐ ";F.append("text").attr("class","patterns-checkbox").attr("x",10).attr("y",20).text(a=>pt).attr("font-size","22px").on("click",()=>{j&&j(f)}),F.append("text").attr("class","patterns-title").attr("x",25).attr("y",7).text(a=>i==="csv"?_:X).on("click",()=>{j&&j(f)}),B&&(F.selectAll(".legend-squares").data(r).enter().append("rect").attr("width",15).attr("height",15).attr("y",(a,T)=>T*22+30).attr("x",15).attr("stroke",y).attr("style",a=>"none;fill:url(#l_"+S(a.key)+");"),F.selectAll(".patterns-labels").data(r).enter().append("text").attr("class","patterns-labels").attr("y",(a,T)=>T*22+30).attr("x",32).text(a=>a.key))}}joinData(t,i,h,s,f,C){const n=t.features.map(o=>{const b=o.properties[h];if(i!="csv"&&s&&s.children){const l=s.children.filter(c=>c.value==b);if(l.length>0){const c=l[0][f[0]];if(o.properties.meta=l[0],o.properties._value=c,C&&C!="none"){const p=l[0]&&l[0].children?l[0].children.filter(y=>y.type==C).map(y=>y.value):[];o.properties.meta[C]=p}}else o.properties._value=null}else if(i=="csv"){const l=s.data.filter(c=>c[s.meta.fields[0]]==b);l.length>0?(o.properties.meta=l[0],o.properties._value=l[0][s.meta.fields[1]]):o.properties._value=null}else o.properties._value=null;return o});return{...t,features:n}}componentDidUpdate(t,i,h){const{app:s,file:f,featureJoinAttribute:C,data:n,measures:A,patternDiscriminator:o,editing:b,usePattern:l}=this.props;if((b||t.data!==n||t.path!==this.props.path)&&this.create(),t.visible!=this.props.visible&&this.g.style("display",this.props.visible?"":"none"),t.patternsVisible!=this.props.patternsVisible){const p=W.select(this.gRef.current.parentNode.parentNode).select(`.layer_${H(this.props.id)}`);p.select(".patterns-checkbox").text(this.props.patternsVisible?"☑ ":"☐ "),p.selectAll(".patterns-labels").style("display",this.props.patternsVisible?"":"none"),p.selectAll("rect").style("display",this.props.patternsVisible?"":"none"),p.select("svg").attr("height",this.props.patternsVisible?30+(p.selectAll("rect").size()-1)*23+"px":"30px"),this.g.selectAll(".shape-pattern").style("display",this.props.patternsVisible?"":"none")}t.colorLayerVisible!=this.props.colorLayerVisible&&(this.g.selectAll(".borders").style("fill",c=>this.props.colorLayerVisible?null:this.props.fillColor),this.g.selectAll(".centroids").style("display",this.props.colorLayerVisible?"block":"none")),t.usePattern!=this.props.usePattern&&(this.props.usePattern||W.select(this.gRef.current.parentNode.parentNode).select(`.layer_${H(this.props.id)}`).select("svg").remove()),this.g&&this.resize()}componentDidMount(){super.componentDidMount()}render(){const{id:t,file:i,path:h,zoom:s,labelFilter:f=[],labelField:C,labelFontSize:n,labelColor:A,fillColor:o,borderColor:b,featureJoinAttribute:l,apiJoinAttribute:c,dvzProxyDatasetId:p,editing:y}=this.props;return tt.jsx("g",{id:"data-"+t,className:"data "+t,ref:this.gRef})}}const bt=d=>{const{id:t,unique:i,filters:h,csv:s,app:f,group:C="default",apiJoinAttribute:n,editing:A,patternDiscriminator:o,dvzProxyDatasetId:b,intl:l,settings:c,waitForFilters:p}=d,y={},D=h||{};return D&&D.forEach&&D.forEach(v=>{v.value!=null&&v.value.filter(J=>J!=null&&J.toString().trim()!="").length>0&&(y[v.param]=v.value)}),b&&(y.dvzProxyDatasetId=b),tt.jsx(ut.default,{waitForFilters:!0,editing:A,params:y,app:f,csv:decodeURIComponent(s),group:C,ignoreErrors:!0,isSvg:!0,store:[f,i,t],mySelf:"Data layer",source:n+(o!="none"?"/"+o:""),children:tt.jsx(dt.default,{children:tt.jsx(gt,{...d})})})},yt=ft.injectIntl(bt);exports.default=yt;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const re=require("react/jsx-runtime");require("react");const ue=require("./BaseLayer.js"),de=require("../data/D3MapDataProvider.js"),he=require("../data/D3MapDataConsumer.js"),fe=require("d3"),me=require("react-intl"),te=require("./BreaksStyles.js"),ne=require("./GradientColors.js"),N=require("./Utils.js");function ge(f){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(f){for(const s in f)if(s!=="default"){const m=Object.getOwnPropertyDescriptor(f,s);Object.defineProperty(e,s,m.get?m:{enumerable:!0,get:()=>f[s]})}}return e.default=f,Object.freeze(e)}const K=ge(fe),Q=f=>f?f.toString().replace(/ /g,"_"):"",F=f=>f?"pattern_"+Q(f):"";class be extends ue.default{constructor(){super(),this.state={geoJson:null,json:null},this.getTooltipVariables=this.getTooltipVariables.bind(this),this.resize=this.resize.bind(this),this.createLayer=this.createLayer.bind(this),this.createCentroids=this.createCentroids.bind(this),this.createPatterns=this.createPatterns.bind(this),this.createPaths=this.createPaths.bind(this)}createLayer(e){const s=this.joinData(e,this.props.app,this.props.featureJoinAttribute,this.props.data,this.props.measures,this.props.patternDiscriminator);this.createDataLayer(s),this.props.onReady&&this.props.onReady()}resize(){const{markerLabelSize:e,markFillColor:s,markBorderColor:m,markSizeScale:o,measures:g,data:v,breaks:n,gradientScheme:T,gradientReverse:l,labelFontSize:b}=this.props,i=this.props.transform?this.props.transform.k:1;super.resize();const u=new te.default({breaks:n,defaultFillColor:s,defaultBorderColor:m,defaultSize:o});this.g.selectAll(".centroids .point").attr("r",p=>u.getSize(p.properties._value)*1/i),this.g.selectAll(".point-label").attr("font-size",p=>e*(1/i)+"px")}getTooltipVariables(e){const{apiJoinAttribute:s}=this.props;return e.properties._value?{...e.properties,meta:{[s]:e.properties.meta?e.properties.meta.value:"",...e.properties.meta,value:e.properties._value}}:{}}createDataLayer(e){const{app:s,svg:m,format:o,id:g,file:v,path:n,onLayerCreated:T,labelFilter:l=[],labelField:b,labelFontSize:i,labelColor:u,fillColor:p,borderColor:x,tooltip:D,markFillColor:C,markLabelColor:S,markBorderColor:y,markSizeScale:O,markerLabelSize:X,featureJoinAttribute:ae,apiJoinAttribute:Y,measures:z,editing:ie,data:_,patternDiscriminator:w,patternDiscriminatorLabel:Z,breaks:E,gradientScheme:G,gradientReverse:I,patterns:P,projection:se,useBreaks:ee,useGradients:R,useCentroidPoint:$,usePattern:M,waitForFilters:oe,intl:U,patternsVisible:B=!0,togglePatterns:q,colorLayerVisible:W=!0,visible:le}=this.props;if(this.gRef&&this.gRef.current){this.g=K.select(this.gRef.current),this.g.attr("class","base-layer");const L=e.features.filter(J=>J.properties._value!=null);this.createPaths(e),$||this.createColors(L),M&&this.createPatterns(e),b!="none"&&this.createLabels(e),$&&this.createCentroids(L)}}createColors(e){const{app:s,svg:m,format:o,id:g,file:v,path:n,onLayerCreated:T,labelFilter:l=[],labelField:b,labelFontSize:i,labelColor:u,fillColor:p,borderColor:x,tooltip:D,markFillColor:C,markLabelColor:S,markBorderColor:y,markSizeScale:O,markerLabelSize:X,featureJoinAttribute:ae,apiJoinAttribute:Y,measures:z,editing:ie,data:_,patternDiscriminator:w,patternDiscriminatorLabel:Z,breaks:E,gradientScheme:G,gradientReverse:I,patterns:P,projection:se,useBreaks:ee,useGradients:R,useCentroidPoint:$,usePattern:M,waitForFilters:oe,intl:U,patternsVisible:B=!0,togglePatterns:q,colorLayerVisible:W=!0,visible:le}=this.props,{gradientStartColor:L,gradientEndColor:J}=this.props,d=new te.default({breaks:E,defaultFillColor:C,defaultBorderColor:y,defaultSize:O}),V=new ne.default({data:_?_.children:[],measure:z[0],defaultFillColor:C,gradientScheme:G,gradientReverse:I,gradientStartColor:L,gradientEndColor:J});this.g&&(this.g.selectAll("path").attr("fill",h=>!h||!h.properties||!h.properties._value?p:N.resolveOverrideColor(h.properties.meta,z[0])||(R?V.getColor(h.properties._value):d.getColor(h.properties._value))).attr("stroke",x).attr("id","state-borders").attr("d",n).on("mouseenter",(h,t)=>{if(t.properties._value){const c=N.resolveOverrideColor(t.properties.meta,z[0])||(R?V.getColor(t.properties._value):d.getColor(t.properties._value));this.showToolTip(D,this.getTooltipVariables(t),c,t)}}).on("mouseleave",h=>{this.hiddenToolTip(h)}).on("mousemove",h=>{this.moveToolTip(h)}),W||this.g.selectAll(".borders").style("fill",this.props.fillColor),this.g.attr("transform",this.props.transform))}createCentroids(e){const{app:s,svg:m,format:o,id:g,file:v,path:n,onLayerCreated:T,labelFilter:l=[],labelField:b,labelFontSize:i,labelColor:u,fillColor:p,borderColor:x,tooltip:D,markFillColor:C,markLabelColor:S,markBorderColor:y,markSizeScale:O,markerLabelSize:X,featureJoinAttribute:ae,apiJoinAttribute:Y,measures:z,editing:ie,data:_,patternDiscriminator:w,patternDiscriminatorLabel:Z,breaks:E,gradientScheme:G,gradientReverse:I,patterns:P,projection:se,useBreaks:ee,useGradients:R,useCentroidPoint:$,usePattern:M,waitForFilters:oe,intl:U,patternsVisible:B=!0,togglePatterns:q,colorLayerVisible:W=!0,visible:le}=this.props,L=new te.default({breaks:E,defaultFillColor:C,defaultBorderColor:y,defaultSize:O}),J=d=>new ne.default({data:d.children,measure:z[0],defaultFillColor:C,gradientScheme:G,gradientReverse:I});if(this.g){const d={style:o.style==="compacted"?"decimal":o.style,notation:o.style==="compacted"?"compact":"standard",currency:o.currency,minimumFractionDigits:parseInt(o.minimumFractionDigits),maximumFractionDigits:parseInt(o.maximumFractionDigits)},V=this.props.transform?this.props.transform.k:1;this.g.selectAll(".centroids").remove();const h=this.g.selectAll("centroids").data(e).enter().append("g").attr("class","centroids");h.append("circle").attr("fill",t=>N.resolveOverrideColor(t.properties.meta,z[0])||(R===!0?J(_).getColor(t.properties._value):L.getColor(t.properties._value,!0))).attr("stroke",y).attr("class","point").attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("cx",t=>n.centroid(t)[0]).attr("cy",t=>n.centroid(t)[1]).attr("r",t=>L.getSize(t.properties._value)*1/V).on("mouseenter",(t,c)=>{if(c.properties._value){const r={...c.properties,meta:{[Y]:c.properties.meta?c.properties.meta.value:"",...c.properties.meta,value:c.properties._value}},k=N.resolveOverrideColor(c.properties.meta,z[0])||(R===!0?J(_).getColor(c.properties._value):L.getColor(c.properties._value));this.showToolTip(D,r,k)}}).on("mouseleave",t=>{this.hiddenToolTip()}),h.append("text").attr("class","point-label").attr("x",t=>n.centroid(t)[0]).attr("y",t=>n.centroid(t)[1]).attr("font-size",t=>X*(1/V)+"px").attr("text-anchor","middle").attr("dominant-baseline","middle").style("pointer-events","none").attr("fill",S).text(t=>U.formatNumber(o.style==="percent"?t.properties._value/100:t.properties._value,d)).on("mouseover",t=>{}),W||this.g.selectAll(".centroids").style("display","none")}}createPatterns(e){const{app:s,svg:m,format:o,id:g,file:v,path:n,onLayerCreated:T,labelFilter:l=[],labelField:b,labelFontSize:i,labelColor:u,fillColor:p,borderColor:x,tooltip:D,markFillColor:C,markLabelColor:S,markBorderColor:y,markSizeScale:O,markerLabelSize:X,featureJoinAttribute:ae,apiJoinAttribute:Y,measures:z,editing:ie,data:_,patternDiscriminator:w,patternDiscriminatorLabel:Z,breaks:E,gradientScheme:G,gradientReverse:I,patterns:P,projection:se,useBreaks:ee,useGradients:R,useCentroidPoint:$,usePattern:M,waitForFilters:oe,intl:U,patternsVisible:B=!0,togglePatterns:q,colorLayerVisible:W=!0,visible:le}=this.props,L=new te.default({breaks:E,defaultFillColor:C,defaultBorderColor:y,defaultSize:O}),J=this.props.transform?this.props.transform.k:1,d=10*1/J,V=10*1/J,h=r=>new ne.default({data:r.children,measure:z[0],defaultFillColor:C,gradientScheme:G,gradientReverse:I,gradientStartColor,gradientEndColor});let t=[];if(s=="csv"&&w!="none")t=[...new Set(_.data.map(r=>r[w]))].map(r=>({key:r,type:P[r+"_symbol"],color:P[r+"_color"],rotation:P[r+"_rotation"]}));else if(w!="none"){const r=_&&_.metadata?_.metadata.types.filter(k=>k.dimension==w):[];t=r&&r.length>0?r[0].items.map(k=>{const A=k.value;return{key:A,type:P[A+"_symbol"],color:P[A+"_color"],rotation:P[A+"_rotation"]}}):[]}this.g.selectAll("defs").remove();const c=this.g.append("defs");if(c.selectAll("pattern").remove(),c.selectAll("pattern").data(t).enter().append("pattern").attr("id",r=>F(r.key)).attr("patternUnits","userSpaceOnUse").attr("width",d).attr("height",V).attr("x",0).attr("y",0).attr("patternTransform",r=>`rotate(${r.rotation})`),t.forEach(r=>{r.type==="lines"&&c.select("#"+F(r.key)).append("rect").attr("x",.05).attr("width",d/2).attr("height",V).attr("opacity",1).attr("fill",r.color),r.type==="squares"&&c.select("#"+F(r.key)).append("rect").attr("width",d/2).attr("height",V/2).attr("fill",r.color).attr("opacity",1).attr("stroke-width",1),r.type==="dots"&&c.select("#"+F(r.key)).append("circle").attr("cx",d/2).attr("cy",V/2).attr("r",d/2.5).attr("fill",r.color).attr("opacity",1).attr("stroke-width",1),r.type==="triangle"&&c.select("#"+F(r.key)).append("polygon").attr("points",`${d/2} 0, 0 ${d}, ${d} ${d} `).attr("fill",r.color).attr("opacity",1).attr("stroke-width",1)}),t=t.filter(r=>r.type!=null).sort((r,k)=>new Intl.Collator(U.locale,{caseFirst:"upper",numeric:!0,sensitivity:"variant"}).compare(r.key,k.key)),M&&e&&e.features){this.g.selectAll(".shape-pattern").remove(),B&&e.features.forEach(a=>{let j=[];a.properties&&a.properties.meta&&(j=s!="csv"?a.properties.meta[w]?a.properties.meta[w]:[]:[a.properties.meta[w]],j&&j.length>0&&j.forEach(pe=>{this.g.append("path").attr("d",n(a)).datum(pe).attr("class","shape-pattern").attr("opacity",H=>{if(ee)return .7}).attr("fill",H=>"transparent").attr("style",()=>"none;fill:url(#"+F(pe)+");").on("mouseenter",()=>{const H=N.resolveOverrideColor(a.properties.meta,z[0])||(R===!0?h(_).getColor(a.properties._value):L.getColor(a.properties._value));this.showToolTip(D,this.getTooltipVariables(a),H)}).on("mousemove",H=>{this.moveToolTip()}).on("mouseleave",H=>{this.hiddenToolTip()})}))}),K.select(this.gRef.current.parentNode.parentNode).select(`.layer_${Q(g)}`).select("svg").remove();const r=K.select(this.gRef.current.parentNode.parentNode).select(`.layer_${Q(g)}`).append("svg");r.attr("height",30+t.length*23+"px");const k=r.append("svg").append("g"),A=k.append("defs");A.selectAll("pattern").remove(),B&&(A.selectAll("pattern").data(t).enter().append("pattern").attr("id",a=>"l_"+F(a.key)).attr("patternUnits","userSpaceOnUse").attr("width",5).attr("height",5).attr("x",0).attr("y",0).attr("patternTransform",a=>`rotate(${a.rotation?a.rotation:0})`),t.forEach(a=>{a.type==="lines"&&A.select("#l_"+F(a.key)).append("rect").attr("x",0).attr("width",1).attr("height",10).attr("opacity",.75).attr("fill",a.color),a.type==="squares"&&A.select("#l_"+F(a.key)).append("rect").attr("width",3).attr("height",3).attr("fill",a.color).attr("opacity",1).attr("stroke-width",1),a.type==="dots"&&A.select("#l_"+F(a.key)).append("circle").attr("cx",2).attr("cy",2).attr("r",2).attr("fill",a.color).attr("opacity",1).attr("stroke-width",1),a.type==="triangle"&&A.select("#l_"+F(a.key)).append("polygon").attr("points","5,0 8,8 0,5").attr("fill",a.color).attr("opacity",1).attr("stroke-width",1)}));let ce=B?"☑ ":"☐ ";k.append("text").attr("class","patterns-checkbox").attr("x",10).attr("y",20).text(a=>ce).attr("font-size","22px").on("click",()=>{q&&q(g)}),k.append("text").attr("class","patterns-title").attr("x",25).attr("y",7).text(a=>s==="csv"?w:Z).on("click",()=>{q&&q(g)}),B&&(k.selectAll(".legend-squares").data(t).enter().append("rect").attr("width",15).attr("height",15).attr("y",(a,j)=>j*22+30).attr("x",15).attr("stroke",x).attr("style",a=>"none;fill:url(#l_"+F(a.key)+");"),k.selectAll(".patterns-labels").data(t).enter().append("text").attr("class","patterns-labels").attr("y",(a,j)=>j*22+30).attr("x",32).text(a=>a.key))}}joinData(e,s,m,o,g,v){const n=e.features.map(l=>{const b=l.properties[m];if(s!="csv"&&o&&o.children){const i=o.children.filter(u=>u.value==b);if(i.length>0){const u=i[0][g[0]];if(l.properties.meta={...i[0],...N.extractVariablesDeep(i[0])},l.properties._value=u,v&&v!="none"){const p=i[0]&&i[0].children?i[0].children.filter(x=>x.type==v).map(x=>x.value):[];l.properties.meta[v]=p}}else l.properties._value=null}else if(s=="csv"){const i=o.data.filter(u=>u[o.meta.fields[0]]==b);i.length>0?(l.properties.meta=i[0],l.properties._value=i[0][o.meta.fields[1]]):l.properties._value=null}else l.properties._value=null;return l});return{...e,features:n}}componentDidUpdate(e,s,m){const{app:o,file:g,featureJoinAttribute:v,data:n,measures:T,patternDiscriminator:l,editing:b,usePattern:i}=this.props;if((b||e.data!==n||e.path!==this.props.path)&&this.create(),e.visible!=this.props.visible&&this.g.style("display",this.props.visible?"":"none"),e.patternsVisible!=this.props.patternsVisible){const p=K.select(this.gRef.current.parentNode.parentNode).select(`.layer_${Q(this.props.id)}`);p.select(".patterns-checkbox").text(this.props.patternsVisible?"☑ ":"☐ "),p.selectAll(".patterns-labels").style("display",this.props.patternsVisible?"":"none"),p.selectAll("rect").style("display",this.props.patternsVisible?"":"none"),p.select("svg").attr("height",this.props.patternsVisible?30+(p.selectAll("rect").size()-1)*23+"px":"30px"),this.g.selectAll(".shape-pattern").style("display",this.props.patternsVisible?"":"none")}e.colorLayerVisible!=this.props.colorLayerVisible&&(this.g.selectAll(".borders").style("fill",u=>this.props.colorLayerVisible?null:this.props.fillColor),this.g.selectAll(".centroids").style("display",this.props.colorLayerVisible?"block":"none")),e.usePattern!=this.props.usePattern&&(this.props.usePattern||K.select(this.gRef.current.parentNode.parentNode).select(`.layer_${Q(this.props.id)}`).select("svg").remove()),this.g&&this.resize()}componentDidMount(){super.componentDidMount()}render(){const{id:e,file:s,path:m,zoom:o,labelFilter:g=[],labelField:v,labelFontSize:n,labelColor:T,fillColor:l,borderColor:b,featureJoinAttribute:i,apiJoinAttribute:u,dvzProxyDatasetId:p,editing:x}=this.props;return re.jsx("g",{id:"data-"+e,className:"data "+e,ref:this.gRef})}}const ye=f=>{const{id:e,unique:s,filters:m,csv:o,app:g,group:v="default",apiJoinAttribute:n,editing:T,patternDiscriminator:l,dvzProxyDatasetId:b,extraTooltipColumns:i,intl:u,settings:p,waitForFilters:x}=f,D={},C=m||{};if(C&&C.forEach&&C.forEach(S=>{S.value!=null&&S.value.filter(y=>y!=null&&y.toString().trim()!="").length>0&&(D[S.param]=S.value)}),b&&(D.dvzProxyDatasetId=b),i&&i.length>0){const S=i.filter(y=>y&&y!==n&&y!==l);S.length>0&&(D.includeColumns=S.join(","))}return re.jsx(de.default,{waitForFilters:!0,editing:T,params:D,app:g,csv:decodeURIComponent(o),extraTooltipColumns:i,group:v,ignoreErrors:!0,isSvg:!0,store:[g,s,e],mySelf:"Data layer",source:n+(l!="none"?"/"+l:""),children:re.jsx(he.default,{children:re.jsx(be,{...f})})})},ve=me.injectIntl(ye);exports.default=ve;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("react/jsx-runtime");require("react");const W=require("./BaseLayer.js"),Y=require("../data/DataProvider.js"),G=require("../data/DataConsumer.js"),H=require("d3"),X=require("react-intl"),K=require("papaparse"),Q=require("./BreaksStyles.js");function Z(n){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>n[e]})}}return t.default=n,Object.freeze(t)}const F=Z(H);class $ extends W.default{constructor(){super(),this.createDataLayer=this.createDataLayer.bind(this)}createDataLayer(t){const{format:e,path:i,tooltip:d,markFillColor:l,markBorderColor:f,markSizeScale:v,featureJoinAttribute:r,apiJoinAttribute:b,projection:o,breaks:c,markSizeScale2:p,measures:m,zoom:k,offsetPixels:x=10,waitForFilters:rt}=this.props,_=m[0],L=new Q.default({breaks:c,defaultFillColor:l,defaultBorderColor:f,defaultSize:p});e.style==="compacted"||e.style,e.style,e.currency,parseInt(e.minimumFractionDigits),parseInt(e.maximumFractionDigits);const z=t.features.filter(s=>s.properties._value!=null);this.g=F.select(this.gRef.current),this.g.attr("class","base-layer zoomable flow"),this.props.transform&&this.g.attr("transform",this.props.transform),this.g.selectAll(".flow-line").remove(),this.g.selectAll(".start-point").remove(),this.g.selectAll(".end-point").remove(),this.g.select("defs").selectAll("*").remove();const I=this.props.transform?this.props.transform.k:1,T=[];z.forEach(s=>{T.push(s),s.properties.destinations.sort((y,g)=>y[_]-g[_]).forEach(y=>{const g=y[_];t.features.filter(a=>a.properties[r]==y.value).forEach(a=>{a.properties.meta=y;const M=s.properties[r],w=s.properties[r]+"--"+a.properties[r],A=i.centroid(s),S=i.centroid(a),O=S[0]-A[0],E=S[1]-A[1],C=Math.sqrt(O*O+E*E),B=O/C,N=E/C,R=[S[0]-B*x,S[1]-N*x],V=o.invert(R),J={type:"LineString",coordinates:[o.invert(A),V]},u=this.g;this.g.select("defs").append("marker").attr("id","arrow"+w).attr("markerUnits","strokeWidth").attr("markerWidth","6").attr("markerHeight","6").attr("viewBox","0 0 24 24").attr("refX","6").attr("refY","6").attr("orient","auto").append("path").attr("d","M2,2 L10,6 L2,10 L6,6 L2,2").attr("d","M2,2 L10,6 L2,10 L6,6 L2,2").attr("style",j=>"fill: "+L.getColor(g)+";"),u.append("path").attr("d",i(J)).attr("id",w).attr("class","flow-line").style("fill","none").style("cursor","pointer").style("stroke-dasharray","0").style("stroke",j=>L.getColor(g)).style("stroke-width",j=>L.getSize(g)).attr("marker-end","url(#arrow"+w+")").on("mouseenter",(j,st)=>{if(u.selectAll("marker").transition().duration("200").style("opacity",0),u.selectAll(".start-point").transition().duration("200").style("opacity",0),u.selectAll(".flow-line").transition().duration("200").style("opacity",0),F.select(j.target).transition().duration("200").style("opacity",1),u.selectAll("#arrow"+w).transition().duration("200").style("opacity",1),u.selectAll(".start-point.circle_"+M).transition().duration("200").style("opacity",1),g){const P={},q={};Object.keys(s.properties).forEach(h=>{P["origin_"+h]=s.properties[h]}),Object.keys(a.properties).forEach(h=>{q["target_"+h]=a.properties[h]}),Object.keys(a.properties.meta).forEach(h=>{q["target_"+h]=a.properties.meta[h]});const U={...P,...q,meta:{[b]:s.properties.meta?s.properties.meta.value:"",...s.properties.meta,value:g}};this.showToolTip(d,U,L.getColor(a.properties._value))}}).on("mouseout",j=>{this.hiddenToolTip(),F.selectAll(".flow-line").transition().duration("100").style("opacity",1),u.selectAll(".start-point").transition().duration("100").style("opacity",1),u.selectAll("marker").transition().duration("100").style("opacity",1)}),u.append("text").append("textPath").attr("xlink:href",w).style("text-anchor","middle").attr("startOffset","50%").attr("fill","#fff").text("Yay, my text is on a wavy path")})})}),T.forEach(s=>{this.g.append("circle").attr("fill",l).attr("stroke",f).attr("class","start-point circle_"+s.properties[r]).attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("cx",i.centroid(s)[0]).attr("cy",i.centroid(s)[1]).attr("r",()=>v*1/I).on("mouseenter",y=>{this.showToolTip("{name_en}",s.properties,"")}).on("mouseout",y=>{this.hiddenToolTip()})})}_buildLayer(t){const{featureJoinAttribute:e,app:i,data:d,measures:l,csv:f}=this.props,v=t.features.map(r=>{const b=r.properties[e];if(i!="csv"&&d&&d.children){const o=d.children.filter(c=>c.value.indexOf(b)>-1);if(o.length>0){const c=o[0][l[0]];r.properties.meta=o[0],r.properties._value=c,r.properties.destinations=o[0].children}}else if(i=="csv"){const o=K.parse(f,{header:!0,dynamicTyping:!0}),c=r.properties[e],p=o.data.filter(m=>m.origin==c)[0];p!=null&&(alert("CSV Not implemented Yet, please do it if you have time"),r.properties.meta=p,r.properties._value=p.value,r.properties.destinations=p.destination)}return r});this.createDataLayer({...t,features:v})}create(){const{file:t}=this.props;t!="none"&&(this.state.json?this._buildLayer(this.state.json):this.loadJSON(t).then(e=>{this.setState({json:e}),this._buildLayer(e)}))}componentDidUpdate(t,e,i){const{projection:d,editing:l,data:f}=this.props;(l||t.data!==f||t.path!==this.props.path)&&this.create(),t.visible!=this.props.visible&&this.g.style("display",this.props.visible?"":"none")}componentDidMount(){this.create(),this.props.zoom.current.fullView()}render(){const{id:t}=this.props;return D.jsx("g",{id:"data-"+t,className:"data "+t,ref:this.gRef,children:D.jsx("defs",{})})}}const tt=n=>{const{id:t,unique:e,filters:i,csv:d,app:l,group:f="default",flowOrigin:v,editing:r,flowDestination:b,dvzProxyDatasetId:o,waitForFilters:c}=n,p={dvzProxyDatasetId:o},m=i||{};return m&&m.forEach&&m.forEach(k=>{k.value!=null&&k.value.filter(x=>x!=null&&x.toString().trim()!="").length>0&&(p[k.param]=k.value)}),D.jsx(Y.default,{editing:r,params:p,waitForFilters:c,app:l,csv:decodeURIComponent(d),group:f,ignoreErrors:!0,isSvg:!0,store:[l,e,t],source:v+"/"+b,children:D.jsx(G.default,{children:D.jsx($,{...n})})})},et=X.injectIntl(tt);exports.default=et;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const w=require("react/jsx-runtime");require("react");const G=require("./BaseLayer.js"),H=require("../data/DataProvider.js"),X=require("../data/DataConsumer.js"),K=require("d3"),Q=require("react-intl"),Z=require("papaparse"),$=require("./BreaksStyles.js"),I=require("./Utils.js");function tt(p){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const e in p)if(e!=="default"){const i=Object.getOwnPropertyDescriptor(p,e);Object.defineProperty(t,e,i.get?i:{enumerable:!0,get:()=>p[e]})}}return t.default=p,Object.freeze(t)}const T=tt(K);class et extends G.default{constructor(){super(),this.createDataLayer=this.createDataLayer.bind(this)}createDataLayer(t){const{format:e,path:i,tooltip:u,markFillColor:n,markBorderColor:f,markSizeScale:x,featureJoinAttribute:s,apiJoinAttribute:k,projection:o,breaks:a,markSizeScale2:h,measures:g,zoom:L,offsetPixels:l=10,waitForFilters:v}=this.props,A=g[0],S=new $.default({breaks:a,defaultFillColor:n,defaultBorderColor:f,defaultSize:h});e.style==="compacted"||e.style,e.style,e.currency,parseInt(e.minimumFractionDigits),parseInt(e.maximumFractionDigits);const M=t.features.filter(r=>r.properties._value!=null);this.g=T.select(this.gRef.current),this.g.attr("class","base-layer zoomable flow"),this.props.transform&&this.g.attr("transform",this.props.transform),this.g.selectAll(".flow-line").remove(),this.g.selectAll(".start-point").remove(),this.g.selectAll(".end-point").remove(),this.g.select("defs").selectAll("*").remove();const V=this.props.transform?this.props.transform.k:1,F=[];M.forEach(r=>{F.push(r),r.properties.destinations.sort((m,b)=>m[A]-b[A]).forEach(m=>{const b=m[A];t.features.filter(c=>c.properties[s]==m.value).forEach(c=>{c.properties.meta={...m,...I.extractVariablesDeep(m)};const B=r.properties[s],D=r.properties[s]+"--"+c.properties[s],C=i.centroid(r),_=i.centroid(c),O=_[0]-C[0],q=_[1]-C[1],P=Math.sqrt(O*O+q*q),N=O/P,R=q/P,U=[_[0]-N*l,_[1]-R*l],J=o.invert(U),W={type:"LineString",coordinates:[o.invert(C),J]},d=this.g;this.g.select("defs").append("marker").attr("id","arrow"+D).attr("markerUnits","strokeWidth").attr("markerWidth","6").attr("markerHeight","6").attr("viewBox","0 0 24 24").attr("refX","6").attr("refY","6").attr("orient","auto").append("path").attr("d","M2,2 L10,6 L2,10 L6,6 L2,2").attr("d","M2,2 L10,6 L2,10 L6,6 L2,2").attr("style",j=>"fill: "+S.getColor(b)+";"),d.append("path").attr("d",i(W)).attr("id",D).attr("class","flow-line").style("fill","none").style("cursor","pointer").style("stroke-dasharray","0").style("stroke",j=>S.getColor(b)).style("stroke-width",j=>S.getSize(b)).attr("marker-end","url(#arrow"+D+")").on("mouseenter",(j,it)=>{if(d.selectAll("marker").transition().duration("200").style("opacity",0),d.selectAll(".start-point").transition().duration("200").style("opacity",0),d.selectAll(".flow-line").transition().duration("200").style("opacity",0),T.select(j.target).transition().duration("200").style("opacity",1),d.selectAll("#arrow"+D).transition().duration("200").style("opacity",1),d.selectAll(".start-point.circle_"+B).transition().duration("200").style("opacity",1),b){const z={},E={};Object.keys(r.properties).forEach(y=>{z["origin_"+y]=r.properties[y]}),Object.keys(c.properties).forEach(y=>{E["target_"+y]=c.properties[y]}),Object.keys(c.properties.meta).forEach(y=>{E["target_"+y]=c.properties.meta[y]});const Y={...z,...E,meta:{[k]:r.properties.meta?r.properties.meta.value:"",...r.properties.meta,value:b}};this.showToolTip(u,Y,S.getColor(c.properties._value))}}).on("mouseout",j=>{this.hiddenToolTip(),T.selectAll(".flow-line").transition().duration("100").style("opacity",1),d.selectAll(".start-point").transition().duration("100").style("opacity",1),d.selectAll("marker").transition().duration("100").style("opacity",1)}),d.append("text").append("textPath").attr("xlink:href",D).style("text-anchor","middle").attr("startOffset","50%").attr("fill","#fff").text("Yay, my text is on a wavy path")})})}),F.forEach(r=>{this.g.append("circle").attr("fill",n).attr("stroke",f).attr("class","start-point circle_"+r.properties[s]).attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("cx",i.centroid(r)[0]).attr("cy",i.centroid(r)[1]).attr("r",()=>x*1/V).on("mouseenter",m=>{this.showToolTip(u,{...r.properties,...r.properties.meta},n)}).on("mouseout",m=>{this.hiddenToolTip()})})}_buildLayer(t){const{featureJoinAttribute:e,app:i,data:u,measures:n,csv:f}=this.props,x=t.features.map(s=>{const k=s.properties[e];if(i!="csv"&&u&&u.children){const o=u.children.filter(a=>a.value.indexOf(k)>-1);if(o.length>0){const a=o[0][n[0]];s.properties.meta={...o[0],...I.extractVariablesDeep(o[0])},s.properties._value=a,s.properties.destinations=o[0].children}}else if(i=="csv"){const o=Z.parse(f,{header:!0,dynamicTyping:!0}),a=s.properties[e],h=o.data.filter(g=>g.origin==a)[0];h!=null&&(alert("CSV Not implemented Yet, please do it if you have time"),s.properties.meta=h,s.properties._value=h.value,s.properties.destinations=h.destination)}return s});this.createDataLayer({...t,features:x})}create(){const{file:t}=this.props;t!="none"&&(this.state.json?this._buildLayer(this.state.json):this.loadJSON(t).then(e=>{this.setState({json:e}),this._buildLayer(e)}))}componentDidUpdate(t,e,i){const{projection:u,editing:n,data:f}=this.props;(n||t.data!==f||t.path!==this.props.path)&&this.create(),t.visible!=this.props.visible&&this.g.style("display",this.props.visible?"":"none")}componentDidMount(){this.create(),this.props.zoom.current.fullView()}render(){const{id:t}=this.props;return w.jsx("g",{id:"data-"+t,className:"data "+t,ref:this.gRef,children:w.jsx("defs",{})})}}const rt=p=>{const{id:t,unique:e,filters:i,csv:u,app:n,group:f="default",flowOrigin:x,editing:s,flowDestination:k,dvzProxyDatasetId:o,extraTooltipColumns:a,waitForFilters:h}=p,g={dvzProxyDatasetId:o},L=i||{};if(L&&L.forEach&&L.forEach(l=>{l.value!=null&&l.value.filter(v=>v!=null&&v.toString().trim()!="").length>0&&(g[l.param]=l.value)}),a&&a.length>0){const l=a.filter(v=>v&&v!==x&&v!==k);l.length>0&&(g.includeColumns=l.join(","))}return w.jsx(H.default,{editing:s,params:g,waitForFilters:h,app:n,csv:decodeURIComponent(u),group:f,ignoreErrors:!0,isSvg:!0,store:[n,e,t],source:x+"/"+k,children:w.jsx(X.default,{children:w.jsx(et,{...p})})})},st=Q.injectIntl(rt);exports.default=st;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const x=require("react/jsx-runtime"),_=require("react"),B=require("../data/DataProvider.js"),C=require("../data/DataConsumer.js"),P=require("d3"),N=require("react-intl"),U=require("react-dom"),V=require("./Tooltip.js");function w(p){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(p){for(const r in p)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(p,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>p[r]})}}return t.default=p,Object.freeze(t)}const c=w(P),X=w(U);class Y extends _.Component{constructor(){super(),this.create=this.create.bind(this),this.showToolTip=this.showToolTip.bind(this),this.moveToolTip=this.moveToolTip.bind(this),this.resize=this.resize.bind(this),this.gRef=_.createRef()}showToolTip(t,r,o,n){const a=c.select("body").append("div").attr("class","d3MapTooltip").style("position","absolute").html("").style("left",n.pageX+15+"px").style("top",n.pageY-50+"px");X.render(x.jsx(V.default,{intl:this.props.intl,tooltip:t,data:r,tooltipEnableMarkdown:!1}),a._groups[0][0])}moveToolTip(t){c.select(".d3MapTooltip").style("left",t.pageX+15+"px").style("top",t.pageY-50+"px")}hiddenToolTip(t){c.selectAll(".d3MapTooltip").remove()}create(){const{app:t,tooltip:r,data:o,markFillColor:n,markBorderColor:a,markSizeScale:m,markerLabelSize:y,measures:b,projection:d,id:T,format:l,intl:S,useBreaks:j,breaks:u,pointDimensionStyles:f=[],pointStyleBy:g,dimension2:v,visible:k=!0,showDim2OnLegends:I,dim2LegendLabel:W}=this.props,M={style:l.style==="compacted"?"decimal":l.style,notation:l.style==="compacted"?"compact":"standard",currency:l.currency,minimumFractionDigits:parseInt(l.minimumFractionDigits),maximumFractionDigits:parseInt(l.maximumFractionDigits)},q=c.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>m+e.size)),O=c.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>e.color)),A=c.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>e.borderColor));let z=[];const D=c.select(this.gRef.current);if(t!="csv"&&o&&o.children)z=o.children.map(e=>{const i=e.value.split(",");let h={color:n,size:m,border:a},s=1;return g==="measure"?(s=e[b[0]],h={color:O(s),size:q(s),border:A(s)}):g==="dimension"&&e.children&&I&&(s=e.children[0].value,h={color:f[s+"_color"]||n,size:f[s+"_size"]||m,border:f[s+"_border"]||a}),{x:i[0],y:i[1],value:s,metadata:e,pointStyle:h}}),z.sort((e,i)=>e.pointStyle.size-i.pointStyle.size);else if(t=="csv"){const e=o.meta.fields[0],i=o.meta.fields[1],h=o.meta.fields[2];z=o.data.map(s=>{let E={color:n,size:m,border:a};return{x:s[e],y:s[i],value:s[h],meta:s,pointStyle:E}})}const L=e=>{const{pointStyleBy:i,dimension2:h}=this.props,s={};return h!="none"&&(s[h]=e.metadata.children[0].value),{...s,...e,...e.metadata}},R=this.props.transform?this.props.transform.k:1;D.attr("class","zoomable lat-long "+T),D.selectAll(".point-group").remove();const F=D.selectAll(".point-group").data(z).enter().append("g").attr("class","point-group");F.append("circle").attr("cx",function(e){return d([e.y,e.x])[0]}).attr("cy",function(e){return d([e.y,e.x])[1]}).attr("class","latLong").attr("r",e=>e.pointStyle.size*1/R).attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("stroke",e=>e.pointStyle.border).attr("fill",e=>e.pointStyle.color).on("mouseenter",(e,i)=>{this.showToolTip(r,L(i),i.pointStyle.color,e)}).on("mousemove",(e,i)=>{this.moveToolTip(e)}).on("mouseleave",(e,i)=>{this.hiddenToolTip(e)}),F.append("text").attr("class","point-label").attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x",e=>d([e.y,e.x])[0]).attr("y",e=>d([e.y,e.x])[1]).attr("font-size",e=>y*(10/R)+"px").attr("fill","#EEE").text(e=>S.formatNumber(e.value,M)).on("mouseenter",(e,i)=>{this.showToolTip(r,L(i),i.pointStyle.color,e)}).on("mousemove",(e,i)=>{this.moveToolTip(e)}).on("mouseleave",(e,i)=>{this.hiddenToolTip(e)}),this.props.transform&&D.attr("transform",this.props.transform)}componentDidUpdate(t,r,o){const{editing:n,selectedItem:a,onZoomToPoint:m,data:y}=this.props,b=c.select(this.gRef.current);if((n||t.data!==y||t.path!==this.props.path)&&this.create(),t.visible!=this.props.visible&&c.select(this.gRef.current).style("display",this.props.visible?"block":"none"),a!=null&&this.props.selectedItem!=t.selectedItem){const T=b.selectAll(".point-group circle").filter(l=>l.metadata.children.find(S=>S.value==a)!=null);m({x:T.datum().x,y:T.datum().y})}this.resize()}resize(){const{markerLabelSize:t}=this.props,r=c.select(this.gRef.current),o=this.props.transform?this.props.transform.k:1;r&&(r.selectAll(".point-group circle").attr("r",n=>n.pointStyle.size*1/o),r.selectAll(".point-group text.point-label").attr("font-size",n=>t*(10/o)+"px"))}componentDidMount(){this.create()}render(){const{id:t}=this.props;return x.jsx("g",{className:"latLong "+t,ref:this.gRef})}}const G=p=>{const{id:t,unique:r,filters:o,csv:n,app:a,group:m="default",apiJoinAttribute:y,editing:b,dimension2:d,pointStyleBy:T,dvzProxyDatasetId:l,settings:S,waitForFilters:j}=p,u=d!="none"?"/"+d:"",f={},g=o||{};return g&&g.forEach&&g.forEach(v=>{v.value!=null&&v.value.filter(k=>k!=null&&k.toString().trim()!="").length>0&&(f[v.param]=v.value)}),l&&(f.dvzProxyDatasetId=l),x.jsx(B.default,{editing:b,params:f,waitForFilters:j,app:a,csv:decodeURIComponent(n),group:m,ignoreErrors:!0,isSvg:!0,store:[a,r,t],source:[y+u],children:x.jsx(C.default,{children:x.jsx(Y,{...p})})})},J=N.injectIntl(G);exports.default=J;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const z=require("react/jsx-runtime"),_=require("react"),E=require("../data/DataProvider.js"),B=require("../data/DataConsumer.js"),P=require("d3"),N=require("react-intl"),U=require("react-dom"),V=require("./Tooltip.js"),X=require("./Utils.js");function q(d){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(d){for(const r in d)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(d,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>d[r]})}}return t.default=d,Object.freeze(t)}const p=q(P),Y=q(U);class G extends _.Component{constructor(){super(),this.create=this.create.bind(this),this.showToolTip=this.showToolTip.bind(this),this.moveToolTip=this.moveToolTip.bind(this),this.resize=this.resize.bind(this),this.gRef=_.createRef()}showToolTip(t,r,o,n){const l=p.select("body").append("div").attr("class","d3MapTooltip").style("position","absolute").html("").style("left",n.pageX+15+"px").style("top",n.pageY-50+"px");Y.render(z.jsx(V.default,{intl:this.props.intl,tooltip:t,data:r,tooltipEnableMarkdown:!1}),l._groups[0][0])}moveToolTip(t){p.select(".d3MapTooltip").style("left",t.pageX+15+"px").style("top",t.pageY-50+"px")}hiddenToolTip(t){p.selectAll(".d3MapTooltip").remove()}create(){const{app:t,tooltip:r,data:o,markFillColor:n,markBorderColor:l,markSizeScale:m,markerLabelSize:T,measures:v,projection:c,id:x,format:a,intl:y,useBreaks:w,breaks:u,pointDimensionStyles:S=[],pointStyleBy:b,dimension2:D,visible:h=!0,showDim2OnLegends:f,dim2LegendLabel:Z}=this.props,I={style:a.style==="compacted"?"decimal":a.style,notation:a.style==="compacted"?"compact":"standard",currency:a.currency,minimumFractionDigits:parseInt(a.minimumFractionDigits),maximumFractionDigits:parseInt(a.maximumFractionDigits)},M=p.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>m+e.size)),C=p.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>e.color)),O=p.scaleThreshold().domain(u.map(e=>e.end)).range(u.map(e=>e.borderColor));let k=[];const j=p.select(this.gRef.current);if(t!="csv"&&o&&o.children)k=o.children.map(e=>{const i=e.value.split(",");let g={color:n,size:m,border:l},s=1;return b==="measure"?(s=e[v[0]],g={color:C(s),size:M(s),border:O(s)}):b==="dimension"&&e.children&&f&&(s=e.children[0].value,g={color:S[s+"_color"]||n,size:S[s+"_size"]||m,border:S[s+"_border"]||l}),{x:i[0],y:i[1],value:s,metadata:{...e,...X.extractVariablesDeep(e)},pointStyle:g}}),k.sort((e,i)=>e.pointStyle.size-i.pointStyle.size);else if(t=="csv"){const e=o.meta.fields[0],i=o.meta.fields[1],g=o.meta.fields[2];k=o.data.map(s=>{let A={color:n,size:m,border:l};return{x:s[e],y:s[i],value:s[g],metadata:s,pointStyle:A}})}const L=e=>{const{pointStyleBy:i,dimension2:g}=this.props,s={};return g!="none"&&(s[g]=e.metadata.children[0].value),{...s,...e,...e.metadata}},R=this.props.transform?this.props.transform.k:1;j.attr("class","zoomable lat-long "+x),j.selectAll(".point-group").remove();const F=j.selectAll(".point-group").data(k).enter().append("g").attr("class","point-group");F.append("circle").attr("cx",function(e){return c([e.y,e.x])[0]}).attr("cy",function(e){return c([e.y,e.x])[1]}).attr("class","latLong").attr("r",e=>e.pointStyle.size*1/R).attr("stroke-width",2).style("vector-effect","non-scaling-stroke").attr("stroke",e=>e.pointStyle.border).attr("fill",e=>e.pointStyle.color).on("mouseenter",(e,i)=>{this.showToolTip(r,L(i),i.pointStyle.color,e)}).on("mousemove",(e,i)=>{this.moveToolTip(e)}).on("mouseleave",(e,i)=>{this.hiddenToolTip(e)}),F.append("text").attr("class","point-label").attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x",e=>c([e.y,e.x])[0]).attr("y",e=>c([e.y,e.x])[1]).attr("font-size",e=>T*(10/R)+"px").attr("fill","#EEE").text(e=>y.formatNumber(e.value,I)).on("mouseenter",(e,i)=>{this.showToolTip(r,L(i),i.pointStyle.color,e)}).on("mousemove",(e,i)=>{this.moveToolTip(e)}).on("mouseleave",(e,i)=>{this.hiddenToolTip(e)}),this.props.transform&&j.attr("transform",this.props.transform)}componentDidUpdate(t,r,o){const{editing:n,selectedItem:l,onZoomToPoint:m,data:T}=this.props,v=p.select(this.gRef.current);if((n||t.data!==T||t.path!==this.props.path)&&this.create(),t.visible!=this.props.visible&&p.select(this.gRef.current).style("display",this.props.visible?"block":"none"),l!=null&&this.props.selectedItem!=t.selectedItem){const x=v.selectAll(".point-group circle").filter(a=>a.metadata.children.find(y=>y.value==l)!=null);m({x:x.datum().x,y:x.datum().y})}this.resize()}resize(){const{markerLabelSize:t}=this.props,r=p.select(this.gRef.current),o=this.props.transform?this.props.transform.k:1;r&&(r.selectAll(".point-group circle").attr("r",n=>n.pointStyle.size*1/o),r.selectAll(".point-group text.point-label").attr("font-size",n=>t*(10/o)+"px"))}componentDidMount(){this.create()}render(){const{id:t}=this.props;return z.jsx("g",{className:"latLong "+t,ref:this.gRef})}}const J=d=>{const{id:t,unique:r,filters:o,csv:n,app:l,group:m="default",apiJoinAttribute:T,editing:v,dimension2:c,pointStyleBy:x,dvzProxyDatasetId:a,extraTooltipColumns:y,settings:w,waitForFilters:u}=d,S=c!="none"?"/"+c:"",b={},D=o||{};if(D&&D.forEach&&D.forEach(h=>{h.value!=null&&h.value.filter(f=>f!=null&&f.toString().trim()!="").length>0&&(b[h.param]=h.value)}),a&&(b.dvzProxyDatasetId=a),y&&y.length>0){const h=y.filter(f=>f&&f!==T&&f!==c);h.length>0&&(b.includeColumns=h.join(","))}return z.jsx(E.default,{editing:v,params:b,waitForFilters:u,app:l,csv:decodeURIComponent(n),group:m,ignoreErrors:!0,isSvg:!0,store:[l,r,t],source:[T+S],children:z.jsx(B.default,{children:z.jsx(G,{...d})})})},W=N.injectIntl(J);exports.default=W;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),_=require("react");require("prop-types");const J=require("papaparse"),W=require("react-intl"),K=require("../data/D3MapDataProvider.js"),Q=require("../data/D3MapDataConsumer.js"),X=require("./GradientColors.js"),E=require("semantic-ui-react"),U=({breaks:r,isPoint:n,numberFormat:o,intl:b})=>r.length>0&&e.jsx("div",{className:"legend-breaks",children:r.map((l,c)=>l.type!=="graterThan"?e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item ${n?"point":""}`,style:{backgroundColor:l.color,border:`1px solid ${l.borderColor}`}}),e.jsxs("div",{className:"break-label",children:[" < ",b.formatNumber(l.end,o)]})]}):e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item ${n?"point":""}`,style:{backgroundColor:l.color,border:`1px solid ${l.borderColor}`}}),e.jsxs("div",{className:"break-label",children:[" > ",b.formatNumber(l.end,o)]})]}))}),Y=r=>{const{name:n,breaks:o,pointStyleBy:b,dimension2:l,pointDimensionStyles:c={},markFillColor:t,markBorderColor:d,measures:v,visible:g,format:m,intl:C,id:s,onItemClick:j,customMeasuresLabels:p}=r,u={style:m.style==="compacted"?"decimal":m.style,notation:m.style==="compacted"?"compact":"standard",currency:m.currency,minimumFractionDigits:parseInt(m.minimumFractionDigits),maximumFractionDigits:parseInt(m.maximumFractionDigits)};let h=v[0];return p&&(h=p[v[0]]),[...new Set(Object.keys(c).map(x=>x.split("_")[0]))],e.jsx("div",{className:"legend",children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:x=>j(s),style:{backgroundColor:t,borderColor:d},children:g!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsxs("div",{className:"legend-label",children:[n," (",h,")"]})]}),g!=!1&&e.jsx(U,{breaks:o,symbol:"arrow",numberFormat:u,intl:C})]})})},Z=r=>{const{id:n,name:o,breaks:b,intl:l,pointStyleBy:c,format:t,dimension2:d,pointDimensionStyles:v={},markFillColor:g,markBorderColor:m,measures:C,visible:s,onItemClick:j,customMeasuresLabels:p,allCategories:u,showDim2OnLegends:h,dim2LegendLabel:x,type:f,d2Click:N,selectedItem:D}=r,k={style:t.style==="compacted"?"decimal":t.style,notation:t.style==="compacted"?"compact":"standard",currency:t.currency,minimumFractionDigits:parseInt(t.minimumFractionDigits),maximumFractionDigits:parseInt(t.maximumFractionDigits)};let F=C[0];p&&(F=p[C[0]]);const I=d&&u?u.filter(a=>a.type.toUpperCase()==d.toUpperCase()):[],y=(I.length>0?I[0].items:[]).map(a=>a.value),S=c==="dimension"||h?d:F;return e.jsx("div",{className:"legend",children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:a=>j(n),style:c==="measure"||h?{}:{backgroundColor:g,borderColor:m},children:s!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsxs("div",{className:"legend-label",children:[o," "]})]}),c==="measure"&&s!=!1&&e.jsx("div",{className:"legend-breaks",children:b.map((a,$)=>e.jsxs("div",{className:"break",children:[e.jsx("div",{className:"break-item",style:{backgroundColor:a.color,border:`1px solid ${a.borderColor}`,borderRadius:f=="dataPoints"?"50%":"0"}}),e.jsxs("div",{className:"break-label",children:[" < ",l.formatNumber(a.end,k)]})]}))}),s!=!1&&h!=!1&&e.jsx("div",{className:"legend",children:e.jsx("div",{className:"legend-item",children:e.jsx("div",{className:"legend-label",children:x||S})})}),s!=!1&&h!=!1&&e.jsx("div",{className:"legend-breaks",children:y.map(a=>e.jsxs("div",{className:"break",children:[c==="measure"?e.jsx("span",{className:"break-item dim2-item"}):e.jsx("div",{className:"break-item",style:{backgroundColor:v[a+"_color"]||g,border:`1px solid ${v[a+"_border"]||m}`,borderRadius:f=="dataPoints"?"50%":"0"}}),e.jsx("div",{className:"break-label",onClick:$=>N(a),children:D==a?e.jsx("b",{children:a}):a})]}))})]})})},ee=r=>{const{fillColor:n,borderColor:o,name:b,visible:l,id:c,onItemClick:t}=r;return e.jsx("div",{className:"legend",children:e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:d=>t(c),style:{backgroundColor:n,borderColor:o},children:l!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsx("div",{className:"legend-label",children:b})]})})},se=r=>{const{markFillColor:n,fillColor:o,markSizeScale:b,markBorderColor:l,useCentroidPoint:c,name:t,useBreaks:d,useGradients:v,breaks:g,intl:m,usePattern:C,patternsData:s,patternDiscriminator:j,patternDiscriminatorLabel:p,measures:u,borderColor:h,data:x,app:f,customMeasuresLabels:N,divRef:D,id:k,patternWidth:F=.35,patternHeight:I=.25,group:R,format:y,csv:S,visible:a,onItemClick:$,gradientScheme:V,gradientReverse:G,toggleColorLayer:z,colorLayerVisible:w=!0,gradientStartColor:O,gradientEndColor:T}=r;let L="";const P={style:y.style==="compacted"?"decimal":y.style,notation:y.style==="compacted"?"compact":"standard",currency:y.currency,minimumFractionDigits:parseInt(y.minimumFractionDigits),maximumFractionDigits:parseInt(y.maximumFractionDigits)},B=i=>new X.default({data:i.children,measure:u[0],defaultFillColor:n,gradientScheme:V,gradientReverse:G,gradientStartColor:O,gradientEndColor:T});if(f!="csv"&&N)L=N[u[0]];else{const i=J.parse(S,{header:!0,dynamicTyping:!0});L=i.meta.fields.length>0?i.meta.fields[1]:""}const q=i=>i?i.toString().replace(/ /g,"_").toLocaleLowerCase():"";if(D.current){const i=D.current.querySelector(`.legend.layer_${q(k)} svg`);i&&(i.style.display=a===!1?"none":"block")}const A=i=>Math.min(...i.children.map(M=>M[u[0]])),H=i=>Math.max(...i.children.map(M=>M[u[0]]));return e.jsx("div",{className:`legend layer_${q(k)}`,id:q(`${R} ${t} ${k}`),children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:i=>$(k),style:{backgroundColor:o,borderColor:h},children:a!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsx("div",{className:"legend-label",children:t})]}),c&&!d&&a!=!1&&e.jsx("div",{className:"legend-breaks",children:e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item point ${w?"checked":""}`,onClick:i=>z(k),style:{backgroundColor:n,border:`1px solid ${l}`}}),L]})}),d&&a!=!1&&e.jsxs("div",{children:[e.jsx("div",{className:"legend-breaks",children:e.jsxs("div",{className:"legend-section-title",onClick:i=>z(k),children:[e.jsx("div",{className:`legend-section-title-checkbox ${w?"checked":""}`}),e.jsx("span",{className:"measure-label",children:L})]})}),w&&e.jsx(U,{isPoint:c,numberFormat:P,breaks:g,visible:a,intl:m})]}),v&&x&&x.children&&x.children.length>0&&a!=!1&&e.jsxs("div",{className:"gradient-container",children:[e.jsx("div",{className:"gradient-label",style:{float:"right"},children:m.formatNumber(H(x),P)}),e.jsx("div",{className:"gradient-label",style:{float:"left"},children:m.formatNumber(A(x),P)}),e.jsx("div",{className:"gradient-bar",style:{background:`linear-gradient(to right, ${B(x).getStartColor()}, ${B(x).getEndColor()})`,width:"120px",height:"10px"}})]})]})})},ae=r=>{const n=_.useRef(null),[o,b]=_.useState(!1),l=({size:s=16,color:j="currentColor"})=>e.jsx(E.Icon,{name:"chevron down"}),c=({size:s=16,color:j="currentColor"})=>e.jsx(E.Icon,{name:"chevron right"}),{layers:t=[],onItemClick:d,patternsData:v,group:g,intl:m,toggleColorLayer:C}=r;return e.jsxs("div",{className:`legends ${o?"collapsed":""}`,ref:n,children:[e.jsx("div",{className:"legend-collapsible-control",onClick:()=>b(!o),children:o?e.jsxs("div",{children:[" ",e.jsx(c,{size:14})," Show Legend"]}):e.jsxs("div",{children:[e.jsx(l,{size:14}),"Hide Legend"]})}),e.jsx("div",{className:"legends-content",children:t&&t.map(s=>{const j={},p=s.filters||{};return p&&p.forEach&&p.forEach(u=>{u.value!=null&&u.value.filter(h=>h!=null&&h.toString().trim()!="").length>0&&(j[u.param]=u.value)}),s.dvzProxyDatasetId&&(j.dvzProxyDatasetId=s.dvzProxyDatasetId),e.jsxs("div",{children:[s.type=="base"&&e.jsx(ee,{...s,group:g,onItemClick:d}),s.type=="data"&&s.apiJoinAttribute&&e.jsx(K.default,{waitForFilters:!0,editing:s.editing,params:j,app:s.app,verbose:!1,csv:decodeURIComponent(s.csv),group:g,ignoreErrors:!0,isSvg:!0,mySelf:"Legends",store:[s.app,r.unique,s.id],source:s.apiJoinAttribute+(s.patternDiscriminator!="none"?"/"+s.patternDiscriminator:""),children:e.jsx(Q.default,{children:e.jsx(se,{group:g,patternsData:v?v[s.id]:null,divRef:n,...s,intl:r.intl,onItemClick:d,toggleColorLayer:C})})}),s.type=="dataPoints"&&e.jsx(Z,{selectedItem:r.selectedItem,d2Click:r.d2Click,intl:r.intl,group:g,...s,onItemClick:d}),s.type=="flow"&&e.jsx(Y,{group:g,...s,onItemClick:d,intl:r.intl})]},s.id)})})]})},re=W.injectIntl(ae);exports.default=re;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),_=require("react");require("prop-types");const H=require("papaparse"),W=require("react-intl"),K=require("../data/D3MapDataProvider.js"),Q=require("../data/D3MapDataConsumer.js"),X=require("./GradientColors.js"),T=require("semantic-ui-react"),E=({breaks:a,isPoint:c,numberFormat:d,intl:p})=>a.length>0&&e.jsx("div",{className:"legend-breaks",children:a.map((l,m)=>l.type!=="graterThan"?e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item ${c?"point":""}`,style:{backgroundColor:l.color,border:`1px solid ${l.borderColor}`}}),e.jsxs("div",{className:"break-label",children:[" < ",p.formatNumber(l.end,d)]})]}):e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item ${c?"point":""}`,style:{backgroundColor:l.color,border:`1px solid ${l.borderColor}`}}),e.jsxs("div",{className:"break-label",children:[" > ",p.formatNumber(l.end,d)]})]}))}),Y=a=>{const{name:c,breaks:d,pointStyleBy:p,dimension2:l,pointDimensionStyles:m={},markFillColor:n,markBorderColor:u,measures:v,visible:h,format:g,intl:y,id:s,onItemClick:b,customMeasuresLabels:j}=a,i={style:g.style==="compacted"?"decimal":g.style,notation:g.style==="compacted"?"compact":"standard",currency:g.currency,minimumFractionDigits:parseInt(g.minimumFractionDigits),maximumFractionDigits:parseInt(g.maximumFractionDigits)};let o=v[0];return j&&(o=j[v[0]]),[...new Set(Object.keys(m).map(x=>x.split("_")[0]))],e.jsx("div",{className:"legend",children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:x=>b(s),style:{backgroundColor:n,borderColor:u},children:h!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsxs("div",{className:"legend-label",children:[c," (",o,")"]})]}),h!=!1&&e.jsx(E,{breaks:d,symbol:"arrow",numberFormat:i,intl:y})]})})},Z=a=>{const{id:c,name:d,breaks:p,intl:l,pointStyleBy:m,format:n,dimension2:u,pointDimensionStyles:v={},markFillColor:h,markBorderColor:g,measures:y,visible:s,onItemClick:b,customMeasuresLabels:j,allCategories:i,showDim2OnLegends:o,dim2LegendLabel:x,type:f,d2Click:N,selectedItem:D}=a,C={style:n.style==="compacted"?"decimal":n.style,notation:n.style==="compacted"?"compact":"standard",currency:n.currency,minimumFractionDigits:parseInt(n.minimumFractionDigits),maximumFractionDigits:parseInt(n.maximumFractionDigits)};let F=y[0];j&&(F=j[y[0]]);const I=u&&i?i.filter(r=>r.type.toUpperCase()==u.toUpperCase()):[],k=(I.length>0?I[0].items:[]).map(r=>r.value),S=m==="dimension"||o?u:F;return e.jsx("div",{className:"legend",children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:r=>b(c),style:m==="measure"||o?{}:{backgroundColor:h,borderColor:g},children:s!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsxs("div",{className:"legend-label",children:[d," "]})]}),m==="measure"&&s!=!1&&e.jsx("div",{className:"legend-breaks",children:p.map((r,$)=>e.jsxs("div",{className:"break",children:[e.jsx("div",{className:"break-item",style:{backgroundColor:r.color,border:`1px solid ${r.borderColor}`,borderRadius:f=="dataPoints"?"50%":"0"}}),e.jsxs("div",{className:"break-label",children:[" < ",l.formatNumber(r.end,C)]})]}))}),s!=!1&&o!=!1&&e.jsx("div",{className:"legend",children:e.jsx("div",{className:"legend-item",children:e.jsx("div",{className:"legend-label",children:x||S})})}),s!=!1&&o!=!1&&e.jsx("div",{className:"legend-breaks",children:k.map(r=>e.jsxs("div",{className:"break",children:[m==="measure"?e.jsx("span",{className:"break-item dim2-item"}):e.jsx("div",{className:"break-item",style:{backgroundColor:v[r+"_color"]||h,border:`1px solid ${v[r+"_border"]||g}`,borderRadius:f=="dataPoints"?"50%":"0"}}),e.jsx("div",{className:"break-label",onClick:$=>N(r),children:D==r?e.jsx("b",{children:r}):r})]}))})]})})},ee=a=>{const{fillColor:c,borderColor:d,name:p,visible:l,id:m,onItemClick:n}=a;return e.jsx("div",{className:"legend",children:e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:u=>n(m),style:{backgroundColor:c,borderColor:d},children:l!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsx("div",{className:"legend-label",children:p})]})})},se=a=>{const{markFillColor:c,fillColor:d,markSizeScale:p,markBorderColor:l,useCentroidPoint:m,name:n,useBreaks:u,useGradients:v,breaks:h,intl:g,usePattern:y,patternsData:s,patternDiscriminator:b,patternDiscriminatorLabel:j,measures:i,borderColor:o,data:x,app:f,customMeasuresLabels:N,divRef:D,id:C,patternWidth:F=.35,patternHeight:I=.25,group:R,format:k,csv:S,visible:r,onItemClick:$,gradientScheme:U,gradientReverse:V,toggleColorLayer:z,colorLayerVisible:w=!0,gradientStartColor:A,gradientEndColor:G}=a;let L="";const P={style:k.style==="compacted"?"decimal":k.style,notation:k.style==="compacted"?"compact":"standard",currency:k.currency,minimumFractionDigits:parseInt(k.minimumFractionDigits),maximumFractionDigits:parseInt(k.maximumFractionDigits)},B=t=>new X.default({data:t.children,measure:i[0],defaultFillColor:c,gradientScheme:U,gradientReverse:V,gradientStartColor:A,gradientEndColor:G});if(f!="csv"&&N)L=N[i[0]];else{const t=H.parse(S,{header:!0,dynamicTyping:!0});L=t.meta.fields.length>0?t.meta.fields[1]:""}const q=t=>t?t.toString().replace(/ /g,"_").toLocaleLowerCase():"";if(D.current){const t=D.current.querySelector(`.legend.layer_${q(C)} svg`);t&&(t.style.display=r===!1?"none":"block")}const J=t=>Math.min(...t.children.map(M=>M[i[0]])),O=t=>Math.max(...t.children.map(M=>M[i[0]]));return e.jsx("div",{className:`legend layer_${q(C)}`,id:q(`${R} ${n} ${C}`),children:e.jsxs("div",{children:[e.jsxs("div",{className:"legend-item",children:[e.jsx("div",{className:"legend-color legend-check",onClick:t=>$(C),style:{backgroundColor:d,borderColor:o},children:r!=!1&&e.jsx(e.Fragment,{children:"✓"})}),e.jsx("div",{className:"legend-label",children:n})]}),m&&!u&&r!=!1&&e.jsx("div",{className:"legend-breaks",children:e.jsxs("div",{className:"break",children:[e.jsx("div",{className:`break-item point ${w?"checked":""}`,onClick:t=>z(C),style:{backgroundColor:c,border:`1px solid ${l}`}}),L]})}),u&&r!=!1&&e.jsxs("div",{children:[e.jsx("div",{className:"legend-breaks",children:e.jsxs("div",{className:"legend-section-title",onClick:t=>z(C),children:[e.jsx("div",{className:`legend-section-title-checkbox ${w?"checked":""}`}),e.jsx("span",{className:"measure-label",children:L})]})}),w&&e.jsx(E,{isPoint:m,numberFormat:P,breaks:h,visible:r,intl:g})]}),v&&x&&x.children&&x.children.length>0&&r!=!1&&e.jsxs("div",{className:"gradient-container",children:[e.jsx("div",{className:"gradient-label",style:{float:"right"},children:g.formatNumber(O(x),P)}),e.jsx("div",{className:"gradient-label",style:{float:"left"},children:g.formatNumber(J(x),P)}),e.jsx("div",{className:"gradient-bar",style:{background:`linear-gradient(to right, ${B(x).getStartColor()}, ${B(x).getEndColor()})`,width:"120px",height:"10px"}})]})]})})},re=a=>{const c=_.useRef(null),[d,p]=_.useState(!1),l=({size:s=16,color:b="currentColor"})=>e.jsx(T.Icon,{name:"chevron down"}),m=({size:s=16,color:b="currentColor"})=>e.jsx(T.Icon,{name:"chevron right"}),{layers:n=[],onItemClick:u,patternsData:v,group:h,intl:g,toggleColorLayer:y}=a;return e.jsxs("div",{className:`legends ${d?"collapsed":""}`,ref:c,children:[e.jsx("div",{className:"legend-collapsible-control",onClick:()=>p(!d),children:d?e.jsxs("div",{children:[" ",e.jsx(m,{size:14})," Show Legend"]}):e.jsxs("div",{children:[e.jsx(l,{size:14}),"Hide Legend"]})}),e.jsx("div",{className:"legends-content",children:n&&n.map(s=>{const b={},j=s.filters||{};if(j&&j.forEach&&j.forEach(i=>{i.value!=null&&i.value.filter(o=>o!=null&&o.toString().trim()!="").length>0&&(b[i.param]=i.value)}),s.dvzProxyDatasetId&&(b.dvzProxyDatasetId=s.dvzProxyDatasetId),s.extraTooltipColumns&&s.extraTooltipColumns.length>0){const i=s.extraTooltipColumns.filter(o=>o&&o!==s.apiJoinAttribute&&o!==s.patternDiscriminator);i.length>0&&(b.includeColumns=i.join(","))}return e.jsxs("div",{children:[s.type=="base"&&e.jsx(ee,{...s,group:h,onItemClick:u}),s.type=="data"&&s.apiJoinAttribute&&e.jsx(K.default,{waitForFilters:!0,editing:s.editing,params:b,app:s.app,verbose:!1,csv:decodeURIComponent(s.csv),group:h,ignoreErrors:!0,isSvg:!0,mySelf:"Legends",store:[s.app,a.unique,s.id],source:s.apiJoinAttribute+(s.patternDiscriminator!="none"?"/"+s.patternDiscriminator:""),children:e.jsx(Q.default,{children:e.jsx(se,{group:h,patternsData:v?v[s.id]:null,divRef:c,...s,intl:a.intl,onItemClick:u,toggleColorLayer:y})})}),s.type=="dataPoints"&&e.jsx(Z,{selectedItem:a.selectedItem,d2Click:a.d2Click,intl:a.intl,group:h,...s,onItemClick:u}),s.type=="flow"&&e.jsx(Y,{group:h,...s,onItemClick:u,intl:a.intl})]},s.id)})})]})},ae=W.injectIntl(re);exports.default=ae;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime");require("react");const d=require("string-template"),x=/(\+?\%)[\(]([A-z0-9,.,-]+)\)/gi,y=/(\+?\#)[\(]([A-z0-9,.,-]+)\)/gi,v=/(\+?\#C)[\(]([A-z0-9,.,-]+)\)/gi,i=(n,e,r,t,m,A)=>{let o,s=e;for(;(o=n.exec(e))!==null;){const p=o[2],a=o[1],f=((c,g=2)=>m.formatNumber(t?c/100:c,{maximumFractionDigits:g,...r,signDisplay:a&&a.startsWith("+")?"never":"auto"})).apply(void 0,p.split(","));s=s.replaceAll(o[0],f)}return s},u=(n,e,r)=>{let t=d(n,{...e,...e.meta}).replace(/(?:\r\n|\r|\n)/g,"<br>");return t=i(x,t,{style:"percent"},!0,r),t=i(y,t,{style:"decimal"},!1,r),t=i(v,t,{notation:"compact"},!1,r),t},j=({tooltip:n,data:e,intl:r})=>{if(e){const t=u(n,e,r);return l.jsx("div",{dangerouslySetInnerHTML:{__html:t}})}else return l.jsx("div",{})};exports.default=j;exports.formatContent=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("react/jsx-runtime");require("react");const b=require("string-template"),h=/(\+?\%)[\(]([A-z0-9,.,-]+)\)/gi,x=/(\+?\#)[\(]([A-z0-9,.,-]+)\)/gi,S=/(\+?\#C)[\(]([A-z0-9,.,-]+)\)/gi,A=/(\$)[\(]([A-Za-z0-9,.]+)\)/gi,E=[{name:"USD Dollar",code:"USD",symbol:"$"},{name:"Naira",code:"NGN",symbol:"₦"},{name:"South Africa Rand",code:"ZAR",symbol:"R"},{name:"Ethiopian Birr",code:"ETB",symbol:"Br"},{name:"Zambian Kwacha",code:"ZMW",symbol:"ZK"},{name:"Kenyan Shilling",code:"KES",symbol:"KSh"}],l=o=>o&&o.trim().toLowerCase(),z=(o,n)=>{let r,s=n;for(;(r=o.exec(n))!==null;)if(r.length>2){const a=r[0],c=r[2],e=E.find(t=>l(t.code)==l(c)||l(t.name)==l(c)||l(t.symbol)==l(c));e&&(s=s.replaceAll(a,e.symbol))}return s},u=(o,n,r,s,a,c)=>{let e,t=n;for(;(e=o.exec(n))!==null;){const i=e[2],m=e[1],f=((p,g=2)=>a.formatNumber(s?p/100:p,{maximumFractionDigits:g,...r,signDisplay:m&&m.startsWith("+")?"never":"auto"})).apply(void 0,i.split(","));t=t.replaceAll(e[0],f)}return t},y=(o,n,r)=>{const s={...n,...n.meta},a={};Object.keys(s).forEach(t=>{a[t]=s[t],a[t.replace(/\s+/g,"_")]=s[t]});const c=o.replace(/\{([^}]+)\}/g,(t,i)=>`{${i.replace(/\s+/g,"_")}}`);let e=b(c,a).replace(/(?:\r\n|\r|\n)/g,"<br>");return e=u(h,e,{style:"percent"},!0,r),e=u(x,e,{style:"decimal"},!1,r),e=u(S,e,{notation:"compact"},!1,r),e=z(A,e),e},C=({tooltip:o,data:n,intl:r})=>{if(n){const s=y(o,n,r);return d.jsx("div",{dangerouslySetInnerHTML:{__html:s}})}else return d.jsx("div",{})};exports.default=C;exports.formatContent=y;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("d3");function u(t){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const o=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,o.get?o:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const l=u(i),r={},c={},d=3*60*1e3,s=t=>JSON.parse(JSON.stringify(t)),f=t=>{const n=Date.now(),e=t;if(r[e])return r[e].then(s);if(c[e]&&n-c[e].timestamp<d)return Promise.resolve(s(c[e].data));const o=l.json(t).then(a=>(c[e]={data:a,timestamp:Date.now()},a)).finally(()=>{delete r[e]});return r[e]=o,o.then(s)},p=t=>f(t);exports.loadJSON=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("d3");function f(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const p=f(d),l="_Color_",O=["value","count","type","children","label","measure"],u=e=>{const t={};return e&&(Object.keys(e).forEach(r=>{O.includes(r)||(t[r]=e[r])}),e.type&&e.value!==void 0&&(t[e.type]=e.value)),t},i=e=>{let t=u(e);return e&&e.children&&Array.isArray(e.children)&&e.children.forEach(r=>{t={...t,...i(r)}}),t},b=(e,t)=>!e||!t?null:e[(l+t).trim()]||null,o={},a={},v=3*60*1e3,c=e=>JSON.parse(JSON.stringify(e)),y=e=>{const t=Date.now(),r=e;if(o[r])return o[r].then(c);if(a[r]&&t-a[r].timestamp<v)return Promise.resolve(c(a[r].data));const n=p.json(e).then(s=>(a[r]={data:s,timestamp:Date.now()},s)).finally(()=>{delete o[r]});return o[r]=n,n.then(c)},h=e=>y(e);exports.COLOR_VARIABLE=l;exports.extractVariables=u;exports.extractVariablesDeep=i;exports.loadJSON=h;exports.resolveOverrideColor=b;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("react/jsx-runtime"),D=require("react"),F=require("react-redux"),I=require("react-intl"),C=require("./DataContext.js"),g=require("../reducers/data.js");require("semantic-ui-react");class S extends D.Component{constructor(){super(),this.state={showLoading:!1},this.checkLoadingTime=this.checkLoadingTime.bind(this),this.loadingTimeout=null,this.fallbackTimeout=null,this.initialFilterTimeout=null}componentDidMount(){const{app:t,csv:i,store:e,params:a,source:l,group:n,editing:s,waitForFilters:r=!1}=this.props;console.log("Group & Store ",e,this.props.mySelf),t==="csv"?this.props.onSetData({app:t,csv:i,store:e,params:a,group:n}):(this.setState({showLoading:!1}),(!r||s)&&(console.log("📥 [D3 Map DataProvider] Initial data load triggered",{app:t,editing:s,waitForFilters:r}),this.loadData({app:t,source:l,store:e,params:a,group:n})),!s&&r&&(this.fallbackTimeout=setTimeout(()=>{!this.props.data&&!this.props.loading&&(console.warn("⚠️ [D3 Map DataProvider] Fallback loading triggered"),this.loadData({app:t,source:l,store:e,params:a,group:n}))},2e3)))}componentWillUnmount(){clearTimeout(this.fallbackTimeout),clearTimeout(this.loadingTimeout),clearTimeout(this.initialFilterTimeout)}componentDidUpdate(t){const{app:i,filters:e,apply:a,source:l,store:n,params:s,csv:r,group:d,autoApply:c,lastInitialFilterChange:u,lastUserFilterChange:h,waitForFilters:p}=this.props;if(a!=null&&a!==t.apply){console.log("🔄 [DataProvider] Manual reload (apply button)"),this.loadData({app:i,source:l,store:n,params:s,group:d});return}if(c!==!1&&(e!==t.filters||JSON.stringify(s)!==JSON.stringify(t.params)||i!==t.app||JSON.stringify(t.source)!==JSON.stringify(l)||r!==t.csv))if(i==="csv")this.props.onSetData({app:i,csv:r,store:n,params:s,group:d});else{const m=u!==t.lastInitialFilterChange,f=h!==t.lastUserFilterChange;m&&p?(console.log("ℹ️ [DataProvider] Initial filters changing, debouncing..."),this.initialFilterTimeout&&clearTimeout(this.initialFilterTimeout),this.initialFilterTimeout=setTimeout(()=>{console.log("✅ [DataProvider] Initial filters settled, loading data"),this.loadData({app:i,source:l,store:n,params:s,group:d})},500)):f&&(console.log("ℹ️ [DataProvider] User filters changed, loading data"),this.loadData({app:i,source:l,store:n,params:s,group:d}))}}loadData(t){console.log("Loading data for map",t),this.setState({showLoading:!1}),this.props.onLoadData(t),this.loadingTimeout&&clearTimeout(this.loadingTimeout),this.loadingTimeout=setTimeout(this.checkLoadingTime,200)}checkLoadingTime(){const{loading:t,time:i}=this.props;t&&i&&(Date.now()-i>1e3?this.setState({showLoading:!0}):this.loadingTimeout=setTimeout(this.checkLoadingTime,200))}render(){const{data:t}=this.props;return T.jsx(C.DataContext.Provider,{value:t,children:this.props.children})}}const y=(o,t)=>{const{store:i,group:e,app:a}=t;return{lastUserFilterChange:o.getIn(["data","filters-settings",a,e,"lastUserFilterChange"]),lastInitialFilterChange:o.getIn(["data","filters-settings",a,e,"lastInitialFilterChange"]),data:o.getIn(["data",...i,"data"]),filters:o.getIn(["data","filters",a,e]),autoApply:o.getIn(["data","filters-settings",a,e,"autoApply"]),apply:o.getIn(["data","filters-settings",a,e,"apply"]),error:o.getIn(["data",...i,"error"]),loading:o.getIn(["data",...i,"loading"]),time:o.getIn(["data",...i,"time"])}},L={onSetData:g.setData,onLoadData:g.getData},v=F.connect(y,L)(I.injectIntl(S));exports.default=v;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("react/jsx-runtime"),C=require("react"),F=require("react-redux"),I=require("react-intl"),v=require("./DataContext.js"),h=require("../reducers/data.js");require("semantic-ui-react");class y extends C.Component{constructor(){super(),this.state={showLoading:!1},this.checkLoadingTime=this.checkLoadingTime.bind(this),this.loadingTimeout=null,this.fallbackTimeout=null,this.initialFilterTimeout=null}componentDidMount(){const{app:t,csv:i,store:e,params:a,source:l,group:n,editing:s,waitForFilters:r=!1}=this.props;t==="csv"?this.props.onSetData({app:t,csv:i,store:e,params:a,group:n}):(this.setState({showLoading:!1}),(!r||s)&&(console.log("📥 [D3 Map DataProvider] Initial data load triggered",{app:t,editing:s,waitForFilters:r}),this.loadData({app:t,source:l,store:e,params:a,group:n,includeColumns:extraTooltipColumns})),!s&&r&&(this.fallbackTimeout=setTimeout(()=>{!this.props.data&&!this.props.loading&&(console.warn("⚠️ [D3 Map DataProvider] Fallback loading triggered"),this.loadData({app:t,source:l,store:e,params:a,group:n,includeColumns:extraTooltipColumns}))},2e3)))}componentWillUnmount(){clearTimeout(this.fallbackTimeout),clearTimeout(this.loadingTimeout),clearTimeout(this.initialFilterTimeout)}componentDidUpdate(t){const{app:i,filters:e,apply:a,source:l,store:n,params:s,csv:r,group:d,autoApply:p,lastInitialFilterChange:m,lastUserFilterChange:f,waitForFilters:g,editing:T}=this.props;if(console.log("Current props in d3MapDataProvider",this.props),a!=null&&a!==t.apply){console.log("🔄 [DataProvider] Manual reload (apply button)"),this.loadData({app:i,source:l,store:n,params:s,group:d});return}if(p!==!1&&(e!==t.filters||JSON.stringify(s)!==JSON.stringify(t.params)||i!==t.app||JSON.stringify(t.source)!==JSON.stringify(l)||r!==t.csv))if(i==="csv")this.props.onSetData({app:i,csv:r,store:n,params:s,group:d});else{const c=m!==t.lastInitialFilterChange,u=f!==t.lastUserFilterChange;c&&g?(console.log("ℹ️ [DataProvider] Initial filters changing, debouncing..."),this.initialFilterTimeout&&clearTimeout(this.initialFilterTimeout),this.initialFilterTimeout=setTimeout(()=>{console.log("✅ [DataProvider] Initial filters settled, loading data"),this.loadData({app:i,source:l,store:n,params:s,group:d})},500)):u?(console.log("ℹ️ [DataProvider] User filters changed, loading data"),this.loadData({app:i,source:l,store:n,params:s,group:d})):!c&&!u&&(!g||T)&&(console.log("[DataProvider] Props changed, loading data"),this.loadData({app:i,source:l,store:n,params:s,group:d}))}}loadData(t){console.log("Loading data for map",t),this.setState({showLoading:!1}),this.props.onLoadData(t),this.loadingTimeout&&clearTimeout(this.loadingTimeout),this.loadingTimeout=setTimeout(this.checkLoadingTime,200)}checkLoadingTime(){const{loading:t,time:i}=this.props;t&&i&&(Date.now()-i>1e3?this.setState({showLoading:!0}):this.loadingTimeout=setTimeout(this.checkLoadingTime,200))}render(){const{data:t}=this.props;return console.log("[DataProvider] Rendering with data:",this.props),D.jsx(v.DataContext.Provider,{value:t,children:this.props.children})}}const S=(o,t)=>{const{store:i,group:e,app:a}=t;return{lastUserFilterChange:o.getIn(["data","filters-settings",a,e,"lastUserFilterChange"]),lastInitialFilterChange:o.getIn(["data","filters-settings",a,e,"lastInitialFilterChange"]),data:o.getIn(["data",...i,"data"]),filters:o.getIn(["data","filters",a,e]),autoApply:o.getIn(["data","filters-settings",a,e,"autoApply"]),apply:o.getIn(["data","filters-settings",a,e,"apply"]),error:o.getIn(["data",...i,"error"]),loading:o.getIn(["data",...i,"loading"]),time:o.getIn(["data",...i,"time"])}},L={onSetData:h.setData,onLoadData:h.getData},P=F.connect(S,L)(I.injectIntl(y));exports.default=P;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),L=require("react"),s=require("semantic-ui-react"),Q=require("../data/CategoriesConsumer.js"),te=require("../data/CategoriesProvider.js"),Y=require("react-redux"),X=require("../reducers/data.js"),ne=require("react-intl"),Z="multi-select",q="single-select",le="NO_DATA",re="DEFAULT_VALUE_INPUT",ae="LOWEST_VALUE",se="HIGHEST_VALUE",N=n=>n instanceof Boolean?n:n=="true",ie=(n,o)=>n?n.sort((a,u)=>a.position-u.position).map(a=>{const u=o&&a.labels&&a.labels[o.toUpperCase()]?a.labels[o.toUpperCase()]:a.value;return{key:a.id,value:a.id,text:u,icon:a.value.toLocaleLowerCase(),position:a.position?a.position:a.value}}):[],oe=n=>decodeURIComponent(n),ee=n=>{if(!n||n=="")return null;try{return JSON.parse(oe(n))}catch(o){throw new Error("error parsing value:"+o)}},W=(n,o)=>{const{app:a,group:u,param:i}=o;return{current:n.getIn(["data","filters",a,u,i])}},J={onInit:X.setInitialFilters,onChange:X.setFilter},z=n=>{const{isRange:o,options:a,alphabeticalSort:u,ascOrder:i}=n;N(u)?a.sort(function(h,d){const r=h.text?h.text.toLowerCase():"",g=d.text?d.text.toLowerCase():"";return N(i)?r<g?-1:r>g?1:0:r<g?1:r>g?-1:0}):a.sort(function(h,d){return N(i)?h.position-d.position:d.position-h.position});const f={...n};return o?e.jsx(ue,{...f}):e.jsx(ce,{...f})},ce=Y.connect(W,J)(n=>{const{allLabel:o,noneLabel:a,placeholder:u,options:i,app:f,group:h,param:d,current:r,onChange:g,onInit:c,useSingleColumn:F,enableTextSearch:j,filterType:C,defaultValues:v,showNoDataOption:w,defaultValueCriteria:m,allNoneSameBehaviour:E,closeOnSelect:I,hiddenFilters:b,autoApply:_,childFilter:D,childFilterParam:R,params:M,uniqueStorage:V,dvzProxyDatasetId:A,defaultTopNEnabled:k,defaultTopNCount:O}=n,[K,G]=L.useState(""),P=t=>{let l=[];C!=q&&!I&&r&&r.indexOf(t)>-1?l=r.filter(p=>p!==t):C!=q&&r&&!I?l=[...r,t]:l=[t],g({app:f,group:h,param:d,value:l,autoApply:_,childFilter:D,childFilterParam:R,params:M,uniqueStorage:V,dvzProxyDatasetId:A}),I&&S.current&&S.current.close()},H=t=>{const l=i.filter(p=>j&&T&&T.trim().length>0&&p.text?p.text.toLowerCase().includes(T.toLowerCase()):!0);g({app:f,group:h,param:d,value:l.map(p=>p.value),autoApply:_,childFilter:D}),I&&S.current&&S.current.close()},$=()=>{const t=i.filter(l=>j&&T&&T.trim().length>0&&l.text?l.text.toLowerCase().includes(T.toLowerCase()):!0);g({app:f,group:h,param:d,value:E?t.map(l=>l.value):[],autoApply:_}),I&&S.current&&S.current.close()},U=t=>{B(t)};L.useEffect(()=>{if(!r){const t=i.map(l=>l.value);if(C==Z||C=="")if(k){const l=O&&O>0?O:0,p=i.slice(0,l).map(x=>x.value);c({app:f,group:h,param:d,value:p})}else{const l=v?v.split(",").map(x=>x.trim()).filter(x=>x.length>0):[],p=l.length>0?i.filter(x=>l.indexOf(String(x.value))>-1).map(x=>x.value):t;c({app:f,group:h,param:d,value:p})}else if(f=="csv"){let l=[];m===re?l=v?v.split(","):[]:m==ae?l=t.length>0?[t[0]]:[]:m==se&&(l=t.length>0?[t[t.length-1]]:[]),c({app:f,group:h,param:d,value:l})}else if(k){const l=i.slice(0,1).map(p=>p.value);c({app:f,group:h,param:d,value:l})}else{const l=v?v.split(",").map(x=>x.trim()).filter(x=>x.length>0):[],p=l.length>0?i.filter(x=>l.indexOf(String(x.value))>-1).map(x=>x.value).slice(0,1):t.length>0?[t[0]]:[];c({app:f,group:h,param:d,value:p})}}},[]);const y=()=>{if(C==q){const t=r&&r[0]?i.filter(l=>l.value==r[0])[0]:null;return`${u} ${t?t.text:""}`}else return`${u} (${r?r.filter(t=>t==Number.MIN_SAFE_INTEGER?!1:b&&b.length>0?b.indexOf(t)==-1:!0).length:0}/${i.filter(t=>b&&b.length>0?b.indexOf(t.id)==-1:!0).length}) `},S=L.useRef(null),[T,B]=L.useState("");return e.jsx(s.Dropdown,{ref:S,fluid:!0,text:y(),scrolling:!1,button:!0,icon:"angle down ignore",multiple:!0,search:!0,floating:!1,className:`${r&&r.length>0?"applied ":""}`,children:e.jsxs(s.Dropdown.Menu,{children:[C!=q&&e.jsxs(e.Fragment,{children:[e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[e.jsx(s.Label,{basic:!0,onClick:H,children:o})," ","|"," ",e.jsx(s.Label,{basic:!0,onClick:$,children:a})]})}),j&&e.jsxs(e.Fragment,{children:[e.jsx(s.Container,{children:e.jsx(s.Dropdown.Item,{children:e.jsx("div",{className:"ui action input",children:e.jsxs(s.Input,{placeholder:"Search...",children:[e.jsx("input",{className:"filter-search",value:T,onChange:t=>{U(t.target.value)}}),e.jsx(s.Icon,{name:"remove",link:!0,className:"clear-icon ignore",onClick:t=>{U("")}})]})})})}),e.jsx(s.Divider,{})]})]}),e.jsx("br",{}),e.jsx(s.Container,{className:F?"dropdown-single-column":"",children:i.filter(t=>j&&T&&T.trim().length>0&&t.text?t.text.toLowerCase().includes(T.toLowerCase()):!0).map(({value:t,text:l},p)=>e.jsxs(s.Dropdown.Item,{className:F?"dropdown-item-single-column":"",children:[C==q&&e.jsx(s.Radio,{checked:!!(r&&r.indexOf(t)>-1),onChange:x=>P(t),label:l}),C==Z&&e.jsx(s.Checkbox,{checked:!!(r&&r.indexOf(t)>-1&&!(i.length==r.length&&E)),onChange:x=>P(t),label:l})]},p))})]})})}),ue=Y.connect(W,J)(({placeholder:n,startLabel:o,endLabel:a,options:u,onChange:i,app:f,group:h,param:d,current:r,autoApply:g})=>{const[c,F]=L.useState(u[0].position),[j,C]=L.useState(u[u.length-1].position);L.useEffect(()=>{const w=u.filter(m=>(m.position>c||m.position===c)&&(m.position<j||m.position===j)).map(m=>m.value);i({app:f,group:h,param:d,value:w,autoApply:g})},[c,j]);const v=L.useRef(null);return e.jsx(s.Dropdown,{ref:v,fluid:!0,text:`${n} (${r?r.filter(w=>w!=Number.MIN_SAFE_INTEGER).length:0}/${u.length})`,scrolling:!1,button:!0,multiple:!0,search:!0,floating:!1,icon:"angle down ignore",className:`${r&&r.length>0?"applied ":""} range`,children:e.jsxs(s.Dropdown.Menu,{children:[e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[" ",e.jsx(s.Label,{basic:!0,children:o})]})}),e.jsx(s.Container,{children:u.map(({value:w,text:m,position:E})=>e.jsx(s.Dropdown.Item,{children:e.jsx(s.Radio,{disabled:E>j,checked:c===E,onChange:I=>F(E),label:m})}))}),e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[" ",e.jsx(s.Label,{basic:!0,children:a})]})}),e.jsx(s.Container,{children:u.map(({value:w,text:m,position:E})=>e.jsx(s.Dropdown.Item,{children:e.jsx(s.Radio,{disabled:E<c,checked:j===E,onChange:I=>C(E),label:m})}))})]})})}),de=n=>{const{data:o,type:a,showNoDataOption:u}=n,i=o.filter(c=>c.type===a)[0],f=i?i.items.filter(c=>!u&&c.code==le?!1:n.hiddenFilters&&n.hiddenFilters.length>0?n.hiddenFilters.indexOf(c.id)==-1:!0):[],h=f?ie(f,n.locale):[],d=o.find(c=>c.type==="FilterDefinition"),r=d?d.items.find(c=>c.fieldType==a):null,g=r?r.value:"Filter";return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{...n,options:h,placeholder:n.placeholder?n.placeholder:g})})},fe=Y.connect(W,J)(n=>{let o=0;const a=[{key:"Yes",value:!0,text:"Yes",position:o++},{key:"No",value:!1,text:"No",position:o++}];return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{options:a,...n})})}),he=n=>{const{csvValue:o}=n;let a=0;const u=o.split(",").map(i=>({key:i,value:i,text:i,icon:i.toLocaleLowerCase(),position:a++}));return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{options:u,...n,children:" "})})},pe=n=>e.jsx(xe,{...n}),xe=({unique:n,"data-group":o,"data-app":a,"data-child-filter":u,"data-child-filter-param":i,"data-parent-filter":f,"data-parent-filter-param":h,"data-dvz-proxy-dataset-id":d,"data-param":r,"data-icon":g,"data-type":c,"data-place-holder":F,"data-is-range":j="false","data-all-label":C,"data-none-label":v,"data-start-label":w,"data-end-label":m,"data-csv-value":E,"data-filters":I="[]","data-use-single-column":b="false","data-enable-text-search":_="false","data-filter-type":D,"data-default-values":R,"data-show-no-data-option":M="true","data-default-value-criteria":V="DEFAULT_VALUE_INPUT","data-hidden-filters":A="[]","data-all-none-same-behaviour":k="false","data-close-on-select":O="false","data-alphabetical-sort":K="true","data-asc-order":G="true","data-auto-apply":P="true","data-default-top-n-enabled":H="false","data-default-top-n-count":$="0",intl:U})=>{const y={},S=I?ee(I):{};S&&S.forEach&&S.forEach(l=>{l.value!=null&&l.value.filter(p=>p!=null&&p.toString().trim()!="").length>0&&(y[l.param]=l.value)}),d&&(y.dvzProxyDatasetId=d);const T=A?ee(A):null,B=T!==null?T:A?A.split(",").filter(Boolean):[];let t;return D==null||D==""?t=j==="true"?"range":"multi-select":t=D,a==="csv"?e.jsx(he,{allLabel:C,noneLabel:v,isRange:j==="true",csvValue:E,app:a,group:o,icon:g,placeholder:F,startLabel:w,endLabel:m,param:r,ascOrder:G,useSingleColumn:b==="true",enableTextSearch:_==="true",filterType:t,defaultValues:R,defaultValueCriteria:V,allNoneSameBehaviour:k==="true",closeOnSelect:O==="true",locale:U.locale}):a?e.jsx(te.default,{dvzProxyDatasetId:d,type:c,autoApply:N(P),parentType:f,params:y,param:r,parentParam:h,app:a,group:o,uniqueStorage:S.length>0?n:null,hiddenFilters:B||[],children:e.jsx(Q.default,{children:e.jsxs(s.Container,{fluid:!0,children:[c==="Boolean"&&e.jsx(fe,{startLabel:w,endLabel:m,allLabel:C,noneLabel:v,isRange:N(j),app:a,group:o,icon:g,placeholder:F,param:r,filterType:t,defaultValues:R,locale:U.locale}),c!=="Boolean"&&e.jsx(Q.default,{type:c,children:e.jsx(de,{params:y,childFilter:u,parentFilter:f,childFilterParam:i,startLabel:w,endLabel:m,allLabel:C,noneLabel:v,isRange:N(j),app:a,group:o,icon:g,placeholder:F,param:r,alphabeticalSort:K,ascOrder:G,useSingleColumn:N(b),enableTextSearch:N(_),showNoDataOption:N(M),filterType:t,defaultValues:R,defaultValueCriteria:V,defaultTopNEnabled:N(H),defaultTopNCount:$?parseInt($):0,hiddenFilters:B||[],allNoneSameBehaviour:k=="true",autoApply:N(P),closeOnSelect:N(O),locale:U.locale,uniqueStorage:S.length>0?n:null,dvzProxyDatasetId:d})})]})})}):null},me=ne.injectIntl(pe);exports.default=me;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),L=require("react"),s=require("semantic-ui-react"),Q=require("../data/CategoriesConsumer.js"),te=require("../data/CategoriesProvider.js"),Y=require("react-redux"),X=require("../reducers/data.js"),ne=require("react-intl"),Z="multi-select",q="single-select",le="NO_DATA",re="DEFAULT_VALUE_INPUT",ae="LOWEST_VALUE",se="HIGHEST_VALUE",N=n=>n instanceof Boolean?n:n=="true",ie=(n,o)=>n?n.sort((a,d)=>a.position-d.position).map(a=>{const d=o&&a.labels&&a.labels[o.toUpperCase()]?a.labels[o.toUpperCase()]:a.value;return{key:a.id,value:a.id,text:d,icon:a.value.toLocaleLowerCase(),position:a.position?a.position:a.value}}):[],oe=n=>decodeURIComponent(n),ee=n=>{if(!n||n=="")return null;try{return JSON.parse(oe(n))}catch(o){throw new Error("error parsing value:"+o)}},W=(n,o)=>{const{app:a,group:d,param:i}=o;return{current:n.getIn(["data","filters",a,d,i])}},J={onInit:X.setInitialFilters,onChange:X.setFilter},z=n=>{const{isRange:o,options:a,alphabeticalSort:d,ascOrder:i}=n;N(d)?a.sort(function(h,u){const r=h.text?h.text.toLowerCase():"",g=u.text?u.text.toLowerCase():"";return N(i)?r<g?-1:r>g?1:0:r<g?1:r>g?-1:0}):a.sort(function(h,u){return N(i)?h.position-u.position:u.position-h.position});const f={...n};return o?e.jsx(ue,{...f}):e.jsx(ce,{...f})},ce=Y.connect(W,J)(n=>{const{allLabel:o,noneLabel:a,placeholder:d,options:i,app:f,group:h,param:u,current:r,onChange:g,onInit:c,useSingleColumn:F,enableTextSearch:j,filterType:C,defaultValues:S,showNoDataOption:w,defaultValueCriteria:p,allNoneSameBehaviour:E,closeOnSelect:I,hiddenFilters:b,autoApply:D,childFilter:A,childFilterParam:k,params:M,uniqueStorage:V,dvzProxyDatasetId:O,defaultTopNEnabled:U,defaultTopNCount:_}=n,[K,G]=L.useState(""),P=t=>{let l=[];C!=q&&!I&&r&&r.indexOf(t)>-1?l=r.filter(x=>x!==t):C!=q&&r&&!I?l=[...r,t]:l=[t],g({app:f,group:h,param:u,value:l,autoApply:D,childFilter:A,childFilterParam:k,params:M,uniqueStorage:V,dvzProxyDatasetId:O}),I&&T.current&&T.current.close()},H=t=>{const l=i.filter(x=>j&&v&&v.trim().length>0&&x.text?x.text.toLowerCase().includes(v.toLowerCase()):!0);g({app:f,group:h,param:u,value:l.map(x=>x.value),autoApply:D,childFilter:A}),I&&T.current&&T.current.close()},$=()=>{const t=i.filter(l=>j&&v&&v.trim().length>0&&l.text?l.text.toLowerCase().includes(v.toLowerCase()):!0);g({app:f,group:h,param:u,value:E?t.map(l=>l.value):[],autoApply:D}),I&&T.current&&T.current.close()},y=t=>{B(t)};L.useEffect(()=>{if(r||i.length===0)return;const t=i.map(l=>l.value);if(C==Z||C=="")if(U){const l=_&&_>0?_:0,x=i.slice(0,l).map(m=>m.value);c({app:f,group:h,param:u,value:x})}else{const l=S?S.split(",").map(m=>m.trim()).filter(m=>m.length>0):[],x=l.length>0?i.filter(m=>l.indexOf(String(m.value))>-1).map(m=>m.value):t;c({app:f,group:h,param:u,value:x})}else if(f=="csv"){let l=[];p===re?l=S?S.split(","):[]:p==ae?l=t.length>0?[t[0]]:[]:p==se&&(l=t.length>0?[t[t.length-1]]:[]),c({app:f,group:h,param:u,value:l})}else if(U){const l=i.slice(0,1).map(x=>x.value);c({app:f,group:h,param:u,value:l})}else{const l=S?S.split(",").map(m=>m.trim()).filter(m=>m.length>0):[],x=l.length>0?i.filter(m=>l.indexOf(String(m.value))>-1).map(m=>m.value).slice(0,1):t.length>0?[t[0]]:[];c({app:f,group:h,param:u,value:x})}},[f,_,U,p,S,C,h,c,i,u,r]);const R=()=>{if(C==q){const t=r&&r[0]?i.filter(l=>l.value==r[0])[0]:null;return`${d} ${t?t.text:""}`}else return`${d} (${r?r.filter(t=>t==Number.MIN_SAFE_INTEGER?!1:b&&b.length>0?b.indexOf(t)==-1:!0).length:0}/${i.filter(t=>b&&b.length>0?b.indexOf(t.id)==-1:!0).length}) `},T=L.useRef(null),[v,B]=L.useState("");return e.jsx(s.Dropdown,{ref:T,fluid:!0,text:R(),scrolling:!1,button:!0,icon:"angle down ignore",multiple:!0,search:!0,floating:!1,className:`${r&&r.length>0?"applied ":""}`,children:e.jsxs(s.Dropdown.Menu,{children:[C!=q&&e.jsxs(e.Fragment,{children:[e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[e.jsx(s.Label,{basic:!0,onClick:H,children:o})," ","|"," ",e.jsx(s.Label,{basic:!0,onClick:$,children:a})]})}),j&&e.jsxs(e.Fragment,{children:[e.jsx(s.Container,{children:e.jsx(s.Dropdown.Item,{children:e.jsx("div",{className:"ui action input",children:e.jsxs(s.Input,{placeholder:"Search...",children:[e.jsx("input",{className:"filter-search",value:v,onChange:t=>{y(t.target.value)}}),e.jsx(s.Icon,{name:"remove",link:!0,className:"clear-icon ignore",onClick:t=>{y("")}})]})})})}),e.jsx(s.Divider,{})]})]}),e.jsx("br",{}),e.jsx(s.Container,{className:F?"dropdown-single-column":"",children:i.filter(t=>j&&v&&v.trim().length>0&&t.text?t.text.toLowerCase().includes(v.toLowerCase()):!0).map(({value:t,text:l},x)=>e.jsxs(s.Dropdown.Item,{className:F?"dropdown-item-single-column":"",children:[C==q&&e.jsx(s.Radio,{checked:!!(r&&r.indexOf(t)>-1),onChange:m=>P(t),label:l}),C==Z&&e.jsx(s.Checkbox,{checked:!!(r&&r.indexOf(t)>-1&&!(i.length==r.length&&E)),onChange:m=>P(t),label:l})]},x))})]})})}),ue=Y.connect(W,J)(({placeholder:n,startLabel:o,endLabel:a,options:d,onChange:i,app:f,group:h,param:u,current:r,autoApply:g})=>{const[c,F]=L.useState(d[0].position),[j,C]=L.useState(d[d.length-1].position);L.useEffect(()=>{const w=d.filter(p=>(p.position>c||p.position===c)&&(p.position<j||p.position===j)).map(p=>p.value);i({app:f,group:h,param:u,value:w,autoApply:g})},[c,j]);const S=L.useRef(null);return e.jsx(s.Dropdown,{ref:S,fluid:!0,text:`${n} (${r?r.filter(w=>w!=Number.MIN_SAFE_INTEGER).length:0}/${d.length})`,scrolling:!1,button:!0,multiple:!0,search:!0,floating:!1,icon:"angle down ignore",className:`${r&&r.length>0?"applied ":""} range`,children:e.jsxs(s.Dropdown.Menu,{children:[e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[" ",e.jsx(s.Label,{basic:!0,children:o})]})}),e.jsx(s.Container,{children:d.map(({value:w,text:p,position:E})=>e.jsx(s.Dropdown.Item,{children:e.jsx(s.Radio,{disabled:E>j,checked:c===E,onChange:I=>F(E),label:p})}))}),e.jsx(s.Segment,{children:e.jsxs(s.Dropdown.Item,{children:[" ",e.jsx(s.Label,{basic:!0,children:a})]})}),e.jsx(s.Container,{children:d.map(({value:w,text:p,position:E})=>e.jsx(s.Dropdown.Item,{children:e.jsx(s.Radio,{disabled:E<c,checked:j===E,onChange:I=>C(E),label:p})}))})]})})}),de=n=>{const{data:o,type:a,showNoDataOption:d}=n,i=o.filter(c=>c.type===a)[0],f=i?i.items.filter(c=>!d&&c.code==le?!1:n.hiddenFilters&&n.hiddenFilters.length>0?n.hiddenFilters.indexOf(c.id)==-1:!0):[],h=f?ie(f,n.locale):[],u=o.find(c=>c.type==="FilterDefinition"),r=u?u.items.find(c=>c.fieldType==a):null,g=r?r.value:"Filter";return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{...n,options:h,placeholder:n.placeholder?n.placeholder:g})})},fe=Y.connect(W,J)(n=>{let o=0;const a=[{key:"Yes",value:!0,text:"Yes",position:o++},{key:"No",value:!1,text:"No",position:o++}];return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{options:a,...n})})}),he=n=>{const{csvValue:o}=n;let a=0;const d=o.split(",").map(i=>({key:i,value:i,text:i,icon:i.toLocaleLowerCase(),position:a++}));return e.jsx(s.Container,{fluid:!0,className:"filter filter-component",children:e.jsx(z,{options:d,...n,children:" "})})},pe=n=>e.jsx(xe,{...n}),xe=({unique:n,"data-group":o,"data-app":a,"data-child-filter":d,"data-child-filter-param":i,"data-parent-filter":f,"data-parent-filter-param":h,"data-dvz-proxy-dataset-id":u,"data-param":r,"data-icon":g,"data-type":c,"data-place-holder":F,"data-is-range":j="false","data-all-label":C,"data-none-label":S,"data-start-label":w,"data-end-label":p,"data-csv-value":E,"data-filters":I="[]","data-use-single-column":b="false","data-enable-text-search":D="false","data-filter-type":A,"data-default-values":k,"data-show-no-data-option":M="true","data-default-value-criteria":V="DEFAULT_VALUE_INPUT","data-hidden-filters":O="[]","data-all-none-same-behaviour":U="false","data-close-on-select":_="false","data-alphabetical-sort":K="true","data-asc-order":G="true","data-auto-apply":P="true","data-default-top-n-enabled":H="false","data-default-top-n-count":$="0",intl:y})=>{const R={},T=I?ee(I):{};T&&T.forEach&&T.forEach(l=>{l.value!=null&&l.value.filter(x=>x!=null&&x.toString().trim()!="").length>0&&(R[l.param]=l.value)}),u&&(R.dvzProxyDatasetId=u);const v=O?ee(O):null,B=v!==null?v:O?O.split(",").filter(Boolean):[];let t;return A==null||A==""?t=j==="true"?"range":"multi-select":t=A,a==="csv"?e.jsx(he,{allLabel:C,noneLabel:S,isRange:j==="true",csvValue:E,app:a,group:o,icon:g,placeholder:F,startLabel:w,endLabel:p,param:r,ascOrder:G,useSingleColumn:b==="true",enableTextSearch:D==="true",filterType:t,defaultValues:k,defaultValueCriteria:V,allNoneSameBehaviour:U==="true",closeOnSelect:_==="true",locale:y.locale}):a?e.jsx(te.default,{dvzProxyDatasetId:u,type:c,autoApply:N(P),parentType:f,params:R,param:r,parentParam:h,app:a,group:o,uniqueStorage:T.length>0?n:null,hiddenFilters:B||[],children:e.jsx(Q.default,{children:e.jsxs(s.Container,{fluid:!0,children:[c==="Boolean"&&e.jsx(fe,{startLabel:w,endLabel:p,allLabel:C,noneLabel:S,isRange:N(j),app:a,group:o,icon:g,placeholder:F,param:r,filterType:t,defaultValues:k,locale:y.locale}),c!=="Boolean"&&e.jsx(Q.default,{type:c,children:e.jsx(de,{params:R,childFilter:d,parentFilter:f,childFilterParam:i,startLabel:w,endLabel:p,allLabel:C,noneLabel:S,isRange:N(j),app:a,group:o,icon:g,placeholder:F,param:r,alphabeticalSort:K,ascOrder:G,useSingleColumn:N(b),enableTextSearch:N(D),showNoDataOption:N(M),filterType:t,defaultValues:k,defaultValueCriteria:V,defaultTopNEnabled:N(H),defaultTopNCount:$?parseInt($):0,hiddenFilters:B||[],allNoneSameBehaviour:U=="true",autoApply:N(P),closeOnSelect:N(_),locale:y.locale,uniqueStorage:T.length>0?n:null,dvzProxyDatasetId:u})})]})})}):null},me=ne.injectIntl(pe);exports.default=me;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),j=require("react"),y=require("react-redux"),ea=require("../data/DataProvider.js"),aa=require("../data/DataConsumer.js"),ta=require("../reducers/data.js"),oa=require("./map.js"),la=require("./MapDataFrame.js"),ra=require("./MapCSVDataFrame.js"),na=[{label:"KENYA",value:"KEN",center:[35.8166634,.1],scale:2e3},{label:"Nigeria",value:"NGA",center:[7.491302,9.072264],scale:2e3},{label:"South Africa",value:"ZAF",center:[24.676997,-28.48322],scale:2e3},{label:"West Africa",value:"West Africa",center:[-7.293255,13.90572],scale:1500},{label:"Africa",value:"Africa",center:[13.134227,-11.523088],scale:550},{label:"Ethiopia",value:"ETH",center:[35.8166634,1.7],scale:2e3},{label:"Zambia",value:"ZMB",center:[26.459455,-14.668135],scale:2e3},{label:"Democratic Republic of the Congo",value:"DRC",center:[23.174338,-5.837475],scale:1250},{label:"World",value:"World",center:[0,20.050043],scale:150}],sa=s=>u.jsx(ia,{...s}),ia=s=>{var k;const{unique:f,editing:m,"data-filters":W="{}","data-app":o="csv","data-csv":_="","data-dimension1":G="","data-dimension2":J="","data-dimension3":g="","data-extra-tooltip-columns":Z="[]","data-measures":h="[]","data-height":H=600,width:K=960,"data-data-source-text":$="","data-data-source-label":Y="Source","data-national-average-label":Q="National Average","data-legend-title":X="Legend Title","data-legend-breaks":ee="[]","data-zoom-enabled":L=!1,"data-show-legend-labels":w=!1,"data-map-file":ae,"data-mapping-field":te="zone","data-map-label-field":oe="admin","data-has-multiple-measures":F="false",topoJSONField:le="collection","data-map-center":re="NGA","data-map-label-show-value":S="false","data-show-tooltip":x="true","data-measure-selector-label":ne="","data-value-format":se="","data-show-overall-value":D="false","data-auto-generate-breaks":I="false","data-number-of-breaks":ie=5,"data-scheme":de="reds","data-show-no-data-label":N="false","data-group":T="default","data-map-symbols":ce="[]","data-tooltip-theme":ue="map-tooltip-dark","data-label-font-size":me=12,"data-label-font-weight":pe="normal","data-label-font-color":fe="#595959","data-legend-font-size":ge=12,"data-legend-font-weight":he="normal","data-custom-tooltips":be="[]","data-format-style":b="decimal","data-decimals":z="2","data-currency":ve="","data-tooltip-font-size":Ce=14,"data-show-admin-unit-label":ye="showAll","data-map-no-data-color":Le="#f8f8f8","data-map-boundary-color":we="#000","data-map-focus-boundary-color":Fe="#000","data-highlighted-location":Se="","data-tooltip-format":xe=`{locationName} %({value},2)
2
- {label}: %({value},2)`,"data-show-no-data-tooltip":A="false","data-map-container-bg-color":De="#fff","data-map-position":Ie="{}","data-main-layer-id":Ne="","data-enabled-layers":Te,"data-point-label-color":ze="#fff","data-point-label-format":Ae="{locationName} %({value},2)","data-show-no-data-legend-item":R=!1,"data-highlighted-loc-label-format":Re="{locationName} - Score: #({value},2)","data-enable-summary-view":ma="false","data-map-type":B="DEFAULT","data-default-point-color":Be="#FFFF00","data-aggregation-formula":Ue="COUNT","data-zoom-level-to-show-points":Pe=2,"data-zoom-on-filter":U="false","data-zoom-on-filter-field":Me="","data-no-data-text":Ee="No Data","data-labels-exclusion-list":Ve="","data-custom-measure-labels":ke="{}","data-show-shading-layer-labels":qe="ifUnitHasData","data-dvz-proxy-dataset-id":n,"data-recently-toggled-layer-id":Oe=null,intl:pa,settings:fa}=s;console.log("MapWrapper props",s);const je=e=>m?e:decodeURIComponent(e),P=e=>e==null?"":String(e).trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,""),We=(e,a)=>{if(!e||!a)return;if(Object.prototype.hasOwnProperty.call(e,a))return e[a];const t=P(a),r=Object.keys(e).find(q=>P(q)===t);return r?e[r]:void 0},l=e=>{try{if(e)return JSON.parse(je(e))}catch{console.error("error parsing value:"+e)}return null},_e=e=>{let a=l(e)||[];return a=a.map(t=>(t.min&&(t.min=parseFloat(t.min)),t.max&&(t.max=parseFloat(t.max)),t.color=decodeURIComponent(t.color),t)),a},Ge=e=>{const a=l(e)||[];let t={};return a&&a.forEach?a.forEach(r=>{(Array.isArray(r.value)?r.value:[r.value]).filter(O=>O!=null&&O.toString().trim()!="").length>0&&(t[r.param]=r.value)}):t=a,t},Je={style:b==="compacted"?"decimal":b,notation:b==="compacted"?"compact":"standard",currency:ve,minimumFractionDigits:parseInt(z),maximumFractionDigits:parseInt(z)};let v=l(Te)||[];v=v.map(e=>(e.bgColor=decodeURIComponent(e.bgColor),e.fontColor=decodeURIComponent(e.fontColor),e));const M=na.find(e=>e.value===re),E=F==!0||F=="true";let i=[G,J].filter(e=>e!=="none"&&e!==null).join("/");const d=g&&g!=="none"?g:null,p={unique:f,editing:m,source:`/${ae}`,center:M.center,scale:M.scale,measures:h,legendTitle:X,height:H,width:K,topoJSONField:le,mappingField:te,dataSourceText:$,dataSourceLabel:Y,nationalAverageLabel:Q,legendBreaks:_e(ee),mapLabelField:oe,zoomEnabled:L==!0||L=="true",showLegendLabels:w==!0||w=="true",multipleMeasures:E,app:o,mapLabelShowValue:S==!0||S=="true",showTooltip:x==!0||x=="true",showOverallValue:D==!0||D=="true",measureSelectorLabel:ne,valueFormat:se,autoGenerateBreaks:I==!0||I=="true",showNoDataLabel:N==!0||N=="true",numberOfBreaks:ie,colorScheme:de,group:T,symbols:l(ce)||[],tooltipTheme:ue,labelFontSize:me,labelFontColor:decodeURIComponent(fe),labelFontWeight:pe,legendFontSize:ge,legendFontWeight:he,customTooltips:l(be)||[],format:Je,tooltipFontSize:Ce,showAdminUnitLabel:ye,mapNoDataColor:decodeURIComponent(Le),mapBoundaryColor:decodeURIComponent(we),mapFocusBoundaryColor:decodeURIComponent(Fe),highlightedLocation:Se,tooltipFormat:xe,showNoDataTooltip:A==!0||A=="true",fields:i.split("/"),mapContainerBgColor:decodeURIComponent(De),mapPosition:l(Ie),mainLayerId:Ne,enabledLayers:v,pointLabelColor:decodeURIComponent(ze),pointLabelFormat:Ae,showNoDataLegendItem:R==!0||R=="true",highlightedLocLabelFormat:Re,mapType:B,defaultPointColor:decodeURIComponent(Be),zoomLevelToShowPoints:Pe,zoomOnFilter:U==!0||U=="true",zoomOnFilterField:Me,noDataText:Ee,labelsExclusionList:Ve.split(",").map(e=>e.trim()),showShadingLayerLabels:qe,dvzProxyDatasetId:n,recentlyToggledLayerId:Oe};if(p.recentlyToggledLayerId){const e=p.enabledLayers.find(a=>String(a.id)===String(p.recentlyToggledLayerId));e&&(e!=null&&e.apiField)&&(i=(k=e.apiField)==null?void 0:k.toLowerCase())}const Ze=l(ke)||{},He=o==="csv"?ra.default:la.default,Ke=m?(l(h)||[]).join(","):h,c=Ge(W);if(d){const e=We(c,d);e!=null&&e!==""&&(c[d]=e)}const $e=(l(Z)||[]).filter(e=>e&&e!=="none"),V=Array.from(new Set([d,...$e].filter(Boolean)));V.length>0&&(c.includeColumns=V.join(",")),n&&(c.dvzProxyDatasetId=n);const Ye=y.useDispatch(),Qe=["data","categories",o,...n?[n]:[],"items"],C=y.useSelector(e=>e.getIn(Qe)),Xe=j.useMemo(()=>C?C.toJS():[],[C]);return j.useEffect(()=>{o&&o!=="csv"&&Ye(ta.getCategories({app:o,dvzProxyDatasetId:n}))},[o,n]),u.jsx(ea.default,{params:c,app:o,csv:decodeURIComponent(_),group:T,editing:m,store:[o,f,...i.split("/")],source:i,children:u.jsx(aa.default,{children:u.jsx(He,{measures:Ke,multipleMeasures:E,mapType:B,aggregationFormula:Ue,customMeasureLabels:Ze,source:i,extraDimension:d,allDimensions:Xe,children:u.jsx(oa.default,{...p})})})})},da=(s,f)=>{},ca={},ua=y.connect(da,ca)(sa);exports.default=ua;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const u=require("react/jsx-runtime"),_=require("react"),L=require("react-redux"),aa=require("../data/DataProvider.js"),ta=require("../data/DataConsumer.js"),oa=require("../reducers/data.js"),la=require("./map.js"),ra=require("./MapDataFrame.js"),na=require("./MapCSVDataFrame.js"),sa=[{label:"KENYA",value:"KEN",center:[35.8166634,.1],scale:2e3},{label:"Nigeria",value:"NGA",center:[7.491302,9.072264],scale:2e3},{label:"South Africa",value:"ZAF",center:[24.676997,-28.48322],scale:2e3},{label:"West Africa",value:"West Africa",center:[-7.293255,13.90572],scale:1500},{label:"Africa",value:"Africa",center:[13.134227,-11.523088],scale:550},{label:"Ethiopia",value:"ETH",center:[35.8166634,1.7],scale:2e3},{label:"Zambia",value:"ZMB",center:[26.459455,-14.668135],scale:2e3},{label:"Democratic Republic of the Congo",value:"DRC",center:[23.174338,-5.837475],scale:1250},{label:"World",value:"World",center:[0,20.050043],scale:150}],ia=s=>u.jsx(da,{...s}),da=s=>{var O;const{unique:f,editing:m,"data-filters":G="{}","data-app":o="csv","data-csv":J="","data-dimension1":w="","data-dimension2":F="","data-dimension3":g="","data-extra-tooltip-columns":Z="[]","data-measures":h="[]","data-height":H=600,width:K=960,"data-data-source-text":$="","data-data-source-label":Y="Source","data-national-average-label":Q="National Average","data-legend-title":X="Legend Title","data-legend-breaks":ee="[]","data-zoom-enabled":S=!1,"data-show-legend-labels":x=!1,"data-map-file":ae,"data-mapping-field":te="zone","data-map-label-field":oe="admin","data-has-multiple-measures":D="false",topoJSONField:le="collection","data-map-center":re="NGA","data-map-label-show-value":I="false","data-show-tooltip":N="true","data-measure-selector-label":ne="","data-value-format":se="","data-show-overall-value":T="false","data-auto-generate-breaks":z="false","data-number-of-breaks":ie=5,"data-scheme":de="reds","data-show-no-data-label":A="false","data-group":R="default","data-map-symbols":ce="[]","data-tooltip-theme":ue="map-tooltip-dark","data-label-font-size":me=14,"data-label-font-weight":pe="normal","data-label-font-color":fe="#595959","data-legend-font-size":ge=12,"data-legend-font-weight":he="normal","data-custom-tooltips":be="[]","data-format-style":b="decimal","data-decimals":B="2","data-currency":ve="","data-tooltip-font-size":Ce=14,"data-show-admin-unit-label":ye="showAll","data-map-no-data-color":Le="#f8f8f8","data-map-boundary-color":we="#000","data-map-focus-boundary-color":Fe="#000","data-highlighted-location":Se="","data-tooltip-format":xe=`{locationName} %({value},2)
2
+ {label}: %({value},2)`,"data-show-no-data-tooltip":U="false","data-map-container-bg-color":De="#fff","data-map-position":Ie="{}","data-main-layer-id":Ne="","data-enabled-layers":Te,"data-point-label-color":ze="#fff","data-point-label-format":Ae="{locationName} %({value},2)","data-show-no-data-legend-item":P=!1,"data-highlighted-loc-label-format":Re="{locationName} - Score: #({value},2)","data-enable-summary-view":pa="false","data-map-type":M="DEFAULT","data-default-point-color":Be="#FFFF00","data-aggregation-formula":Ue="COUNT","data-zoom-level-to-show-points":Pe=2,"data-zoom-on-filter":E="false","data-zoom-on-filter-field":Me="","data-no-data-text":Ee="No Data","data-labels-exclusion-list":Ve="","data-custom-measure-labels":ke="{}","data-show-shading-layer-labels":qe="ifUnitHasData","data-dvz-proxy-dataset-id":n,"data-recently-toggled-layer-id":Oe=null,intl:fa,settings:ga}=s;console.log("MapWrapper props",s);const je=e=>m?e:decodeURIComponent(e),V=e=>e==null?"":String(e).trim().toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,""),We=(e,a)=>{if(!e||!a)return;if(Object.prototype.hasOwnProperty.call(e,a))return e[a];const t=V(a),r=Object.keys(e).find(j=>V(j)===t);return r?e[r]:void 0},l=e=>{try{if(e)return JSON.parse(je(e))}catch{console.error("error parsing value:"+e)}return null},_e=e=>{let a=l(e)||[];return a=a.map(t=>(t.min&&(t.min=parseFloat(t.min)),t.max&&(t.max=parseFloat(t.max)),t.color=decodeURIComponent(t.color),t)),a},Ge=e=>{const a=l(e)||[];let t={};return a&&a.forEach?a.forEach(r=>{(Array.isArray(r.value)?r.value:[r.value]).filter(W=>W!=null&&W.toString().trim()!="").length>0&&(t[r.param]=r.value)}):t=a,t},Je={style:b==="compacted"?"decimal":b,notation:b==="compacted"?"compact":"standard",currency:ve,minimumFractionDigits:parseInt(B),maximumFractionDigits:parseInt(B)};let v=l(Te)||[];v=v.map(e=>(e.bgColor=decodeURIComponent(e.bgColor),e.fontColor=decodeURIComponent(e.fontColor),e));const C=sa.find(e=>e.value===re),k=D==!0||D=="true";let i=[w,F].filter(e=>e!=="none"&&e!==null).join("/");const d=g&&g!=="none"?g:null,Ze=C?C.scale:2e3,p={unique:f,editing:m,source:`/${ae}`,center:C.center,scale:Ze,measures:h,legendTitle:X,height:H,width:K,topoJSONField:le,mappingField:te,dataSourceText:$,dataSourceLabel:Y,nationalAverageLabel:Q,legendBreaks:_e(ee),mapLabelField:oe,zoomEnabled:S==!0||S=="true",showLegendLabels:x==!0||x=="true",multipleMeasures:k,app:o,mapLabelShowValue:I==!0||I=="true",showTooltip:N==!0||N=="true",showOverallValue:T==!0||T=="true",measureSelectorLabel:ne,valueFormat:se,autoGenerateBreaks:z==!0||z=="true",showNoDataLabel:A==!0||A=="true",numberOfBreaks:ie,colorScheme:de,group:R,symbols:l(ce)||[],tooltipTheme:ue,labelFontSize:me,labelFontColor:decodeURIComponent(fe),labelFontWeight:pe,legendFontSize:ge,legendFontWeight:he,customTooltips:l(be)||[],format:Je,tooltipFontSize:Ce,showAdminUnitLabel:ye,mapNoDataColor:decodeURIComponent(Le),mapBoundaryColor:decodeURIComponent(we),mapFocusBoundaryColor:decodeURIComponent(Fe),highlightedLocation:Se,tooltipFormat:xe,showNoDataTooltip:U==!0||U=="true",fields:i.split("/"),mapContainerBgColor:decodeURIComponent(De),mapPosition:l(Ie),mainLayerId:Ne,enabledLayers:v,pointLabelColor:decodeURIComponent(ze),pointLabelFormat:Ae,showNoDataLegendItem:P==!0||P=="true",highlightedLocLabelFormat:Re,mapType:M,defaultPointColor:decodeURIComponent(Be),zoomLevelToShowPoints:Pe,zoomOnFilter:E==!0||E=="true",zoomOnFilterField:Me,noDataText:Ee,labelsExclusionList:Ve.split(",").map(e=>e.trim()),showShadingLayerLabels:qe,dvzProxyDatasetId:n,recentlyToggledLayerId:Oe};if(p.recentlyToggledLayerId){const e=p.enabledLayers.find(a=>String(a.id)===String(p.recentlyToggledLayerId));e&&(e!=null&&e.apiField)&&(i=(O=e.apiField)==null?void 0:O.toLowerCase())}const He=l(ke)||{},Ke=o==="csv"?na.default:ra.default,$e=m?(l(h)||[]).join(","):h,c=Ge(G);if(d){const e=We(c,d);e!=null&&e!==""&&(c[d]=e)}const Ye=(l(Z)||[]).filter(e=>e&&e!=="none"&&e!==w&&e!==F),q=Array.from(new Set([d,...Ye].filter(Boolean)));q.length>0&&(c.includeColumns=q.join(",")),n&&(c.dvzProxyDatasetId=n);const Qe=L.useDispatch(),Xe=["data","categories",o,...n?[n]:[],"items"],y=L.useSelector(e=>e.getIn(Xe)),ea=_.useMemo(()=>y?y.toJS():[],[y]);return _.useEffect(()=>{o&&o!=="csv"&&Qe(oa.getCategories({app:o,dvzProxyDatasetId:n}))},[o,n]),u.jsx(aa.default,{params:c,app:o,csv:decodeURIComponent(J),group:R,editing:m,store:[o,f,...i.split("/")],source:i,children:u.jsx(ta.default,{children:u.jsx(Ke,{measures:$e,multipleMeasures:k,mapType:M,aggregationFormula:Ue,customMeasureLabels:He,source:i,extraDimension:d,allDimensions:ea,children:u.jsx(la.default,{...p})})})})},ca=(s,f)=>{},ua={},ma=L.connect(ca,ua)(ia);exports.default=ma;
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react/jsx-runtime"),Je=require("react-intl"),$t=require("d3"),b=require("semantic-ui-react"),h=require("react"),Jt=require("./legend.js"),k=require("../common/MapTooltip.js"),I=require("../../utils/deviceType.js"),f=require("./mapHelpers.js"),Xt=require("../../conf/index.js");function Zt(L){const U=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(L){for(const w in L)if(w!=="default"){const X=Object.getOwnPropertyDescriptor(L,w);Object.defineProperty(U,w,X.get?X:{enumerable:!0,get:()=>L[w]})}}return U.default=L,Object.freeze(U)}const u=Zt($t),Yt=["mobile","tablet","midTablet"].includes(I.default()),$e=["mobile","tablet"].includes(I.default());function Kt(L){const{unique:U,editing:w,source:X,center:ne,scale:Fe,height:we,width:Xe,topoJSONField:Ze,mappingField:x,transformedData:p,legendBreaks:Ae,mapLabelField:A,mapLabelShowValue:se,showOverallValue:Te,measureSelectorLabel:Me,valueFormat:je,autoGenerateBreaks:Ne,showNoDataLabel:Ce,numberOfBreaks:Ye,colorScheme:Ke,symbols:ke,tooltipTheme:Qe,labelFontSize:te,labelFontColor:Ie,labelFontWeight:et,legendFontSize:tt,customTooltips:rt,tooltipFontSize:lt,showAdminUnitLabel:ae,mapNoDataColor:Ee,mapBoundaryColor:nt,mapFocusBoundaryColor:st,highlightedLocation:z,tooltipFormat:Se,showNoDataTooltip:at,fields:ot,mapContainerBgColor:it,mapPosition:v,mainLayerId:_,enabledLayers:D,pointLabelColor:ct,pointLabelFormat:ut,highlightedLocLabelFormat:pt,mapType:G,defaultPointColor:Oe,zoomOnFilter:dt,zoomOnFilterField:P,noDataText:ft,labelsExclusionList:oe,showShadingLayerLabels:ze,appliedFilters:m,intl:T,legendTitle:mt,nationalAverageLabel:gt,zoomEnabled:ie,showTooltip:ce}=L;console.log("Map props:",L);const[W,ht]=h.useState(()=>p&&p.measures&&p.measures.length>1?p.measures[0]:null),[q,yt]=h.useState(null),[De,ue]=h.useState(!1),[B,pe]=h.useState(null),de=h.useRef(null),M=h.useRef(null),F=h.useRef(null),V=h.useRef(null),j=h.useRef(null),Pe=h.useRef(null),E=h.useRef(null),Re=h.useRef(!1),fe=h.useRef(null),me=h.useRef(null),N=h.useRef({}),ge=h.useRef(null),Z=(p==null?void 0:p.types)||[];function he(){return de.current?de.current.offsetWidth:Xe}function ye(){return we}j.current===null&&(j.current=u.zoom().scaleExtent([1,16]).on("zoom",e=>N.current.zoomed(e)).on("end",e=>N.current.zoomEnd(e))),F.current===null&&(Pe.current=f.deviceTranslateMap[I.default()],F.current=u.geoMercator().scale(Fe).center(ne).translate([he()/Pe.current,ye()/2]),V.current=u.geoPath().projection(F.current));function y(){return".map.wrapper."+U}function S(){let e=W;return!e&&p&&p.measures&&p.measures.length>1&&(e=p.measures[0]),e}function _e(){return B&&B.length>0?B.map(t=>{const a=D.find(n=>n.id==t.id);return t.index=a?a.index:0,t}).sort((t,a)=>parseInt(t.index)<parseInt(a.index)?1:parseInt(t.index)>parseInt(a.index)?-1:0):[]}function bt(){const e=_e();let t;return e&&(t=e.filter(a=>a.id==_||a.id==null)[0]||e[0]),t?t.data:null}function We(e){return f.extractFeatures(e,Ze)}function Y(){const e=bt(),t=_e();if(e){let a=[];try{a=We(e),a.map(l=>{l.properties.layerId=_;const r=t.find(s=>String(s.id)===String(_));return r&&(l.properties.layerMappingField=r.layerMappingField,l.properties.layerDatasource=r.layerDatasource,l.properties.layerApiField=r.layerApiField,l.properties.layerLocale=r.layerLocale,l.properties.displayLayerLabels=r.displayLayerLabels),D.forEach(s=>{String(s.id)==_&&Object.keys(s||{}).forEach(o=>{l.properties[o]=s[o]})}),l}),t&&t.forEach(l=>{if(l.id!=_){let r=We(l.data);r=r.map(s=>(s.properties.layerId=l.id,s.properties.layerMappingField=l.layerMappingField,s.properties.layerDatasource=l.layerDatasource,s.properties.layerApiField=l.layerApiField,s.properties.layerLocale=l.layerLocale,s.properties.displayLayerLabels=l.displayLayerLabels,s)),a=[...r,...a]}})}catch(l){console.log("error updating features .."+l)}const n=a.filter(l=>l.properties!=null);let i=p.locationsData;return p.measures&&p.measures.length>1&&(i=p.locationsData.filter(l=>l.measure===S())),n.map(l=>{if(i){const r=i.find(s=>{const o=s.label?(""+s.label).toLowerCase():"",d=l.properties[x]?l.properties[x].toLowerCase():"";return o===d});if(r){let s=r.measure;p.measureLabelMap&&r.measure&&p.measureLabelMap[r.measure]&&(s=p.measureLabelMap[r.measure]),l.properties.value=r.value,l.properties.measure=r.measure,l.properties.measureLabel=s,l.properties.children=r.children,l.properties.variables=r.variables,l.properties.hasDataRow=!0,Object.keys(r).forEach(o=>{l.properties[o]=r[o]})}else l.properties.value=null,l.properties.measure=null,l.properties.children=null,l.properties.measureLabel=null,l.properties.hasDataRow=!1}}),n}return[]}function Be(){if(pe([]),ue(!0),D&&D.length>0){const e=[];D.forEach(t=>{e.push(new Promise(a=>{u.json(Xt.Config.REACT_APP_WP_API+"/wp/v2/media/"+t.id).then(n=>{a({id:t.id,url:n.source_url,index:t.index,layerMappingField:t.layerMappingField,layerDatasource:t.datasource,layerApiField:t.apiField,layerLocale:t.locale,displayLayerLabels:t.displayLayerLabels})}).catch(function(){a({id:t.id,url:null,index:t.index,layerMappingField:t.layerMappingField,layerDatasource:t.datasource,layerApiField:t.apiField,layerLocale:t.locale,displayLayerLabels:t.displayLayerLabels})})}))}),Promise.all(e).then(t=>{const a=[];t.forEach(n=>{n.url&&a.push(new Promise(i=>{u.json(n.url).then(l=>{i({id:n.id,data:l,index:n.index,layerMappingField:n.layerMappingField,layerDatasource:n.layerDatasource,layerApiField:n.layerApiField,layerLocale:n.layerLocale,displayLayerLabels:n.displayLayerLabels})})}))}),Promise.all(a).then(n=>{pe(n),ue(!1)})})}else u.json(X).then(e=>{pe([{id:null,url:X,data:e,index:0,layerMappingField:null,layerDatasource:null,layerApiField:null,layerLocale:null,displayLayerLabels:!1}]),ue(!1)})}function vt(e){u.select(y()).select("svg").selectAll("circle").attr("r",e.k>1?6/e.k:6)}function H(e){return f.getLabelBoxWidth(e,A)}function re(){return f.getLabelBoxHeight(se)}function be(e){return e.properties.LABEL_LATITUDE&&e.properties.LABEL_LONGITUDE?F.current([e.properties.LABEL_LONGITUDE,e.properties.LABEL_LATITUDE]):V.current.centroid(e)}function Lt(e){u.select(y()).selectAll(".map-labels-container").each((t,a,n)=>{const i=u.select(n[a]),l=i.select("div"),r=e.k>1?e.k:1,s=te/r;l.style("font-size",`${s}px`);const o=be(t),d=H(t)/r,g=o[0]-d/2,C=e.k>1?10/e.k:10,R=o[1]-C;i.attr("x",g).attr("y",R).attr("width",H(t)/r).attr("height",re()/r)})}function xt(e){u.select(y()).selectAll(".point-labels-container").each((t,a,n)=>{const i=u.select(n[a]),l=i.select("div"),r=e.k>1?e.k:1,s=te/r;l.style("font-size",`${s}px`);const o=F.current([t.geometry.coordinates[1],t.geometry.coordinates[0]]),d=(H(t)+20)/r,g=re()/r,C=o[0]-d/2,R=o[1]-g/2;i.attr("x",C).attr("y",R).attr("width",d).attr("height",g)})}function Ft(e){M.current.style("visibility","hidden");const t=e.transform;u.select(y()).select("svg").select("g").attr("transform",t),vt(t),Lt(t),xt(t)}function wt(e){const t=e.transform;E.current={k:t.k,x:t.x,y:t.y},w&&window.parent.postMessage({type:"map",value:JSON.stringify(E.current)},"*")}function At(){const e=u.select(y()).select("svg");e.select("g").selectAll(".active").attr("class",function(){return u.select(this).attr("class").replace(/background/gi,"")});let a=u.zoomIdentity;v&&!w?a=a.translate(v.x,v.y).scale(v.k):a=a.translate(0,0).scale(1),e.transition().duration(300).call(j.current.transform,a)}function He(){E.current=null,M.current.style("visibility","hidden"),At()}function Tt(){u.select(y()).select("svg").transition().call(j.current.scaleBy,1.5)}function Mt(){u.select(y()).select("svg").transition().call(j.current.scaleBy,.6667)}function K(){if(Ne){const e=Y();return f.generateBreaks(e,{autoGenerateBreaks:Ne,numberOfBreaks:Ye,colorScheme:Ke})}else{let e=Ae;return S()&&(e=Ae.filter(t=>t.measure===S()).filter(t=>{if(t.filters&&t.filters.length>0&&m&&JSON.stringify(m)!=="{}"){const n=Object.keys(m);return t.filters.filter(l=>{if(n.indexOf(l.field)!=-1){const r=m[l.field],s=l.values;return r.join(",").indexOf(s)!=-1}return!1}).length>0}return!0})),e}}function ve(e,t){return f.fillColor(e,t,{mapNoDataColor:Ee,mainLayerId:_,enabledLayers:D,selectedMeasure:W})}function jt(e){return f.createLabel(e,{mapLabelField:A,mapLabelShowValue:se,intl:T,valueFormat:je,showNoDataLabel:Ce,showAdminUnitLabel:ae,noDataText:ft,selectedMeasure:S()},Z,k.formatContent)}function Ue(e,t){const a=[...e.filter(n=>z!=n.properties[A]),...e.filter(n=>z==n.properties[A])];Ct(a),Nt(a),kt(a,t),ke.length>0&&It(ke,a)}function Nt(e){const t=u.select(y()).select("svg").select("g");if(t.selectAll(".map-labels-container").size()>0){console.log("Labels already exist, skipping redraw...");return}t.selectAll(".map-labels").data(e.filter(n=>oe&&oe.length>0?!oe.includes(n.properties[A]):!0)).enter().append("foreignObject").attr("class","map-labels-container").attr("x",n=>{const i=be(n);if(n.properties[A]){const l=H(n);return i[0]-l/2}return i[0]}).attr("y",n=>be(n)[1]-10).attr("width",n=>H(n)).attr("height",n=>re()).attr("font-size",()=>`${te}px`).attr("overflow","visible").attr("opacity",1).style("display",n=>ae===f.SHOW_ALL||ae===f.SHOW_IF_HAS_DATA&&n.properties.hasDataRow||n.properties.displayLayerLabels?"block":"none").attr("pointer-events",G=="POINTS_MAP"?"none":"all").on("mouseover",$).on("mousemove",Q).on("mouseout",J).append("xhtml:div").style("font-size",()=>`${te}px`).style("color",()=>Ie).style("font-weight",()=>et).style("background-color",n=>n.properties.hasDataRow&&se&&(n.properties.value!=null||n.properties.value==null&&Ce)?"#fff6e1":"none").style("border-radius",()=>"4px").style("line-height","95%").style("text-align","center").html(n=>jt(n))}function Ct(e){const t=K(),a=u.select(y()).select("svg").select("g"),n=e.filter(i=>i.geometry&&i.geometry&&(i.geometry.type=="Polygon"||i.geometry.type=="MultiPolygon"));n.length>0&&a.selectAll("path").data(n).join("path").attr("d",V.current).attr("fill",i=>ve(i,t)).attr("stroke-width",i=>z==i.properties[A]?1.2:.4).attr("stroke",i=>z==i.properties[A]?st:nt).on("click",St)}function kt(e,t){const a=u.select(y()).select("svg").select("g");let n=[];if(p.pointsData){let r=q;t&&m&&m[P]&&(r=m[P]),n=p.pointsData.filter(s=>s.lat&&s.lng&&s.label==r).map(s=>({properties:{label:s.label,lat:s.lat,lng:s.lng,value:s.value,variables:s.variables}})),a.selectAll(".circle").data(n).enter().append("circle").attr("id",(s,o)=>"circle"+o).attr("cx",s=>F.current([s.properties.lng,s.properties.lat])[0]).attr("cy",s=>F.current([s.properties.lng,s.properties.lat])[1]).attr("r",()=>2).style("stroke-width",.5).style("fill",()=>Oe).on("mouseover",(s,o)=>Et(s,o)).on("mouseout",J)}const i=K();let l=[];ze==f.SHOW_ALL?l=e.filter(r=>r.geometry&&r.geometry.type=="Point"):ze==f.SHOW_IF_HAS_DATA&&(l=e.filter(r=>r.geometry&&r.geometry.type=="Point"&&r.properties.hasDataRow)),l.length>0&&a.selectAll(".point-labels").data(l).enter().append("foreignObject").attr("id",(r,s)=>"point-label"+s).attr("class","point-labels-container").attr("x",r=>{const s=H(r)+20;return F.current([r.geometry.coordinates[1],r.geometry.coordinates[0]])[0]-s/2}).attr("y",r=>F.current([r.geometry.coordinates[1],r.geometry.coordinates[0]])[1]-re()/2).attr("width",r=>H(r)+20).attr("height",()=>"1px").attr("overflow","visible").attr("font-size","12px").style("opacity",1).append("xhtml:div").style("color",()=>ct).style("font-weight",()=>"bold").style("background-color",r=>ve(r,i)).style("padding",()=>"5px 3px 5px 3px").style("border-radius",()=>"4px").style("line-height","100%").style("text-align","center").html(r=>k.formatContent(ut,{value:r.properties.value,locationName:r.properties[A]},T)).on("mouseover",(r,s,o)=>{u.select(y()).select("svg").select("g").select("#point-label"+o).raise(),$(r,s)}).on("mousemove",Q).on("mouseout",J)}function It(e,t){const a=u.select(y()).select("svg").select("g");e.forEach(n=>{if(n.field&&n.image&&n.values){const i=t.filter(r=>{const s=f.LOCATION==n.field?x:"value",o=(r.properties[s]||(r.properties.variables?r.properties.variables[s]:""))+"",g=(n.values+"").split(",");return r.properties.LATITUDE&&r.properties.LONGITUDE&&g.filter(C=>C.trim().toLowerCase()==o.trim().toLowerCase()).length>0}),l=t.filter(r=>{const s=f.LOCATION==n.field?x:"value",o=(r.properties[s]||(r.properties.variables?r.properties.variables[s]:""))+"",g=(n.values+"").split(",");return!r.properties.LATITUDE&&!r.properties.LONGITUDE&&g.filter(C=>C.trim().toLowerCase()==o.trim().toLowerCase()).length>0});a.selectAll("image").data(i).enter().append("image").attr("width",40).attr("height",40).attr("class","map-symbol").attr("xlink:href","/"+n.image).attr("transform",r=>"translate("+F.current([r.properties.LONGITUDE,r.properties.LATITUDE])+")").on("mouseover",$).on("mousemove",Q).on("mouseout",J),a.selectAll("image").data(l).enter().append("image").attr("width",40).attr("height",40).attr("class","map-symbol").attr("xlink:href","/"+n.image).attr("x",r=>V.current.centroid(r)[0]-20).attr("y",r=>V.current.centroid(r)[1]).on("mouseover",$).on("mousemove",Q).on("mouseout",J)}})}function $(e,t){console.log("Showing tooltip for data:",t);const a=["mobile","tablet","midTablet"].includes(I.default());if(ce&&t.properties.value!==null||ce&&at){u.select(y()).select("svg").select("g").selectAll(".active").attr("class",o=>o.properties[x]===t.properties[x]?"focus"+(a?" zoom-enabled":""):"active"+(a?" zoom-enabled":""));const l=Se||`{locationName} %({value},2)
2
- {label}: %({value},2)`,r=t.properties.variables||{},s={...t.properties,value:t.properties.value,measure:S(),measureLabel:t.properties.measureLabel,locationName:f.getTranslatedLocationName(t,x,Z),label:f.getTranslatedLocationName(t,x,Z),...r,...f.getFilters(m)};M.current.attr("class",Qe).style("position","absolute").style("visibility","hidden").style("visibility","visible").html(()=>{let o=`<div style='font-size:${lt}px;' class='tooltip-content' >`;if(t.properties.value!=null){const d=l.split(`
3
- `),g=d[0],C=d.length>1?d[1]:null;let R=1,le;ot.length>1&&G!="POINTS_MAP"?(R=d.length>2?2:1,le=d[R]):le=null,g&&(o+=k.formatContent(g,s,T)),C&&(o.endsWith("<hr>")||(o+="<hr>"),o+=k.formatContent(C,s,T)),le&&t.properties.children&&t.properties.children.forEach(O=>{const xe={value:O.value,label:O.label,measure:S(),measureLabel:t.properties.measureLabel,...r,...O.variables,...f.getFilters(m)};o.endsWith("<hr>")||(o+="<hr>"),o+=k.formatContent(le,xe,T)}),d.length>R+1&&(o.endsWith("<hr>")||(o+="<hr>"),d.forEach((O,xe)=>{xe>R&&(o.endsWith("<hr>")||(o+="<hr>"),o+=k.formatContent(O,s,T))})),rt.filter(O=>O.location===t.properties[x]).forEach(O=>{o.endsWith("<hr>")||(o+="<hr>"),o+=O.tooltip})}else{const d=Se||`{locationName} %({value},2)
4
- {label}: %({value},2)`,g={value:null,measure:S(),measureLabel:t.properties.measureLabel,locationName:f.getTranslatedLocationName(t,x,Z),...r};o+=k.formatContent(d,g,T),o+="</div>"}return o})}}function Ge(e){const a=M.current.node(),n=a?a.offsetWidth:0,i=window.scrollX+document.documentElement.clientWidth;let l=e.pageX;n&&l+n>i&&(l=e.pageX-n,l<window.scrollX&&(l=window.scrollX)),M.current.style("top",e.pageY+"px").style("left",l+"px").style("margin-left","8px")}function Q(e){Ge(e)}function J(){ce&&(u.select(y()).select("svg").select("g").selectAll(".focus").attr("class","active"),M.current.style("visibility","hidden"))}function Et(e,t,a){$(e,t),M.current.style("visibility","visible"),Ge(e);const n=u.select(y()).select("svg").select("g");n.selectAll("circle").style("fill",Oe).style("stroke","none"),n.select("#circle"+a).raise().style("fill","#fff")}function St(e,t){q!==t.properties[x]&&t.properties.value!==null&&yt(t.properties[x])}function Ot(e){const t=e&&e.appliedFilters||{},a=m||{};return t[P]!=a[P]}function zt(e,t){let a=null;if(dt&&P){let n=q;t&&m&&m[P]&&(n=m[P]);const i=e.filter(l=>l.properties!=null&&l.properties[x]==n)[0];i&&i.properties!=null&&i.properties.value&&(a=i)}return a}function Dt(){return f.classColor(ie)}function Pt(e,t){let a=ie;a||(a=["mobile","tablet"].includes(I.default()));const n=K(),i=u.select(y());let l=i.select("svg"),r=he();r===0?r=window.innerWidth+f.deviceMapWidth[I.default()]:r+=f.deviceMapWidth[I.default()];const s=ye()-100;if(l.empty()?l=i.append("svg"):l.selectAll("*").remove(),l.attr("style",`background-color:${it};`).attr("viewBox",`0 0 ${r} ${s}`).attr("preserveAspectRatio","xMidYMid meet"),l.append("g").selectAll("path").data(e).enter().append("path").attr("fill",d=>ve(d,n)).attr("d",u.geoPath().projection(F.current)).attr("class",()=>Dt()).on("mouseover",G!=="POINTS_MAP"?$:null).on("mousemove",G!=="POINTS_MAP"?Q:null).on("mouseout",G!=="POINTS_MAP"?J:null),E.current&&l.transition().duration(300).call(j.current.transform,u.zoomIdentity.translate(E.current.x,E.current.y).scale(E.current.k)),!E.current&&v&&v.x&&v.y&&v.k&&(l.transition().duration(300).call(j.current.transform,u.zoomIdentity.translate(v.x,v.y).scale(v.k)),G==="POINTS_MAP")){const g={mobile:100,tablet:0,midTablet:0,desktop:0,laptop:0,wide:0}[I.default()];l.transition().duration(300).call(j.current.transform,u.zoomIdentity.translate(v.x+g,v.y).scale(v.k))}a||w?l.call(j.current):l.on("dblclick.zoom",null);const o=zt(e,t);if(o){const d=V.current.bounds(o),g=[(d[0][0]+d[1][0])/2,(d[0][1]+d[1][1])/2];l.transition().duration(750).call(j.current.transform,u.zoomIdentity.translate(r/2,s/2).scale(12).translate(-g[0],-g[1]))}}function Rt(){return p.nationalData.value}function _t(e){W!=e&&ht(e)}function Wt(){let e=p.locationsData;return p.measures&&p.measures.length>1&&(e=p.locationsData.filter(t=>t.measure===S())),e.find(t=>t.label===z)}function Bt(){if(!z)return null;const t=Y().find(a=>a.properties[A]===z);if(t&&t.properties.displayLayerLabels&&t.properties.layerLocale){const a=t.properties.layerMappingField||A,n=t.properties[a];return f.getTranslatedItemLabel(Z,n,t.properties.layerLocale)}return z}function Ht(e){return f.getHighlightedLocationColor(e,K(),Ee)}function Ut(){return c.jsx(b.Container,{className:"loading",children:c.jsx(b.Segment,{basic:!0,padded:!0,textAlign:"center",style:{margin:"30px"},children:c.jsx(b.Dimmer,{active:!0,inverted:!0,children:c.jsx(b.Loader,{size:"medium"})})})})}function Gt(){return c.jsxs(b.Message,{icon:!0,warning:!0,children:[c.jsx(b.Icon,{name:"map outline"}),c.jsxs(b.Message.Content,{children:[c.jsx(b.Message.Header,{children:"No map selected"}),"Pick one from the list in the ",c.jsx("strong",{children:"Map Layers"})," section."]})]})}N.current.zoomed=Ft,N.current.zoomEnd=wt,N.current.getFeatures=Y,N.current.updateFeatures=Ue,N.current.getMapId=y,ge.current||(ge.current=()=>{let e=null;clearTimeout(e),e=setTimeout(()=>{u.select(N.current.getMapId()).selectAll(".map-labels-container").size()>0||N.current.updateFeatures(N.current.getFeatures(),!1)},300)}),h.useEffect(()=>{const e=ge.current;return window.addEventListener("scroll",e,{passive:!0}),window.addEventListener("touchmove",e,{passive:!0}),Be(),M.current=u.select("body").append("div").style("position","absolute").style("visibility","hidden").style("pointer-events","none"),()=>{var t;window.removeEventListener("scroll",e),window.removeEventListener("touchmove",e),(t=M.current)==null||t.remove()}},[]),h.useEffect(()=>{if(!Re.current){Re.current=!0,fe.current=L,me.current={selectedMeasure:W,layers:B,selectedPolygon:q};return}const e=fe.current,t=me.current;if(P){const i=[],l=[],r=e.appliedFilters;r&&Object.keys(r).forEach(s=>{r[s]!=null&&r[s]instanceof Array&&i.push(...r[s].filter(o=>o!=Number.MIN_SAFE_INTEGER))}),m&&Object.keys(m).forEach(s=>{m[s]!=null&&m[s]instanceof Array&&l.push(...m[s].filter(o=>o!=Number.MIN_SAFE_INTEGER))}),i.length>0&&l.length==0&&He()}M.current.style("visibility","hidden"),e.enabledLayers.length!=D.length&&Be();const a=Y();e.center!==ne&&(E.current=null,F.current.scale(Fe).center(ne).translate([he()/2,ye()/2]));const n=Ot(e);Pt(a,n),B&&p&&(p!=e.transformedData||B!=t.layers||W!=t.selectedMeasure||q!=t.selectedPolygon||e.mainLayerId!==_||JSON.stringify(e.enabledLayers)!=JSON.stringify(D))&&Ue(Y(),n),fe.current=L,me.current={selectedMeasure:W,layers:B,selectedPolygon:q}});let Le=ie;Le||(Le=!!["mobile","tablet","midTablet"].includes(I.default()));const qt=Rt(),Vt=f.getFilters(m),ee=Wt(),qe={backgroundColor:Ht(ee),color:Ie,fontSize:tt+"px"};w&&(qe.marginTop="25px");const Ve=()=>c.jsxs(b.Container,{fluid:!0,className:"footnote ",children:[c.jsxs(b.Grid,{columns:2,children:[L.app!=="csv"&&Te&&c.jsx(b.Grid.Column,{textAlign:"left",width:4,children:c.jsxs("div",{className:"national-average-div",children:[c.jsx("span",{className:"national-avg-label",children:gt}),c.jsx("span",{className:"national-avg-value",children:k.formatContent(je,{value:qt},T)})]})}),c.jsx(b.Grid.Column,{textAlign:"right",width:L.app!=="csv"&&Te?12:16,children:c.jsx(Jt.default,{filteredBreaks:K(),formattedLegendTitle:k.formatContent(mt,{...Vt},T),selectedMeasure:W,...L})})]}),c.jsx("div",{className:"measure-selector",children:c.jsxs("ul",{children:[Me&&c.jsx("li",{children:c.jsx("span",{className:"label",children:Me})}),p&&p.measures&&p.measures.length>1&&p.measures.map(e=>c.jsxs("li",{onClick:()=>_t(e),children:[c.jsx("input",{checked:S()===e,type:"radio",value:e,readOnly:!0}),c.jsx("label",{children:p.measureLabelMap[e]||e})]},e))]})})]});return c.jsxs("div",{className:"map component wp-data-viz-map",ref:de,children:[De&&(w?Gt():Ut()),!De&&c.jsxs(c.Fragment,{children:[!$e&&c.jsx(Ve,{}),c.jsxs("div",{className:"map wrapper scaling-svg-container "+U,style:{height:we-f.deviceMapHeight[I.default()]+"px"},children:[ee?c.jsx("div",{className:"highlighted-loc-info",style:qe,children:c.jsxs("span",{children:[" ",k.formatContent(pt,{value:ee.value,locationName:Bt()||ee.label,measureName:ee.measure},T)]})}):c.jsx(c.Fragment,{children:" "}),(w||Le)&&!Yt&&c.jsxs("div",{className:"control panel ignore",children:[c.jsx("div",{className:"zoom plus",onClick:Tt,children:c.jsx(b.Icon,{name:"plus",size:"large"})}),c.jsx("div",{className:"zoom minus",onClick:Mt,children:c.jsx(b.Icon,{name:"minus",size:"large"})}),c.jsx(b.Popup,{content:c.jsx(Je.FormattedMessage,{id:"map.reset.tooltip",defaultMessage:"Reset zoom"}),trigger:c.jsx("div",{className:"reset",onClick:He,children:c.jsx(b.Icon,{name:"repeat",size:"large"})})})]})]}),$e&&c.jsx(Ve,{})]})]})}const Qt=Je.injectIntl(Kt);exports.getTranslatedItemLabel=f.getTranslatedItemLabel;exports.default=Qt;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("react/jsx-runtime"),$e=require("react-intl"),Vt=require("d3"),y=require("semantic-ui-react"),b=require("react"),$t=require("./legend.js"),C=require("../common/MapTooltip.js"),R=require("../../utils/deviceType.js"),f=require("./mapHelpers.js"),Jt=require("../../conf/index.js");function Xt(L){const U=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(L){for(const F in L)if(F!=="default"){const X=Object.getOwnPropertyDescriptor(L,F);Object.defineProperty(U,F,X.get?X:{enumerable:!0,get:()=>L[F]})}}return U.default=L,Object.freeze(U)}const p=Xt(Vt),Zt=["mobile","tablet","midTablet"].includes(R.default()),Ve=["mobile","tablet"].includes(R.default());function Yt(L){const{unique:U,editing:F,source:X,center:se,scale:xe,height:Fe,width:Je,topoJSONField:Xe,mappingField:v,transformedData:u,legendBreaks:we,mapLabelField:w,mapLabelShowValue:ne,showOverallValue:Ae,measureSelectorLabel:Me,valueFormat:Te,autoGenerateBreaks:je,showNoDataLabel:Ne,numberOfBreaks:Ze,colorScheme:Ye,symbols:Ce,tooltipTheme:Ke,labelFontSize:Z,labelFontColor:ke,labelFontWeight:Qe,legendFontSize:et,customTooltips:tt,tooltipFontSize:rt,showAdminUnitLabel:ae,mapNoDataColor:Ee,mapBoundaryColor:lt,mapFocusBoundaryColor:st,highlightedLocation:O,tooltipFormat:Ie,showNoDataTooltip:nt,fields:at,mapContainerBgColor:ot,mapPosition:A,mainLayerId:_,enabledLayers:z,pointLabelColor:it,pointLabelFormat:ct,highlightedLocLabelFormat:ut,mapType:Y,defaultPointColor:Se,zoomOnFilter:pt,zoomOnFilterField:D,noDataText:dt,labelsExclusionList:oe,showShadingLayerLabels:Oe,appliedFilters:m,intl:M,legendTitle:ft,nationalAverageLabel:mt,zoomEnabled:ie,showTooltip:ce}=L,[W,gt]=b.useState(()=>u&&u.measures&&u.measures.length>1?u.measures[0]:null),[G,ht]=b.useState(null),[ze,ue]=b.useState(!1),[B,pe]=b.useState(null),T=b.useRef(null),x=b.useRef(null),q=b.useRef(null),k=b.useRef(null),E=b.useRef(null),De=b.useRef(!1),de=b.useRef(null),fe=b.useRef(null),j=b.useRef({}),me=b.useRef(null),K=(u==null?void 0:u.types)||[];function ge(){return Je}function he(){return Fe-100}k.current===null&&(k.current=p.zoom().scaleExtent([1,16]).on("zoom",e=>j.current.zoomed(e)).on("end",e=>j.current.zoomEnd(e))),x.current===null&&(x.current=p.geoMercator().scale(xe).center(se).translate([ge()/2,he()/2]),q.current=p.geoPath().projection(x.current));function g(){return".map.wrapper."+U}function I(){let e=W;return!e&&u&&u.measures&&u.measures.length>1&&(e=u.measures[0]),e}function Pe(){return B&&B.length>0?B.map(t=>{const a=z.find(l=>l.id==t.id);return t.index=a?a.index:0,t}).sort((t,a)=>parseInt(t.index)<parseInt(a.index)?1:parseInt(t.index)>parseInt(a.index)?-1:0):[]}function yt(){const e=Pe();let t;return e&&(t=e.filter(a=>a.id==_||a.id==null)[0]||e[0]),t?t.data:null}function Re(e){return f.extractFeatures(e,Xe)}function Q(){const e=yt(),t=Pe();if(e){let a=[];try{a=Re(e),a.map(s=>{s.properties.layerId=_;const r=t.find(n=>String(n.id)===String(_));return r&&(s.properties.layerMappingField=r.layerMappingField,s.properties.layerDatasource=r.layerDatasource,s.properties.layerApiField=r.layerApiField,s.properties.layerLocale=r.layerLocale,s.properties.displayLayerLabels=r.displayLayerLabels),z.forEach(n=>{String(n.id)==_&&Object.keys(n||{}).forEach(o=>{s.properties[o]=n[o]})}),s}),t&&t.forEach(s=>{if(s.id!=_){let r=Re(s.data);r=r.map(n=>(n.properties.layerId=s.id,n.properties.layerMappingField=s.layerMappingField,n.properties.layerDatasource=s.layerDatasource,n.properties.layerApiField=s.layerApiField,n.properties.layerLocale=s.layerLocale,n.properties.displayLayerLabels=s.displayLayerLabels,n)),a=[...r,...a]}})}catch(s){console.log("error updating features .."+s)}const l=a.filter(s=>s.properties!=null);let i=u.locationsData;return u.measures&&u.measures.length>1&&(i=u.locationsData.filter(s=>s.measure===I())),l.map(s=>{if(i){const r=i.find(n=>{const o=n.label?(""+n.label).toLowerCase():"",d=s.properties[v]?s.properties[v].toLowerCase():"";return o===d});if(r){let n=r.measure;u.measureLabelMap&&r.measure&&u.measureLabelMap[r.measure]&&(n=u.measureLabelMap[r.measure]),s.properties.value=r.value,s.properties.measure=r.measure,s.properties.measureLabel=n,s.properties.children=r.children,s.properties.variables=r.variables,s.properties.hasDataRow=!0,Object.keys(r).forEach(o=>{s.properties[o]=r[o]})}else s.properties.value=null,s.properties.measure=null,s.properties.children=null,s.properties.measureLabel=null,s.properties.hasDataRow=!1}}),l}return[]}function _e(){if(pe([]),ue(!0),z&&z.length>0){const e=[];z.forEach(t=>{e.push(new Promise(a=>{p.json(Jt.Config.REACT_APP_WP_API+"/wp/v2/media/"+t.id).then(l=>{a({id:t.id,url:l.source_url,index:t.index,layerMappingField:t.layerMappingField,layerDatasource:t.datasource,layerApiField:t.apiField,layerLocale:t.locale,displayLayerLabels:t.displayLayerLabels})}).catch(function(){a({id:t.id,url:null,index:t.index,layerMappingField:t.layerMappingField,layerDatasource:t.datasource,layerApiField:t.apiField,layerLocale:t.locale,displayLayerLabels:t.displayLayerLabels})})}))}),Promise.all(e).then(t=>{const a=[];t.forEach(l=>{l.url&&a.push(new Promise(i=>{p.json(l.url).then(s=>{i({id:l.id,data:s,index:l.index,layerMappingField:l.layerMappingField,layerDatasource:l.layerDatasource,layerApiField:l.layerApiField,layerLocale:l.layerLocale,displayLayerLabels:l.displayLayerLabels})})}))}),Promise.all(a).then(l=>{pe(l),ue(!1)})})}else p.json(X).then(e=>{pe([{id:null,url:X,data:e,index:0,layerMappingField:null,layerDatasource:null,layerApiField:null,layerLocale:null,displayLayerLabels:!1}]),ue(!1)})}function bt(e){p.select(g()).select("svg").selectAll("circle").attr("r",e.k>1?6/e.k:6)}function H(e){return f.getLabelBoxWidth(e,w)}function le(){return f.getLabelBoxHeight(ne)}function ye(e){return e.properties.LABEL_LATITUDE&&e.properties.LABEL_LONGITUDE?x.current([e.properties.LABEL_LONGITUDE,e.properties.LABEL_LATITUDE]):q.current.centroid(e)}function vt(e){p.select(g()).selectAll(".map-labels-container").each((t,a,l)=>{const i=p.select(l[a]),s=i.select("div"),r=R.default()==="mobile"||R.default()==="tablet",n=e.k>1?e.k:1,o=r?Z*.6:Z/n,d=r?1:n;s.style("font-size",`${o}px`);const h=ye(t),N=H(t)/d,P=h[0]-N/2,J=r?10:e.k>1?10/e.k:10,qe=h[1]-J;i.attr("x",P).attr("y",qe).attr("width",H(t)/d).attr("height",le()/d)})}function Lt(e){p.select(g()).selectAll(".point-labels-container").each((t,a,l)=>{const i=p.select(l[a]),s=i.select("div"),r=e.k>1?e.k:1,n=Z/r;s.style("font-size",`${n}px`);const o=x.current([t.geometry.coordinates[1],t.geometry.coordinates[0]]),d=(H(t)+20)/r,h=le()/r,N=o[0]-d/2,P=o[1]-h/2;i.attr("x",N).attr("y",P).attr("width",d).attr("height",h)})}function xt(e){T.current.style("visibility","hidden");const t=e.transform;p.select(g()).select("svg").select("g").attr("transform",t),bt(t),vt(t),Lt(t)}function Ft(e){const t=e.transform;E.current={k:t.k,x:t.x,y:t.y},F&&window.parent.postMessage({type:"map",value:JSON.stringify(E.current)},"*")}function wt(){const e=p.select(g()).select("svg");e.select("g").selectAll(".active").attr("class",function(){return p.select(this).attr("class").replace(/background/gi,"")});let a=p.zoomIdentity;A&&!F?a=a.translate(A.x,A.y).scale(A.k):a=a.translate(0,0).scale(1),e.transition().duration(300).call(k.current.transform,a)}function We(){E.current=null,T.current.style("visibility","hidden"),wt()}function At(){p.select(g()).select("svg").transition().call(k.current.scaleBy,1.5)}function Mt(){p.select(g()).select("svg").transition().call(k.current.scaleBy,.6667)}function ee(){if(je){const e=Q();return f.generateBreaks(e,{autoGenerateBreaks:je,numberOfBreaks:Ze,colorScheme:Ye})}else{let e=we;return I()&&(e=we.filter(t=>t.measure===I()).filter(t=>{if(t.filters&&t.filters.length>0&&m&&JSON.stringify(m)!=="{}"){const l=Object.keys(m);return t.filters.filter(s=>{if(l.indexOf(s.field)!=-1){const r=m[s.field],n=s.values;return r.join(",").indexOf(n)!=-1}return!1}).length>0}return!0})),e}}function be(e,t){return f.fillColor(e,t,{mapNoDataColor:Ee,mainLayerId:_,enabledLayers:z,selectedMeasure:W})}function Tt(e){return f.createLabel(e,{mapLabelField:w,mapLabelShowValue:ne,intl:M,valueFormat:Te,showNoDataLabel:Ne,showAdminUnitLabel:ae,noDataText:dt,selectedMeasure:I()},K,C.formatContent)}function Be(e,t){const a=[...e.filter(l=>O!=l.properties[w]),...e.filter(l=>O==l.properties[w])];Nt(a),jt(a),Ct(a,t),Ce.length>0&&kt(Ce,a)}function jt(e){const t=p.select(g()).select("svg").select("g");if(t.selectAll(".map-labels-container").size()>0){console.log("Labels already exist, skipping redraw...");return}t.selectAll(".map-labels").data(e.filter(l=>oe&&oe.length>0?!oe.includes(l.properties[w]):!0)).enter().append("foreignObject").attr("class","map-labels-container").attr("x",l=>{const i=ye(l);if(l.properties[w]){const s=H(l);return i[0]-s/2}return i[0]}).attr("y",l=>ye(l)[1]-10).attr("width",l=>H(l)).attr("height",l=>le()).attr("font-size",()=>`${Z}px`).attr("overflow","visible").attr("opacity",1).style("display",l=>ae===f.SHOW_ALL||ae===f.SHOW_IF_HAS_DATA&&l.properties.hasDataRow||l.properties.displayLayerLabels?"block":"none").attr("pointer-events",Y=="POINTS_MAP"?"none":"all").on("mouseover",V).on("mousemove",te).on("mouseout",$).append("xhtml:div").style("font-size",()=>`${Z}px`).style("color",()=>ke).style("font-weight",()=>Qe).style("background-color",l=>l.properties.hasDataRow&&ne&&(l.properties.value!=null||l.properties.value==null&&Ne)?"#fff6e1":"none").style("border-radius",()=>"4px").style("line-height","95%").style("text-align","center").html(l=>Tt(l))}function Nt(e){const t=ee(),a=p.select(g()).select("svg").select("g"),l=e.filter(i=>i.geometry&&i.geometry&&(i.geometry.type=="Polygon"||i.geometry.type=="MultiPolygon"));l.length>0&&a.selectAll("path").data(l).join("path").attr("d",q.current).attr("fill",i=>be(i,t)).attr("stroke-width",i=>O==i.properties[w]?1.2:.4).attr("stroke",i=>O==i.properties[w]?st:lt).on("click",It)}function Ct(e,t){const a=p.select(g()).select("svg").select("g");let l=[];if(u.pointsData){let r=G;t&&m&&m[D]&&(r=m[D]),l=u.pointsData.filter(n=>n.lat&&n.lng&&n.label==r).map(n=>({properties:{label:n.label,lat:n.lat,lng:n.lng,value:n.value,variables:n.variables}})),a.selectAll(".circle").data(l).enter().append("circle").attr("id",(n,o)=>"circle"+o).attr("cx",n=>x.current([n.properties.lng,n.properties.lat])[0]).attr("cy",n=>x.current([n.properties.lng,n.properties.lat])[1]).attr("r",()=>2).style("stroke-width",.5).style("fill",()=>Se).on("mouseover",(n,o)=>Et(n,o)).on("mouseout",$)}const i=ee();let s=[];Oe==f.SHOW_ALL?s=e.filter(r=>r.geometry&&r.geometry.type=="Point"):Oe==f.SHOW_IF_HAS_DATA&&(s=e.filter(r=>r.geometry&&r.geometry.type=="Point"&&r.properties.hasDataRow)),s.length>0&&a.selectAll(".point-labels").data(s).enter().append("foreignObject").attr("id",(r,n)=>"point-label"+n).attr("class","point-labels-container").attr("x",r=>{const n=H(r)+20;return x.current([r.geometry.coordinates[1],r.geometry.coordinates[0]])[0]-n/2}).attr("y",r=>x.current([r.geometry.coordinates[1],r.geometry.coordinates[0]])[1]-le()/2).attr("width",r=>H(r)+20).attr("height",()=>"1px").attr("overflow","visible").attr("font-size","12px").style("opacity",1).append("xhtml:div").style("color",()=>it).style("font-weight",()=>"bold").style("background-color",r=>be(r,i)).style("padding",()=>"5px 3px 5px 3px").style("border-radius",()=>"4px").style("line-height","100%").style("text-align","center").html(r=>C.formatContent(ct,{value:r.properties.value,locationName:r.properties[w]},M)).on("mouseover",(r,n,o)=>{p.select(g()).select("svg").select("g").select("#point-label"+o).raise(),V(r,n)}).on("mousemove",te).on("mouseout",$)}function kt(e,t){const a=p.select(g()).select("svg").select("g");e.forEach(l=>{if(l.field&&l.image&&l.values){const i=t.filter(r=>{const n=f.LOCATION==l.field?v:"value",o=(r.properties[n]||(r.properties.variables?r.properties.variables[n]:""))+"",h=(l.values+"").split(",");return r.properties.LATITUDE&&r.properties.LONGITUDE&&h.filter(N=>N.trim().toLowerCase()==o.trim().toLowerCase()).length>0}),s=t.filter(r=>{const n=f.LOCATION==l.field?v:"value",o=(r.properties[n]||(r.properties.variables?r.properties.variables[n]:""))+"",h=(l.values+"").split(",");return!r.properties.LATITUDE&&!r.properties.LONGITUDE&&h.filter(N=>N.trim().toLowerCase()==o.trim().toLowerCase()).length>0});a.selectAll("image").data(i).enter().append("image").attr("width",40).attr("height",40).attr("class","map-symbol").attr("xlink:href","/"+l.image).attr("transform",r=>"translate("+x.current([r.properties.LONGITUDE,r.properties.LATITUDE])+")").on("mouseover",V).on("mousemove",te).on("mouseout",$),a.selectAll("image").data(s).enter().append("image").attr("width",40).attr("height",40).attr("class","map-symbol").attr("xlink:href","/"+l.image).attr("x",r=>q.current.centroid(r)[0]-20).attr("y",r=>q.current.centroid(r)[1]).on("mouseover",V).on("mousemove",te).on("mouseout",$)}})}function V(e,t){console.log("Showing tooltip for data:",t);const a=["mobile","tablet","midTablet"].includes(R.default());if(ce&&t.properties.value!==null||ce&&nt){p.select(g()).select("svg").select("g").selectAll(".active").attr("class",o=>o.properties[v]===t.properties[v]?"focus"+(a?" zoom-enabled":""):"active"+(a?" zoom-enabled":""));const s=Ie||`{locationName} %({value},2)
2
+ {label}: %({value},2)`,r=t.properties.variables||{},n={...t.properties,value:t.properties.value,measure:I(),measureLabel:t.properties.measureLabel,locationName:f.getTranslatedLocationName(t,v,K),label:f.getTranslatedLocationName(t,v,K),...r,...f.getFilters(m)};T.current.attr("class",Ke).style("position","absolute").style("visibility","hidden").style("visibility","visible").html(()=>{let o=`<div style='font-size:${rt}px;' class='tooltip-content' >`;if(t.properties.value!=null){const d=s.split(`
3
+ `),h=d[0],N=d.length>1?d[1]:null;let P=1,J;at.length>1&&Y!="POINTS_MAP"?(P=d.length>2?2:1,J=d[P]):J=null,h&&(o+=C.formatContent(h,n,M)),N&&(o.endsWith("<hr>")||(o+="<hr>"),o+=C.formatContent(N,n,M)),J&&t.properties.children&&t.properties.children.forEach(S=>{const Le={value:S.value,label:S.label,measure:I(),measureLabel:t.properties.measureLabel,...r,...S.variables,...f.getFilters(m)};o.endsWith("<hr>")||(o+="<hr>"),o+=C.formatContent(J,Le,M)}),d.length>P+1&&(o.endsWith("<hr>")||(o+="<hr>"),d.forEach((S,Le)=>{Le>P&&(o.endsWith("<hr>")||(o+="<hr>"),o+=C.formatContent(S,n,M))})),tt.filter(S=>S.location===t.properties[v]).forEach(S=>{o.endsWith("<hr>")||(o+="<hr>"),o+=S.tooltip})}else{const d=Ie||`{locationName} %({value},2)
4
+ {label}: %({value},2)`,h={value:null,measure:I(),measureLabel:t.properties.measureLabel,locationName:f.getTranslatedLocationName(t,v,K),...r};o+=C.formatContent(d,h,M),o+="</div>"}return o})}}function He(e){const a=T.current.node(),l=a?a.offsetWidth:0,i=window.scrollX+document.documentElement.clientWidth;let s=e.pageX;l&&s+l>i&&(s=e.pageX-l,s<window.scrollX&&(s=window.scrollX)),T.current.style("top",e.pageY+"px").style("left",s+"px").style("margin-left","8px")}function te(e){He(e)}function $(){ce&&(p.select(g()).select("svg").select("g").selectAll(".focus").attr("class","active"),T.current.style("visibility","hidden"))}function Et(e,t,a){V(e,t),T.current.style("visibility","visible"),He(e);const l=p.select(g()).select("svg").select("g");l.selectAll("circle").style("fill",Se).style("stroke","none"),l.select("#circle"+a).raise().style("fill","#fff")}function It(e,t){G!==t.properties[v]&&t.properties.value!==null&&ht(t.properties[v])}function St(e){const t=e&&e.appliedFilters||{},a=m||{};return t[D]!=a[D]}function Ot(e,t){let a=null;if(pt&&D){let l=G;t&&m&&m[D]&&(l=m[D]);const i=e.filter(s=>s.properties!=null&&s.properties[v]==l)[0];i&&i.properties!=null&&i.properties.value&&(a=i)}return a}function zt(){return f.classColor(ie)}function Dt(e,t){let a=ie;a||(a=["mobile","tablet"].includes(R.default()));const l=ee(),i=p.select(g());let s=i.select("svg");const r=ge(),n=he();s.empty()?s=i.append("svg"):s.selectAll("*").remove(),s.attr("style",`background-color:${ot};`).attr("viewBox",`0 0 ${r} ${n}`).attr("preserveAspectRatio","xMidYMid meet"),s.append("g").selectAll("path").data(e).enter().append("path").attr("fill",d=>be(d,l)).attr("d",p.geoPath().projection(x.current)).attr("class",()=>zt()).on("mouseover",Y!=="POINTS_MAP"?V:null).on("mousemove",Y!=="POINTS_MAP"?te:null).on("mouseout",Y!=="POINTS_MAP"?$:null),E.current&&s.transition().duration(300).call(k.current.transform,p.zoomIdentity.translate(E.current.x,E.current.y).scale(E.current.k)),!E.current&&A&&A.x&&A.y&&A.k&&s.transition().duration(300).call(k.current.transform,p.zoomIdentity.translate(A.x,A.y).scale(A.k)),a||F?s.call(k.current):s.on("dblclick.zoom",null);const o=Ot(e,t);if(o){const d=q.current.bounds(o),h=[(d[0][0]+d[1][0])/2,(d[0][1]+d[1][1])/2];s.transition().duration(750).call(k.current.transform,p.zoomIdentity.translate(r/2,n/2).scale(12).translate(-h[0],-h[1]))}}function Pt(){return u.nationalData.value}function Rt(e){W!=e&&gt(e)}function _t(){let e=u.locationsData;return u.measures&&u.measures.length>1&&(e=u.locationsData.filter(t=>t.measure===I())),e.find(t=>t.label===O)}function Wt(){if(!O)return null;const t=Q().find(a=>a.properties[w]===O);if(t&&t.properties.displayLayerLabels&&t.properties.layerLocale){const a=t.properties.layerMappingField||w,l=t.properties[a];return f.getTranslatedItemLabel(K,l,t.properties.layerLocale)}return O}function Bt(e){return f.getHighlightedLocationColor(e,ee(),Ee)}function Ht(){return c.jsx(y.Container,{className:"loading",children:c.jsx(y.Segment,{basic:!0,padded:!0,textAlign:"center",style:{margin:"30px"},children:c.jsx(y.Dimmer,{active:!0,inverted:!0,children:c.jsx(y.Loader,{size:"medium"})})})})}function Ut(){return c.jsxs(y.Message,{icon:!0,warning:!0,children:[c.jsx(y.Icon,{name:"map outline"}),c.jsxs(y.Message.Content,{children:[c.jsx(y.Message.Header,{children:"No map selected"}),"Pick one from the list in the ",c.jsx("strong",{children:"Map Layers"})," section."]})]})}j.current.zoomed=xt,j.current.zoomEnd=Ft,j.current.getFeatures=Q,j.current.updateFeatures=Be,j.current.getMapId=g,me.current||(me.current=()=>{let e=null;clearTimeout(e),e=setTimeout(()=>{p.select(j.current.getMapId()).selectAll(".map-labels-container").size()>0||j.current.updateFeatures(j.current.getFeatures(),!1)},300)}),b.useEffect(()=>{const e=me.current;return window.addEventListener("scroll",e,{passive:!0}),window.addEventListener("touchmove",e,{passive:!0}),_e(),T.current=p.select("body").append("div").style("position","absolute").style("visibility","hidden").style("pointer-events","none"),()=>{var t;window.removeEventListener("scroll",e),window.removeEventListener("touchmove",e),(t=T.current)==null||t.remove()}},[]),b.useEffect(()=>{if(!De.current){De.current=!0,de.current=L,fe.current={selectedMeasure:W,layers:B,selectedPolygon:G};return}const e=de.current,t=fe.current;if(D){const i=[],s=[],r=e.appliedFilters;r&&Object.keys(r).forEach(n=>{r[n]!=null&&r[n]instanceof Array&&i.push(...r[n].filter(o=>o!=Number.MIN_SAFE_INTEGER))}),m&&Object.keys(m).forEach(n=>{m[n]!=null&&m[n]instanceof Array&&s.push(...m[n].filter(o=>o!=Number.MIN_SAFE_INTEGER))}),i.length>0&&s.length==0&&We()}T.current.style("visibility","hidden"),e.enabledLayers.length!=z.length&&_e();const a=Q();e.center!==se&&(E.current=null,x.current.scale(xe).center(se).translate([ge()/2,he()/2]));const l=St(e);Dt(a,l),B&&u&&(u!=e.transformedData||B!=t.layers||W!=t.selectedMeasure||G!=t.selectedPolygon||e.mainLayerId!==_||JSON.stringify(e.enabledLayers)!=JSON.stringify(z))&&Be(Q(),l),de.current=L,fe.current={selectedMeasure:W,layers:B,selectedPolygon:G}});let ve=ie;ve||(ve=!!["mobile","tablet","midTablet"].includes(R.default()));const Gt=Pt(),qt=f.getFilters(m),re=_t(),Ue={backgroundColor:Bt(re),color:ke,fontSize:et+"px"};F&&(Ue.marginTop="25px");const Ge=()=>c.jsxs(y.Container,{fluid:!0,className:"footnote ",children:[c.jsxs(y.Grid,{columns:2,children:[L.app!=="csv"&&Ae&&c.jsx(y.Grid.Column,{textAlign:"left",width:4,children:c.jsxs("div",{className:"national-average-div",children:[c.jsx("span",{className:"national-avg-label",children:mt}),c.jsx("span",{className:"national-avg-value",children:C.formatContent(Te,{value:Gt},M)})]})}),c.jsx(y.Grid.Column,{textAlign:"right",width:L.app!=="csv"&&Ae?12:16,children:c.jsx($t.default,{filteredBreaks:ee(),formattedLegendTitle:C.formatContent(ft,{...qt},M),selectedMeasure:W,...L})})]}),c.jsx("div",{className:"measure-selector",children:c.jsxs("ul",{children:[Me&&c.jsx("li",{children:c.jsx("span",{className:"label",children:Me})}),u&&u.measures&&u.measures.length>1&&u.measures.map(e=>c.jsxs("li",{onClick:()=>Rt(e),children:[c.jsx("input",{checked:I()===e,type:"radio",value:e,readOnly:!0}),c.jsx("label",{children:u.measureLabelMap[e]||e})]},e))]})})]});return c.jsxs("div",{className:"map component wp-data-viz-map",children:[ze&&(F?Ut():Ht()),!ze&&c.jsxs(c.Fragment,{children:[!Ve&&c.jsx(Ge,{}),c.jsxs("div",{className:"map wrapper scaling-svg-container "+U,style:{height:Fe-f.deviceMapHeight[R.default()]+"px"},children:[re?c.jsx("div",{className:"highlighted-loc-info",style:Ue,children:c.jsxs("span",{children:[" ",C.formatContent(ut,{value:re.value,locationName:Wt()||re.label,measureName:re.measure},M)]})}):c.jsx(c.Fragment,{children:" "}),(F||ve)&&!Zt&&c.jsxs("div",{className:"control panel ignore",children:[c.jsx("div",{className:"zoom plus",onClick:At,children:c.jsx(y.Icon,{name:"plus",size:"large"})}),c.jsx("div",{className:"zoom minus",onClick:Mt,children:c.jsx(y.Icon,{name:"minus",size:"large"})}),c.jsx(y.Popup,{content:c.jsx($e.FormattedMessage,{id:"map.reset.tooltip",defaultMessage:"Reset zoom"}),trigger:c.jsx("div",{className:"reset",onClick:We,children:c.jsx(y.Icon,{name:"repeat",size:"large"})})})]})]}),Ve&&c.jsx(Ge,{})]})]})}const Kt=$e.injectIntl(Yt);exports.getTranslatedItemLabel=f.getTranslatedItemLabel;exports.default=Kt;