From 151eae28a3f8ed9882c936829d7d3ffea542fc75 Mon Sep 17 00:00:00 2001 From: ThatcherK Date: Wed, 27 Mar 2024 17:42:20 +0300 Subject: [PATCH] Refactor score card component --- assets/core.js | 2 +- src/core/components/ScoreCardTable.js | 25 +++++++------------------ 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/assets/core.js b/assets/core.js index c7c88f1b..bb6d4c10 100644 --- a/assets/core.js +++ b/assets/core.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{103:function(e,t,n){},104:function(e,t,n){"use strict";n.r(t);var a,r=n(1),o=n(9),i=n(107),c=n(11),s=n.n(c),l=n(15),u=n(0),d=n.n(u),f=n(2),p=n.n(f),b=n(4),m=n(19),g=n(10),h=n.n(g),v=m.a.div(a||(a=Object(b.a)(["\n color: red;\n font-size: 11px;\n position: relative;\n padding: 5px 5px 5px 0px;\n display: block;\n"]))),y=function(e){var t=Object(u.useState)(""),n=t[0],a=t[1],r=function(t){t?"maxSelectedOptions"===t.type&&a(e.selectErrorMessage):a("")};return d.a.createElement("div",{className:h()(e.className)},d.a.Children.map(e.children,(function(e){return d.a.isValidElement(e)?d.a.cloneElement(e,{onError:r}):e})),n?d.a.createElement(v,{className:"data-selector--wrapper"},n):null)};y.propTypes={selectErrorMessage:p.a.string,children:p.a.node,className:p.a.string};var O=y,w=n(25),j=n(26),x=n(47),C={control:function(e){return Object.assign({},e,{borderColor:"#ddd",borderRadius:"none",boxShadow:"none",":hover":{borderColor:"#357ba5"},":active":{borderColor:"#357ba5"}})},menu:function(e){return Object.assign({},e,{color:"#443e42",backgroundColor:"#FFFFFF"})},option:function(e,t){return Object.assign({},e,{fontSize:"14px",":hover":{backgroundColor:"#4e9ac6",color:"#ffffff"},backgroundColor:t.isSelected?"#357ba5":"transparent"})},singleValue:function(e){return Object.assign({},e,{fontSize:"14px"})},multiValue:function(e){return Object.assign({},e,{fontSize:"14px"})},multiValueLabel:function(e,t){return t.data.isCloseable?e:Object.assign({},e,{paddingRight:6})},multiValueRemove:function(e,t){return t.data.isCloseable?e:Object.assign({},e,{display:"none"})},input:function(e){return Object.assign({},e,{fontSize:"14px"})},indicatorsContainer:function(e){return Object.assign({},e,{pointerEvents:"none"})}},S=function(e){var t=e.label,n=e.onError,a=e.maxSelectedOptions,o=e.defaultValue,i=e.singleSelectOptions,c=e.className,s=Object(j.a)(e,["label","onError","maxSelectedOptions","defaultValue","singleSelectOptions","className"]),l=Object(u.useState)(o),d=l[0],f=l[1];Object(u.useEffect)((function(){s.onChange&&s.onChange(d),n&&n()}),[d]),Object(u.useEffect)((function(){s.value&&f(s.value)}),[s.value]);return Object(r.c)("div",{className:h()("labelled-data-selector--wrapper",c)},Object(r.c)("label",null,Object(r.c)("b",null,t)),Object(r.c)(x.a,Object(w.a)({},s,{value:d,onChange:function(e){if(s.isMulti)if(e.length){var t=e.findIndex((function(e){return i.find((function(t){return t.value===e.value}))}));s.isMulti&&e.length>1&&-1!==t?f(0===t?e.slice(1):[e[t]]):a&&e.length>a?n&&n({type:"maxSelectedOptions",message:"Only up to "+a+" selections allowed"}):f(e)}else f(o);else f(e)},css:{marginRight:"25px"},styles:C,isClearable:"undefined"!==s.isClearable?s.isClearable:d.length>1})))};S.propTypes={label:p.a.string,options:p.a.array,maxSelectedOptions:p.a.number,onChange:p.a.func,onError:p.a.func,defaultValue:p.a.array,singleSelectOptions:p.a.array,isMulti:p.a.bool,isClearable:p.a.bool,className:p.a.string,value:p.a.array},S.defaultProps={maxSelectedOptions:2,singleSelectOptions:[]};var E=S,N=n(106),k=n(39);function L(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n=t[M]?"#3b8c62":Number(e)>=.75*t[M]&&Number(e)<=.99*t[M]?"#f7a838":Number(e)<.74*t[M]?"#cd2b2a":"":"#cdcfd1"}),J=function(e){return Object(r.c)(E,{options:e.options,isClearable:!1,defaultValue:[e.options[0]],onChange:function(t){return e.onChange(t.value)},css:{minWidth:"200px",marginLeft:"2em"}})};J.propTypes={options:p.a.array,onChange:p.a.func};var K=J;var X={rainbow:["#e84439","#eb642b","#f49b21","#109e68","#0089cc","#893f90","#c2135b","#f8c1b2","#f6bb9d","#fccc8e","#92cba9","#88bae5","#c189bb","#e4819b"],default:["#6c120a","#a21e25","#cd2b2a","#dc372d","#ec6250","#f6b0a0","#fbd7cb","#fce3dc"],sunflower:["#7d4712","#ba6b15","#df8000","#f7a838","#fac47e","#fedcab","#fee7c1","#feedd4"],marigold:["#7a2e05","#ac4622","#cb5730","#ee7644","#f4a57c","#facbad","#fcdbbf","#fde5d4"],rose:["#65093d","#8d0e56","#9f1459","#d12568","#e05c86","#f3a5b6","#f6b8c1","#f9cdd0"],lavendar:["#42184c","#632572","#732c85","#994d98","#af73ae","#cb98c4","#deb5d6","#ebcfe5"],bluebell:["#0c457b","#0071b1","#0089cc","#5da3d9","#77adde","#88bae5","#bcd4f0","#d3e0f4"],leaf:["#08492f","#005b3e","#00694a","#3b8c62","#74bf93","#a2d1b0","#b1d8bb","#c5e1cb"],orange:["#973915","#d85b31","#eb642b","#f18e5e","#f4a57c","#f6bb9d"],cerulean:["#1a3e53","#2b6587","#357ba5","#78b1d4","#ecf4f9","#0c457b","#0071b1"]},$={legend:{top:10,textStyle:{fontFamily:"Geomanist Regular,sans-serif"}},tooltip:{trigger:"axis",textStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"},axisPointer:{type:"line",axis:"x"}},toolbox:{showTitle:!1,feature:{saveAsImage:{show:!0,title:"Save as image",pixelRatio:2}},right:20,tooltip:{show:!0,textStyle:{fontFamily:"Geomanist Regular,sans-serif",color:"#32313f",formatter:function(e){return"
"+e.title+"
"}}}},color:X.rainbow,xAxis:{axisLine:{show:!0,lineStyle:{color:"#ddd"}},axisLabel:{fontFamily:"Geomanist Regular,sans-serif",fontSize:13,color:"#32313f"},splitLine:{show:!1},nameTextStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"}},yAxis:{axisLabel:{fontFamily:"Geomanist Regular,sans-serif",fontSize:13,color:"#32313f"},axisLine:{show:!1,lineStyle:{color:"#ddd"}},axisTick:{show:!1},splitLine:{show:!1},nameTextStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"}},axisPointer:{type:"none"},grid:{top:10},textStyle:{fontFamily:"Geomanist Regular,sans-serif"}},Q=n(24),ee=n.n(Q),te=function(){return d.a.createElement("div",{className:"no-data"},"No Data")},ne=function(e,t,n){var a=e.slice();return t.forEach((function(t,r){void 0===a[r]?a[r]=n.cloneUnlessOtherwiseSpecified(t,n):n.isMergeableObject(t)?a[r]=ee()(e[r],t,n):-1===e.indexOf(t)&&a.push(t)})),a},ae=function(e,t){if(void 0===t&&(t={}),Array.isArray(t.yearRange)&&t.yearRange.length){var n=A(t.yearRange);return t.excludeYears?n.filter((function(e){return!t.excludeYears.includes(e)})).map((function(e){return""+e})):n.map((function(e){return""+e}))}var a=t.mapping&&t.mapping.year;if(!a)return[];var r=Array.from(new Set(e.map((function(e){return Number(e[a])})))).sort((function(e,t){return e-t}));return t.excludeYears?r.filter((function(e){return!t.excludeYears.includes(e)})).map((function(e){return""+e})):r.map((function(e){return e.toString()}))},re=function(e,t,n){var a=e.reduce((function(e,a){return a[n.mapping.series]===t?e+Number(Z(a[n.mapping.value])):e}),0);return n.aggregator&&"sum"!==n.aggregator&&"avg"===n.aggregator?a/e.filter((function(e){return e[n.mapping.series]===t})):a},oe=function(e,t,n){var a,r=e.series,o=e.mapping,i=!(a=e.type)||["bar-stacked","column-stacked"].includes(a)?"bar":"area"===a?"line":a;if("pie"!==i){var c=!e.type||["area","bar-stacked","column-stacked"].includes(e.type)?"district-stack":void 0,s=r.map((function(a,l){return{name:a,type:i,stack:c,areaStyle:"area"===e.type?{}:void 0,smooth:!0,emphasis:{focus:"series",label:{show:!0,formatter:function(e){return I(e.value)}}},symbol:"circle",label:{show:c&&l===r.length-1,fontFamily:"Geomanist Regular,sans-serif",position:"top",formatter:function(e){for(var t=0,n=0;n0})))))};ue.propTypes={rows:p.a.arrayOf(p.a.array)};var de=ue,fe=n(48),pe=function(e,t,n){void 0===n&&(n=[]);var a=e.url,r=e.yearRange,o=e.dataID,i=Object(fe.a)(a||e.className||o,Object(l.a)(s.a.mark((function n(){var r;return s.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!e.data||!Array.isArray(e.data)){n.next=2;break}return n.abrupt("return",e.data);case 2:if(!(a||o&&t)){n.next=5;break}return r=a?F(a):T(o,t),n.abrupt("return",r.then((function(t){return e.filters?G(t,e.filters):t})));case 5:return n.abrupt("return",[]);case 6:case"end":return n.stop()}}),n)})))),c=i.data,d=i.error,f=Object(u.useState)(n),p=f[0],b=f[1];if(d)return{data:[],years:[]};var m=Object(u.useMemo)((function(){return c?(r&&r.length,ae(c,e)):[]}),[c]);return{data:Object(u.useMemo)((function(){return c&&c.length?p.length?p.reduce((function(e,t){return"all"===t.value?e:B(e,t.dataProperty,t.value)}),c):c:[]}),[c,p]),years:m,filters:p,setFilters:b,updateFilter:function(e,t){p&&p.length&&b(p.map((function(n){return n.dataProperty===e?Object.assign({},n,{value:t}):n})))}}},be=function(e){return e.show?d.a.createElement("div",{className:h()("button-group",e.className)},d.a.createElement("button",{type:"button",className:h()("button button-sm button-outline",{active:"chart"===e.activeButton}),onClick:e.onClickChart},"Chart"),d.a.createElement("button",{type:"button",className:h()("button button-sm button-outline",{active:"table"===e.activeButton}),onClick:e.onClickTable},"Table")):null};be.propTypes={show:p.a.bool,onClickChart:p.a.func,onClickTable:p.a.func,activeButton:p.a.string,className:p.a.string},be.defaultProps={activeButton:"chart"};var me=be,ge=function(e){var t=pe(e.config,e.baseAPIUrl),n=t.data,a=t.years,r=t.setFilters,o=t.updateFilter,i=Object(u.useState)("chart"),c=i[0],s=i[1],l=Object(u.useState)(e.config.type||"bar"),f=l[0],p=l[1];Object(u.useEffect)((function(){var t,n,a,o,i;r((t=e.config,n=e.subCounty,a=t.mapping,o=t.selectors,i=[],a.subCounty&&n&&i.push({dataProperty:a.subCounty,value:"all"}),o&&o.forEach((function(e){i.push({dataProperty:e.dataProperty,value:e.defaultValue?e.defaultValue.value:"all"})})),i))}),[]),Object(u.useEffect)((function(){var t=e.subCounty,n=e.config;t&&n.mapping.subCounty&&o(n.mapping.subCounty,e.subCounty)}),[e.subCounty]);return d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:h()("spotlight-banner data-selector--wrapper dicharts--actions",{"align-left":!e.config.selectors})},e.config.selectors?d.a.createElement(_,{configs:e.config.selectors,onChange:function(e,t){o(e.dataProperty,t.value)}}):null,d.a.createElement(me,{show:!!e.config.table,onClickChart:function(){return s("chart")},onClickTable:function(){return s("table")},activeButton:c}),"chart"===c&&e.config.typeOptions?d.a.createElement(K,{options:e.config.typeOptions,onChange:p}):null),"chart"===c?d.a.createElement(ce,Object(w.a)({className:h()({"dicharts--padding-top":!e.config.selectors})},e,{data:n,years:a,height:e.config.height,type:f})):null,"table"===c&&e.config.table?d.a.createElement(de,{rows:Y(e.config.table,n,e.subCounty)}):null)};ge.propTypes={config:p.a.object,subCounty:p.a.string,baseAPIUrl:p.a.string},ge.defaultProps={subCounty:"all"};var he,ve,ye=ge,Oe=function(e,t){(function(e){return e.className?e.series&&Array.isArray(e.series)?e.mapping?e.mapping.series?e.mapping.year?e.mapping.value?(e.mapping.subCounty||window.console.warn("Potentially invalid chart config: mapping.subCounty may be required!"),!0):(window.console.error("Invalid chart config: mapping.value is required!"),!1):(window.console.error("Invalid chart config: mapping.year is required!"),!1):(window.console.error("Invalid chart config: mapping.series is required!"),!1):(window.console.error("Invalid chart config: mapping is required!"),!1):(window.console.error(e.series?"Invalid chart config: Invalid series config - expected an array!":"Invalid chart config: Series is required!"),!1):(window.console.error("Invalid chart config: className is required!"),!1)})(e)&&window.DICharts.handler.addChart({className:e.className,echarts:{onAdd:function(n){Array.prototype.forEach.call(n,(function(n){n.classList.add("dicharts--dimensions"),n.parentElement.classList.add("auto-height");var a=new window.DICharts.Chart(n.parentElement);a.showLoading();var r="all",i=Object(o.createRoot)(n);i.render(d.a.createElement(ye,{config:e,subCounty:r,baseAPIUrl:t})),window.DIState&&window.DIState.addListener((function(){var n=window.DIState.getState.subCounty;n&&n!==r&&(r=n,i.render(d.a.createElement(ye,{config:e,subCounty:r,baseAPIUrl:t})))})),a.hideLoading()}))}}})},we=function(){if(window.DIState){var e=[];window.DIState.addListener((function(){var t=window.DIState.getState,n=t.charts,a=t.baseAPIUrl;n&&e.length!==n.length&&(e=n).forEach((function(e){return Oe(e,a)}))}))}else window.console.log("State is not defined")},je=n(14),xe=n.n(je),Ce=function(e){var t=e.map,n=e.show,a=e.onAdd,r=Object(j.a)(e,["map","show","onAdd"]);return t&&(t.getLayer(r.id)&&t.removeLayer(r.id),n&&(t.addLayer(r),a&&a(t,r.id))),null};Ce.defaultProps={show:!0},Ce.propTypes={map:p.a.object,show:p.a.bool,onAdd:p.a.func};var Se={width:"100%",position:"absolute",top:0,bottom:0,background:"#F3F3F3"},Ee=function(e){xe.a.accessToken=e.accessToken;var t=Object(u.useRef)(null),n=Object(u.useState)(void 0),a=n[0],o=n[1];Object(u.useEffect)((function(){if(t&&t.current){var n=new xe.a.Map(Object.assign({container:t.current},e.options));e.showNavigationControls&&n.addControl(new xe.a.NavigationControl),n.on("load",(function(t){o(n),e.onLoad&&e.onLoad(n,t)}))}}),[]);return Object(r.c)("div",{ref:t,style:Object.assign({},Se,e.style),css:Object(r.b)(he||(he=Object(b.a)(["\n background: ",";\n font-family: geomanist, sans-serif;\n "])),e.background)},u.Children.map(e.children,(function(e){return Object(u.isValidElement)(e)&&e.type===Ce?Object(u.cloneElement)(e,{map:a}):null})),Object(r.c)(r.a,{styles:Object(r.b)(ve||(ve=Object(b.a)(["\n div .mapboxgl-canary {\n background: red;\n }\n\n div .mapboxgl-popup {\n z-index: 400;\n max-width: 100% !important;\n }\n\n div .mapboxgl-popup-content {\n background-color: rgba(0, 0, 0, 0.9) !important;\n box-shadow: none !important;\n color: #ffffff !important;\n font-family: geomanist, sans-serif;\n -webkit-tap-highlight-color: black;\n opacity: 0.8;\n padding: 20px;\n }\n\n div .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n border-top-color: rgba(0, 0, 0, 0.9);\n opacity: 0.8;\n }\n\n div .mapboxgl-popup-content .mapBox-popup p {\n margin-bottom: 0;\n }\n\n div .mapboxgl-popup-content .mapboxgl-popup-close-button {\n color: #ffffff;\n font-size: 1.8rem;\n }\n "])))}))};Ee.defaultProps={style:Se,options:{minZoom:6,zoom:6.1},showNavigationControls:!0,background:"inherit"},Ee.propTypes={accessToken:p.a.string,style:p.a.object,background:p.a.string,showNavigationControls:p.a.bool,onLoad:p.a.func,options:p.a.object,children:p.a.node};var Ne=n(29),ke=n(6),Le=function(e,t){return t?t(e):e},Pe=function(e,t){return t&&"number"==typeof t.value?(e.dataPrefix||"")+''+(n=t.value,void 0===a&&(a=1),(n>=1e12?(n/1e12).toFixed(a)+"tn":n>=1e9?(n/1e9).toFixed(a)+"bn":n>=1e6?(n/1e6).toFixed(a)+"m":n>=1e3?(n/1e3).toFixed(a)+"k":n>=0?""+n.toFixed(a):n<=-1e12?(n/1e12).toFixed(a)+"tn":n<=-1e9?(n/1e9).toFixed(a)+"bn":n<=-1e6?(n/1e6).toFixed(a)+"m":n<=1e3?(n/1e3).toFixed(a)+"k":""+n.toFixed(a))+"")+(e.dataSuffix||""):"No Data";var n,a},Ie=function(e){var t=e.geometry&&e.geometry.coordinates;return t?new je.LngLat(t[0],t[1]):null},Ae=function(e,t,n){var a=e.querySourceFeatures("composite",{sourceLayer:n.sourceLayer,filter:["in",n.nameProperty,Le(t,n.formatter)]});return a&&a.length?function(e){if(Array.isArray(e)){var t=e.map((function(e){return Object(Ne.a)(e.geometry).geometry.coordinates}));return t.push(t[0]),Ie(Object(Ne.a)(Object(ke.f)([t])))}return Ie(Object(Ne.a)(e))}(a):null},Te=function(e,t,n,a,r){return t.setLngLat(n).setHTML('\n
\n
\n '+a.toLowerCase()+"\n
\n "+(r?''+r+"":"")+"\n
\n ").addTo(e)},Fe=function(e,t,n){return t.find((function(t){var a=n?n(t.name):t.name;return e.toLowerCase()===(""+a).toLowerCase()}))},De=Object(u.createContext)(),_e=Object(u.createContext)(),Re=n(43),ze=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={hasError:!1},n}Object(Re.a)(t,e),t.getDerivedStateFromError=function(){return{hasError:!0}};var n=t.prototype;return n.componentDidCatch=function(e,t){window.console.log("Error Boundary:",e,t)},n.render=function(){return this.state.hasError?d.a.createElement("div",null,"Something went wrong! Please contact your administrator"):this.props.children},t}(u.Component);ze.propTypes={children:p.a.any};var Ue,qe=ze,Me=function(e,t){return e.find((function(e){return e.id===t}))},Ve=function(e){return e.map((function(e){return{value:e.id,label:e.name}}))},Be=function(e,t){var n=Me(e,t);return n?n.indicators.map((function(e){return{value:e.id,label:e.name}})):[]},Ge=function(e,t,n){if(t&&n){var a=Me(e,t);if(!(a&&a.indicators&&a.indicators.length))return[];var r=a.indicators.find((function(e){return e.id===n}));if(r&&r.yearRange)return A(r.yearRange).filter((function(e){return r.excludeYears?!r.excludeYears.includes(e):e})).reverse().map((function(e){return{value:e,label:e}}))}return[]},Ze=function(e){var t=Object(u.useContext)(_e),n=t.filterOptions,a=t.updateFilterOptions;return Object(u.useEffect)((function(){!n.topic&&e.length&&a({topic:e[0].id})}),[]),Object(u.useEffect)((function(){if(n.topic){var t=Me(e,n.topic),r=t&&t.indicators&&t.indicators.length?t.indicators[0]:null;r&&a({indicator:r.id})}}),[n.topic]),Object(u.useEffect)((function(){if(n.indicator){var t=Ge(e,n.topic,n.indicator);t.length&&!t.find((function(e){return e.value===n.year}))&&a({year:t[0].value})}}),[n.indicator]),{topicOptions:Ve(e||[]),indicatorOptions:Be(e,n.topic),yearOptions:Ge(e,n.topic,n.indicator)}},Ye=function(){var e=Object(u.useContext)(_e),t=e.filters,n=e.topics,a=e.filterOptions,o=e.updateFilterOptions,i=Ze(n),c=i.topicOptions,s=i.indicatorOptions,l=i.yearOptions,d=a.year,f=a.indicator,p=function(e,t,n){var a;if(Array.isArray(e)&&e.length)e[0].value!==n&&o(((a={})[t]=e[0].value,a));else if(e&&!Array.isArray(e)){var r;if(e.value!==n)o(((r={})[t]=e&&e.value,r))}};return Object(r.c)("form",{className:"form"},Object(r.c)("div",{className:h()("form-field","form-field--inline-block"),css:Object(r.b)(Ue||(Ue=Object(b.a)(["\n z-index: auto;\n margin-left: 5px;\n "])))},Object(r.c)(E,{label:t.topicLabel,options:c,defaultValue:[c[0]],classNamePrefix:"topic-selector",isClearable:!1,css:{minWidth:"100%"},onChange:function(e){return o({topic:e&&e.value})}}),s&&s.length?Object(r.c)(E,{label:t.indicatorLabel,options:s,value:[f&&s.find((function(e){return e.value===f}))||s[0]],classNamePrefix:"indicator-selector",isClearable:!1,css:{minWidth:"100%",marginTop:"1em"},onChange:function(e){return p(e,"indicator",f)}}):null,l&&l.length?Object(r.c)(E,{label:t.yearLabel,options:l,value:[d&&l.find((function(e){return e.value===d}))||l[0]],classNamePrefix:"year-selector",isClearable:!1,css:{minWidth:"100%",marginTop:"1em"},onChange:function(e){return p(e,"year",d)}}):null))},We=function(e){var t=e.children;return d.a.createElement("div",{className:"spotlight-legend","data-testid":"spotlight-legend"},u.Children.map(t,(function(e){return e})))};We.propTypes={children:p.a.any};var He=We,Je=n(44),Ke=function(e){var t=e.children,n=e.className,a=e.bgColor,r=e.textColor,o=Je(a);return d.a.createElement("span",{className:n,"data-testid":"spotlight-legend-item"},t,d.a.createElement("style",null,"\n span."+n+" {\n background-color: "+(a||"#D1CBCF")+" !important;\n color: "+(r||o.isLight()?"#000":"#FFF")+";\n }\n "))};Ke.propTypes={children:p.a.any,className:p.a.string,bgColor:p.a.string,textColor:p.a.string};var Xe=Ke,$e=function(){var e,t,n=Object(u.useContext)(_e).activeIndicator;return d.a.createElement("div",{className:"spotlight__content"},d.a.createElement(qe,null,d.a.createElement(Ye,null)),n?d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:"spotlight__subheading"},n.name),n.description?d.a.createElement("p",{className:"spotlight__excerpt"},n.description):null,d.a.createElement(He,null,(e=n.range,t=n.colours,e&&t?e.map((function(n,a){return d.a.createElement(Xe,{className:"item-"+n,bgColor:t[a],key:n},0===a?"< "+e[0]:e[a-1]+"-"+n)})).concat([d.a.createElement(Xe,{className:"item-last",bgColor:t[t.length-1],key:e.length},"> "+e[e.length-1])]):null),d.a.createElement(Xe,null,"no data / not applicable"))):null)},Qe=n(45),et={type:"shapefile",style:"mapbox://styles/edwinmp/ck42rrx240t8p1cqpkhgy2g0m/draft",sourceLayer:"Uganda_Sub-Counties_2019-8w0zb5",layerName:"uganda-Sub-counties-2019-8w0zb5",center:[32.655221,1.344666],zoom:8,minZoom:8,maxZoom:9,districtNameProperty:"District",nameProperty:"Subcounty",codeProperty:"scode2019",formatter:function(e,t){return void 0===t&&(t="map"),e.toUpperCase()}},tt=function(e,t,n,a){n&&(e.setFilter(t,["==",a.nameProperty,Le(n.name,a.formatter)]),setTimeout((function(){if(n.coordinates)e.flyTo({center:n.coordinates,zoom:8.5});else{var t=a.formatter?a.formatter(n.name):n.name;!function e(t,n,a,r){return void 0===r&&(r=!0),new Promise((function(o,i){var c=Ae(t,n,a);c?(t.flyTo({center:c,zoom:16}),o(c)):r?(t.flyTo({center:a.center,zoom:a.zoom||6.1}),setTimeout((function(){e(t,n,a,!1).then((function(e){return o(e)})).catch(i)}),500)):i(new Error("Location "+n+" not found!"))}))}(e,t,a)}}),500))},nt=function(e,t,n){if(!t)return[];if(!t.mapping)throw new Error("Mapping is required for indicator "+t.id);var a=t.mapping,r=a.location,o=a.value,i=a.year,c=G(e,t.filters);return c=n?c.filter((function(e){return""+e[i]==""+n})).map((function(e){return{name:e[r],value:Number(e[o])}})):c.map((function(e){return{name:e[r],value:Number(e[o])}})),t.aggregator?function(e,t){var n=Object(Qe.groupBy)(e,(function(e){return e.name}));return Object.keys(n).map((function(e){var a=n[e].reduce((function(e,t){return e+t.value}),0),r=a/n[e].length;return{name:e,value:"sum"===t?a:r}}))}(c,t.aggregator):c},at=function(e){return e.split(",").map((function(e){return parseFloat(e)}))},rt=["Waiga Primary School","Gods Mercy Primary School","Bukeeka COU Primary School"],ot=["Bukeeka COU Primary School","Kungu CU Primary School","King Jesus Nursery And Primary School","Nile View Primary School","Imam Hassan Primary School Maligita","Bright Future Nursery And Primary School Kangulumira"];function it(e){return"numberOfPrimarySchools"===e?{level:"Primary",ownership:"all"}:"numberOfSecondarySchools"===e?{level:"Secondary",ownership:"all"}:"numberOfGovernmentPrimarySchools"===e?{level:"Primary",ownership:"Government"}:"numberOfPrivatePrimarySchools"===e?{level:"Primary",ownership:"Private"}:"numberOfGovernmentSecondarySchools"===e?{level:"Secondary",ownership:"Government"}:"numberOfPrivateSecondarySchools"===e?{level:"Secondary",ownership:"Private"}:""}var ct,st=function(e,t,n,a){!function(e,t,n){var a=n.popup,r=n.nameProperty,o=n.formatter,i=n.data,c=function(e,t){if(e.features&&e.features[0].properties){var n=e.features[0].geometry;if("Polygon"===n.type||"MultiPolygon"===n.type)return e.features[0].properties[t]||null}return null}(t,r);if(c){var s=o?o(c,"tooltip"):c;if(i){var l=Fe(s,i);Te(e,a,t.lngLat,s,Pe(n,l))}else Te(e,a,t.lngLat,s,"")}}(t,n,Object.assign({},a,{popup:e}))},lt=new je.Popup({offset:5}),ut=new je.Popup({offset:5}),dt=function(e,t,n,a){void 0===a&&(a={});var r=Object(u.useState)(),o=r[0],i=r[1],c=Object(u.useState)(a),d=c[0],f=c[1],p=Object(u.useState)([]),b=p[0],m=p[1],g=Object(u.useState)(),h=g[0],v=g[1],y=Object(u.useState)(""),O=y[0],w=y[1],j=Object(u.useCallback)((function(e){o.getCanvas().style.cursor="pointer",st(lt,o,e,Object.assign({},t,{data:b},d))}),[o,b,d]),x=Object(u.useCallback)((function(){o.getCanvas().style.cursor="",lt.remove()}),[o,e]),C=Object(u.useCallback)((function(e){e.preventDefault(),o.off("mousemove","highlight",j),lt.remove(),e.features.length&&o.setLayoutProperty("points","icon-size",["match",["get","name"],e.features[0].properties.name,.4,.2])}),[o,h]),S=Object(u.useCallback)((function(e){for(var t=e.features[0].geometry.coordinates.slice(),n=e.features[0].properties,a=n.name,r=n.parish,i=n.ownership;Math.abs(e.lngLat.lng-t[0])>180;)t[0]+=e.lngLat.lng>t[0]?360:-360;ut.setLngLat(t).setHTML('\n
\n
\n '+a+"\n
\n

Coordinates: "+t+"

\n

Ownership: "+i+"

\n

Parish: "+(r||"No parish data")+"

\n
\n ").addTo(o)})),E=Object(u.useCallback)((function(){o.on("mousemove","highlight",j),lt.remove(),o.setLayoutProperty("points","icon-size",.2)}),[o,e]);return Object(u.useEffect)((function(){o&&(o.getLayer("points")&&o.removeLayer("points"),h&&o.loadImage("https://docs.mapbox.com/mapbox-gl-js/assets/custom_marker.png",(function(e,t){if(e)throw e;o.hasImage("custom-marker")||o.addImage("custom-marker",t,{sdf:!0}),o.getSource("points")||o.addSource("points",{type:"geojson",data:h,generateId:!0}),o.getLayer("points")||o.addLayer({id:"points",type:"symbol",source:"points",layout:{"icon-image":"custom-marker","icon-anchor":"bottom","icon-size":.2,"icon-allow-overlap":!0},paint:{"icon-color":["match",["get","level"],"Primary","#ff9c1a","Secondary","#00b3b3","#ffffff"]},minzoom:8}),o.getSource("points").setData(h)})))}),[o,b,h,O]),Object(u.useEffect)((function(){o&&(o.getStyle().layers.forEach((function(e){["background","highlight"].includes(e.id)||o.setLayoutProperty(e.id,"visibility","none")})),function(e,t,n){t.clientWidth<700?e.setZoom(n.zoom?n.zoom-1:5):t.clientWidth<900?e.setZoom(n.minZoom?n.minZoom+.8:5.8):e.setZoom(n.zoom||6.1)}(o,o.getContainer(),t),o.off("mousemove","points",C),o.off("mouseleave","highlight",x),o.off("mouseover","highlight",j),o.off("click","points",S),o.on("mousemove","highlight",j),o.on("mouseleave","highlight",x),o.on("mousemove","points",C),o.on("mouseleave","points",E),o.on("click","points",S))}),[o,e,d,b]),Object(u.useEffect)((function(){var t=function(){var e=Object(l.a)(s.a.mark((function e(t,a){var r,o;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t||a&&n)){e.next=6;break}return r=t?F(t):T(a,n),e.next=4,r;case 4:o=e.sent,m(nt(o,d.indicator,d.year));case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();d.indicator&&d.year&&(w(it(d.indicator.id)),v(function(e,t,n,a,r){var o={type:"FeatureCollection",features:[]};return t&&(n||a&&r)&&(n||a&&r)?((n?F(n):T(a,r)).then((function(n){var a=n.filter((function(t){return"Masindi"===e?!rt.includes(t.school_name):!ot.includes(t.school_name)}));"all"===t.ownership?a.filter((function(e){return e.level===t.level})).forEach((function(e){if(e.gps_coordinates){var t=at(e.gps_coordinates);t&&o.features.push({type:"Feature",geometry:{type:"Point",coordinates:[t[1],t[0]]},properties:{level:e.level,ownership:e.ownership,name:e.school_name,parish:e.parish}})}})):a.filter((function(e){return e.level===t.level&&e.ownership===t.ownership})).forEach((function(e){if(e.gps_coordinates){var t=at(e.gps_coordinates);t&&o.features.push({type:"Feature",geometry:{type:"Point",coordinates:[t[1],t[0]]},properties:{level:e.level,ownership:e.ownership,name:e.school_name,parish:e.parish}})}}))})).catch((function(e){console.log(e)})),o):o}(e.name,it(d.indicator.id),d.indicator.schoolLocationUrl,d.indicator.schoolLocationdataID,n)),t(d.indicator.url,d.indicator.dataID))}),[d.indicator,d.year]),{map:o,data:b,setData:m,setMap:i,setOptions:f}},ft=function(e,t,n,a,o){var i=[a].map((function(e){return Object(r.c)(Ce,{key:"highlight-hidden",id:e.layerName,source:"composite","source-layer":e.sourceLayer,show:!1})}));function c(e,t){tt(e,t,n,Object.assign({},a,{nameProperty:a.districtNameProperty}))}if(!e&&o.range&&o.colours&&t.length){var s=function(e,t,n,a){return e&&t&&n?e.map((function(e){var r=Le(e.name,a),o=t.find((function(t){return null!==e.value&&e.value<=parseFloat(t)}));return o?[r,n[t.indexOf(o)]]:e.value>parseFloat(t[t.length-1])?[r,n[n.length-1]]:[r,"#b3adad"]})):[]}(t,o.range,o.colours,a.formatter);return i.concat(Object(r.c)(Ce,{key:"highlight",id:"highlight",source:"composite","source-layer":a.sourceLayer,maxzoom:a.maxZoom&&a.maxZoom+2,type:"fill",paint:{"fill-color":{property:a.nameProperty,type:"categorical",default:"#D1CBCF",stops:s},"fill-opacity":.9,"fill-outline-color":"#ffffff"},onAdd:c}))}return i.concat(Object(r.c)(Ce,{key:"highlight",id:"highlight",source:"composite","source-layer":a.sourceLayer,maxzoom:a.maxZoom&&a.maxZoom+2,type:"fill",paint:{"fill-color":"#D1CBCF","fill-opacity":.75,"fill-outline-color":"#ffffff"},onAdd:c}))},pt={topic:null,indicator:null,year:null},bt=m.a.div(ct||(ct=Object(b.a)(["\n position: absolute;\n top: 1.75em;\n z-index: 1;\n left: 1.4em;\n"])));function mt(e,t){switch(t.type){case"UPDATE_FILTERS":return Object.assign({},e,{filterOptions:t.merge?Object.assign({},e.filterOptions,t.filterOptions):t.filterOptions,activeTopic:t.activeTopic,activeIndicator:t.activeIndicator,activeYear:t.activeYear});case"SET_DATA":return Object.assign({},e,{data:t.data});case"RESET_FILTERS":return Object.assign({},e,{filterOptions:pt});default:throw new Error}}var gt={filterOptions:pt},ht=function(e){var t=Object(u.useState)(!0),n=t[0],a=t[1],o=Object(u.useReducer)(mt,gt),i=o[0],c=o[1],s=i.filterOptions,l=i.activeIndicator,d=i.activeTopic,f=i.activeYear,p=dt(e.location,e.configs.formatter?Object.assign({},et,{formatter:e.configs.formatter}):et,e.baseAPIUrl),b=p.data,m=p.map,g=p.setMap,h=p.setOptions;Object(u.useEffect)((function(){if(l){var e=s.year;h({dataPrefix:l.name+": ",dataSuffix:e&&" in "+e,indicator:l,year:e})}}),[l,s.year,m]);var v,y,O=function(t,n){void 0===n&&(n=!0);var a=function(e,t){var n=t.topic,a=t.indicator,r=t.year;if(n){var o=e.find((function(e){return e.id===n}));if(o&&a){var i=o.indicators.find((function(e){return e.id===a}));if(i)return{topic:o,indicator:i,year:r}}return{topic:o}}return{}}(e.configs.data,Object.assign({},s,t)),r=a.topic,o=a.indicator,i=a.year;c({type:"UPDATE_FILTERS",merge:n,filterOptions:t,activeTopic:r,activeIndicator:o,activeYear:i})},w=(v=e.configs.data,y=s.topic,v.find((function(e){return e.id===y}))),j=Object(u.useMemo)((function(){return{filters:e.filters,topics:e.configs.data,filterOptions:s,updateFilterOptions:O,activeTopic:d,activeIndicator:l,activeYear:f}}));return Object(r.c)(_e.Provider,{value:j},Object(r.c)("div",{className:"spotlight"},Object(r.c)("div",{className:"spotlight__aside spotlight__aside--no-margin",css:{minHeight:"600px"}},Object(r.c)($e,null)),Object(r.c)("div",{className:"spotlight__main spotlight__main--map"},n?Object(r.c)("div",null,"Loading ..."):null,w&&w.dashboardUrl?Object(r.c)(bt,null,Object(r.c)("a",{href:w.dashboardUrl,className:"button button--secondary--fill"},w.dashboardButtonCaption)):null,Object(r.c)(Ee,{accessToken:"pk.eyJ1IjoiZWR3aW5tcCIsImEiOiJjazFsdHVtcG0wOG9mM2RueWJscHhmcXZqIn0.cDR43UvfMaOY9cNJsEKsvg",options:Object.assign({style:et.style,center:et.center,minZoom:et.minZoom||6,zoom:et.zoom||6.1,maxZoom:et.maxZoom||7,scrollZoom:!1},e.configs.options),style:{width:"100%",background:"#ffffff"},onLoad:function(e){a(!1),g(e)}},ft(n,b,e.location,e.configs.formatter?Object.assign({},et,{formatter:e.configs.formatter}):et,l?{range:l.range,colours:l.colours}:{})))))};ht.defaultProps={data:[]},ht.propTypes={configs:p.a.object,filters:p.a.object,data:p.a.array,location:p.a.shape({name:p.a.string,fullName:p.a.string,coordinates:p.a.array}),baseAPIUrl:p.a.string};var vt,yt,Ot,wt,jt,xt,Ct,St=ht,Et=m.a.div(vt||(vt=Object(b.a)(["\n background: #ffffff;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n"]))),Nt=function(){return d.a.createElement(Et,null,d.a.createElement(te,null))},kt=function(e){window.DICharts.handler.addChart({className:e,echarts:{onAdd:function(e){Array.prototype.forEach.call(e,(function(e){var t=new window.DICharts.Chart(e.parentElement);if(t.showLoading(),window.DIState){var n=Object(o.createRoot)(e);window.DIState.addListener((function(){t.showLoading();var e=window.DIState.getState,a=e.map,r=e.location,o=e.baseAPIUrl;a?n.render(d.a.createElement(St,{configs:a,location:r,filters:a.filters,baseAPIUrl:o})):n.render(d.a.createElement(Nt,null)),t.hideLoading()}))}else window.console.log("State is not defined")}))}}})},Lt=n(46),Pt=function(e){var t=e.close,n=e.description,a=e.source;return Object(r.c)("div",{className:"spotlight-modal",css:Object(r.b)(Ot||(Ot=Object(b.a)(["\n font-size: 12px;\n "])))},Object(r.c)("a",{className:"close",onClick:t,css:Object(r.b)(wt||(wt=Object(b.a)(["\n cursor: pointer;\n position: absolute;\n display: block;\n padding: 5px 10px;\n line-height: 20px;\n right: 0px;\n top: 0px;\n font-size: 20px;\n background: transparent;\n color: #333131;\n font-weight: 900;\n "])))},"×"),Object(r.c)("div",{className:"content",css:Object(r.b)(jt||(jt=Object(b.a)(["\n width: 100%;\n padding: 10px 5px 10px 5px;\n "])))},Object(r.c)("p",{className:"description",css:Object(r.b)(xt||(xt=Object(b.a)(["\n font-size: 14px;\n "])))},n),a?Object(r.c)(d.a.Fragment,null,Object(r.c)("br",null),Object(r.c)("p",{className:"source",css:Object(r.b)(Ct||(Ct=Object(b.a)(["\n text-align: left;\n "])))},a?Object(r.c)(d.a.Fragment,null,Object(r.c)("b",{css:Object(r.b)(yt||(yt=Object(b.a)(["\n font-family: Geomanist Bold, sans-serif;\n "])))},"Source:"," "),a):null)," "):null))};Pt.propTypes={description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string,close:p.a.func.isRequired};var It,At,Tt=Pt,Ft=function(e){return Object(r.c)(Lt.a,{trigger:Object(r.c)("span",{className:"spotlight__stat-icon",css:Object(r.b)(It||(It=Object(b.a)(["\n display: inline-flex;\n margin-left: 2px;\n cursor: pointer;\n padding: 8px;\n "])))},Object(r.c)("i",{onClick:function(){document.querySelectorAll(".popup-content ").forEach((function(e){e.setAttribute("style","display:none;")}))},role:"presentation","aria-hidden":"true",className:"ico ico--12 ico-info-slate",css:Object(r.b)(At||(At=Object(b.a)(["\n top: -1px;\n "])))})),offsetX:20,arrowStyle:{height:"10px",width:"10px",position:"absolute",background:"rgb(255, 255, 255)",transform:"rotate(225deg)",margin:"-5px",zIndex:-1,boxShadow:"rgb(0 0 0 / 20%) 1px 1px 1px",bottom:"0%",left:"82px"},position:"bottom center",closeOnDocumentClick:!0,contentStyle:{zIndex:200,width:"350px",background:"#fff",fontWeight:400,fontStyle:"normal",fontSize:"12px",color:"#60575d",border:0,borderRadius:"0.28571429rem",boxShadow:"0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15)",padding:"5px"}},(function(t){return Object(r.c)(Tt,{close:t,description:e.description,source:e.source})}))};Ft.propTypes={description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string};var Dt=Ft,_t=function(e){var t=e.meta,n=void 0===t?{}:t,a=e.heading,r=e.children;return d.a.createElement("div",{className:"spotlight__stat"},d.a.createElement("h3",{className:"spotlight__stat-heading"},a,n.description||n.source?d.a.createElement(Dt,{description:n.description,source:n.source}):null),r)};_t.defaultProps={meta:{}},_t.propTypes={heading:p.a.string,meta:p.a.shape({description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string}),children:p.a.any};var Rt,zt=_t,Ut=function(e){var t=e.value,n=e.note;return Object(r.c)("p",{className:"spotlight__stat-data"},t,n&&n.content?Object(r.c)("span",{className:"spotlight__stat-data__note",css:Object(r.b)(Rt||(Rt=Object(b.a)(["\n transform: none;\n position: relative;\n top: -10px;\n "])))},n.content," ",n.meta?Object(r.c)(Dt,{description:n.meta.description,source:n.meta.source}):null):null)};Ut.propTypes={note:p.a.object,value:p.a.string};var qt,Mt=Ut,Vt=function(e){var t=e.children;return Object(r.c)("article",{className:"tabs__content",css:Object(r.b)(qt||(qt=Object(b.a)(["\n z-index: 200;\n "])))},t)};Vt.propTypes={children:p.a.any};var Bt=Vt,Gt=function(e){var t=e.id,n=e.active,a=e.label,r=e.children,o=e.onActivate;return d.a.createElement("section",{className:"tabs__container",id:t},d.a.createElement("input",{className:"tabs__input",type:"radio",name:"sections",id:t+"-option",defaultChecked:n}),d.a.createElement("label",{className:"tabs__label",htmlFor:t+"-option",onClick:o},a),u.Children.map(r,(function(e){return Object(u.isValidElement)(e)&&e.type===Bt?e:null})))};Gt.propTypes={id:p.a.string.isRequired,label:p.a.string.isRequired,active:p.a.bool,onActivate:p.a.func,children:p.a.any};var Zt=Gt,Yt=function(e){var t=e.children,n=e.onClick;return d.a.createElement("div",{className:"tabs__content__header",onClick:n},t)};Yt.propTypes={children:p.a.any,onClick:p.a.func};var Wt,Ht,Jt,Kt,Xt,$t=Yt,Qt=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="education",c=V(o.tabs,i);if(void 0!==c.show&&!c.show)return null;var s=n&&n.education?n.education.find((function(e){return"Number of Schools"===e.caption})):null;return Object(r.c)(Zt,{id:i,label:c.label||"Education",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,s?Object(r.c)("div",{css:Object(r.b)(Wt||(Wt=Object(b.a)(["\n display: flex;\n "])))},Object(r.c)("div",{css:Object(r.b)(Ht||(Ht=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(Jt||(Jt=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Number of Schools in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(Kt||(Kt=Object(b.a)(["\n font-size: 3rem;\n "])))},I(s.value)),Object(r.c)(Dt,{description:"Last updated: "+s.lastUpdated})),c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null):null),Object(r.c)("div",{className:"l-2up"},n&&n.education?n.education.filter((function(e){return"Number of Schools"!==e.caption})).map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(Xt||(Xt=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))})):null)))};Qt.propTypes={active:p.a.bool};var en,tn,nn,an,rn,on=Qt,cn=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="overview",c=V(o.tabs,i);return void 0===c.show||c.show?Object(r.c)(Zt,{id:i,label:c.label||"Overview",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,n&&n.population?Object(r.c)("div",{css:Object(r.b)(en||(en=Object(b.a)(["\n display: flex;\n "])))},Object(r.c)("div",{css:Object(r.b)(tn||(tn=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(nn||(nn=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Total Population in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(an||(an=Object(b.a)(["\n font-size: 3rem;\n "])))},I(n.population.value)),Object(r.c)(Dt,{description:"Last updated: "+n.population.lastUpdated})),c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null):null),Object(r.c)("div",{className:"l-2up"},n&&n.administration?n.administration.map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(rn||(rn=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))})):null))):null};cn.propTypes={active:p.a.bool};var sn,ln,un,dn,fn,pn,bn=cn,mn=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="production",c=V(o.tabs,i);if(void 0!==c.show&&!c.show)return null;var s=n&&n.production?n.production.find((function(e){return""===e.caption})):null;return Object(r.c)(Zt,{id:i,label:c.label||"Production",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,Object(r.c)("div",{css:Object(r.b)(sn||(sn=Object(b.a)(["\n display: flex;\n "])))},s?Object(r.c)("div",{css:Object(r.b)(ln||(ln=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(un||(un=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Number of Schools in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(dn||(dn=Object(b.a)(["\n font-size: 3rem;\n "])))},I(s.value)),Object(r.c)(Dt,{description:"Last updated: "+s.lastUpdated})):null,c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null)),n&&n.production&&n.production.length?Object(r.c)("div",{className:"l-2up"},n.production.filter((function(e){return""!==e.caption})).map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(fn||(fn=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))}))):Object(r.c)("div",{css:Object(r.b)(pn||(pn=Object(b.a)(["\n font-size: 16px;\n display: flex;\n justify-content: center;\n width: 100%;\n "])))},"No Production Data")))};mn.propTypes={active:p.a.bool};var gn,hn=mn,vn=function(e){var t=e.children;return Object(r.c)("div",{className:"tabs",css:Object(r.b)(gn||(gn=Object(b.a)(["\n z-index: 0;\n "])))},t)};vn.propTypes={children:p.a.any};var yn=vn,On=function(e){var t=Object(u.useState)({}),n=t[0],a=t[1];return Object(u.useEffect)((function(){e.data&&a(function(e){var t={},n=function(e){return{caption:e.Item,value:e.Value,lastUpdated:e["Last Updated"]}},a=e.find((function(e){return"Total Population"===e.Item}));return a&&(t.population=n(a)),t.administration=e.filter((function(e){return"Total Population"!==e.Item&&"Administration"===e.Department})).map(n),t.education=e.filter((function(e){return"Total Population"!==e.Item&&"Education"===e.Department})).map(n),t.production=e.filter((function(e){return"Total Population"!==e.Item&&"Production"===e.Department})).map(n),t}(e.data))}),[e.data]),Object(r.c)(De.Provider,{value:Object.assign({},e,{data:n})},Object(r.c)(yn,null,Object(r.c)(bn,{active:!0}),Object(r.c)(on,null),Object(r.c)(hn,null)))};On.propTypes={data:p.a.array.isRequired,location:p.a.object.isRequired,options:p.a.object.isRequired};var wn=On,jn=function(e){window.DICharts.handler.addChart({className:e,echarts:{onAdd:function(e){Array.prototype.forEach.call(e,(function(e){var t=new window.DICharts.Chart(e.parentElement);if(t.showLoading(),window.DIState){var n=Object(o.createRoot)(e);window.DIState.addListener((function(){t.showLoading();var e=window.DIState.getState,a=e.keyFacts,r=e.location,o=e.baseAPIUrl;(null==a?void 0:a.url)||(null==a?void 0:a.dataID)&&o?((null==a?void 0:a.url)?F(null==a?void 0:a.url):T(null==a?void 0:a.dataID,o)).then((function(e){Array.isArray(e)?n.render(d.a.createElement(wn,{data:e,options:a,location:r})):e.results?n.render(d.a.createElement(wn,{data:e.results,options:a,location:r})):(window.console.error("Invalid data shape. Expected an array or an object with a results property.",e),n.render(d.a.createElement(Nt,null)))})).catch((function(e){window.console.log(e),n.render(d.a.createElement(Nt,null))})):a&&a.data?n.render(d.a.createElement(wn,{data:a.data,options:a,location:r})):n.render(d.a.createElement(Nt,null));t.hideLoading()}))}else window.console.log("State is not defined")}))}}})},xn=function(e){var t=[{color:"#3b8c62",caption:"Achieved"},{color:"#f7a838",caption:"Moderately satisfactory"},{color:"#cd2b2a",caption:"Not achieved"},{color:"#cdcfd1",caption:"Not assessed"}];Object(u.useEffect)((function(){var e=document.createElement("div"),n=""+t.map((function(e){return'\n \n \n "})).join("");e.classList.add("custom-legend","score-table-legend"),e.innerHTML=n;var a=document.querySelector(".score-table-container"),r=a.firstChild;return r?a.insertBefore(e,r):a.appendChild(e),function(){a&&a.removeChild(e)}}));var n=function(t,n){return void 0===n&&(n=!1),t.map((function(t,a){return Object(r.c)("tr",{key:a},t.map((function(t,a){return n?Object(r.c)("th",{key:a},t):Object(r.c)("td",{css:{backgroundColor:H(t,e.thresholds),color:H(t,e.thresholds)?"white":"black"},key:a},0===Number(t)?"":t)})))}))};return Object(r.c)("div",{className:"score-table-container"},Object(r.c)(le,null,Object(r.c)("thead",null,e.rows&&n(e.rows.filter((function(e,t){return 0===t})),!0)),Object(r.c)("tbody",null,e.rows&&n(e.rows.filter((function(e,t){return t>0}))))))};xn.propTypes={rows:p.a.arrayOf(p.a.array),thresholds:p.a.object};var Cn=xn,Sn=function(){var e=Object(l.a)(s.a.mark((function e(t,n,a,r){var o,i,c,l,u,f;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.data,i=t.config,c=t.subCounty,l=t.tableRoot,u=i.selectors.map((function(e){return{property:e.dataProperty,value:"all"}})),f=function(e,t){var n=Array.isArray(t)?t[0].value:t.value;if(n){var s=u.find((function(t){return t.property===e.config.dataProperty}));if(s){s.value=n;var f=u.reduce((function(e,t){return"all"===t.value?e:B(e,t.property,t.value)}),o);if("scoreCard"===a){var p=W(i,f,c);l.render(d.a.createElement(Cn,{rows:p,thresholds:r}))}else{var b=Y(i,f,c);l.render(d.a.createElement(de,{rows:b}))}}}},e.abrupt("return",R(i.selectorClassName,{selectors:i.selectors,onChange:f,makeSticky:!1,nodes:n}));case 4:case"end":return e.stop()}}),e)})));return function(t,n,a,r){return e.apply(this,arguments)}}(),En=function(e){(function(e){return e.className?e.mapping?e.mapping.rows?e.mapping.year?e.mapping.value?!!e.mapping.subCounty||(window.console.error("Invalid table config: mapping.subCounty is required!"),!1):(window.console.error("Invalid table config: mapping.value is required!"),!1):(window.console.error("Invalid table config: mapping.year is required!"),!1):(window.console.error("Invalid table config: mapping.series is required!"),!1):(window.console.error("Invalid table config: mapping is required!"),!1):(window.console.error("Invalid table config: className is required!"),!1)})(e)&&window.DICharts.handler.addChart({className:e.className,d3:{onAdd:function(t){if(window.DIState){var n=window.DIState.getState.baseAPIUrl;(e.url?F(e.url):T(e.dataID,n)).then((function(n){Array.prototype.forEach.call(t,(function(t){var a=new window.DICharts.Chart(t.parentElement);a.showLoading();var r=Object(o.createRoot)(t),i="all",c=[];window.DIState.addListener((function(){a.showLoading();var o=window.DIState.getState.subCounty,s=e.tableType,l=e.thresholds;if(o!==i){i=o||"all";var u=e.filters&&e.filters.subCounties?function(e,t,n){return e.filter((function(e){return!t||"all"===t||e[n].toLowerCase()===t.toLowerCase()}))}(n,i,e.mapping.subCounty):n;if("scoreCard"===s){var f=W(e,u,i);r.render(d.a.createElement(Cn,{rows:f,thresholds:l}))}else{var p=Y(e,u,i);r.render(d.a.createElement(de,{rows:p}))}e.selectors&&e.selectors.length&&Sn({data:u,subCounty:i,config:e,tableRoot:r},c,s,l).then((function(e){c=e})),a.hideLoading(),t.parentElement.classList.add("auto-height")}}))}))}))}}}})},Nn=function(){if(window.DIState){var e=[];window.DIState.addListener((function(){var t=window.DIState.getState.tables;t&&e.length!==t.length&&(e=t).forEach((function(e){En(e)}))}))}else window.console.log("State is not defined")};n(103);window.addEventListener("load",(function(){R("district-selectors",{makeSticky:!0}),kt("dicharts--district-map"),Nn(),jn("dicharts--keyfacts"),we()}))},50:function(e,t,n){e.exports=n(104)}},[[50,1,2]]]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{103:function(e,t,n){},104:function(e,t,n){"use strict";n.r(t);var a,r=n(1),o=n(9),i=n(107),c=n(11),s=n.n(c),l=n(15),u=n(0),d=n.n(u),f=n(2),p=n.n(f),b=n(4),m=n(19),g=n(10),h=n.n(g),v=m.a.div(a||(a=Object(b.a)(["\n color: red;\n font-size: 11px;\n position: relative;\n padding: 5px 5px 5px 0px;\n display: block;\n"]))),y=function(e){var t=Object(u.useState)(""),n=t[0],a=t[1],r=function(t){t?"maxSelectedOptions"===t.type&&a(e.selectErrorMessage):a("")};return d.a.createElement("div",{className:h()(e.className)},d.a.Children.map(e.children,(function(e){return d.a.isValidElement(e)?d.a.cloneElement(e,{onError:r}):e})),n?d.a.createElement(v,{className:"data-selector--wrapper"},n):null)};y.propTypes={selectErrorMessage:p.a.string,children:p.a.node,className:p.a.string};var O=y,w=n(25),j=n(26),x=n(47),C={control:function(e){return Object.assign({},e,{borderColor:"#ddd",borderRadius:"none",boxShadow:"none",":hover":{borderColor:"#357ba5"},":active":{borderColor:"#357ba5"}})},menu:function(e){return Object.assign({},e,{color:"#443e42",backgroundColor:"#FFFFFF"})},option:function(e,t){return Object.assign({},e,{fontSize:"14px",":hover":{backgroundColor:"#4e9ac6",color:"#ffffff"},backgroundColor:t.isSelected?"#357ba5":"transparent"})},singleValue:function(e){return Object.assign({},e,{fontSize:"14px"})},multiValue:function(e){return Object.assign({},e,{fontSize:"14px"})},multiValueLabel:function(e,t){return t.data.isCloseable?e:Object.assign({},e,{paddingRight:6})},multiValueRemove:function(e,t){return t.data.isCloseable?e:Object.assign({},e,{display:"none"})},input:function(e){return Object.assign({},e,{fontSize:"14px"})},indicatorsContainer:function(e){return Object.assign({},e,{pointerEvents:"none"})}},S=function(e){var t=e.label,n=e.onError,a=e.maxSelectedOptions,o=e.defaultValue,i=e.singleSelectOptions,c=e.className,s=Object(j.a)(e,["label","onError","maxSelectedOptions","defaultValue","singleSelectOptions","className"]),l=Object(u.useState)(o),d=l[0],f=l[1];Object(u.useEffect)((function(){s.onChange&&s.onChange(d),n&&n()}),[d]),Object(u.useEffect)((function(){s.value&&f(s.value)}),[s.value]);return Object(r.c)("div",{className:h()("labelled-data-selector--wrapper",c)},Object(r.c)("label",null,Object(r.c)("b",null,t)),Object(r.c)(x.a,Object(w.a)({},s,{value:d,onChange:function(e){if(s.isMulti)if(e.length){var t=e.findIndex((function(e){return i.find((function(t){return t.value===e.value}))}));s.isMulti&&e.length>1&&-1!==t?f(0===t?e.slice(1):[e[t]]):a&&e.length>a?n&&n({type:"maxSelectedOptions",message:"Only up to "+a+" selections allowed"}):f(e)}else f(o);else f(e)},css:{marginRight:"25px"},styles:C,isClearable:"undefined"!==s.isClearable?s.isClearable:d.length>1})))};S.propTypes={label:p.a.string,options:p.a.array,maxSelectedOptions:p.a.number,onChange:p.a.func,onError:p.a.func,defaultValue:p.a.array,singleSelectOptions:p.a.array,isMulti:p.a.bool,isClearable:p.a.bool,className:p.a.string,value:p.a.array},S.defaultProps={maxSelectedOptions:2,singleSelectOptions:[]};var E=S,N=n(106),k=n(39);function L(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n=t[M]?"#3b8c62":Number(e)>=.75*t[M]&&Number(e)<=.99*t[M]?"#f7a838":Number(e)<.74*t[M]?"#cd2b2a":"":"#cdcfd1"}),J=function(e){return Object(r.c)(E,{options:e.options,isClearable:!1,defaultValue:[e.options[0]],onChange:function(t){return e.onChange(t.value)},css:{minWidth:"200px",marginLeft:"2em"}})};J.propTypes={options:p.a.array,onChange:p.a.func};var K=J;var X={rainbow:["#e84439","#eb642b","#f49b21","#109e68","#0089cc","#893f90","#c2135b","#f8c1b2","#f6bb9d","#fccc8e","#92cba9","#88bae5","#c189bb","#e4819b"],default:["#6c120a","#a21e25","#cd2b2a","#dc372d","#ec6250","#f6b0a0","#fbd7cb","#fce3dc"],sunflower:["#7d4712","#ba6b15","#df8000","#f7a838","#fac47e","#fedcab","#fee7c1","#feedd4"],marigold:["#7a2e05","#ac4622","#cb5730","#ee7644","#f4a57c","#facbad","#fcdbbf","#fde5d4"],rose:["#65093d","#8d0e56","#9f1459","#d12568","#e05c86","#f3a5b6","#f6b8c1","#f9cdd0"],lavendar:["#42184c","#632572","#732c85","#994d98","#af73ae","#cb98c4","#deb5d6","#ebcfe5"],bluebell:["#0c457b","#0071b1","#0089cc","#5da3d9","#77adde","#88bae5","#bcd4f0","#d3e0f4"],leaf:["#08492f","#005b3e","#00694a","#3b8c62","#74bf93","#a2d1b0","#b1d8bb","#c5e1cb"],orange:["#973915","#d85b31","#eb642b","#f18e5e","#f4a57c","#f6bb9d"],cerulean:["#1a3e53","#2b6587","#357ba5","#78b1d4","#ecf4f9","#0c457b","#0071b1"]},$={legend:{top:10,textStyle:{fontFamily:"Geomanist Regular,sans-serif"}},tooltip:{trigger:"axis",textStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"},axisPointer:{type:"line",axis:"x"}},toolbox:{showTitle:!1,feature:{saveAsImage:{show:!0,title:"Save as image",pixelRatio:2}},right:20,tooltip:{show:!0,textStyle:{fontFamily:"Geomanist Regular,sans-serif",color:"#32313f",formatter:function(e){return"
"+e.title+"
"}}}},color:X.rainbow,xAxis:{axisLine:{show:!0,lineStyle:{color:"#ddd"}},axisLabel:{fontFamily:"Geomanist Regular,sans-serif",fontSize:13,color:"#32313f"},splitLine:{show:!1},nameTextStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"}},yAxis:{axisLabel:{fontFamily:"Geomanist Regular,sans-serif",fontSize:13,color:"#32313f"},axisLine:{show:!1,lineStyle:{color:"#ddd"}},axisTick:{show:!1},splitLine:{show:!1},nameTextStyle:{color:"#32313f",fontFamily:"Geomanist Regular,sans-serif"}},axisPointer:{type:"none"},grid:{top:10},textStyle:{fontFamily:"Geomanist Regular,sans-serif"}},Q=n(24),ee=n.n(Q),te=function(){return d.a.createElement("div",{className:"no-data"},"No Data")},ne=function(e,t,n){var a=e.slice();return t.forEach((function(t,r){void 0===a[r]?a[r]=n.cloneUnlessOtherwiseSpecified(t,n):n.isMergeableObject(t)?a[r]=ee()(e[r],t,n):-1===e.indexOf(t)&&a.push(t)})),a},ae=function(e,t){if(void 0===t&&(t={}),Array.isArray(t.yearRange)&&t.yearRange.length){var n=A(t.yearRange);return t.excludeYears?n.filter((function(e){return!t.excludeYears.includes(e)})).map((function(e){return""+e})):n.map((function(e){return""+e}))}var a=t.mapping&&t.mapping.year;if(!a)return[];var r=Array.from(new Set(e.map((function(e){return Number(e[a])})))).sort((function(e,t){return e-t}));return t.excludeYears?r.filter((function(e){return!t.excludeYears.includes(e)})).map((function(e){return""+e})):r.map((function(e){return e.toString()}))},re=function(e,t,n){var a=e.reduce((function(e,a){return a[n.mapping.series]===t?e+Number(Z(a[n.mapping.value])):e}),0);return n.aggregator&&"sum"!==n.aggregator&&"avg"===n.aggregator?a/e.filter((function(e){return e[n.mapping.series]===t})):a},oe=function(e,t,n){var a,r=e.series,o=e.mapping,i=!(a=e.type)||["bar-stacked","column-stacked"].includes(a)?"bar":"area"===a?"line":a;if("pie"!==i){var c=!e.type||["area","bar-stacked","column-stacked"].includes(e.type)?"district-stack":void 0,s=r.map((function(a,l){return{name:a,type:i,stack:c,areaStyle:"area"===e.type?{}:void 0,smooth:!0,emphasis:{focus:"series",label:{show:!0,formatter:function(e){return I(e.value)}}},symbol:"circle",label:{show:c&&l===r.length-1,fontFamily:"Geomanist Regular,sans-serif",position:"top",formatter:function(e){for(var t=0,n=0;n0})))))};ue.propTypes={rows:p.a.arrayOf(p.a.array)};var de=ue,fe=n(48),pe=function(e,t,n){void 0===n&&(n=[]);var a=e.url,r=e.yearRange,o=e.dataID,i=Object(fe.a)(a||e.className||o,Object(l.a)(s.a.mark((function n(){var r;return s.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(!e.data||!Array.isArray(e.data)){n.next=2;break}return n.abrupt("return",e.data);case 2:if(!(a||o&&t)){n.next=5;break}return r=a?F(a):T(o,t),n.abrupt("return",r.then((function(t){return e.filters?G(t,e.filters):t})));case 5:return n.abrupt("return",[]);case 6:case"end":return n.stop()}}),n)})))),c=i.data,d=i.error,f=Object(u.useState)(n),p=f[0],b=f[1];if(d)return{data:[],years:[]};var m=Object(u.useMemo)((function(){return c?(r&&r.length,ae(c,e)):[]}),[c]);return{data:Object(u.useMemo)((function(){return c&&c.length?p.length?p.reduce((function(e,t){return"all"===t.value?e:B(e,t.dataProperty,t.value)}),c):c:[]}),[c,p]),years:m,filters:p,setFilters:b,updateFilter:function(e,t){p&&p.length&&b(p.map((function(n){return n.dataProperty===e?Object.assign({},n,{value:t}):n})))}}},be=function(e){return e.show?d.a.createElement("div",{className:h()("button-group",e.className)},d.a.createElement("button",{type:"button",className:h()("button button-sm button-outline",{active:"chart"===e.activeButton}),onClick:e.onClickChart},"Chart"),d.a.createElement("button",{type:"button",className:h()("button button-sm button-outline",{active:"table"===e.activeButton}),onClick:e.onClickTable},"Table")):null};be.propTypes={show:p.a.bool,onClickChart:p.a.func,onClickTable:p.a.func,activeButton:p.a.string,className:p.a.string},be.defaultProps={activeButton:"chart"};var me=be,ge=function(e){var t=pe(e.config,e.baseAPIUrl),n=t.data,a=t.years,r=t.setFilters,o=t.updateFilter,i=Object(u.useState)("chart"),c=i[0],s=i[1],l=Object(u.useState)(e.config.type||"bar"),f=l[0],p=l[1];Object(u.useEffect)((function(){var t,n,a,o,i;r((t=e.config,n=e.subCounty,a=t.mapping,o=t.selectors,i=[],a.subCounty&&n&&i.push({dataProperty:a.subCounty,value:"all"}),o&&o.forEach((function(e){i.push({dataProperty:e.dataProperty,value:e.defaultValue?e.defaultValue.value:"all"})})),i))}),[]),Object(u.useEffect)((function(){var t=e.subCounty,n=e.config;t&&n.mapping.subCounty&&o(n.mapping.subCounty,e.subCounty)}),[e.subCounty]);return d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:h()("spotlight-banner data-selector--wrapper dicharts--actions",{"align-left":!e.config.selectors})},e.config.selectors?d.a.createElement(_,{configs:e.config.selectors,onChange:function(e,t){o(e.dataProperty,t.value)}}):null,d.a.createElement(me,{show:!!e.config.table,onClickChart:function(){return s("chart")},onClickTable:function(){return s("table")},activeButton:c}),"chart"===c&&e.config.typeOptions?d.a.createElement(K,{options:e.config.typeOptions,onChange:p}):null),"chart"===c?d.a.createElement(ce,Object(w.a)({className:h()({"dicharts--padding-top":!e.config.selectors})},e,{data:n,years:a,height:e.config.height,type:f})):null,"table"===c&&e.config.table?d.a.createElement(de,{rows:Y(e.config.table,n,e.subCounty)}):null)};ge.propTypes={config:p.a.object,subCounty:p.a.string,baseAPIUrl:p.a.string},ge.defaultProps={subCounty:"all"};var he,ve,ye=ge,Oe=function(e,t){(function(e){return e.className?e.series&&Array.isArray(e.series)?e.mapping?e.mapping.series?e.mapping.year?e.mapping.value?(e.mapping.subCounty||window.console.warn("Potentially invalid chart config: mapping.subCounty may be required!"),!0):(window.console.error("Invalid chart config: mapping.value is required!"),!1):(window.console.error("Invalid chart config: mapping.year is required!"),!1):(window.console.error("Invalid chart config: mapping.series is required!"),!1):(window.console.error("Invalid chart config: mapping is required!"),!1):(window.console.error(e.series?"Invalid chart config: Invalid series config - expected an array!":"Invalid chart config: Series is required!"),!1):(window.console.error("Invalid chart config: className is required!"),!1)})(e)&&window.DICharts.handler.addChart({className:e.className,echarts:{onAdd:function(n){Array.prototype.forEach.call(n,(function(n){n.classList.add("dicharts--dimensions"),n.parentElement.classList.add("auto-height");var a=new window.DICharts.Chart(n.parentElement);a.showLoading();var r="all",i=Object(o.createRoot)(n);i.render(d.a.createElement(ye,{config:e,subCounty:r,baseAPIUrl:t})),window.DIState&&window.DIState.addListener((function(){var n=window.DIState.getState.subCounty;n&&n!==r&&(r=n,i.render(d.a.createElement(ye,{config:e,subCounty:r,baseAPIUrl:t})))})),a.hideLoading()}))}}})},we=function(){if(window.DIState){var e=[];window.DIState.addListener((function(){var t=window.DIState.getState,n=t.charts,a=t.baseAPIUrl;n&&e.length!==n.length&&(e=n).forEach((function(e){return Oe(e,a)}))}))}else window.console.log("State is not defined")},je=n(14),xe=n.n(je),Ce=function(e){var t=e.map,n=e.show,a=e.onAdd,r=Object(j.a)(e,["map","show","onAdd"]);return t&&(t.getLayer(r.id)&&t.removeLayer(r.id),n&&(t.addLayer(r),a&&a(t,r.id))),null};Ce.defaultProps={show:!0},Ce.propTypes={map:p.a.object,show:p.a.bool,onAdd:p.a.func};var Se={width:"100%",position:"absolute",top:0,bottom:0,background:"#F3F3F3"},Ee=function(e){xe.a.accessToken=e.accessToken;var t=Object(u.useRef)(null),n=Object(u.useState)(void 0),a=n[0],o=n[1];Object(u.useEffect)((function(){if(t&&t.current){var n=new xe.a.Map(Object.assign({container:t.current},e.options));e.showNavigationControls&&n.addControl(new xe.a.NavigationControl),n.on("load",(function(t){o(n),e.onLoad&&e.onLoad(n,t)}))}}),[]);return Object(r.c)("div",{ref:t,style:Object.assign({},Se,e.style),css:Object(r.b)(he||(he=Object(b.a)(["\n background: ",";\n font-family: geomanist, sans-serif;\n "])),e.background)},u.Children.map(e.children,(function(e){return Object(u.isValidElement)(e)&&e.type===Ce?Object(u.cloneElement)(e,{map:a}):null})),Object(r.c)(r.a,{styles:Object(r.b)(ve||(ve=Object(b.a)(["\n div .mapboxgl-canary {\n background: red;\n }\n\n div .mapboxgl-popup {\n z-index: 400;\n max-width: 100% !important;\n }\n\n div .mapboxgl-popup-content {\n background-color: rgba(0, 0, 0, 0.9) !important;\n box-shadow: none !important;\n color: #ffffff !important;\n font-family: geomanist, sans-serif;\n -webkit-tap-highlight-color: black;\n opacity: 0.8;\n padding: 20px;\n }\n\n div .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip {\n border-top-color: rgba(0, 0, 0, 0.9);\n opacity: 0.8;\n }\n\n div .mapboxgl-popup-content .mapBox-popup p {\n margin-bottom: 0;\n }\n\n div .mapboxgl-popup-content .mapboxgl-popup-close-button {\n color: #ffffff;\n font-size: 1.8rem;\n }\n "])))}))};Ee.defaultProps={style:Se,options:{minZoom:6,zoom:6.1},showNavigationControls:!0,background:"inherit"},Ee.propTypes={accessToken:p.a.string,style:p.a.object,background:p.a.string,showNavigationControls:p.a.bool,onLoad:p.a.func,options:p.a.object,children:p.a.node};var Ne=n(29),ke=n(6),Le=function(e,t){return t?t(e):e},Pe=function(e,t){return t&&"number"==typeof t.value?(e.dataPrefix||"")+''+(n=t.value,void 0===a&&(a=1),(n>=1e12?(n/1e12).toFixed(a)+"tn":n>=1e9?(n/1e9).toFixed(a)+"bn":n>=1e6?(n/1e6).toFixed(a)+"m":n>=1e3?(n/1e3).toFixed(a)+"k":n>=0?""+n.toFixed(a):n<=-1e12?(n/1e12).toFixed(a)+"tn":n<=-1e9?(n/1e9).toFixed(a)+"bn":n<=-1e6?(n/1e6).toFixed(a)+"m":n<=1e3?(n/1e3).toFixed(a)+"k":""+n.toFixed(a))+"")+(e.dataSuffix||""):"No Data";var n,a},Ie=function(e){var t=e.geometry&&e.geometry.coordinates;return t?new je.LngLat(t[0],t[1]):null},Ae=function(e,t,n){var a=e.querySourceFeatures("composite",{sourceLayer:n.sourceLayer,filter:["in",n.nameProperty,Le(t,n.formatter)]});return a&&a.length?function(e){if(Array.isArray(e)){var t=e.map((function(e){return Object(Ne.a)(e.geometry).geometry.coordinates}));return t.push(t[0]),Ie(Object(Ne.a)(Object(ke.f)([t])))}return Ie(Object(Ne.a)(e))}(a):null},Te=function(e,t,n,a,r){return t.setLngLat(n).setHTML('\n
\n
\n '+a.toLowerCase()+"\n
\n "+(r?''+r+"":"")+"\n
\n ").addTo(e)},Fe=function(e,t,n){return t.find((function(t){var a=n?n(t.name):t.name;return e.toLowerCase()===(""+a).toLowerCase()}))},De=Object(u.createContext)(),_e=Object(u.createContext)(),Re=n(43),ze=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={hasError:!1},n}Object(Re.a)(t,e),t.getDerivedStateFromError=function(){return{hasError:!0}};var n=t.prototype;return n.componentDidCatch=function(e,t){window.console.log("Error Boundary:",e,t)},n.render=function(){return this.state.hasError?d.a.createElement("div",null,"Something went wrong! Please contact your administrator"):this.props.children},t}(u.Component);ze.propTypes={children:p.a.any};var Ue,qe=ze,Me=function(e,t){return e.find((function(e){return e.id===t}))},Ve=function(e){return e.map((function(e){return{value:e.id,label:e.name}}))},Be=function(e,t){var n=Me(e,t);return n?n.indicators.map((function(e){return{value:e.id,label:e.name}})):[]},Ge=function(e,t,n){if(t&&n){var a=Me(e,t);if(!(a&&a.indicators&&a.indicators.length))return[];var r=a.indicators.find((function(e){return e.id===n}));if(r&&r.yearRange)return A(r.yearRange).filter((function(e){return r.excludeYears?!r.excludeYears.includes(e):e})).reverse().map((function(e){return{value:e,label:e}}))}return[]},Ze=function(e){var t=Object(u.useContext)(_e),n=t.filterOptions,a=t.updateFilterOptions;return Object(u.useEffect)((function(){!n.topic&&e.length&&a({topic:e[0].id})}),[]),Object(u.useEffect)((function(){if(n.topic){var t=Me(e,n.topic),r=t&&t.indicators&&t.indicators.length?t.indicators[0]:null;r&&a({indicator:r.id})}}),[n.topic]),Object(u.useEffect)((function(){if(n.indicator){var t=Ge(e,n.topic,n.indicator);t.length&&!t.find((function(e){return e.value===n.year}))&&a({year:t[0].value})}}),[n.indicator]),{topicOptions:Ve(e||[]),indicatorOptions:Be(e,n.topic),yearOptions:Ge(e,n.topic,n.indicator)}},Ye=function(){var e=Object(u.useContext)(_e),t=e.filters,n=e.topics,a=e.filterOptions,o=e.updateFilterOptions,i=Ze(n),c=i.topicOptions,s=i.indicatorOptions,l=i.yearOptions,d=a.year,f=a.indicator,p=function(e,t,n){var a;if(Array.isArray(e)&&e.length)e[0].value!==n&&o(((a={})[t]=e[0].value,a));else if(e&&!Array.isArray(e)){var r;if(e.value!==n)o(((r={})[t]=e&&e.value,r))}};return Object(r.c)("form",{className:"form"},Object(r.c)("div",{className:h()("form-field","form-field--inline-block"),css:Object(r.b)(Ue||(Ue=Object(b.a)(["\n z-index: auto;\n margin-left: 5px;\n "])))},Object(r.c)(E,{label:t.topicLabel,options:c,defaultValue:[c[0]],classNamePrefix:"topic-selector",isClearable:!1,css:{minWidth:"100%"},onChange:function(e){return o({topic:e&&e.value})}}),s&&s.length?Object(r.c)(E,{label:t.indicatorLabel,options:s,value:[f&&s.find((function(e){return e.value===f}))||s[0]],classNamePrefix:"indicator-selector",isClearable:!1,css:{minWidth:"100%",marginTop:"1em"},onChange:function(e){return p(e,"indicator",f)}}):null,l&&l.length?Object(r.c)(E,{label:t.yearLabel,options:l,value:[d&&l.find((function(e){return e.value===d}))||l[0]],classNamePrefix:"year-selector",isClearable:!1,css:{minWidth:"100%",marginTop:"1em"},onChange:function(e){return p(e,"year",d)}}):null))},We=function(e){var t=e.children;return d.a.createElement("div",{className:"spotlight-legend","data-testid":"spotlight-legend"},u.Children.map(t,(function(e){return e})))};We.propTypes={children:p.a.any};var He=We,Je=n(44),Ke=function(e){var t=e.children,n=e.className,a=e.bgColor,r=e.textColor,o=Je(a);return d.a.createElement("span",{className:n,"data-testid":"spotlight-legend-item"},t,d.a.createElement("style",null,"\n span."+n+" {\n background-color: "+(a||"#D1CBCF")+" !important;\n color: "+(r||o.isLight()?"#000":"#FFF")+";\n }\n "))};Ke.propTypes={children:p.a.any,className:p.a.string,bgColor:p.a.string,textColor:p.a.string};var Xe=Ke,$e=function(){var e,t,n=Object(u.useContext)(_e).activeIndicator;return d.a.createElement("div",{className:"spotlight__content"},d.a.createElement(qe,null,d.a.createElement(Ye,null)),n?d.a.createElement(d.a.Fragment,null,d.a.createElement("div",{className:"spotlight__subheading"},n.name),n.description?d.a.createElement("p",{className:"spotlight__excerpt"},n.description):null,d.a.createElement(He,null,(e=n.range,t=n.colours,e&&t?e.map((function(n,a){return d.a.createElement(Xe,{className:"item-"+n,bgColor:t[a],key:n},0===a?"< "+e[0]:e[a-1]+"-"+n)})).concat([d.a.createElement(Xe,{className:"item-last",bgColor:t[t.length-1],key:e.length},"> "+e[e.length-1])]):null),d.a.createElement(Xe,null,"no data / not applicable"))):null)},Qe=n(45),et={type:"shapefile",style:"mapbox://styles/edwinmp/ck42rrx240t8p1cqpkhgy2g0m/draft",sourceLayer:"Uganda_Sub-Counties_2019-8w0zb5",layerName:"uganda-Sub-counties-2019-8w0zb5",center:[32.655221,1.344666],zoom:8,minZoom:8,maxZoom:9,districtNameProperty:"District",nameProperty:"Subcounty",codeProperty:"scode2019",formatter:function(e,t){return void 0===t&&(t="map"),e.toUpperCase()}},tt=function(e,t,n,a){n&&(e.setFilter(t,["==",a.nameProperty,Le(n.name,a.formatter)]),setTimeout((function(){if(n.coordinates)e.flyTo({center:n.coordinates,zoom:8.5});else{var t=a.formatter?a.formatter(n.name):n.name;!function e(t,n,a,r){return void 0===r&&(r=!0),new Promise((function(o,i){var c=Ae(t,n,a);c?(t.flyTo({center:c,zoom:16}),o(c)):r?(t.flyTo({center:a.center,zoom:a.zoom||6.1}),setTimeout((function(){e(t,n,a,!1).then((function(e){return o(e)})).catch(i)}),500)):i(new Error("Location "+n+" not found!"))}))}(e,t,a)}}),500))},nt=function(e,t,n){if(!t)return[];if(!t.mapping)throw new Error("Mapping is required for indicator "+t.id);var a=t.mapping,r=a.location,o=a.value,i=a.year,c=G(e,t.filters);return c=n?c.filter((function(e){return""+e[i]==""+n})).map((function(e){return{name:e[r],value:Number(e[o])}})):c.map((function(e){return{name:e[r],value:Number(e[o])}})),t.aggregator?function(e,t){var n=Object(Qe.groupBy)(e,(function(e){return e.name}));return Object.keys(n).map((function(e){var a=n[e].reduce((function(e,t){return e+t.value}),0),r=a/n[e].length;return{name:e,value:"sum"===t?a:r}}))}(c,t.aggregator):c},at=function(e){return e.split(",").map((function(e){return parseFloat(e)}))},rt=["Waiga Primary School","Gods Mercy Primary School","Bukeeka COU Primary School"],ot=["Bukeeka COU Primary School","Kungu CU Primary School","King Jesus Nursery And Primary School","Nile View Primary School","Imam Hassan Primary School Maligita","Bright Future Nursery And Primary School Kangulumira"];function it(e){return"numberOfPrimarySchools"===e?{level:"Primary",ownership:"all"}:"numberOfSecondarySchools"===e?{level:"Secondary",ownership:"all"}:"numberOfGovernmentPrimarySchools"===e?{level:"Primary",ownership:"Government"}:"numberOfPrivatePrimarySchools"===e?{level:"Primary",ownership:"Private"}:"numberOfGovernmentSecondarySchools"===e?{level:"Secondary",ownership:"Government"}:"numberOfPrivateSecondarySchools"===e?{level:"Secondary",ownership:"Private"}:""}var ct,st=function(e,t,n,a){!function(e,t,n){var a=n.popup,r=n.nameProperty,o=n.formatter,i=n.data,c=function(e,t){if(e.features&&e.features[0].properties){var n=e.features[0].geometry;if("Polygon"===n.type||"MultiPolygon"===n.type)return e.features[0].properties[t]||null}return null}(t,r);if(c){var s=o?o(c,"tooltip"):c;if(i){var l=Fe(s,i);Te(e,a,t.lngLat,s,Pe(n,l))}else Te(e,a,t.lngLat,s,"")}}(t,n,Object.assign({},a,{popup:e}))},lt=new je.Popup({offset:5}),ut=new je.Popup({offset:5}),dt=function(e,t,n,a){void 0===a&&(a={});var r=Object(u.useState)(),o=r[0],i=r[1],c=Object(u.useState)(a),d=c[0],f=c[1],p=Object(u.useState)([]),b=p[0],m=p[1],g=Object(u.useState)(),h=g[0],v=g[1],y=Object(u.useState)(""),O=y[0],w=y[1],j=Object(u.useCallback)((function(e){o.getCanvas().style.cursor="pointer",st(lt,o,e,Object.assign({},t,{data:b},d))}),[o,b,d]),x=Object(u.useCallback)((function(){o.getCanvas().style.cursor="",lt.remove()}),[o,e]),C=Object(u.useCallback)((function(e){e.preventDefault(),o.off("mousemove","highlight",j),lt.remove(),e.features.length&&o.setLayoutProperty("points","icon-size",["match",["get","name"],e.features[0].properties.name,.4,.2])}),[o,h]),S=Object(u.useCallback)((function(e){for(var t=e.features[0].geometry.coordinates.slice(),n=e.features[0].properties,a=n.name,r=n.parish,i=n.ownership;Math.abs(e.lngLat.lng-t[0])>180;)t[0]+=e.lngLat.lng>t[0]?360:-360;ut.setLngLat(t).setHTML('\n
\n
\n '+a+"\n
\n

Coordinates: "+t+"

\n

Ownership: "+i+"

\n

Parish: "+(r||"No parish data")+"

\n
\n ").addTo(o)})),E=Object(u.useCallback)((function(){o.on("mousemove","highlight",j),lt.remove(),o.setLayoutProperty("points","icon-size",.2)}),[o,e]);return Object(u.useEffect)((function(){o&&(o.getLayer("points")&&o.removeLayer("points"),h&&o.loadImage("https://docs.mapbox.com/mapbox-gl-js/assets/custom_marker.png",(function(e,t){if(e)throw e;o.hasImage("custom-marker")||o.addImage("custom-marker",t,{sdf:!0}),o.getSource("points")||o.addSource("points",{type:"geojson",data:h,generateId:!0}),o.getLayer("points")||o.addLayer({id:"points",type:"symbol",source:"points",layout:{"icon-image":"custom-marker","icon-anchor":"bottom","icon-size":.2,"icon-allow-overlap":!0},paint:{"icon-color":["match",["get","level"],"Primary","#ff9c1a","Secondary","#00b3b3","#ffffff"]},minzoom:8}),o.getSource("points").setData(h)})))}),[o,b,h,O]),Object(u.useEffect)((function(){o&&(o.getStyle().layers.forEach((function(e){["background","highlight"].includes(e.id)||o.setLayoutProperty(e.id,"visibility","none")})),function(e,t,n){t.clientWidth<700?e.setZoom(n.zoom?n.zoom-1:5):t.clientWidth<900?e.setZoom(n.minZoom?n.minZoom+.8:5.8):e.setZoom(n.zoom||6.1)}(o,o.getContainer(),t),o.off("mousemove","points",C),o.off("mouseleave","highlight",x),o.off("mouseover","highlight",j),o.off("click","points",S),o.on("mousemove","highlight",j),o.on("mouseleave","highlight",x),o.on("mousemove","points",C),o.on("mouseleave","points",E),o.on("click","points",S))}),[o,e,d,b]),Object(u.useEffect)((function(){var t=function(){var e=Object(l.a)(s.a.mark((function e(t,a){var r,o;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(t||a&&n)){e.next=6;break}return r=t?F(t):T(a,n),e.next=4,r;case 4:o=e.sent,m(nt(o,d.indicator,d.year));case 6:case"end":return e.stop()}}),e)})));return function(t,n){return e.apply(this,arguments)}}();d.indicator&&d.year&&(w(it(d.indicator.id)),v(function(e,t,n,a,r){var o={type:"FeatureCollection",features:[]};return t&&(n||a&&r)&&(n||a&&r)?((n?F(n):T(a,r)).then((function(n){var a=n.filter((function(t){return"Masindi"===e?!rt.includes(t.school_name):!ot.includes(t.school_name)}));"all"===t.ownership?a.filter((function(e){return e.level===t.level})).forEach((function(e){if(e.gps_coordinates){var t=at(e.gps_coordinates);t&&o.features.push({type:"Feature",geometry:{type:"Point",coordinates:[t[1],t[0]]},properties:{level:e.level,ownership:e.ownership,name:e.school_name,parish:e.parish}})}})):a.filter((function(e){return e.level===t.level&&e.ownership===t.ownership})).forEach((function(e){if(e.gps_coordinates){var t=at(e.gps_coordinates);t&&o.features.push({type:"Feature",geometry:{type:"Point",coordinates:[t[1],t[0]]},properties:{level:e.level,ownership:e.ownership,name:e.school_name,parish:e.parish}})}}))})).catch((function(e){console.log(e)})),o):o}(e.name,it(d.indicator.id),d.indicator.schoolLocationUrl,d.indicator.schoolLocationdataID,n)),t(d.indicator.url,d.indicator.dataID))}),[d.indicator,d.year]),{map:o,data:b,setData:m,setMap:i,setOptions:f}},ft=function(e,t,n,a,o){var i=[a].map((function(e){return Object(r.c)(Ce,{key:"highlight-hidden",id:e.layerName,source:"composite","source-layer":e.sourceLayer,show:!1})}));function c(e,t){tt(e,t,n,Object.assign({},a,{nameProperty:a.districtNameProperty}))}if(!e&&o.range&&o.colours&&t.length){var s=function(e,t,n,a){return e&&t&&n?e.map((function(e){var r=Le(e.name,a),o=t.find((function(t){return null!==e.value&&e.value<=parseFloat(t)}));return o?[r,n[t.indexOf(o)]]:e.value>parseFloat(t[t.length-1])?[r,n[n.length-1]]:[r,"#b3adad"]})):[]}(t,o.range,o.colours,a.formatter);return i.concat(Object(r.c)(Ce,{key:"highlight",id:"highlight",source:"composite","source-layer":a.sourceLayer,maxzoom:a.maxZoom&&a.maxZoom+2,type:"fill",paint:{"fill-color":{property:a.nameProperty,type:"categorical",default:"#D1CBCF",stops:s},"fill-opacity":.9,"fill-outline-color":"#ffffff"},onAdd:c}))}return i.concat(Object(r.c)(Ce,{key:"highlight",id:"highlight",source:"composite","source-layer":a.sourceLayer,maxzoom:a.maxZoom&&a.maxZoom+2,type:"fill",paint:{"fill-color":"#D1CBCF","fill-opacity":.75,"fill-outline-color":"#ffffff"},onAdd:c}))},pt={topic:null,indicator:null,year:null},bt=m.a.div(ct||(ct=Object(b.a)(["\n position: absolute;\n top: 1.75em;\n z-index: 1;\n left: 1.4em;\n"])));function mt(e,t){switch(t.type){case"UPDATE_FILTERS":return Object.assign({},e,{filterOptions:t.merge?Object.assign({},e.filterOptions,t.filterOptions):t.filterOptions,activeTopic:t.activeTopic,activeIndicator:t.activeIndicator,activeYear:t.activeYear});case"SET_DATA":return Object.assign({},e,{data:t.data});case"RESET_FILTERS":return Object.assign({},e,{filterOptions:pt});default:throw new Error}}var gt={filterOptions:pt},ht=function(e){var t=Object(u.useState)(!0),n=t[0],a=t[1],o=Object(u.useReducer)(mt,gt),i=o[0],c=o[1],s=i.filterOptions,l=i.activeIndicator,d=i.activeTopic,f=i.activeYear,p=dt(e.location,e.configs.formatter?Object.assign({},et,{formatter:e.configs.formatter}):et,e.baseAPIUrl),b=p.data,m=p.map,g=p.setMap,h=p.setOptions;Object(u.useEffect)((function(){if(l){var e=s.year;h({dataPrefix:l.name+": ",dataSuffix:e&&" in "+e,indicator:l,year:e})}}),[l,s.year,m]);var v,y,O=function(t,n){void 0===n&&(n=!0);var a=function(e,t){var n=t.topic,a=t.indicator,r=t.year;if(n){var o=e.find((function(e){return e.id===n}));if(o&&a){var i=o.indicators.find((function(e){return e.id===a}));if(i)return{topic:o,indicator:i,year:r}}return{topic:o}}return{}}(e.configs.data,Object.assign({},s,t)),r=a.topic,o=a.indicator,i=a.year;c({type:"UPDATE_FILTERS",merge:n,filterOptions:t,activeTopic:r,activeIndicator:o,activeYear:i})},w=(v=e.configs.data,y=s.topic,v.find((function(e){return e.id===y}))),j=Object(u.useMemo)((function(){return{filters:e.filters,topics:e.configs.data,filterOptions:s,updateFilterOptions:O,activeTopic:d,activeIndicator:l,activeYear:f}}));return Object(r.c)(_e.Provider,{value:j},Object(r.c)("div",{className:"spotlight"},Object(r.c)("div",{className:"spotlight__aside spotlight__aside--no-margin",css:{minHeight:"600px"}},Object(r.c)($e,null)),Object(r.c)("div",{className:"spotlight__main spotlight__main--map"},n?Object(r.c)("div",null,"Loading ..."):null,w&&w.dashboardUrl?Object(r.c)(bt,null,Object(r.c)("a",{href:w.dashboardUrl,className:"button button--secondary--fill"},w.dashboardButtonCaption)):null,Object(r.c)(Ee,{accessToken:"pk.eyJ1IjoiZWR3aW5tcCIsImEiOiJjazFsdHVtcG0wOG9mM2RueWJscHhmcXZqIn0.cDR43UvfMaOY9cNJsEKsvg",options:Object.assign({style:et.style,center:et.center,minZoom:et.minZoom||6,zoom:et.zoom||6.1,maxZoom:et.maxZoom||7,scrollZoom:!1},e.configs.options),style:{width:"100%",background:"#ffffff"},onLoad:function(e){a(!1),g(e)}},ft(n,b,e.location,e.configs.formatter?Object.assign({},et,{formatter:e.configs.formatter}):et,l?{range:l.range,colours:l.colours}:{})))))};ht.defaultProps={data:[]},ht.propTypes={configs:p.a.object,filters:p.a.object,data:p.a.array,location:p.a.shape({name:p.a.string,fullName:p.a.string,coordinates:p.a.array}),baseAPIUrl:p.a.string};var vt,yt,Ot,wt,jt,xt,Ct,St=ht,Et=m.a.div(vt||(vt=Object(b.a)(["\n background: #ffffff;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n"]))),Nt=function(){return d.a.createElement(Et,null,d.a.createElement(te,null))},kt=function(e){window.DICharts.handler.addChart({className:e,echarts:{onAdd:function(e){Array.prototype.forEach.call(e,(function(e){var t=new window.DICharts.Chart(e.parentElement);if(t.showLoading(),window.DIState){var n=Object(o.createRoot)(e);window.DIState.addListener((function(){t.showLoading();var e=window.DIState.getState,a=e.map,r=e.location,o=e.baseAPIUrl;a?n.render(d.a.createElement(St,{configs:a,location:r,filters:a.filters,baseAPIUrl:o})):n.render(d.a.createElement(Nt,null)),t.hideLoading()}))}else window.console.log("State is not defined")}))}}})},Lt=n(46),Pt=function(e){var t=e.close,n=e.description,a=e.source;return Object(r.c)("div",{className:"spotlight-modal",css:Object(r.b)(Ot||(Ot=Object(b.a)(["\n font-size: 12px;\n "])))},Object(r.c)("a",{className:"close",onClick:t,css:Object(r.b)(wt||(wt=Object(b.a)(["\n cursor: pointer;\n position: absolute;\n display: block;\n padding: 5px 10px;\n line-height: 20px;\n right: 0px;\n top: 0px;\n font-size: 20px;\n background: transparent;\n color: #333131;\n font-weight: 900;\n "])))},"×"),Object(r.c)("div",{className:"content",css:Object(r.b)(jt||(jt=Object(b.a)(["\n width: 100%;\n padding: 10px 5px 10px 5px;\n "])))},Object(r.c)("p",{className:"description",css:Object(r.b)(xt||(xt=Object(b.a)(["\n font-size: 14px;\n "])))},n),a?Object(r.c)(d.a.Fragment,null,Object(r.c)("br",null),Object(r.c)("p",{className:"source",css:Object(r.b)(Ct||(Ct=Object(b.a)(["\n text-align: left;\n "])))},a?Object(r.c)(d.a.Fragment,null,Object(r.c)("b",{css:Object(r.b)(yt||(yt=Object(b.a)(["\n font-family: Geomanist Bold, sans-serif;\n "])))},"Source:"," "),a):null)," "):null))};Pt.propTypes={description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string,close:p.a.func.isRequired};var It,At,Tt=Pt,Ft=function(e){return Object(r.c)(Lt.a,{trigger:Object(r.c)("span",{className:"spotlight__stat-icon",css:Object(r.b)(It||(It=Object(b.a)(["\n display: inline-flex;\n margin-left: 2px;\n cursor: pointer;\n padding: 8px;\n "])))},Object(r.c)("i",{onClick:function(){document.querySelectorAll(".popup-content ").forEach((function(e){e.setAttribute("style","display:none;")}))},role:"presentation","aria-hidden":"true",className:"ico ico--12 ico-info-slate",css:Object(r.b)(At||(At=Object(b.a)(["\n top: -1px;\n "])))})),offsetX:20,arrowStyle:{height:"10px",width:"10px",position:"absolute",background:"rgb(255, 255, 255)",transform:"rotate(225deg)",margin:"-5px",zIndex:-1,boxShadow:"rgb(0 0 0 / 20%) 1px 1px 1px",bottom:"0%",left:"82px"},position:"bottom center",closeOnDocumentClick:!0,contentStyle:{zIndex:200,width:"350px",background:"#fff",fontWeight:400,fontStyle:"normal",fontSize:"12px",color:"#60575d",border:0,borderRadius:"0.28571429rem",boxShadow:"0 2px 4px 0 rgba(34, 36, 38, 0.12), 0 2px 10px 0 rgba(34, 36, 38, 0.15)",padding:"5px"}},(function(t){return Object(r.c)(Tt,{close:t,description:e.description,source:e.source})}))};Ft.propTypes={description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string};var Dt=Ft,_t=function(e){var t=e.meta,n=void 0===t?{}:t,a=e.heading,r=e.children;return d.a.createElement("div",{className:"spotlight__stat"},d.a.createElement("h3",{className:"spotlight__stat-heading"},a,n.description||n.source?d.a.createElement(Dt,{description:n.description,source:n.source}):null),r)};_t.defaultProps={meta:{}},_t.propTypes={heading:p.a.string,meta:p.a.shape({description:p.a.oneOfType([p.a.string,p.a.element]),source:p.a.string}),children:p.a.any};var Rt,zt=_t,Ut=function(e){var t=e.value,n=e.note;return Object(r.c)("p",{className:"spotlight__stat-data"},t,n&&n.content?Object(r.c)("span",{className:"spotlight__stat-data__note",css:Object(r.b)(Rt||(Rt=Object(b.a)(["\n transform: none;\n position: relative;\n top: -10px;\n "])))},n.content," ",n.meta?Object(r.c)(Dt,{description:n.meta.description,source:n.meta.source}):null):null)};Ut.propTypes={note:p.a.object,value:p.a.string};var qt,Mt=Ut,Vt=function(e){var t=e.children;return Object(r.c)("article",{className:"tabs__content",css:Object(r.b)(qt||(qt=Object(b.a)(["\n z-index: 200;\n "])))},t)};Vt.propTypes={children:p.a.any};var Bt=Vt,Gt=function(e){var t=e.id,n=e.active,a=e.label,r=e.children,o=e.onActivate;return d.a.createElement("section",{className:"tabs__container",id:t},d.a.createElement("input",{className:"tabs__input",type:"radio",name:"sections",id:t+"-option",defaultChecked:n}),d.a.createElement("label",{className:"tabs__label",htmlFor:t+"-option",onClick:o},a),u.Children.map(r,(function(e){return Object(u.isValidElement)(e)&&e.type===Bt?e:null})))};Gt.propTypes={id:p.a.string.isRequired,label:p.a.string.isRequired,active:p.a.bool,onActivate:p.a.func,children:p.a.any};var Zt=Gt,Yt=function(e){var t=e.children,n=e.onClick;return d.a.createElement("div",{className:"tabs__content__header",onClick:n},t)};Yt.propTypes={children:p.a.any,onClick:p.a.func};var Wt,Ht,Jt,Kt,Xt,$t=Yt,Qt=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="education",c=V(o.tabs,i);if(void 0!==c.show&&!c.show)return null;var s=n&&n.education?n.education.find((function(e){return"Number of Schools"===e.caption})):null;return Object(r.c)(Zt,{id:i,label:c.label||"Education",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,s?Object(r.c)("div",{css:Object(r.b)(Wt||(Wt=Object(b.a)(["\n display: flex;\n "])))},Object(r.c)("div",{css:Object(r.b)(Ht||(Ht=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(Jt||(Jt=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Number of Schools in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(Kt||(Kt=Object(b.a)(["\n font-size: 3rem;\n "])))},I(s.value)),Object(r.c)(Dt,{description:"Last updated: "+s.lastUpdated})),c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null):null),Object(r.c)("div",{className:"l-2up"},n&&n.education?n.education.filter((function(e){return"Number of Schools"!==e.caption})).map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(Xt||(Xt=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))})):null)))};Qt.propTypes={active:p.a.bool};var en,tn,nn,an,rn,on=Qt,cn=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="overview",c=V(o.tabs,i);return void 0===c.show||c.show?Object(r.c)(Zt,{id:i,label:c.label||"Overview",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,n&&n.population?Object(r.c)("div",{css:Object(r.b)(en||(en=Object(b.a)(["\n display: flex;\n "])))},Object(r.c)("div",{css:Object(r.b)(tn||(tn=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(nn||(nn=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Total Population in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(an||(an=Object(b.a)(["\n font-size: 3rem;\n "])))},I(n.population.value)),Object(r.c)(Dt,{description:"Last updated: "+n.population.lastUpdated})),c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null):null),Object(r.c)("div",{className:"l-2up"},n&&n.administration?n.administration.map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(rn||(rn=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))})):null))):null};cn.propTypes={active:p.a.bool};var sn,ln,un,dn,fn,pn,bn=cn,mn=function(e){var t=Object(u.useContext)(De),n=t.data,a=t.location,o=t.options,i="production",c=V(o.tabs,i);if(void 0!==c.show&&!c.show)return null;var s=n&&n.production?n.production.find((function(e){return""===e.caption})):null;return Object(r.c)(Zt,{id:i,label:c.label||"Production",active:!!e.active||c.active},Object(r.c)(Bt,null,Object(r.c)($t,null,Object(r.c)("div",{css:Object(r.b)(sn||(sn=Object(b.a)(["\n display: flex;\n "])))},s?Object(r.c)("div",{css:Object(r.b)(ln||(ln=Object(b.a)(["\n margin-right: 1rem;\n "])))},Object(r.c)("span",{css:Object(r.b)(un||(un=Object(b.a)(["\n font-size: 2.5rem;\n "])))},"Number of Schools in ",a.name," is"," "),Object(r.c)("b",{css:Object(r.b)(dn||(dn=Object(b.a)(["\n font-size: 3rem;\n "])))},I(s.value)),Object(r.c)(Dt,{description:"Last updated: "+s.lastUpdated})):null,c.dashboardURL?Object(r.c)("a",{href:c.dashboardURL,className:"button button--secondary--fill"},c.dashboardButtonCaption||"View Full Dashboard"):null)),n&&n.production&&n.production.length?Object(r.c)("div",{className:"l-2up"},n.production.filter((function(e){return""!==e.caption})).map((function(e){return Object(r.c)("div",{className:"l-2up__col",key:e.caption},Object(r.c)(zt,{heading:e.caption,meta:{description:Object(r.c)("span",{css:Object(r.b)(fn||(fn=Object(b.a)(["\n display: flex;\n justify-content: center;\n "])))},"Last updated: "+e.lastUpdated)}},Object(r.c)(Mt,{value:e.value})))}))):Object(r.c)("div",{css:Object(r.b)(pn||(pn=Object(b.a)(["\n font-size: 16px;\n display: flex;\n justify-content: center;\n width: 100%;\n "])))},"No Production Data")))};mn.propTypes={active:p.a.bool};var gn,hn=mn,vn=function(e){var t=e.children;return Object(r.c)("div",{className:"tabs",css:Object(r.b)(gn||(gn=Object(b.a)(["\n z-index: 0;\n "])))},t)};vn.propTypes={children:p.a.any};var yn=vn,On=function(e){var t=Object(u.useState)({}),n=t[0],a=t[1];return Object(u.useEffect)((function(){e.data&&a(function(e){var t={},n=function(e){return{caption:e.Item,value:e.Value,lastUpdated:e["Last Updated"]}},a=e.find((function(e){return"Total Population"===e.Item}));return a&&(t.population=n(a)),t.administration=e.filter((function(e){return"Total Population"!==e.Item&&"Administration"===e.Department})).map(n),t.education=e.filter((function(e){return"Total Population"!==e.Item&&"Education"===e.Department})).map(n),t.production=e.filter((function(e){return"Total Population"!==e.Item&&"Production"===e.Department})).map(n),t}(e.data))}),[e.data]),Object(r.c)(De.Provider,{value:Object.assign({},e,{data:n})},Object(r.c)(yn,null,Object(r.c)(bn,{active:!0}),Object(r.c)(on,null),Object(r.c)(hn,null)))};On.propTypes={data:p.a.array.isRequired,location:p.a.object.isRequired,options:p.a.object.isRequired};var wn=On,jn=function(e){window.DICharts.handler.addChart({className:e,echarts:{onAdd:function(e){Array.prototype.forEach.call(e,(function(e){var t=new window.DICharts.Chart(e.parentElement);if(t.showLoading(),window.DIState){var n=Object(o.createRoot)(e);window.DIState.addListener((function(){t.showLoading();var e=window.DIState.getState,a=e.keyFacts,r=e.location,o=e.baseAPIUrl;(null==a?void 0:a.url)||(null==a?void 0:a.dataID)&&o?((null==a?void 0:a.url)?F(null==a?void 0:a.url):T(null==a?void 0:a.dataID,o)).then((function(e){Array.isArray(e)?n.render(d.a.createElement(wn,{data:e,options:a,location:r})):e.results?n.render(d.a.createElement(wn,{data:e.results,options:a,location:r})):(window.console.error("Invalid data shape. Expected an array or an object with a results property.",e),n.render(d.a.createElement(Nt,null)))})).catch((function(e){window.console.log(e),n.render(d.a.createElement(Nt,null))})):a&&a.data?n.render(d.a.createElement(wn,{data:a.data,options:a,location:r})):n.render(d.a.createElement(Nt,null));t.hideLoading()}))}else window.console.log("State is not defined")}))}}})},xn=function(e){var t=[{color:"#3b8c62",caption:"Achieved"},{color:"#f7a838",caption:"Moderately satisfactory"},{color:"#cd2b2a",caption:"Not achieved"},{color:"#cdcfd1",caption:"Not assessed"}];Object(u.useEffect)((function(){var e=document.querySelector(".score-table-legend"),n=""+t.map((function(e){return'\n \n \n "})).join("");e.innerHTML=n}));var n=function(t,n){return void 0===n&&(n=!1),t.map((function(t,a){return Object(r.c)("tr",{key:a},t.map((function(t,a){return n?Object(r.c)("th",{key:a},t):Object(r.c)("td",{css:{backgroundColor:H(t,e.thresholds),color:H(t,e.thresholds)?"white":"black"},key:a},0===Number(t)?"":t)})))}))};return Object(r.c)(d.a.Fragment,null,Object(r.c)("div",{className:"score-table-legend custom-legend"}),Object(r.c)(le,null,Object(r.c)("thead",null,e.rows&&n(e.rows.filter((function(e,t){return 0===t})),!0)),Object(r.c)("tbody",null,e.rows&&n(e.rows.filter((function(e,t){return t>0}))))))};xn.propTypes={rows:p.a.arrayOf(p.a.array),thresholds:p.a.object};var Cn=xn,Sn=function(){var e=Object(l.a)(s.a.mark((function e(t,n,a,r){var o,i,c,l,u,f;return s.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=t.data,i=t.config,c=t.subCounty,l=t.tableRoot,u=i.selectors.map((function(e){return{property:e.dataProperty,value:"all"}})),f=function(e,t){var n=Array.isArray(t)?t[0].value:t.value;if(n){var s=u.find((function(t){return t.property===e.config.dataProperty}));if(s){s.value=n;var f=u.reduce((function(e,t){return"all"===t.value?e:B(e,t.property,t.value)}),o);if("scoreCard"===a){var p=W(i,f,c);l.render(d.a.createElement(Cn,{rows:p,thresholds:r}))}else{var b=Y(i,f,c);l.render(d.a.createElement(de,{rows:b}))}}}},e.abrupt("return",R(i.selectorClassName,{selectors:i.selectors,onChange:f,makeSticky:!1,nodes:n}));case 4:case"end":return e.stop()}}),e)})));return function(t,n,a,r){return e.apply(this,arguments)}}(),En=function(e){(function(e){return e.className?e.mapping?e.mapping.rows?e.mapping.year?e.mapping.value?!!e.mapping.subCounty||(window.console.error("Invalid table config: mapping.subCounty is required!"),!1):(window.console.error("Invalid table config: mapping.value is required!"),!1):(window.console.error("Invalid table config: mapping.year is required!"),!1):(window.console.error("Invalid table config: mapping.series is required!"),!1):(window.console.error("Invalid table config: mapping is required!"),!1):(window.console.error("Invalid table config: className is required!"),!1)})(e)&&window.DICharts.handler.addChart({className:e.className,d3:{onAdd:function(t){if(window.DIState){var n=window.DIState.getState.baseAPIUrl;(e.url?F(e.url):T(e.dataID,n)).then((function(n){Array.prototype.forEach.call(t,(function(t){var a=new window.DICharts.Chart(t.parentElement);a.showLoading();var r=Object(o.createRoot)(t),i="all",c=[];window.DIState.addListener((function(){a.showLoading();var o=window.DIState.getState.subCounty,s=e.tableType,l=e.thresholds;if(o!==i){i=o||"all";var u=e.filters&&e.filters.subCounties?function(e,t,n){return e.filter((function(e){return!t||"all"===t||e[n].toLowerCase()===t.toLowerCase()}))}(n,i,e.mapping.subCounty):n;if("scoreCard"===s){var f=W(e,u,i);r.render(d.a.createElement(Cn,{rows:f,thresholds:l}))}else{var p=Y(e,u,i);r.render(d.a.createElement(de,{rows:p}))}e.selectors&&e.selectors.length&&Sn({data:u,subCounty:i,config:e,tableRoot:r},c,s,l).then((function(e){c=e})),a.hideLoading(),t.parentElement.classList.add("auto-height")}}))}))}))}}}})},Nn=function(){if(window.DIState){var e=[];window.DIState.addListener((function(){var t=window.DIState.getState.tables;t&&e.length!==t.length&&(e=t).forEach((function(e){En(e)}))}))}else window.console.log("State is not defined")};n(103);window.addEventListener("load",(function(){R("district-selectors",{makeSticky:!0}),kt("dicharts--district-map"),Nn(),jn("dicharts--keyfacts"),we()}))},50:function(e,t,n){e.exports=n(104)}},[[50,1,2]]]); \ No newline at end of file diff --git a/src/core/components/ScoreCardTable.js b/src/core/components/ScoreCardTable.js index c736eaf3..25af7f99 100644 --- a/src/core/components/ScoreCardTable.js +++ b/src/core/components/ScoreCardTable.js @@ -1,6 +1,7 @@ /** @jsx jsx */ import { jsx } from '@emotion/react'; -import { useEffect } from 'react'; +// eslint-disable-next-line no-unused-vars +import React, { useEffect } from 'react'; import PropTypes from 'prop-types'; import Table from '../../components/Table'; import { getTableCellColor } from '../utils/tables'; @@ -13,7 +14,8 @@ const ScoreCardTable = (props) => { { color: '#cdcfd1', caption: 'Not assessed' } ]; useEffect(() => { - const legendContainer = document.createElement('div'); + const legendContainer = document.querySelector('.score-table-legend'); + const legendContent = `${scoreCardLegendData .map( (item) => @@ -23,21 +25,7 @@ const ScoreCardTable = (props) => { ` ) .join('')}`; - legendContainer.classList.add('custom-legend', 'score-table-legend'); legendContainer.innerHTML = legendContent; - const tableContainer = document.querySelector('.score-table-container'); - const { firstChild } = tableContainer; - if (firstChild) { - tableContainer.insertBefore(legendContainer, firstChild); - } else { - tableContainer.appendChild(legendContainer); - } - - return () => { - if (tableContainer) { - tableContainer.removeChild(legendContainer); - } - }; }); const renderRows = (rows, header = false) => @@ -62,7 +50,8 @@ const ScoreCardTable = (props) => { )); return ( -
+ <> +
{props.rows && @@ -73,7 +62,7 @@ const ScoreCardTable = (props) => { {props.rows && renderRows(props.rows.filter((row, index) => index > 0))}
-
+ ); };