@ohdsi/atlascharts
Version:
Visualizations is a collection of JavaScript modules to support D3 visualizations in web-based applications
106 lines • 60.7 kB
JavaScript
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);$jscomp.inherits=function(a,m){function f(){}f.prototype=m.prototype;a.superClass_=m.prototype;a.prototype=new f;a.prototype.constructor=a;for(var b in m)if("prototype"!=b)if(Object.defineProperties){var c=Object.getOwnPropertyDescriptor(m,b);c&&Object.defineProperty(a,b,c)}else a[b]=m[b]};
$jscomp.owns=function(a,m){return Object.prototype.hasOwnProperty.call(a,m)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,m,f){a!=Array.prototype&&a!=Object.prototype&&(a[m]=f.value)};
$jscomp.polyfill=function(a,m,f,b){if(m){f=$jscomp.global;a=a.split(".");for(b=0;b<a.length-1;b++){var c=a[b];c in f||(f[c]={});f=f[c]}a=a[a.length-1];b=f[a];m=m(b);m!=b&&null!=m&&$jscomp.defineProperty(f,a,{configurable:!0,writable:!0,value:m})}};$jscomp.polyfill("Object.assign",function(a){return a?a:function(a,f){for(var b=1;b<arguments.length;b++){var c=arguments[b];if(c)for(var e in c)$jscomp.owns(c,e)&&(a[e]=c[e])}return a}},"es6","es3");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(a){return $jscomp.SYMBOL_PREFIX+(a||"")+$jscomp.symbolCounter_++};
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var m=0;return $jscomp.iteratorPrototype(function(){return m<a.length?{done:!1,value:a[m++]}:{done:!0}})};
$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.iteratorFromArray=function(a,m){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var f=0,b={next:function(){if(f<a.length){var c=f++;return{value:m(c,a[c]),done:!1}}b.next=function(){return{done:!0,value:void 0}};return b.next()}};b[Symbol.iterator]=function(){return b};return b};
$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a){return a})}},"es6","es3");$jscomp.polyfill("Array.prototype.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a,f){return f})}},"es6","es3");$jscomp.polyfill("Object.values",function(a){return a?a:function(a){var f=[],b;for(b in a)$jscomp.owns(a,b)&&f.push(a[b]);return f}},"es8","es3");
$jscomp.findInternal=function(a,m,f){a instanceof String&&(a=String(a));for(var b=a.length,c=0;c<b;c++){var e=a[c];if(m.call(f,e,c,a))return{i:c,v:e}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,f){return $jscomp.findInternal(this,a,f).v}},"es6","es3");
define("atlascharts/chart",["d3","lodash","d3-tip"],function(a,m,f){var b=function(){};b.prototype.render=function(a,b,k,h,g){var c=this;"string"==typeof b&&(b=document.querySelector(b));this.cachedData=a;this.doResize||(this.doResize=m.debounce(function(){c.render(c.cachedData,b,b.clientWidth,b.clientHeight,g)},250),window.addEventListener("resize",this.doResize))};b.prototype.getOptions=function(c,b){return Object.assign({},{margins:{top:10,right:10,bottom:10,left:10},xFormat:a.format(",.0f"),yFormat:a.format("s"),
colors:a.scaleOrdinal(a.schemeCategory20.concat(a.schemeCategory20c))},Object.assign({},c),Object.assign({},b))};b.prototype.createSvg=function(c,b,k){this.destroyTipIfExists();c=a.select(c);c.select("svg").remove();return this.chart=b=c.append("svg").attr("preserveAspectRatio","xMinYMin meet").attr("viewBox","\n\t 0\n\t 0\n\t "+b+"\n\t "+k).append("g").attr("class","chart")};b.prototype.useTip=function(a,b){a=void 0===a?function(){}:a;this.destroyTipIfExists();this.tip=
f().attr("class","d3-tip");a(this.tip,b);this.chart&&this.chart.call(this.tip);return this.tip};b.prototype.destroyTipIfExists=function(){this.tip&&this.tip.destroy()};b.normalizeDataframe=function(c){var b=a.keys(c),k=Object.assign({},c);b.forEach(function(a){c[a]instanceof Array||(k[a]=[c[a]])});return k};b.dataframeToArray=function(c){var b=a.keys(c);return c[b[0]]instanceof Array?c[b[0]].map(function(a,h){var e={};b.forEach(function(a){e[a]=c[a][h]});return e}):[c]};b.prototype.truncate=function(c,
b){c.each(function(){for(var c=a.select(this),e=c.text(),g=c.node().getComputedTextLength(),d=c.text();g>b&&0<d.length;)d=d.slice(0,-1),c.text(d+"..."),g=c.node().getComputedTextLength();c.append("title").text(e)})};b.prototype.wrap=function(c,b,k){c.each(function(){for(var c=a.select(this),e=c.text(),d=c.text().split(/\s+/).reverse(),q=[],l,p=0,f=0,m=c.attr("y"),t=parseFloat(c.attr("dy")),n=c.text(null).append("tspan").attr("x",0).attr("y",m).attr("dy",t+"em");l=d.pop();)if(q.push(l),n.text(q.join(" ")),
n.node().getComputedTextLength()>b&&(1<q.length&&(q.pop(),d.push(l),q=k&&++f===k?q.splice(0,q.length-1).join(" ")+"...":q.join(" "),n.text(q)),q=[],n=c.append("tspan").attr("x",0).attr("y",m).attr("dy",1.1*++p+t+"em"),k&&k===f)){n.remove();break}c.append("title").text(e)})};b.prototype.tooltipFactory=function(a){return function(c){var b="";if(void 0!==a)for(var e=0;e<a.length;e+=1){var g=a[e].accessor(c);void 0!==a[e].format&&(g=a[e].format(g));b+=a[e].label+": "+g+"\x3c/br\x3e"}return b}};b.prototype.lineDefaultTooltip=
function(a,b,k,h,g,d,q){return function(c){var e="";q(c)&&(e="Series: "+q(c)+"\x3c/br\x3e");e+=a+": "+b(k(c))+"\x3c/br\x3e";return e+=h+": "+g(d(c))}};b.prototype.donutDefaultTooltip=function(a,b,k){return function(c){return a(c)+": "+b(c)+" ("+k(c)+")"}};b.mapMonthYearDataToSeries=function(a,b){var c=Object.assign({},{dateField:"x",yValue:"y",yPercent:"p"},b),e={name:"All Time",values:[]};a[c.dateField].map(function(b,d){e.values.push({xValue:new Date(Math.floor(a[c.dateField][d]/100),a[c.dateField][d]%
100-1,1),yValue:a[c.yValue][d],yPercent:a[c.yPercent][d]})});e.values.sort(function(a,c){return a.xValue-c.xValue});return[e]};b.prepareData=function(a,b){switch(b){case this.chartTypes.BOXPLOT:if(!a.CATEGORY.length)return null;b=a.CATEGORY.map(function(b,c){return{Category:a.CATEGORY[c],min:a.MIN_VALUE[c],max:a.MAX_VALUE[c],median:a.MEDIAN_VALUE[c],LIF:a.P10_VALUE[c],q1:a.P25_VALUE[c],q3:a.P75_VALUE[c],UIF:a.P90_VALUE[c]}},a);return Object.values(b).reduce(function(a,b){return a.concat(b)},[]).length?
b:null}};b.prototype.dispose=function(){this.destroyTipIfExists();this.doResize&&window.removeEventListener("resize",this.doResize)};$jscomp.global.Object.defineProperties(b.prototype,{formatters:{configurable:!0,enumerable:!0,get:function(){return{formatSI:function(b){b=b||0;var c=a.format(",."+b+"s");return function(a){return 1>a?a.toFixed(b).replace(/(\.0*|(?<=(\.[0-9]*))0*)$/,""):c(a).replace(/(\.0*|(?<=(\.[0-9]*))0*)$/,"")}}}}}});$jscomp.global.Object.defineProperties(b,{chartTypes:{configurable:!0,
enumerable:!0,get:function(){return{AREA:"AREA",BOXPLOT:"BOXPLOT",DONUT:"DONUT",HISTOGRAM:"HISTOGRAM",LINE:"LINE",TRELLISLINE:"TRELLISLINE"}}}});return b});
define("atlascharts/aster",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){m.prototype.render.call(this,b,c,e,k,h);var g=this.getOptions({maxPercent:100},h);c=this.createSvg(c,e,k);h=c.append("g").attr("transform","translate("+e/2+", "+k/2+")");k=Math.min(e-10,k-10)/2;var d=.3*k,q=a.scaleLinear().domain([0,g.maxPercent]).range([d,k]);e=a.arc().innerRadius(d).outerRadius(function(a){return q(a.data.percent)});
k=a.arc().innerRadius(d).outerRadius(k);d=[0,2*Math.PI];d=a.pie().sort(null).startAngle(d[0]).endAngle(d[1]).value(function(a){return a.weight});1<b.length&&d.padAngle(.01);h.selectAll(".solidArc").data(d(b)).enter().append("path").attr("fill",function(a){return g.colors(a.data.id)}).attr("class","solidArc").attr("d",e);h.selectAll(".outlineArc").data(d(b)).enter().append("path").attr("fill","none").attr("stroke",function(a){return g.colors(a.data.id)}).attr("class","outlineArc").attr("d",k);g.asterLabel&&
c.append("svg:text").attr("class","aster-label").attr("dy",".35em").attr("text-anchor","middle").text(asterLabel());b=h.append("g").attr("class","axisWrapper");c=Math.ceil(g.maxPercent/25);for(var l=1;l<c;l++)b.append("circle").attr("class","gridCircle").attr("r",q(25*l)).style("fill","none").style("stroke","#c5c5c5").style("stroke-width",.6),1==l%2&&(b.append("rect").attr("x",-8).attr("y",-q(25*l)-5).attr("width",20).style("height",10).attr("fill","#fff"),b.append("text").attr("class","axisLabel").attr("x",
-6).attr("y",-q(25*l)).attr("dy",".4em").style("font-size","8px").attr("fill","#737373").text(function(a,b){return 25*l+"%"}))};return f});
define("atlascharts/areachart",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){m.prototype.render.call(this,b,c,e,k,h);var g={margin:{top:20,right:30,bottom:20,left:40},yTicks:4,xFormat:a.format(",.0f"),yFormat:a.format("s")};h=Object.assign({},g,h);var d=e-h.margin.left-h.margin.right;g=k-h.margin.top-h.margin.bottom;var q=a.scaleLinear().domain(a.extent(b,function(a){return a.x})).range([0,d]),l=
a.scaleLinear().domain([0,a.max(b,function(a){return a.y})]).range([g,0]);d=a.axisBottom().scale(q).tickFormat(h.xFormat).ticks(10);var p=a.axisLeft().scale(l).tickFormat(h.yFormat).ticks(h.yTicks),f=a.area().x(function(a){return q(a.x)}).y0(g).y1(function(a){return l(a.y)});c=this.createSvg(c,e,k).append("g").attr("transform","translate("+h.margin.left+","+h.margin.top+")");c.append("path").data([b]).attr("class","area").attr("d",f);c.append("g").attr("class","x axis").attr("transform","translate(0,"+
g+")").call(d);c.append("g").attr("class","y axis").call(p)};return f});
define("atlascharts/barchart",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){var g=this;m.prototype.render.call(this,b,c,e,k,h);var d=this.getOptions({label:"label",value:"value",rotate:0,textAnchor:"middle",showLabels:!1},h);c=this.createSvg(c,e,k);this.useTip(function(a){a.attr("class","d3-tip").offset([-10,0]).html(function(a){return a.value})});var q=d.label,l=d.value,p=0;b.forEach(function(a){p+=
a[l]});e=e-d.margins.left-d.margins.right;var f=k-d.margins.top-d.margins.bottom,r=a.scaleBand().range([0,e]).padding(.1).round(1/b.length),t=a.scaleLinear().range([f,0]);k=a.axisBottom().scale(r).tickSize(2,0);h=a.axisLeft().scale(t).tickFormat(d.yFormat).ticks(5);r.domain(b.map(function(a){return a[q]}));t.domain([0,d.yMax||a.max(b,function(a){return a[l]})]);var n=c.append("g").attr("class","axis");n.call(k);var v=Math.round(n.node().getBBox().height),w=Math.round(n.node().getBBox().width);f-=
v;e-=Math.max(0,w-e);n.remove();n=c.append("g").attr("class","axis");n.call(h);v=Math.round(n.node().getBBox().width);e-=v;n.remove();r.range([0,e]);t.range([f,0]);c=c.append("g").attr("transform","translate(\n\t "+(d.margins.left+v)+",\n\t "+d.margins.top+"\n\t )");c.append("g").attr("class","x axis").attr("transform","translate(0, "+f+")").call(k).selectAll(".tick text").style("text-anchor",d.textAnchor).attr("transform",function(a){return"rotate("+d.rotate+")"});d.wrap&&
c.selectAll(".tick text").call(this.wrap,r.bandwidth());c.append("g").attr("class","y axis").attr("transform","translate(0, 0)").call(h);c.selectAll(".bar").data(b).enter().append("rect").attr("class","bar").attr("x",function(a){return r(a[q])}).attr("width",r.bandwidth()).attr("y",function(a){return t(a[l])}).attr("height",function(a){return f-t(a[l])}).attr("title",function(a){var b=a[q]+": "+g.formatters.commaseparated(a[l],",");return b=0<p?b+(" ("+g.formatters.formatpercent(a[l]/p)+")"):b+(" ("+
g.formatters.formatpercent(0)+")")}).style("fill",function(a){return d.colors(a[q])}).on("mouseover",function(a){return g.tip.show(a,event.target)}).on("mouseout",function(a){return g.tip.hide(a,event.target)}).exit().remove();d.showLabels&&c.selectAll(".barlabel").data(b).enter().append("text").attr("class","barlabel").text(function(a){return g.formatters.formatpercent(a[l]/p)}).attr("x",function(a){return r(a[q])+r.bandwidth()/2}).attr("y",function(a){return t(a[l])-3}).attr("text-anchor","middle")};
$jscomp.global.Object.defineProperties(f.prototype,{formatters:{configurable:!0,enumerable:!0,get:function(){return{commaseparated:a.format(","),formatpercent:a.format(".1%")}}}});return f});
define("atlascharts/boxplot",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.defaultTip=function(a,c){a.attr("class","d3-tip").offset(function(a){return a.tipOffset||[-10,0]}).direction(function(a){return a.tipDirection||"n"}).html(function(a){return"\x3ctable class\x3d'boxplotValues'\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eMax:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+c.valueFormatter(a.max)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eP90:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+
c.valueFormatter(a.UIF)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eP75:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+c.valueFormatter(a.q3)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eMedian:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+c.valueFormatter(a.median)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eP25:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+c.valueFormatter(a.q1)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eP10:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+
c.valueFormatter(a.LIF)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\t\x3ctr\x3e\n\t\t\t\t\t\t\x3ctd\x3eMin:\x3c/td\x3e\n\t\t\t\t\t\t\x3ctd\x3e"+c.valueFormatter(a.min)+"\x3c/td\x3e\n\t\t\t\t\t\x3c/tr\x3e\n\t\t\t\t\x3c/table\x3e"})};f.prototype.render=function(b,c,e,k,h){m.prototype.render.call(this,b,c,e,k,h);var g={valueFormatter:this.formatters.formatSI(3)};h=this.getOptions(g,h);c=this.createSvg(c,e,k);this.useTip(this.defaultTip,h);var d=0;g=0;h.xLabel&&(d=c.append("g").attr("transform","translate("+
e/2+", "+(k-h.margins.bottom)+")"),d.append("text").attr("class","axislabel").style("text-anchor","middle").text(h.xLabel),d=d.node().getBBox().height);h.yLabel&&(g=c.append("g").attr("transform","translate(\n\t "+h.margins.left+",\n\t "+((k-h.margins.bottom-h.margins.top)/2+h.margins.top)+"\n\t )"),g.append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",0).attr("x",0).attr("dy","1em").style("text-anchor","middle").text(h.yLabel),g=g.node().getBBox().width);
e=e-h.margins.left-g-h.margins.right;k=k-h.margins.top-d-h.margins.bottom;var q=a.scaleBand().range([0,e]).round(1/b.length).domain(b.map(function(a){return a.Category})),l=a.scaleLinear().range([k,0]).domain([h.yMin||0,h.yMax||a.max(b,function(a){return a.max})]);d=a.axisBottom().scale(q);var f=a.axisLeft().scale(l).tickFormat(h.yFormat).ticks(5),u=c.append("g").attr("class","axis");u.call(d);var r=Math.round(u.node().getBBox().height),t=Math.round(u.node().getBBox().width);k-=r;e-=Math.max(0,t-
e);u.remove();u=c.append("g").attr("class","axis");u.call(f);r=Math.round(u.node().getBBox().width);e-=r;u.remove();q.range([0,e]);l.range([k,0]);var n=q.bandwidth()/2-5,v=q.bandwidth()/2-2.5;h=c.append("g").attr("transform","translate(\n\t "+(h.margins.left+g+r)+",\n\t "+h.margins.top+"\n\t )");var w=this;h.selectAll(".boxplot").data(b).enter().append("g").attr("class","boxplot").attr("transform",function(a){return"translate("+q(a.Category)+", 0)"}).each(function(b){var c=
a.select(this);b.LIF!=b.q1&&(c.append("line").attr("class","bar").attr("x1",v).attr("y1",l(b.LIF)).attr("x2",v+5).attr("y2",l(b.LIF)),c.append("line").attr("class","whisker").attr("x1",q.bandwidth()/2).attr("y1",l(b.LIF)).attr("x2",q.bandwidth()/2).attr("y2",l(b.q1)));c.append("rect").attr("class","box").attr("x",n).attr("y",l(b.q3)).attr("width",10).attr("height",Math.max(1,l(b.q1)-l(b.q3))).on("mouseover",function(a){return w.tip.show(a,event.target)}).on("mouseout",function(a){return w.tip.hide(a,
event.target)});c.append("line").attr("class","median").attr("x1",n).attr("y1",l(b.median)).attr("x2",n+10).attr("y2",l(b.median));b.UIF!=b.q3&&(c.append("line").attr("class","bar").attr("x1",v).attr("y1",l(b.UIF)).attr("x2",q.bandwidth()-v).attr("y2",l(b.UIF)),c.append("line").attr("class","whisker").attr("x1",q.bandwidth()/2).attr("y1",l(b.UIF)).attr("x2",q.bandwidth()/2).attr("y2",l(b.q3)))});h.append("g").attr("class","x axis").attr("transform","translate(0, "+k+")").call(d);h.selectAll(".tick text").call(this.wrap,
q.bandwidth()||q.range());h.append("g").attr("class","y axis").attr("transform","translate(0, 0)").call(f)};return f});
define("atlascharts/donut",["d3","numeral","./chart"],function(a,m,f){var b=function(a){return f.apply(this,arguments)||this};$jscomp.inherits(b,f);b.prototype.render=function(b,e,k,h,g){function c(){var b=a.select(this);b.attr("initialX",event.x);b.attr("initialY",event.y)}function q(){var b=a.select(this),c=event.y-parseFloat(b.attr("initialY"));if(isNaN(c))return!1;b.attr("transform","translate(\n\t "+parseFloat(b.attr("initialPositionX"))+",\n\t "+(parseFloat(b.attr("initialPositionY"))+
c)+"\n\t )")}function l(){var b=a.select(this);b.transition().duration(300).attr("transform","translate(\n\t "+b.attr("initialPositionX")+",\n\t "+b.attr("initialPositionY")+"\n\t )")}var p=this;f.prototype.render.call(this,b,e,k,h,g);var u=this.getOptions(g);g=this.createSvg(e,k,h);var r=0;b.forEach(function(a){r+=+a.value});var t=this.donutDefaultTooltip(function(a){return a.label},function(a){return m(a.value).format("0,0")},function(a){return p.formatters.formatpercent(0!=
r?a.value/r:0)});this.useTip(function(a){return a.attr("class","d3-tip").direction("s").offset([3,0]).html(t)});if(0<b.length){e=g.append("g").attr("id","chart");var n=a.drag().on("drag",q).on("start",c).on("end",l);g=g.append("g").attr("class","legend").call(n);g.selectAll("rect").data(b).enter().append("rect").attr("x",0).attr("y",function(a,b){return 15*b}).attr("width",10).attr("height",10).style("fill",function(a){return u.colors(a.id)});var v=0;n=g.selectAll("g.legend-item").data(b).enter().append("g").attr("class",
"legend-item");n.append("text").attr("x",12).attr("y",function(a,b){return 15*b+9}).text(function(a){return a.label});n.append("title").attr("x",12).attr("y",function(a,b){return 15*b+9}).text(function(a){return a.label});n.each(function(){var a=this.getBBox().width;a>v&&v+a<.75*k&&(v=a)});v+=12;g.attr("transform","translate(\n\t "+(k-v-u.margins.right)+",\n\t "+u.margins.top+"\n\t )").attr("initialPositionX",k-v-u.margins.right).attr("initialPositionY",u.margins.top);
e.attr("transform","translate("+(k-v)/2+", "+h/2+")");g=Math.min(h,k-v)/2-u.margins.top;h=Math.min(h,k-v)/6-u.margins.top;h=a.arc().innerRadius(h).outerRadius(g);g=a.pie().value(function(a){return 0<a.value?Math.max(a.value,.015*r):0});e.selectAll("g.slice").data(g(b)).enter().append("g").attr("class","slice").append("path").attr("fill",function(a){return u.colors(a.data.id)}).attr("stroke","#fff").attr("stroke-width",5).attr("title",function(a){return a.label}).on("mouseover",function(a){return p.tip.show(a.data,
event.target)}).on("mouseout",function(a){return p.tip.hide(a.data,event.target)}).attr("d",h)}else g.append("text").attr("transform","translate("+k/2+", "+h/2+")").style("text-anchor","middle").text("No Data")};$jscomp.global.Object.defineProperties(b.prototype,{formatters:{configurable:!0,enumerable:!0,get:function(){return{formatpercent:a.format(".1%")}}}});return b});
define("atlascharts/histogram",["d3","numeral","./chart"],function(a,m,f){var b=function(a){return f.apply(this,arguments)||this};$jscomp.inherits(b,f);b.mapHistogram=function(a){for(var b=[],c=a.OFFSET||0,h=a.INTERVAL_SIZE,g=this.normalizeDataframe(a.DATA),d=0;d<a.INTERVALS;d+=1){var q={};q.x=c+1*g.INTERVAL_INDEX[d]*h;q.dx=h;q.y=g.COUNT_VALUE[d]||0;b.push(q)}return b};b.prototype.drawBoxplot=function(a,b,k,h){k=this.xScale;var c=h/2;b.LIF!==b.q1&&(a.append("line").attr("class","bar").attr("x1",k(b.LIF)).attr("y1",
h/2-c/2).attr("x2",k(b.LIF)).attr("y2",h/2+c/2),a.append("line").attr("class","whisker").attr("x1",k(b.LIF)).attr("y1",h/2).attr("x2",k(b.q1)).attr("y2",h/2));a.append("rect").attr("class","box").attr("x",k(b.q1)).attr("width",k(b.q3)-k(b.q1)).attr("height",h);a.append("line").attr("class","median").attr("x1",k(b.median)).attr("y1",0).attr("x2",k(b.median)).attr("y2",h);b.UIF!==b.q3&&(a.append("line").attr("class","bar").attr("x1",k(b.UIF)).attr("y1",h/2-c/2).attr("x2",k(b.UIF)).attr("y2",h/2+c/2),
a.append("line").attr("class","whisker").attr("x1",k(b.q3)).attr("y1",h/2).attr("x2",k(b.UIF)).attr("y2",h/2))};b.prototype.render=function(b,e,k,h,g){var c=this;f.prototype.render.call(this,b,e,k,h,g);var q={ticks:10,yTicks:4,yScale:a.scaleLinear(),boxplotHeight:10,getTooltipBuilder:null};g=this.getOptions(q,g);e=this.createSvg(e,k,h);this.xScale={};b=b||[];var l="function"===typeof g.getTooltipBuilder?g.getTooltipBuilder(g):function(a){return m(a.y).format("0,0")};this.useTip(function(a){a.attr("class",
"d3-tip").offset([-10,0]).html(l)});var p=0;q=0;g.xLabel&&(p=e.append("g").attr("transform","translate("+k/2+", "+(h-g.margins.bottom)+")"),p.append("text").attr("class","axislabel").style("text-anchor","middle").text(g.xLabel),p=p.node().getBBox().height);g.yLabel&&(q=e.append("g").attr("transform","translate(\n\t "+g.margins.left+",\n\t "+((h-g.margins.bottom-g.margins.top)/2+g.margins.top)+"\n\t )"),q.append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",
0).attr("x",0).attr("dy","1em").style("text-anchor","middle").text(g.yLabel),q=1.5*q.node().getBBox().width);k=k-g.margins.left-g.margins.right-q;var u=h-g.margins.top-g.margins.bottom-p,r=this.xScale=a.scaleLinear().domain(g.xDomain||[a.min(b,function(a){return a.x}),a.max(b,function(a){return a.x+a.dx})]).range([0,k]);h=a.axisBottom().scale(r).ticks(g.ticks).tickFormat(g.xFormat);var t=g.yScale.domain([0,g.yMax||a.max(b,function(a){return a.y})]).range([u,0]);p=a.axisLeft().scale(t).ticks(g.yTicks).tickFormat(g.yFormat);
var n=e.append("g").attr("class","axis");n.call(h);var v=Math.round(n.node().getBBox().height),w=Math.round(n.node().getBBox().width);u-=v;k-=Math.max(0,w-k);n.remove();w=e.append("g").attr("class","axis");w.call(p);n=Math.round(w.node().getBBox().width);k-=n;w.remove();g.boxplot&&(u-=12,v=e.append("g").attr("class","boxplot").attr("transform","translate("+(g.margins.left+q+n)+",\n\t "+(g.margins.top+u+v)+")"),this.drawBoxplot(v,g.boxplot,k,8));r.range([0,k]);t.range([u,0]);g=e.append("g").attr("transform",
"translate(\n\t "+(g.margins.left+q+n)+",\n\t "+g.margins.top+")");g.selectAll(".bar").data(b).enter().append("g").attr("class","bar").attr("transform",function(a){return"translate("+r(a.x)+", "+t(a.y)+")"}).on("mouseover",function(a){return c.tip.show(a,event.target)}).on("mouseout",function(a){return c.tip.hide(a,event.target)}).append("rect").attr("x",1).attr("width",function(a){return Math.max(r(a.x+a.dx)-r(a.x)-1,.5)}).attr("height",function(a){return u-t(a.y)});g.append("g").attr("class",
"x axis").attr("transform","translate(0, "+u+")").call(h);g.append("g").attr("class","y axis").attr("transform","translate(0, 0)").call(p)};return b});
define("atlascharts/horizontal-boxplot",["d3","./boxplot"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){var g={showXAxis:!0,showMinMarkers:!0,showMaxMarkers:!0,boxHeight:10,valueFormatter:this.formatters.formatSI(3),margins:{top:0,right:0,bottom:0,left:4}},d=this.getOptions(g,h);k=k<b.length*d.boxHeight?b.length*d.boxHeight:k;c=this.createSvg(c,e,k);h=d.valueFormatter;this.useTip(this.defaultTip,d);b.forEach(function(a){return a.Category=
a.Category||"Default"});g=e-d.margins.left-d.margins.right;k=k-d.margins.top-d.margins.bottom;var q=a.scaleLinear().range([0,g]).domain([d.xMin||a.min(b,function(a){return a.min}),d.xMax||a.max(b,function(a){return a.max})]).nice(),l=a.scaleBand().range([0,k]).round(1/b.length).domain(b.map(function(a){return a.Category}));e=a.axisBottom().scale(q).tickFormat(h);h=a.axisLeft().scale(l);var f=a.scaleOrdinal().domain(b.map(function(a){return a.Category})).range("#ff9315 #0d61ff gold blue green red black orange brown grey slateblue grey1 darkgreen".split(" ")),
m=0;if(d.showXAxis){var r=c.append("g").attr("class","axis");r.call(e);var t=Math.round(r.node().getBBox().height)+2;m=Math.round(r.node().getBBox().width)+4;k-=t;g-=Math.max(0,m-g);r.remove()}t=0;d.showYAxis&&(m=c.append("g").attr("class","axis"),m.call(h),t=Math.round(m.node().getBBox().width),g-=t,m.remove());var n=d.boxHeight,v=l.bandwidth()/2-n/2,w=n/2,x=w/10;d.showMinMarkers&&(g=x>t?g-(2*x-t):g-x);q.range([0,g]);l.range([k,0]);c=c.append("g").attr("transform","translate(\n\t "+(d.margins.left+
Math.max(t,x))+",\n\t "+d.margins.top+"\n\t )");b=c.selectAll(".boxplot").data(b).enter().append("g").attr("class","boxplot").attr("transform",function(a){return"translate(0, "+l(a.Category)+")"});var A=this,y=a.scaleLinear().range([n/2,0]).domain([0,n]);b.each(function(b){var c=a.select(this).append("g").attr("transform",function(){return"translate(0, "+v+")"}).append("g").datum(b);b.LIF!=b.q1&&(c.append("line").attr("class","bar").attr("x1",q(b.LIF)).attr("y1",y(1.5*w)).attr("x2",
q(b.LIF)).attr("y2",y(.5*w)).style("stroke",f(b.Category)),c.append("line").attr("class","whisker").attr("x1",q(b.LIF)).attr("y1",y(w)).attr("x2",q(b.q1)).attr("y2",y(w)).style("stroke",f(b.Category)));c.append("rect").attr("class","box").attr("x",q(b.q1)).attr("y",Math.min(y(0),y(n))).attr("width",Math.max(1,q(b.q3)-q(b.q1))).attr("height",Math.abs(y(0)-y(n))).style("fill",f(b.Category)).style("stroke",f(b.Category)).style("fill-opacity",.4).on("mouseover",function(a){return A.tip.show(a,event.target)}).on("mouseout",
function(a){return A.tip.hide(a,event.target)});c.append("line").attr("class","median").attr("x1",q(b.median)).attr("y1",y(0)).attr("x2",q(b.median)).attr("y2",y(n)).style("stroke",f(b.Category));b.UIF!=b.q3&&(c.append("line").attr("class","bar").attr("x1",q(b.UIF)).attr("y1",y(1.5*w)).attr("x2",q(b.UIF)).attr("y2",y(.5*w)).style("stroke",f(b.Category)),c.append("line").attr("class","whisker").attr("x1",q(b.q3)).attr("y1",y(w)).attr("x2",q(b.UIF)).attr("y2",y(w)).style("stroke",f(b.Category)));d.showMinMarkers&&
c.append("circle").attr("cx",q(b.min)).attr("cy",y(w)).attr("r",x).style("fill",f(b.Category)).style("stroke",f(b.Category)).style("fill-opacity",.4);d.showMaxMarkers&&c.append("circle").attr("cx",q(b.max)).attr("cy",y(w)).attr("r",x).style("fill",f(b.Category)).style("stroke",f(b.Category)).style("fill-opacity",.4)});d.showXAxis&&c.append("g").attr("class","x axis").attr("transform","translate(0, "+k+")").call(e);d.showYAxis&&c.append("g").attr("class","y axis").attr("transform","translate(0, 0)").call(h).selectAll(".tick text").call(this.wrap,
l.bandwidth()||l.range()).selectAll(".tick text tspan").attr("x",-9)};return f});
define("atlascharts/line",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.convertData=function(a){a[0].hasOwnProperty("values")||(a=[{name:"",values:a}]);return a};f.getMinValue=function(b,c){return a.min(b,function(b){return a.min(b.values,function(a){return a[c]})})};f.getMaxValue=function(b,c){return a.max(b,function(b){return a.max(b.values,function(a){return a[c]})})};f.getZeroBasedY=function(b){var c=b.height;b=f.getMaxValue(b.data,
b.yValue);return a.scaleLinear().domain([0,b]).range([c,0])};f.getRelativeY=function(b){var c=b.data,e=void 0===b.yValue?"yValue":b.yValue,k=b.height,h=void 0===b.yRangePadding?.1:b.yRangePadding,g=void 0===b.defaultYRangePadding?10:b.defaultYRangePadding;c=f.convertData(c);b=f.getMinValue(c,e);c=f.getMaxValue(c,e);h=(c-b)*h||g;return a.scaleLinear().domain([b-h,c+h]).range([k,0])};f.prototype.render=function(b,c,e,k,h){m.prototype.render.call(this,b,c,e,k,h);"string"==typeof c&&(c=document.querySelector(c));
var g={xFormat:this.formatters.formatSI(3),yFormat:this.formatters.formatSI(3),interpolate:this.interpolation.linear,seriesName:"SERIES_NAME",xValue:"xValue",yValue:"yValue",cssClass:"lineplot",ticks:10,yTicks:4,showSeriesLabel:!1,labelIndexDate:!1,colorBasedOnIndex:!1,getTooltipBuilder:null},d=this.getOptions(g,h);c=this.createSvg(c,e,k);var q="function"===typeof d.getTooltipBuilder?d.getTooltipBuilder(d):this.lineDefaultTooltip(d.xLabel||"x",d.xFormat,function(a){return a[d.xValue]},d.yLabel||"y",
d.yFormat,function(a){return a[d.yValue]},function(a){return a[d.seriesName]});if(0<b.length){b=f.convertData(b);this.useTip(function(a){a.attr("class","d3-tip").offset([-10,0]).html(q)});h=g=0;if(d.xLabel){var l=c.append("g").attr("transform","translate("+e/2+", "+(k-d.margins.bottom)+")");l.append("text").attr("class","axislabel").style("text-anchor","middle").text(d.xLabel);l=l.node().getBBox();g+=l.height}d.yLabel&&(h=c.append("g").attr("transform","translate(\n\t "+d.margins.left+
",\n\t "+((k-d.margins.bottom-d.margins.top)/2+d.margins.top)+"\n\t )"),h.append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",0).attr("x",0).attr("dy","1em").style("text-anchor","middle").text(d.yLabel),l=h.node().getBBox(),h=1.2*l.width);l=0;if(d.showLegend){var p=c.append("g").attr("class","legend"),u=0;b.forEach(function(a,b){p.append("rect").attr("x",0).attr("y",15*b).attr("width",10).attr("height",10).style("fill",d.colors(a.name));a=p.append("text").attr("x",
12).attr("y",15*b+9).text(a.name);u=Math.max(a.node().getBBox().width+12,u)});p.attr("transform","translate(\n\t "+(e-d.margins.right-u)+",\n\t "+d.margins.top+"\n\t )");l+=u+5;l>e/3&&p.style("display","none")}e=e-d.margins.left-d.margins.right-h-(l>e/5?0:l);k=k-d.margins.top-d.margins.bottom-g;var r=d.xScale||a.scaleLinear().domain([a.min(b,function(b){return a.min(b.values,function(a){return a[d.xValue]})}),a.max(b,function(b){return a.max(b.values,function(a){return a[d.xValue]})})]);
g=a.axisBottom().scale(r).ticks(d.ticks);d.tickFormat?g.tickFormat(d.tickFormat):g.tickFormat(d.xFormat);"function"===typeof r.rangePoints?r.rangePoints([0,e]):r.range([0,e]);var t=d.yScale||f.getZeroBasedY({data:b,height:k,yValue:d.yValue});l=a.axisLeft().scale(t).tickFormat(d.yFormat).ticks(d.yTicks);var n=c.append("g").attr("class","axis");n.call(g);var v=Math.round(n.node().getBBox().height),w=Math.round(n.node().getBBox().width);k-=v;e-=Math.max(0,w-e);n.remove();n=d.yAxisWidth;void 0==d.yAxisWidth&&
(v=c.append("g").attr("class","axis"),v.call(l),n=Math.round(v.node().getBBox().width),v.remove());e-=n;"function"===typeof r.rangePoints?r.rangePoints([0,e]):r.range([0,e]);t.range([k,0]);var x=a.line().x(function(a){return r(a[d.xValue])}).y(function(a){return t(a[d.yValue])}).curve(d.interpolate);c=c.append("g").attr("class",d.cssClass).attr("transform","translate(\n\t "+(d.margins.left+h+n)+",\n\t "+d.margins.top+"\n\t )");h=c.selectAll(".series").data(b).enter().append("g");
n=h.append("path").attr("class","line").attr("d",function(b){return x(b.values.sort(function(b,c){return a.ascending(b[d.xValue],c[d.xValue])}))});d.colors&&n.style("stroke",function(a,b){return d.colors(a.name)});d.showSeriesLabel&&h.append("text").datum(function(a){return{name:a.name,value:a.values[a.values.length-1]}}).attr("transform",function(a){return"translate("+r(a.value[d.xValue])+", "+t(a.value[d.yValue])+")"}).attr("x",3).attr("dy",2).style("font-size","8px").text(function(a){return a.name});
c.append("g").attr("class","x axis").attr("transform","translate(0, "+k+")").call(g);c.append("g").attr("class","y axis").call(l);d.labelIndexDate&&c.append("rect").attr("transform","translate(-0.5, 0)").attr("width",1).attr("height",k);this.appendTracker({vis:c,data:b,width:e,height:k,x:r,y:t,options:d})}else c.append("text").attr("transform","translate("+e/2+", "+k/2+")").style("text-anchor","middle").text("No Data")};f.prototype.appendTracker=function(b){var c=this,e=b.vis,k=b.data,h=b.width,g=
b.height,d=b.x,f=b.y,l=b.options,p=e.append("g").attr("class","current-focus").style("display","none"),m=p.append("line").attr("class","x-hover-line").style("stroke-width","2px").style("stroke-dasharray","3,3").attr("y1",0),r=p.append("circle").attr("r",2);b=e.append("rect").style("opacity",0);var t=a.quadtree().x(function(a){return d(a[l.xValue])}).y(function(a){return f(a[l.yValue])});k=k.reduce(function(a,b){return a.concat(b.values.map(function(a){a.name=b.name;return a}))},[]);t.addAll(k);b.attr("class",
"overlay").attr("width",h).attr("height",g).attr("pointer-events","all").on("mouseover",function(){return p.style("display",null)}).on("mouseout",function(){p.style("display","none");c.tip.hide({},p.node())});b.on("mousemove",function(){var b=a.mouse(a.event.target);b=t.find(b[0],b[1]);r.style("fill",l.colors(b.name));m.style("stroke",l.colors(b.name));m.attr("y2",g-f(b[l.yValue]));p.attr("transform","translate("+d(b[l.xValue])+","+f(b[l.yValue])+")");c.tip.show(b,p.node())})};$jscomp.global.Object.defineProperties(f.prototype,
{interpolation:{configurable:!0,enumerable:!0,get:function(){return{linear:a.curveLinear,curveStep:a.curveStep,curveStepBefore:a.curveStepBefore,curveStepAfter:a.curveStepAfter,curveBasis:a.curveBasis,curveCardinal:a.curveCardinal,curveMonotoneX:a.curveMonotoneX,curveCatmullRom:a.curveCatmullRom}}}});return f});
define("atlascharts/trellisline",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){function g(){var b=B.invert(a.mouse(event.target)[0]);z.selectAll(".g-label-value.g-start").call(d,b);z.selectAll(".g-label-year.g-start").call(f,b);z.selectAll(".g-value").attr("transform",function(a){if(a=a.values){a=a[u(a,b,0,a.length-1)];var c=0===a.Y_PREVALENCE_1000PP||a.Y_PREVALENCE_1000PP?a.Y_PREVALENCE_1000PP:a.yPrevalence1000Pp;
return a&&a.date?"translate("+B(a.date)+","+F(c)+")":"translate(0,0);"}})}function d(b,c){var d=a.scaleLinear().domain(B.range()),l={};b.each(function(b,g){g=a.select(this);var k=b.values,e=u(k,c,0,k.length-1),h=Math.round(e/(k.length-1)*(k.length-12));if((e=k[e])&&e.date){var f=B(e.date),q=0===e.Y_PREVALENCE_1000PP||e.Y_PREVALENCE_1000PP?e.Y_PREVALENCE_1000PP:e.yPrevalence1000Pp;f=d.range([0,C.bandwidth()])(f);k=F(a.max(k.slice(h,h+12),function(a){return q}));if(h=e.TRELLIS_NAME||e.trellisName)!l[h]&&
(l[h]=[]),e=e.date.getTime()===t.getTime()?"end":(e.date.getTime(),r.getTime(),"start"),l[h].push({y:k,x:f,textAnchor:e,value:q,text:g,color:p.colors(b.key)})}});Object.keys(l).forEach(function(a){var b=l[a];b.sort(function(a,b){return a.y-b.y});b.forEach(function(a,c){0<c&&(b[c].y+=Math.max(0,b[c-1].y+15-b[c].y))});var c=b.filter(function(a){return 20>=a.value});b.forEach(function(a){var b=a.x,d=a.y,l=a.textAnchor,e=a.value;a.text.text(p.yFormat(e)).style("display","block").style("text-anchor",l).attr("transform",
"translate(\n\t "+("start"===l?b+4:b-4)+",\n\t "+(20>=e&&1!==c.length?d-20:d)+"\n\t )")})})}function f(c,d){var l=a.scaleLinear().domain(B.range()),e=b[0]&&b[0].values[0]&&b[0].values[0].values||[],k=e[u(e,d,0,e.length-1)];if(k&&k.date){var g=B(k.date);c.each(function(b){a.select(this).text(k.date.getFullYear()).attr("transform","translate(\n\t "+l.range([0,C.bandwidth()-this.getComputedTextLength()])(g)+",\n\t "+(E+6)+"\n\t )").style("display",
null)})}}m.prototype.render.call(this,b,c,e,k,h);var l={trellisSet:a.keys(b),yTicks:4,xFormat:a.format("d"),yFormat:a.format("d"),interpolate:a.curveLinear},p=this.getOptions(l,h);c=this.createSvg(c,e,k);var u=a.bisector(function(a){return a.date}).left,r=a.min(b,function(b){return a.min(b.values,function(b){return a.min(b.values,function(a){return a.date})})}),t=a.max(b,function(b){return a.max(b.values,function(b){return a.max(b.values,function(a){return a.date})})});h=a.min(b,function(b){return a.min(b.values,
function(b){return a.min(b.values,function(a){return 0===a.Y_PREVALENCE_1000PP||a.Y_PREVALENCE_1000PP?a.Y_PREVALENCE_1000PP:a.yPrevalence1000Pp})})});var n=a.max(b,function(b){return a.max(b.values,function(b){return a.max(b.values,function(a){return 0===a.Y_PREVALENCE_1000PP||a.Y_PREVALENCE_1000PP?a.Y_PREVALENCE_1000PP:a.yPrevalence1000Pp})})});l=0;if(p.seriesLabel){var v=c.append("g");v.append("text").attr("class","axislabel").style("text-anchor","middle").attr("dy",".79em").text(p.seriesLabel);
if(l=v.node())l=v.node().getBBox().height+10}var w=0;if(p.trellisLabel){var x=c.append("g");x.append("text").attr("class","axislabel").style("text-anchor","middle").attr("dy",".79em").text(p.trellisLabel);w=x.node().getBBox().height+10}var A=0;var y=c.append("g").attr("class","g-label-trellis");y.append("text").text(p.trellisSet.join(""));A=y.node().getBBox().height+10;y.remove();var D=0;if(p.yLabel){var G=c.append("g");G.append("text").attr("class","axislabel").style("text-anchor","middle").text(p.yLabel);
D=G.node().getBBox().height+4}e=e-p.margins.left-D-p.margins.right;var E=k-p.margins.top-w-A-l-2*p.margins.bottom,C=a.scaleBand().domain(p.trellisSet).range([0,e]).paddingOuter(.2).paddingInner(.25),B=a.scaleTime().domain([r,t]).range([0,C.bandwidth()]),F=a.scaleLinear().domain([h,n]).range([E,0]);k=a.axisLeft().scale(F).tickFormat(p.yFormat).ticks(p.yTicks);y=a.axisBottom().scale(B);n=c.append("g").attr("class","axis");n.call(y);y=Math.round(n.node().getBBox().height);var I=Math.round(n.node().getBBox().width);
E-=y;e-=Math.max(0,I-e);n.remove();n=c.append("g").attr("class","axis");n.call(k);var H=Math.round(n.node().getBBox().width);e-=H;n.remove();C.range([0,e]).paddingOuter(.2).paddingInner(.25);B.range([0,C.bandwidth()]);F.range([E,0]);p.trellisLabel&&x.attr("transform","translate(\n\t "+(e/2+p.margins.left)+",\n\t "+p.margins.top+"\n\t )");p.seriesLabel&&v.attr("transform","translate(\n\t "+(e/2+p.margins.left)+",\n\t "+(w+E+y+l+2*p.margins.top)+"\n\t )");p.yLabel&&
(G.attr("transform","translate(\n\t "+p.margins.left+",\n\t "+(E/2+w+A)+"\n\t )"),G.select("text").attr("transform","rotate(-90)").attr("y",0).attr("x",0).attr("dy","1em"));var J=a.line().x(function(a){return B(a.date)}).y(function(a){return F(0===a.Y_PREVALENCE_1000PP||a.Y_PREVALENCE_1000PP?a.Y_PREVALENCE_1000PP:a.yPrevalence1000Pp)}).curve(p.interpolate),z=a.select(c.node()).append("g").attr("transform",function(a){return"translate(\n\t "+(D+H+p.margins.left)+",\n\t "+
w+"\n\t )"}).selectAll(".g-trellis").data(C.domain()).enter().append("g").attr("class","g-trellis").attr("transform",function(a){return"translate("+C(a)+", "+A+")"});v=a.axisBottom().scale(B).tickFormat("").tickSize(-E);x=a.axisLeft().scale(F).tickFormat("").tickSize(-C.bandwidth()).ticks(8);z.append("g").attr("class","x-guide").attr("transform","translate(0, "+E+")").call(v);z.append("g").attr("class","y-guide").call(x);v=z.selectAll(".g-series").data(function(a){var c=b.filter(function(b){return b.key===
a});return 0<c.length?c[0].values:[]}).enter().append("g").attr("class","g-series lineplot");v.append("path").attr("class","line").attr("d",function(b){return J(b.values.sort(function(b,c){return a.ascending(b.date,c.date)}))}).style("stroke",function(a){return p.colors(a.key)});v.append("circle").attr("class","g-value").attr("transform",function(a){if((a=a.values)&&a[a.length-1]&&a[a.length-1].date&&a[a.length-1]&&(a[a.length-1].Y_PREVALENCE_1000PP||a[a.length-1].yPrevalence1000Pp)){var b=0===a[a.length-
1].Y_PREVALENCE_1000PP||a[a.length-1].Y_PREVALENCE_1000PP?a[a.length-1].Y_PREVALENCE_1000PP:a[a.length-1].yPrevalence1000Pp;return"translate("+B(a[a.length-1].date)+", "+F(b)+")"}return"translate(0, 0)"}).attr("r",2.5).style("display","none");v.append("text").attr("class","g-label-value g-start").call(d,r);v.append("text").attr("class","g-label-value g-end").call(d,t);z.append("text").attr("class","g-label-year g-start").attr("dy",".71em").call(f,r);z.append("text").attr("class","g-label-year g-end").attr("dy",
".71em").call(f,t);z.append("g").attr("class","x axis").append("line").attr("x2",C.bandwidth()).attr("y1",F(h)).attr("y2",F(h));z.append("g").attr("class","g-label-trellis").attr("transform",function(a){return"translate("+C.bandwidth()/2+", 0)"}).append("text").attr("dy","-1em").style("text-anchor","middle").text(function(a){return a});z.append("rect").attr("class","g-overlay").attr("x",-4).attr("width",C.bandwidth()+8).attr("height",E+18).on("mouseover",function(){z.selectAll(".g-end").style("display",
"none");z.selectAll(".g-value").style("display",null);g.call(this)}).on("mousemove",g).on("mouseout",function(){z.selectAll(".g-end").style("display",null);z.selectAll(".g-label-value.g-start").call(d,r);z.selectAll(".g-label-year.g-start").call(f,r);z.selectAll(".g-label-year.g-end").call(f,t);z.selectAll(".g-value").style("display","none")});a.select(z.nodes()[0]).append("g").attr("class","y axis").attr("transform","translate(-4,0)").call(k);c.append("g").attr("transform","translate("+p.margins.left+
", "+p.margins.top+")").call(function(a){var b=0;p.colors.domain().forEach(function(c){var d=a.append("g").attr("class","trellisLegend"),l=d.append("text").text(c),e=d.node().getBBox();l.attr("x",12).attr("y",e.height);d.append("line").attr("x1",0).attr("y1",10).attr("x2",10).attr("y2",10).style("stroke",function(){return p.colors(c)});d.attr("transform","translate("+b+", 0)");b+=d.node().getBBox().width+5})})};return f});
define("atlascharts/treemap",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){function g(b,d){d=void 0===d?!0:d;var g=e/(b.x1-b.x0)||e,h=k/(b.y1-b.y0)||k;b.x1&&b.y1?(m.domain([b.x0,b.x0+(b.x1-b.x0)]),r.domain([b.y0,b.y0+(b.y1-b.y0)])):(m.domain([0,e]),r.domain([0,k]));var f=a.select(c).select(".treemap_zoomtarget");if(f.size())if("root"===b.data.name)f.text("");else{var q=f.text();f.text(q+" \x3e "+
b.data.name)}f=p.selectAll("g.cell, .grouper");d&&(f=f.transition().duration(750));f.attr("transform",function(a){return"translate("+m(a.x0)+", "+r(a.y0)+")"}).on("end",function(){p.selectAll(".grouper").attr("display","block")});f.select("rect").attr("width",function(a){return Math.max(0,g*(a.x1-a.x0)-1)}).attr("height",function(a){return Math.max(0,h*(a.y1-a.y0)-1)});event&&event.stopPropagation();if(l.onZoom)l.onZoom(b)}function d(a){var b=e/(a.x1-a.x0),c=k/(a.y1-a.y0),d=v.children.filter(function(b){return b.parent===
a});p.selectAll(".grouper").remove();p.selectAll(".grouper").data(d).enter().append("g").attr("class","grouper").attr("transform",function(a){return"translate("+(a.x0+1)+", "+(a.y0+1)+")"}).attr("display","none").append("rect").attr("width",function(a){return Math.max(0,b*(a.x1-a.x0)-1)}).attr("height",function(a){return Math.max(0,c*(a.y1-a.y0)-1)}).attr("title",function(a){return a.name}).attr("id",function(a){return a.id})}var f=this,l=this.getOptions(h),p=this.createSvg(c,e,k),m=a.scaleLinear().range([0,
e]),r=a.scaleLinear().range([0,k]);a.select(c).select(".treemap_zoomtarget").text("");var t=0;h=a.treemap().round(!1).size([e,k]);var n=a.hierarchy(b,function(a){return a.children}).sum(l.getsizevalue),v=h(n);b=v.leaves().filter(function(a){return l.getsizevalue(a.data)});var w=a.extent(b,function(a){return l.getcolorvalue(a.data)}),x=a.median(b,function(a){return l.getcolorvalue(a.data)});h=l.getcolorrange?l.getcolorrange():["#E4FF7A","#FC7F00"];w=[w[0],x,w[1]];l.getcolorscale&&(w=l.getcolorscale());
var A=a.scaleLinear().domain(w).range(h);b=p.selectAll("g").data(b).enter().append("g").attr("class","cell").attr("transform",function(a){return"translate("+a.x0+", "+a.y0+")"});b.append("rect").attr("width",function(a){return Math.max(0,a.x1-a.x0-1)}).attr("height",function(a){return Math.max(0,a.y1-a.y0-1)}).attr("id",function(a){return a.id}).style("fill",function(a){return A(l.getcolorvalue(a.data))}).on("click",function(a){l.useTip&&f.tip.hide();if(event.altKey)g(n),d(n);else if(event.ctrlKey){for(;a.depth!==
t+1;)a=a.parent;t=a.depth;a.children&&1<a.children.length?(d(a),g(a)):(t=0,d(n),g(n))}else l.onclick(a.data)});l.useTip?(this.useTip(function(a){a.attr("class","d3-tip").direction(function(a){var b=1===m.domain()[1]?e:m.domain()[1];return a.x1>=b-b/10?"w":a.x0<=b/10?"e":"n"}).offset([3,0]).html(function(a){return l.gettitle(a.data)+"\x3cbr/\x3e\x3cbr/\x3e"+l.getcontent(a.data)})}),b.on("mouseover",function(a){return f.tip.show(a,event.target)}).on("mouseout",function(a){return f.tip.hide(a,event.target)})):
b.attr("data-container","body").attr("data-toggle","popover").attr("data-trigger","hover").attr("data-placement","top").attr("data-html",!0).attr("data-title",function(a){return l.gettitle(a.data)}).attr("data-content",function(a){return l.getcontent(a.data)});l.initialZoomedConcept?(d(l.initialZoomedConcept),g(l.initialZoomedConcept,!1)):d(n);p.selectAll(".grouper").attr("display","block")};f.buildHierarchyFromJSON=function(a,c,e){var b=0,h={name:"root",children:[]};a.PERCENT_PERSONS.forEach(function(a){b+=
a});a.CONCEPT_PATH.forEach(function(k,d){k=k.split("||");for(var g=h,l={},f=0;f<k.length;l={nodeName:l.nodeName,childNode:l.childNode,foundChild:l.foundChild},f+=1){var m=g.children;l.nodeName=k[f];l.childNode=void 0;f+1<k.length?(l.foundChild=!1,m.forEach(function(a){return function(b){b.name===a.nodeName&&(a.childNode=b,a.foundChild=!0)}}(l)),l.foundChild||(l.childNode={name:l.nodeName,children:[]},m.push(l.childNode)),g=l.childNode):(l.childNode=e(l.nodeName,d,a),a.PERCENT_PERSONS[d]/b>c&&m.push(l.childNode))}});
return h};$jscomp.global.Object.defineProperties(f.prototype,{formatters:{configurable:!0,enumerable:!0,get:function(){return{format_pct:a.format(".2%"),format_fixed:a.format(".2f"),format_comma:a.format(",")}}}});return f});
define("atlascharts/scatterplot",["d3","./chart"],function(a,m){var f=function(a){return m.apply(this,arguments)||this};$jscomp.inherits(f,m);f.prototype.render=function(b,c,e,k,h){m.prototype.render.call(this,b,c,e,k,h);var g={xFormat:this.formatters.formatSI(3),yFormat:this.formatters.formatSI(3),interpolate:a.curveLinear,seriesName:"SERIES_NAME",xValue:"xValue",yValue:"yValue",cssClass:"lineplot",ticks:10,yTicks:4,showSeriesLabel:!1,labelIndexDate:!1,colorBasedOnIndex:!1,truncateLabelAtLine:2,
showXAxis:!0,tooltip:function(a){return"\x3cdiv\x3eSeries: "+a.seriesName+"\x3c/div\x3e\n\t\t\t\t\t\x3cdiv\x3eX: "+a[d.xValue]+"\x3c/div\x3e\n\t\t\t\t\t\x3cdiv\x3eY: "+a[d.yValue]+"\x3c/div\x3e\n\t\t\t\t\t"},circleRadius:1,addDiagonal:!1,diagonalColor:"#ccc"},d=this.getOptions(g,h);d.colors=h.colors?a.scaleOrdinal(Object.values(h.colors)).domain(Object.keys(h.colors)):a.scaleOrdinal(a.schemeCategory20).domain(b.map(function(a){return a.name}));c=this.createSvg(c,e,k);if(0<b.length){b[0].hasOwnProperty("values")||
(b=[{name:"",values:b}]);this.useTip(function(a){a.attr("class","d3-tip").offset([-10,0]).html(d.tooltip)});h=g=0;if(d.xLabel){var f=c.append("g");f.append("text").attr("class","axislabel").attr("dy",0).attr("y",0).style("text-anchor","middle").text(d.xLabel);var l=f.node().getBBox();g+=l.height}if(d.yLabel){var p=c.append("g");p.append("text").attr("class","axislabel").attr("transform","rotate(-90)").attr("y",0).attr("x",0).attr("dy","1em").style("text-anchor","middle").text(d.yLabel);l=p.node().getBBox();
h=1.5*l.width}l=0;if(d.showLegend){var u=c.append("g").attr("class","legend"),r=0;b.forEach(function(a,b){u.append("rect").attr("x",0).attr("y",15*b).attr("width",10).attr("height",10).style("fill",d.colors(a.name));a=u.append("text").attr("x",12).attr("y",15*b+9).text(a.name);r=Math.max(a.node().getBBox().width+12,r)});u.attr("transform","translate("+(e-d.margins.right-r)+",0)");l+=r+5}e=e-d.margins.left-d.margins.right-h-l;g=k-d.margins.top-d.margins.bottom-g;var t=d.xScale||a.scaleLinear().domain([a.min(b,
function(b){return a.min(b.values,function(a){return a[d.xValue]})}),a.max(b,function(b){return a.max(b.values,function(a){return a[d.xValue]})})]);l=a.axisBottom().scale(t).ticks(d.ticks);d.tickFormat?l.tickFormat(d.tickFormat):l.tickFormat(d.xFormat);"function"===typeof t.rangePoints?t.rangePoints([0,e]):t.range([0,e]);var n=d.yScale||a.scaleLinear().domain([0,a.max(b,function(b){return a.max(b.values,function(a){return a[d.yValue]})})]).range([g,0]),v=a.axisLeft().scale(n).tickFormat(d.yFormat).ticks(d.yTicks),
w=c.append("g").attr("class","axis");w.call(l);var x=Math.round(w.node().getBBox().height),A=Math.round(w.node().getBBox().width);g-=x;e-=Math.max(0,A-e);w.remove();x=c.append("g").attr("class","axis");x.call(v);w=Math.round(x.node().getBBox().width);e-=w;x.remove();d.xLabel&&f&&(f.selectAll("text").call(this.wrap,e,d.truncateLabelAtLine),x=f.node().getBBox().height,g-=x,f.attr("transform","translate(\n\t\t\t\t\t\t\t\t"+(h+w+d.margins.left+e/2)+",\n\t\t\t\t\t\t\t\t"+(k-d.margins.bottom-x)+"\n\t\t\t\t\t\t\t)"));
d.yLabel&&p&&(p.attr("transform","transl