!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n.gel=n.gel||{},n.gel.dataviz={}))}(this,function(n){"use strict";function dt(n,t){var i=n+"|"+t,r;return kt[i]?kt[i]:(sr.font=t,r=Math.ceil(sr.measureText(n).width),kt[i]=r,r)}function hi(n,t){for(var i=0,u=void 0,r=0;r<n.length;r++)(u=dt(n[r],t))>i&&(i=u);return i}function k(n,t,i){var u=t-t*(arguments.length>3&&void 0!==arguments[3]?arguments[3]:0),r=[];return n.split("\n").forEach(function(n){var t=void 0;n.trim().split(" ").forEach(function(n,f){0===f?t=n:dt(t+" "+n,i)<u?t+=" "+n:(r.push(t),t=n)});r.push(t)}),r.join("\n")}function hr(n){return Math.pow(10,Math.floor(Math.log(Math.abs(n))/Math.LN10))}function ot(n){var t=(""+n).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}function cr(n){return i=n,r=2,t=Math.pow(10,r),Math.round(i*t)/t;var i,r,t}function gt(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],u=function(n){return Math.max(Math.floor(Math.log(Math.abs(n))*Math.LOG10E),0)+1}(n),t=n,f=e,i="",r;return o&&(u>12?(t/=Math.pow(10,12),i="T"):u>9?(t/=Math.pow(10,9),i="B"):u>6&&(t/=Math.pow(10,6),i="M"),f=ot(t)),r=(null!==f?t.toFixed(f):t.toString()).split("."),r[0]=r[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),""+r.join(".")+i}function lu(n,t,i,r,u,f){var e=i+u,o=r+f,h=void 0,c,l,a,v,s;return h=i<=n&&n<=e?n:Math.abs(i-n)<Math.abs(e-n)?i:e,s=void 0,s=r<=t&&t<=o?t:Math.abs(r-t)<Math.abs(o-t)?r:o,c=n,l=t,a=h,v=s,Math.sqrt(Math.pow(a-c,2)+Math.pow(v-l,2))}function au(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return!(n.right+i<t.left||n.left>t.right+i||n.bottom+i<t.top||n.top>t.bottom+i)}function ni(n,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return void 0!==n&&null!==n?t>0?n.toString().slice(0,t):n.toString():i}function ti(n,t,i){return i.indexOf(n)===t}function ci(n,t){return n.x-t.x}function lr(n){return Math.ceil((n+1)/3)}function yu(n){return n.getFullYear()+" "+st[n.getMonth()]+" "+n.getDate()}function it(n){var t=Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate());return Math.floor(Math.abs(li-t)/vu)*(n<li?-1:1)}function ar(n){var t=new Date(li);return t.setUTCDate(t.getUTCDate()+n),new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())}function ii(n){var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=n.getFullYear().toString();return i?"'"+t.substr(2):t}function pi(n,t){return t.getFullYear()-n.getFullYear()>=4?"year":n.getFullYear()===t.getFullYear()&&t.getMonth()-n.getMonth()<4?"day":"month"}function wi(n,t,i){var r=n.indexOf("_yy")>-1;switch(n.replace("_yy","")){case"auto":return wi(pi(t,i)+(r?"_yy":""),t,i);case"year":return function(n){return ii(n,r)};case"quarter":return function(n){return"Q"+lr(n.getMonth())+" "+ii(n,r)};case"month":return i.getFullYear()-t.getFullYear()>0?function(n){return st[n.getMonth()]+" "+ii(n,r)}:function(n){return st[n.getMonth()]};case"day":default:return i.getFullYear()-t.getFullYear()>0?function(n){return ii(n,r)+" "+st[n.getMonth()]+" "+n.getDate()}:function(n){return st[n.getMonth()]+" "+n.getDate()}}}function ri(n){var t=n.toString().trim();return vi.test(t)?new Date(t):ai.test(t)?new Date(t+" 1"):yi.test(t)?new Date(t.substr(t.indexOf("-")+1)):null}function vr(n,t){var o=t.indexOf("_yy")>-1,i=ri(n[0].text),r=ri(n[n.length-1].text),u=void 0,f=void 0,e=void 0;switch(t.replace("_yy","")){case"auto":return vr(n,pi(i,r)+(o?"_yy":""));case"year":e=function(n){return n.setFullYear(n.getFullYear()+1)};f=new Date(r.getFullYear(),0,1);u=i.getFullYear()<r.getFullYear()?0===i.getMonth()&&1===i.getDate()?i:new Date(i.getFullYear()+1,0,1):new Date(r.getFullYear(),0,1);break;case"quarter":e=function(n){return n.setMonth(n.getMonth()+3)};u=(i.getMonth()+1)%4==0&&1===i.getDate()?i:new Date(i.getFullYear(),i.getMonth()+(3-i.getMonth()%3),1);f=(r.getMonth()+1)%4==0&&1===r.getDate()?r:new Date(r.getFullYear(),r.getMonth()+(3-r.getMonth()%3),1);break;case"month":u=1===i.getDate()?i:new Date(i.getFullYear(),i.getMonth()+1,1);f=1===r.getDate()?r:new Date(r.getFullYear(),r.getMonth(),1);e=function(n){return n.setMonth(n.getMonth()+1)};break;case"day":default:u=i;f=r;e=function(n){return n.setDate(n.getDate()+1)}}return f<u&&(f=u),function(n,t,i,r){for(var f=[],u=new Date(n);u<=t;)f.push({x:it(u),text:i(u)}),r(u);return f}(u,f,wi(t,i,r),e)}function yr(n){var r=[],i=[],t=!0;if(n.lines&&n.lines.length?n.lines.forEach(function(n,u){var f="Line #"+(u+1)+" ("+(n.title||"untitled")+")";n.points&&n.points.length||(r.push([f+" contains no points",s.ERROR_INCOMPLETE_DATA,{line:n}]),t=!1);1===n.points.length&&(r.push([f+" only contains 1 point (need at least 2)",s.ERROR_INCOMPLETE_DATA,{line:n}]),t=!1);n.points.forEach(function(n,r){isNaN(n)&&("x"in n?(isNaN(n.x)&&(i.push(["The X-coordinate of point #"+(r+1)+" on "+f+" is not a valid number: "+n.x,s.ERROR_INVALID_DATA,{point:n}]),t=!1),"y"in n?isNaN(n.y)&&(i.push(["The Y-coordinate of point #"+(r+1)+" on "+f+" is not a valid number: "+n.y,s.ERROR_INVALID_DATA,{point:n}]),t=!1):"date"in n&&(n.date instanceof Date&&!isNaN(n.date)||(i.push(["The date value of point #"+(r+1)+" on "+f+" is not a valid date: "+n.date,s.ERROR_INVALID_DATA,{point:n}]),t=!1))):(i.push(["Point #"+(r+1)+" on "+f+" is in an invalid format: "+n,s.ERROR_INVALID_DATA,{point:n}]),t=!1))})}):(r.push(["Data contains no lines",s.ERROR_INCOMPLETE_DATA]),t=!1),n.labels&&n.labels.length){n.labels.forEach(function(n,r){"string"==typeof n||n.text||(i.push(["Label #"+(r+1)+" is in an invalid format: "+n,s.ERROR_INVALID_DATA]),t=!1)});for(var f=[function(n){return!isNaN(n)},function(n){return vi.test(n)},function(n){return yi.test(n)},function(n){return ai.test(n)}],o=n.labels[0].text||n.labels[0],e=void 0,u=0;u<f.length;u++)if(f[u](o)){e=f[u];break}e&&!n.labels.every(e)&&(i.push(["Labels are not formatted consistently",s.ERROR_INVALID_DATA,{labels:n.labels}]),t=!1)}else r.push(["Data contains no labels",s.ERROR_INCOMPLETE_DATA]),t=!1;return{valid:t,warnings:r,errors:i}}function pr(n,t){var i={title:ni(n.title,wu),subtitle:ni(n.subtitle,-1,null),footnote:ni(n.footnote,-1,null),source:ni(n.source,bu,pu),labels:[],lines:[]},e=(n.lines||[]).map(function(n){return b({points:[]},n)}),r=n.labels||[],u=void 0,s,o,f;for(e.length&&e[0].points[0]&&e[0].points[0].date?(s=e.map(function(n){return n.points}).reduce(function(n,t){return n.concat(t)},[]).map(function(n){return n.date}).sort(function(n,t){return n-t}),r=s.map(yu).filter(ti),u=s.map(it).filter(ti),i.labelType="date"):r.length&&"object"!==pt(r[0])?vi.test(r[0].toString().trim())?(u=r.map(function(n){return it(new Date(n))}),i.labelType="date"):ai.test(r[0].toString().trim())?(u=r.map(function(n){return it(new Date(n+" 1"))}),i.labelType="date"):yi.test(r[0].toString().trim())?(u=r.map(function(n){return it(new Date(n.substr(n.indexOf("-")+1)))}),i.labelType="date_range"):isNaN(r[0])||(u=r.map(function(n){return Number(n)}),i.labelType="number"):i.labelType="string","object"!==pt(r[0])?r.forEach(function(n,t){null!==n&&"-"!==n&&i.labels.push({x:u?u[t]:t,text:String(n)})}):i.labels=r,i.labels.sort(ci),i.labelsLookup={},o=0;o<i.labels.length;o++)i.labelsLookup[i.labels[o].x]=i.labels[o].text;return f={},Object.keys(y).forEach(function(n){f[y[n]]=0}),e.forEach(function(n,r){var e={id:n.id||r,title:(n.title||"").slice(0,ku)},o,s;"object"===pt(n.points[0])&&null!==n.points[0]?e.points=n.points[0].date?n.points.map(function(n,t){return{x:u[t],y:n.y}}):n.points:(e.points=[],n.points.forEach(function(n,t){null!==n&&"-"!==n&&e.points.push({x:u?u[t]:t,y:Number(n)})}));e.points.sort(ci);o=void 0;s=void 0;n.color?"string"==typeof n.color&&y[n.color]?(e.colorPalette=n.color,o=y[n.color]):n.colorPalette&&y[n.colorPalette]?(e.colorPalette=n.colorPalette,o=y[n.colorPalette]):n.color instanceof Array&&(o=n.color):(e.colorPalette="gallup",o=y.gallup);t&&(e.colorPalette="approvalFlexchart",o=y.approvalFlexchart,s=rt[e.colorPalette]);n.strokeDashArray?"string"==typeof n.color&&rt[n.color]?s=rt[n.color]:n.colorPalette&&rt[n.colorPalette]?s=rt[n.colorPalette]:"string"===n.strokeDashArray&&(s=n.strokeDashArray):s=rt[e.colorPalette];o?(f[o]||(f[o]=0),e.color=o[f[o]],s&&(e.strokeDashArray=s[f[o]]),f[o]++):(e.color=n.color.toLowerCase(),e.strokeDashArray=n.strokeDashArray);i.lines.push(e)}),i}function p(n,t){"function"!=typeof n||c[t]||(c[t]=function(){n();c[t]=null})}function ht(n){c[n]&&(c[n]=null)}function bi(n,t){"function"==typeof n&&(c[t]=null,p(n,t))}function ct(n,t){l||((l=document.createElement("div")).className="dv-overlay",document.body.appendChild(l));n instanceof HTMLElement&&(void 0!==t&&n.setAttribute("data-owner",t),l.appendChild(n))}function ui(n){l&&n instanceof HTMLElement&&n.parentNode===l&&l.removeChild(n)}function wr(n){l&&[].concat(bt(l.children)).forEach(function(t){t.getAttribute("data-owner")===n&&ui(t)})}function br(n){ut||((ut=document.createElement("style")).id="dv-styles",document.head.appendChild(ut));var t=lt.indexOf(n);return t>-1?t:(lt.push(n),ut&&(ut.innerHTML=lt.filter(function(n){return null!==n}).join("\n")),lt.length-1)}function kr(n){if(n.length){if("x"in n[0]&&"y"in n[0])return n.map(function(n){return[n.x,n.y]});if(!(n[0]instanceof Array))return n.map(function(n,t){return[t,n]})}return n}function r(n){for(var i=arguments.length,r=Array(i>1?i-1:0),t=1;t<i;t++)r[t-1]=arguments[t];return r.some(function(t){return n.options.mode===t})}function h(n,t){return cr(n.dom.plotArea.width()/(n.metadata.axisX.axisRange||1)*(t-n.metadata.axisX.axisMin))}function yt(n,t){var i=n.dom.plotArea.height();return cr(i-i/n.metadata.axisY.axisRange*(t-n.metadata.axisY.axisMin))}function fu(n,t){var h=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=n.metadata.axisX,i=r.valuesByLine[h]||r.values,u=t*(r.axisRange/n.dom.plotArea.width())+r.axisMin,o;if(i.indexOf(u)>-1)return u;if(vt)return t;for(var e=i[0],s=Math.abs(e-u),f=1;f<i.length;f++)o=Math.abs(i[f]-u),o<s&&(e=i[f],s=o);return e}function eu(n,t){var i=n.metadata.axisX,u=i.axisRange/n.dom.plotArea.width(),r=(t-i.axisMin)/u;return vt&&(r=i.values[t]),r+n.state.plotAreaOffset.left}function ef(n,t,i){var h=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,l=.08*(t-n),f=null!==h,e=null!==c,r=f?h:n-l,u=Math.max(e?c:t+l,t+l),a,v;r===u?(a=Math.max(hr(r),1),r=f?h:r-2*a,u=e?c:u+2*a):u<r&&(v=[u,r],r=v[0],u=v[1]);for(var o=function(n,t,i){var u=n/i,r=hr(u),e=u/r,f=void 0,o;return(f=e>5?10*r:e>2?5*r:e>1?2*r:r,t&&n%f!=0)&&(o=n/(i-1),f=ot(u)>ot(o)?o:u),f}(u-r,f&&e,i),p=f?r:function(n,t){return 0===t?0:Math.floor(n/t)*t}(r,o),w=e?u:function(n,t){return 0===t?0:Math.ceil(n/t)*t}(u,o),b=ot(o),y=[],s=p;s<=w;s+=o)y.push({value:s,text:gt(s,b,!0)});return y}function ou(n){var h=n.data,c=n.state,l=n.metadata,t=l.axisX,v=l.axisY,u=[],f=t.labels||h.labels,s;if(r(n,w))return u.push(f[0]),u.push(f[f.length-1]),u;var a=(c.innerWidth-v.width-i-2*t.plotOffset)*c.zoomLevel/(t.maxLabelWidth+c.labelSpacing),e=void 0,o=void 0;for(t.labels?(o=t.labels.length-1,e=Math.ceil(t.labels.length/a)):(o=Math.min(h.labels.length-1,t.max),e=Math.max(Math.ceil(h.labels.length/a),1)),s=o%e;s<=o;s+=e)u.push(f[s]);return u}function tr(n,t){var i=n.data.labelsLookup[t];return i?"date_range"===n.data.labelType?function(n){var i=n.split("-"),t,r;return i.length<2?n:(t=i.map(function(n){return n.split(" ")}),r=void 0,r=t[0][0]!==t[1][0]?t[1].join(" "):t[0][1]!==t[1][1]?t[1][1]+t[1][2]:t[1][2],i[0]+"&ndash;"+r)}(i):i:t.toString()}function su(n){return n instanceof Array&&n.length}var ur,oi,fr,er,c,l,ut,lt,ki,fi,ir,rr,tt,hu;Array.prototype.find||(Array.prototype.find=function(n){if(null==this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!=typeof n)throw new TypeError("predicate must be a function");for(var i,r=Object(this),u=r.length>>>0,f=arguments[1],t=0;t<u;t++)if(i=r[t],n.call(f,i,t,r))return i});Array.from||(Array.from=(ur=Object.prototype.toString,oi=function(n){return"function"==typeof n||"[object Function]"===ur.call(n)},fr=Math.pow(2,53)-1,er=function(n){var t=function(n){var t=Number(n);return isNaN(t)?0:0!==t&&isFinite(t)?(t>0?1:-1)*Math.floor(Math.abs(t)):t}(n);return Math.min(Math.max(t,0),fr)},function(n){var o=Object(n),f,t;if(null==n)throw new TypeError("Array.from requires an array-like object - not null or undefined");if(t=arguments.length>1?arguments[1]:void 0,void 0!==t){if(!oi(t))throw new TypeError("Array.from: when provided, the second argument must be a function");arguments.length>2&&(f=arguments[2])}for(var r,u=er(o.length),e=oi(this)?Object(new this(u)):new Array(u),i=0;i<u;)r=o[i],e[i]=t?void 0===f?t(r,i):t.call(f,r,i):r,i+=1;return e.length=u,e}));var cu="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},si,or=(function(n){!function(t){function r(){this.reads=[];this.writes=[];this.raf=s.bind(t)}function u(n){n.scheduled||(n.scheduled=!0,n.raf(function(n){var t,r=n.writes,e=n.reads;try{i("flushing reads",e.length);f(e);i("flushing writes",r.length);f(r)}catch(n){t=n}if(n.scheduled=!1,(e.length||r.length)&&u(n),t){if(i("task errored",t.message),!n.catch)throw t;n.catch(t)}}.bind(null,n)))}function f(n){for(var t;t=n.shift();)t()}function e(n,t){var i=n.indexOf(t);return!!~i&&!!n.splice(i,1)}var i=function(){},s=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.msRequestAnimationFrame||function(n){return setTimeout(n,16)},o;r.prototype={constructor:r,measure:function(n,t){var i=t?n.bind(t):n;return this.reads.push(i),u(this),i},mutate:function(n,t){var i=t?n.bind(t):n;return this.writes.push(i),u(this),i},clear:function(n){return e(this.reads,n)||e(this.writes,n)},extend:function(n){if("object"!=typeof n)throw new Error("expected object");var t=Object.create(this);return function(n,t){for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i])}(t,n),t.fastdom=this,t.initialize&&t.initialize(),t},"catch":null};o=t.fastdom=t.fastdom||new r;n.exports=o}("undefined"!=typeof window?window:cu)}(si={exports:{}},si.exports),si.exports),pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(n){return typeof n}:function(n){return n&&"function"==typeof Symbol&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},u=function(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");},o=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),b=Object.assign||function(n){for(var i,r,t=1;t<arguments.length;t++){i=arguments[t];for(r in i)Object.prototype.hasOwnProperty.call(i,r)&&(n[r]=i[r])}return n},e=function(n,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);n.prototype=Object.create(t&&t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}});t&&(Object.setPrototypeOf?Object.setPrototypeOf(n,t):n.__proto__=t)},f=function(n,t){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?n:t},wt=function(){return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return function(n,t){var r=[],u=!0,f=!1,e=void 0,o,i;try{for(i=n[Symbol.iterator]();!(u=(o=i.next()).done)&&(r.push(o.value),!t||r.length!==t);u=!0);}catch(n){f=!0;e=n}finally{try{!u&&i.return&&i.return()}finally{if(f)throw e;}}return r}(n,t);throw new TypeError("Invalid attempt to destructure non-iterable instance");}}(),bt=function(n){if(Array.isArray(n)){for(var t=0,i=Array(n.length);t<n.length;t++)i[t]=n[t];return i}return Array.from(n)},s=function(){function n(){u(this,n)}return o(n,[{key:"on",value:function(n,t){return this.el.addEventListener(n,t),this}},{key:"off",value:function(n,t){return this.el.removeEventListener(n,t),this}},{key:"emit",value:function(n,t){var i=document.createEvent("Event");return i.dvData=t,i.initEvent("dv."+n,!0,!0),this.el.dispatchEvent(i),this}},{key:"warn",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return this.emit("warn",{code:t,message:n,extras:i})}},{key:"error",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return this.emit("error",{code:t,message:n,extras:i})}}]),n}();b(s,{ERROR_GENERIC:0,ERROR_INVALID_DATA:1,ERROR_INCOMPLETE_DATA:2});var t={line_chart:"dv-line-chart",chart_zoomed:"dv-zoomed",chart_panning:"dv-panning",chart_viewport_hover:"dv-viewport-hover",header:"dv-header",title:"dv-title",subtitle:"dv-subtitle",legend:"dv-legend",legend_item:"dv-legend-item",plot_area:"dv-plot-area",plot_bg:"dv-plot-background",viewport:"dv-viewport",lines_group:"dv-lines-group",line:"dv-line",point:"dv-point",point_label:"dv-point-label",point_label_line:"dv-point-label-line",annotation:"dv-annotation",annotation_bg:"dv-annotation-bg",x_axis:"dv-x-axis",y_axis:"dv-y-axis",axis_line:"dv-axis-line",axis_at_zero:"dv-axis-at-zero",tick:"dv-tick",grid_line:"dv-grid-line",x_axis_grid_lines:"dv-grid-lines-v",y_axis_grid_lines:"dv-grid-lines-h",footer:"dv-footer",footnote:"dv-footnote",source:"dv-source",tooltip:"dv-tooltip",tooltip_left:"dv-tooltip-left",tooltip_right:"dv-tooltip-right",group_tooltip:"dv-group-tooltip",tooltip_label:"dv-tooltip-label",tooltip_value:"dv-tooltip-value",tooltip_line_label:"dv-tooltip-line-label",tooltip_hidden:"dv-hidden",tooltip_point:"dv-tooltip-point",label_editor:"dv-label-editor",label_editor_closing:"dv-editor-closing",selected_point:"dv-selected-point",label_handle:"dv-label-handle",placeholder:"dv-placeholder",no_select:"dv-no-select"},sr=document.createElement("canvas").getContext("2d"),kt={};var st=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],vu=864e5,li=Date.UTC(1970,0,1);var ai=/^\d{2,4} (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)$/i,vi=/^\d{2,4} (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) \d{1,2}$/i,yi=/^\d{2,4} (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) \d{1,2}-\d{2,4} (jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec) \d{1,2}$/i;var y={gallup:["#009d4f","#002169","#238dc1","#b14c59"],polcategorical:["#009d4f","#0065a1","#009383","#002169"],democratic:["#002169","#0065a1","#005d83","#238dc1"],republican:["#f32735","#aa182c","#ce0e2d","#51232d"],independent:["#6a8c89","#244445","#5e7775","#062a30"],disapproval:["#b14c59","#aa182c","#d96931","#ae821f"],approvalFlexchart:["#005850","#d96931"]},rt={gallup:[null,null,"5 5","2 2"],polcategorical:[null,"5 5",null,"2 2"],democratic:[null,null,"5 5","2 2"],republican:[null,"5 5","2 2",null],independent:[null,"5 5","2 2",null],approvalFlexchart:[null,"5 5"]},pu="Gallup",wu=150,bu=40,ku=50;c={};!function n(){for(var r,i=Object.keys(c),t=0;t<i.length;t++)r=i[t],c[r]&&c[r]();window.requestAnimationFrame(n)}();l=void 0;ut=void 0;lt=[];ki='.dv-line-chart{display:block;font-family:aktiv-grotesk,aktiv-grotesk-std,Arial,Helvetica,sans-serif;background-color:#f0f8f0}.dv-line-chart ::-moz-selection{fill:#fff;background-color:#929292}.dv-line-chart ::selection{fill:#fff;background-color:#929292}.dv-line-chart .dv-title{font-size:18px;fill:#666}.dv-line-chart .dv-annotation,.dv-line-chart .dv-footnote,.dv-line-chart .dv-legend text,.dv-line-chart .dv-point-label,.dv-line-chart .dv-source,.dv-line-chart .dv-subtitle,.dv-line-chart .dv-tick text{font-size:11px;fill:#666}.dv-line-chart .dv-source,.dv-line-chart .dv-tick text{text-transform:uppercase}.dv-line-chart .dv-x-axis text{text-anchor:middle}.dv-line-chart .dv-source{letter-spacing:.1em}.dv-line-chart .dv-axis-line,.dv-line-chart .dv-grid-line,.dv-line-chart .dv-legend rect,.dv-line-chart .dv-tick line{shape-rendering:crispEdges}.dv-line-chart .dv-axis-line,.dv-line-chart .dv-grid-line,.dv-line-chart .dv-line,.dv-line-chart .dv-tick line{stroke-width:2px}.dv-line-chart .dv-axis-at-zero line,.dv-line-chart .dv-axis-line{stroke:#ddd}.dv-line-chart .dv-grid-line,.dv-line-chart .dv-tick line{stroke:#fff}.dv-line-chart .dv-line{fill:none}.dv-line-chart .dv-point{stroke:#f0f8f0;stroke-width:3px}.dv-line-chart .dv-tooltip-point{opacity:0}.dv-viewport-hover .dv-line-chart .dv-tooltip-point{opacity:1}.dv-line-chart .dv-point-label-line{stroke:#aaa;stroke-dasharray:3;stroke-width:1px}.dv-line-chart .dv-annotation-bg{fill:#fff}.dv-line-chart .dv-y-axis text{text-anchor:end}.dv-line-chart .dv-placeholder{fill:transparent}.dv-line-chart svg{overflow:visible}.dv-line-chart [id^=zoom-fade].fade-end stop:last-child,.dv-line-chart [id^=zoom-fade].fade-start stop:first-child{stop-opacity:1}.dv-line-chart.dv-zoomed .dv-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.dv-line-chart.dv-panning{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dv-line-chart.dv-tile-mode .dv-title{font-size:11px;text-transform:uppercase;letter-spacing:.1em}.dv-line-chart.dv-tile-mode .dv-footnote,.dv-line-chart.dv-tile-mode .dv-subtitle{display:none}.dv-line-chart.dv-interactive-mode .dv-grid-line{stroke-width:1px}.dv-line-chart.dv-interactive-mode .dv-axis-line{stroke-width:2px}.dv-line-chart.dv-interactive-mode .dv-x-axis text{text-anchor:start}.dv-tooltip{position:absolute;top:0;left:0;z-index:1;padding:5px 10px;font:11px aktiv-grotesk,aktiv-grotesk-std,Arial,Helvetica,sans-serif;color:#666;pointer-events:none;background-color:#fff;opacity:0;will-change:transform}.dv-tooltip:after{position:absolute;top:100%;left:50%;content:"";border:5px solid transparent;border-top-color:#fff;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.dv-tooltip.dv-tooltip-right:after{left:5px;-webkit-transform:none;-ms-transform:none;transform:none}.dv-tooltip.dv-tooltip-left:after{right:5px;left:auto;-webkit-transform:none;-ms-transform:none;transform:none}.dv-viewport-hover .dv-tooltip{opacity:1}.dv-tooltip .dv-tooltip-label{text-transform:uppercase}.dv-tooltip .dv-tooltip-value{margin-left:5px;font-weight:700}.dv-tooltip.dv-group-tooltip p{margin:0;font-size:11px;line-height:1.5}.dv-tooltip.dv-group-tooltip .dv-tooltip-value{margin-left:0}.dv-tooltip.dv-group-tooltip .dv-tooltip-line-label{margin-left:5px}';fi="http://www.w3.org/2000/svg";var du=0,gu=0,nf=0,ft=function(){function n(t){u(this,n);this.node=document.createElementNS(fi,t)}return o(n,[{key:"attr",value:function(n,t){var r=this,i;if("object"===(void 0===n?"undefined":pt(n)))Object.keys(n).forEach(function(t){r.node.setAttribute(t,n[t])});else{if(void 0===t)return i=this.node.getAttribute(n),isNaN(i)||""===i?i:Number(i);this.node.setAttribute(n,t)}return this}},{key:"addClass",value:function(n){var t=this;return this.node.classList?n.split(" ").filter(function(n){return""!==n}).forEach(function(n){return t.node.classList.add(n)}):this.hasClass(n)||this.attr("class",(null!==this.node.getAttribute("class")?this.node.getAttribute("class"):"")+" "+n),this}},{key:"removeClass",value:function(n){var t=this;return this.node.classList?n.split(" ").forEach(function(n){return t.node.classList.remove(n)}):this.attr("class",this.attr("class").replace(new RegExp("(^|\\b)"+n.split(" ").join("|")+"(\\b|$)","gi")," ")),this}},{key:"toggleClass",value:function(n,t){return!0===t?this.addClass(n):!1===t?this.removeClass(n):this.node.classList?this.node.classList.toggle(n):this.hasClass(n)?this.removeClass(n):this.addClass(n),this}},{key:"hasClass",value:function(n){return this.node.classList?this.node.classList.contains(n):new RegExp("(^| )"+n+"( |$)","gi").test(this.attr("class"))}},{key:"appendTo",value:function(t){return t instanceof n?t.node.appendChild(this.node):t.appendChild(this.node),this}},{key:"appendChild",value:function(t){return this.node.appendChild(t instanceof n?t.node:t),this}},{key:"remove",value:function(){return this.node.parentNode&&this.node.parentNode.removeChild(this.node),this}},{key:"removeChild",value:function(t){return this.node.removeChild(t instanceof n?t.node:t),this}},{key:"show",value:function(){return this.node.style.display="",this}},{key:"hide",value:function(){return this.node.style.display="none",this}},{key:"bbox",value:function(){var n=this.node.getBBox(),t=n.x,i=n.y,r=n.width,u=n.height;return{x:t,y:i,width:r,height:u,left:t,top:i,right:t+r,bottom:i+u}}},{key:"clip",value:function(t){var i=void 0;return i=t instanceof n?t.attr("id"):t instanceof SVGElement?t.id:t,this.attr("clip-path","url(#"+i+")")}},{key:"mask",value:function(t){var i=void 0;return i=t instanceof n?t.attr("id"):t instanceof SVGElement?t.id:t,this.attr("mask","url(#"+i+")")}},{key:"parent",value:function(){return this.node.parentNode}},{key:"front",value:function(){return this.parent().appendChild(this.node),this}},{key:"back",value:function(){return this.parent().insertBefore(this.node,this.parent().firstChild),this}},{key:"appendRawSVG",value:function(n){var t=document.createElementNS(fi,"svg"),i;for(("innerHTML"in t)?t.innerHTML=n:(i=document.createElement("div"),i.innerHTML="<svg>"+n+"<\/svg>",t=i.children[0]);t.firstChild;)this.appendChild(t.firstChild);return this}}]),n}(),di=function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return e(n,ft),o(n,[{key:"x",value:function(n){return this.attr("x",n)}},{key:"y",value:function(n){return this.attr("y",n)}},{key:"move",value:function(n,t){return this.x(n),this.y(t),this}},{key:"cx",value:function(n){var t=this.bbox().width/2;return void 0===n?this.x()+t:this.x(n-t)}},{key:"cy",value:function(n){var t=this.bbox().height/2;return void 0===n?this.y()+t:this.y(n-t)}}]),n}(),ei=function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return e(n,di),o(n,[{key:"width",value:function(n){return this.attr("width",n)}},{key:"height",value:function(n){return this.attr("height",n)}},{key:"size",value:function(){return arguments.length?(this.width(arguments.length<=0?void 0:arguments[0]).height(arguments.length<=1?void 0:arguments[1]),this):{width:this.width(),height:this.height()}}}]),n}(),dr=function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return e(n,ft),o(n,[{key:"cx",value:function(n){return this.attr("cx",n)}},{key:"cy",value:function(n){return this.attr("cy",n)}}]),n}(),gi=function(){function n(t,i){u(this,n);var r=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t));return r.points=[],void 0!==i&&r.setPoints(i),r}return e(n,ft),o(n,[{key:"setPoints",value:function(n){return this.points=kr(n),this.attr("points",this.points.map(function(n){return n.x+","+n.y}).join(" ")),this}}]),n}(),gr=function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).apply(this,arguments))}return e(n,di),o(n,[{key:"dx",value:function(n){return this.attr("dx",n)}},{key:"dy",value:function(n){return this.attr("dy",n)}}]),n}(),tf=function(){function n(){u(this,n);var t=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"svg"));return t.attr("xmlns",fi),t.attr("id","dv-svg-"+du++),t.createDefs(),t}return e(n,ei),o(n,[{key:"createDefs",value:function(){return this.defs=new ft("defs"),this.appendChild(this.defs),this}},{key:"addDef",value:function(n){return this.defs.appendChild(n),this}},{key:"removeDef",value:function(n){return this.defs.removeChild(n),this}},{key:"removeAllChildren",value:function(){for(;this.node.firstChild;)this.removeChild(this.node.firstChild);return this.createDefs(),this}}]),n}(),v=function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"svg"))}return e(n,ei),n}(),et=function(){function n(t,i){u(this,n);var r=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"rect"));return r.width(t).height(i),r}return e(n,ei),o(n,[{key:"rx",value:function(n){return this.attr("rx",n)}},{key:"ry",value:function(n){return this.attr("ry",n)}}]),n}(),nu=function(){function n(t){u(this,n);var i=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"circle"));return i.r(t),i}return e(n,dr),o(n,[{key:"r",value:function(n){return this.attr("r",n)}}]),n}(),rf=(function(){function n(){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"ellipse"))}e(n,dr);o(n,[{key:"rx",value:function(n){return this.attr("rx",n)}},{key:"ry",value:function(n){return this.attr("ry",n)}}])}(),function(){function n(t){u(this,n);var i=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"tspan"));return i.text(t),i}return e(n,gr),o(n,[{key:"text",value:function(n){return void 0===n?this.node.textContent:(this.node.textContent=n,this)}}]),n}()),d=function(){function n(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i;return u(this,n),i=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"text")),i.leading(r),i.lines=[],i.text(t),i}return e(n,gr),o(n,[{key:"clear",value:function(){for(;this.node.firstChild;)this.removeChild(this.node.firstChild);return this.lines=[],this}},{key:"text",value:function(n){var t=this;return void 0===n?this.textContent:(this.clear(),n.split("\n").forEach(function(n,i){t.lines.push(new rf(n.length?n:" ").x(t.x()).dy(t.getLineOffset(0===i)).appendTo(t))}),this)}},{key:"x",value:function(n){return void 0===n?this.attr("x"):(this.attr("x",n),this.lines.forEach(function(t){return t.x(n)}),this)}},{key:"getLines",value:function(){return this.lines}},{key:"leading",value:function(n){return void 0===n?this.textLeading:(this.textLeading=n,this)}},{key:"getLineOffset",value:function(){return arguments.length>0&&void 0!==arguments[0]&&arguments[0]?.8+(this.textLeading-1)/2+"em":this.textLeading+"em"}}]),n}(),g=function(){function n(){u(this,n);var t=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"g"));return t.translateX=0,t.translateY=0,t}return e(n,ft),o(n,[{key:"x",value:function(n){return void 0===n?this.translateX:(this.translateX=n,this.attr("transform","translate("+this.translateX+", "+this.translateY+")"))}},{key:"y",value:function(n){return void 0===n?this.translateY:(this.translateY=n,this.attr("transform","translate("+this.translateX+", "+this.translateY+")"))}},{key:"bbox",value:function(){var n=this.x(),t=this.y(),i=this.node.getBBox(),r=i.width,u=i.height;return{x:n,y:t,width:r,height:u,left:n,top:t,right:n+r,bottom:t+u}}},{key:"children",value:function(){return this.node.children||[].concat(bt(this.node.childNodes)).filter(function(n){return n instanceof SVGElement})}},{key:"child",value:function(n){return this.children()[n]}}]),n}(),nr=function(){function n(t,i,r,e){u(this,n);var o=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"line"));return 0!==t&&o.attr("x1",t),0!==i&&o.attr("y1",i),0!==r&&o.attr("x2",r),0!==e&&o.attr("y2",e),o}return e(n,ft),n}(),tu=(function(){function n(t){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"polyline",t))}e(n,gi)}(),function(){function n(t){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"polygon",t))}e(n,gi)}(),function(){function n(t){return u(this,n),f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"path",t))}return e(n,gi),o(n,[{key:"setPoints",value:function(n){return this.points=kr(n),this.attr("d",function(n){var t="";return n instanceof Array&&n.length&&n.forEach(function(n,i){t+=" "+n[0]+" "+n[1];0===i&&(t="M"+t+" L")}),t}(this.points)),this}}]),n}()),uf=function(){function n(){u(this,n);var t=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"clipPath"));return t.attr("id","svg-cp"+gu++),t}return e(n,di),n}(),w=(function(){function n(){u(this,n);var t=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,"mask"));return t.attr("id","svg-mask"+nf++),t}e(n,ei)}(),"tile"),iu={mode:"article",width:"100%",height:"100%",showHeader:!0,showFooter:!0,showLegend:!0,yAxisPosition:"right",showPointLabels:!0,pointLabels:{},dateFormat:"day",ticks:null,zoomLevel:1,x_axis_min:null,x_axis_max:null,y_axis_min:null,y_axis_max:null,y_precision:null,unitFormat:null,embedStylesheet:!0,displayTooltips:!0,strictModeTooltips:!1,wrapAxisLabels:!1,enableValidation:!1,strictValidation:!1,forceMultilineLegend:!1,tooltipLabel:null,tooltipLineLabel:null,groupTooltipLabel:null},i=10,a='11px "aktiv-grotesk", "aktiv-grotesk-std", Arial, Helvetica, sans-serif',ff=or.mutate.bind(or),nt=[],ru=function(n){var i=document.createElement("div");if(n in i.style)return!0;for(var r=["Khtml","Ms","O","Moz","Webkit"],u=n.replace(/^[a-z]/,function(n){return n.toUpperCase()}),t=0;t<r.length;t++)if(r[t]+u in i.style)return!0;return!1}("perspective"),uu=void 0,at=document.getElementsByClassName("c-pjac"),vt=!1;ir=function(){function n(t,i){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r,o;return(u(this,n),r=f(this,(n.__proto__||Object.getPrototypeOf(n)).call(this)),(r.container="string"==typeof t?document.querySelector(t):t,r.options=b({},iu,e),r.dom={},r.metadata={},r.state={},r.zoomFadeId="zoom-fade-"+(document.querySelectorAll("[id*='zoom-fade']").length+1),r.dom.chart=(new tf).appendTo(r.container),r.el=r.dom.chart.node,r.el.dvInstance=r,r.on("mouseenter",r.mouseEnter.bind(r)).on("mousedown",r.mouseDown.bind(r)).on("touchstart",r.touchStart.bind(r)).on("mousemove",r.mouseMove.bind(r)).on("touchmove",r.touchMove.bind(r)).on("mouseup",r.mouseUp.bind(r)).on("touchend",r.touchEnd.bind(r)).on("mouseleave",r.mouseLeave.bind(r)).on("dragstart",function(n){return n.preventDefault()}).on("focus",r.focusStart.bind(r)).on("blur",r.focusEnd.bind(r)).on("keydown",r.keyDown.bind(r)),e.enableValidation)&&!yr(i).valid&&e.strictValidation)?f(r):(o="approvalFlexChart"===r.container.parentElement.dataset.codename,r.data=pr(i,o),r.init(),r)}return e(n,s),o(n,[{key:"init",value:function(){var u=this.options,f=this.dom,n=this.state;switch(this.el.parentNode||this.container.appendChild(this.el),f.chart.attr("class",t.line_chart+" dv-"+this.options.mode+"-mode"),n.chartPadding=r(this,"interactive")?i:2*i,n.chartTicks=r(this,"interactive")?3:5,n.maxLines=1/0,n.tooltipsEnabled=u.displayTooltips,n.headerShown=u.showHeader&&!r(this,"interactive"),n.zoomLevel=r(this,"interactive","custom")?u.zoomLevel:1,n.labelSpacing=r(this,"interactive")?30:10,u.mode){case"article":f.chart.size(720,350);n.maxLines=4;break;case w:f.chart.size(300,300);break;case"interactive":case"custom":default:f.chart.size(u.width,u.height)}return n.svgRect=this.el.getBoundingClientRect(),n.innerWidth=n.svgRect.width-2*n.chartPadding,n.innerHeight=n.svgRect.height-2*n.chartPadding,n.textWrap=r(this,"article")?530:n.innerWidth,n.zoomLevel>1&&f.chart.addClass(t.chart_zoomed),u.embedStylesheet?this.embedStyles():br(ki),this.createMetadata().draw().emit("init"),nt.push(this),this}},{key:"createMetadata",value:function(){var f=this.data,u=this.options,g=this.dom,y=this.state,o,l,s,h,w,b,k,d,c;if(this.metadata={axisX:{height:0,plotOffset:20},axisY:{width:0}},!f.lines.length&&!f.labels.length)return this;var p=this.metadata,n=p.axisX,e=p.axisY;if(f.lines=f.lines.slice(0,y.maxLines),"date"===f.labelType||"date_range"===f.labelType)n.labels=vr(f.labels,u.dateFormat);else if("number"===f.labelType)for(n.labels=[],o=f.labels[0].x;o<=f.labels[f.labels.length-1].x;o++)n.labels.push({x:o,text:o.toString()});if(l=f.lines.map(function(n){return n.points}),s=l.reduce(function(n,t){return n.concat(t)},[]),!s.length&&f.labels.length&&(s=f.labels.map(function(n){return{x:n.x,y:0}})),n.values=s.map(function(n){return n.x}).filter(ti).sort(function(n,t){return n-t}),n.valuesByLine=l.map(function(n){return n.map(function(n){return n.x})}),n.min=n.values[0],n.max=n.values[n.values.length-1],n.range=n.max-n.min,!f.labels.length){if(!n.values.length)return this;f.labels=n.values.map(function(n){return{x:n,text:n.toString()}})}if(h=n.labels||f.labels,(n.axisMin=null!==u.x_axis_min?u.x_axis_min:Math.min(n.min,h[0].x),n.axisMax=null!==u.x_axis_max?u.x_axis_max:Math.max(n.max,h[h.length-1].x),n.axisRange=n.axisMax-n.axisMin,u.ticks&&u.ticks.length)&&(isNaN(u.ticks[0])?ri(u.ticks[0])&&("date"===f.labelType||"date_range"===f.labelType)?(w=ar(n.min),b=ar(n.max),n.ticks=u.ticks.map(function(n){return function n(t,i,r,u){var e=i.indexOf("_yy")>-1,f=void 0;switch(i.replace("_yy","")){case"auto":return n(t,pi(r,u)+(e?"_yy":""),r,u);case"year":f=new Date(t.getFullYear(),0,1);break;case"quarter":f=new Date(t.getFullYear(),3*(lr(t.getMonth())-1),1);break;case"month":f=new Date(t.getFullYear(),t.getMonth(),1);break;case"day":default:f=new Date(t)}return{x:it(f),text:wi(i,r,u)(f)}}(ri(n),u.dateFormat,w,b)}).filter(function(n,t,i){return i.indexOf(n)===t})):n.ticks="string"==typeof u.ticks[0]?u.ticks.filter(function(n,t,i){return i.indexOf(n)===t}).map(function(n){return f.labels.find(function(t){return t.text===n})}).filter(function(n){return!!n}):u.ticks:n.ticks=u.ticks.filter(function(n,t,i){return i.indexOf(n)===t}).map(function(n){return{x:n,text:f.labels[n]?f.labels[n].text:n.toString()}}),n.ticks.sort(ci)),e.values=s.map(function(n){return n.y}).filter(ti).sort(function(n,t){return n-t}),e.valuesByLine=l.map(function(n){return n.map(function(n){return n.y})}),e.min=e.values[0],e.max=e.values[e.values.length-1],e.decimalPlaces=Math.max.apply(Math,bt(e.values.map(function(n){return ot(n)}))),null!==u.y_axis_min&&null!==u.y_axis_max&&u.y_axis_min===u.y_axis_max)throw new Error("Y-axis range cannot be zero.");return(e.ticks=ef(e.min,e.max,y.chartTicks,u.y_axis_min,u.y_axis_max).map(function(n){return{y:n.value,text:u.unitFormat?u.unitFormat.replace("{y}",n.text):n.text,hideLabel:null!==u.y_precision&&Number(n.value.toFixed(u.y_precision))!==n.value}}),e.axisMin=e.ticks[0].y,e.axisMax=e.ticks[e.ticks.length-1].y,e.axisRange=e.axisMax-e.axisMin,"hidden"!==u.yAxisPosition)&&(k=e.ticks.filter(function(n){return!n.hideLabel}).map(function(n){return n.text}),e.width=hi(k,a)),d=(n.ticks||h).map(function(n){return n.text.toUpperCase()}),n.maxLabelWidth=hi(d,a),n.ticks=n.ticks||ou(this),n.maxShownLabelWidth=hi(n.ticks.map(function(n){return n.text.toUpperCase()}),a),n.plotOffset=r(this,"interactive")?5:Math.max(Math.ceil(n.maxShownLabelWidth/2)+2,20),c=(new v).appendTo(g.chart).addClass(t.x_axis),r(this,"interactive")?c.appendRawSVG('\n          <g class="'+t.tick+'" transform="translate(0, 0)">\n            <line y2="1"/>\n            <text y="'+i*(u.wrapAxisLabels?3:1.5)+'">Example<\/text>\n          <\/g>\n        '):c.appendRawSVG('\n          <g class="'+t.tick+'" transform="translate(0, 0)">\n            <line y2="10"/>\n            <text y="'+(10+1.5*i)+'">Example<\/text>\n          <\/g>\n        '),n.height=c.bbox().height,c.remove(),this}},{key:"draw",value:function(){var n=this.options;return this.drawHeader().drawLegend().drawFooter().drawPlotArea().drawXAxis().drawYAxis().drawLines().layout(),n.displayTooltips&&this.drawTooltips(),this.emit("draw"),this}},{key:"layout",value:function(){var e=this.metadata,n=this.dom,s=this.state,o=this.options,t=s.chartPadding,u=t,f=t;return n.header&&(n.header.x(t).y(t),f=n.header.y()+n.header.height()+2*i),n.legend&&(n.legend.x(t).y(f),f=n.legend.y()+n.legend.height()+1.5*i),n.axisY.y(f),"hidden"===o.yAxisPosition?n.axisY.hide():"left"===o.yAxisPosition?(n.axisY.x(t),u=n.axisY.x(),r(this,"interactive")||(u+=e.axisY.width+i)):n.axisY.x(n.plotBackground.width()+t+(r(this,"interactive")?-e.axisY.width:i)),n.plotBackground.x(u).y(f),u=n.plotBackground.x(),f=n.plotBackground.y(),n.viewportClip.x(u).y(f),n.viewport.x(u).y(f),u=e.axisX.plotOffset,r(this,"interactive")&&"left"===o.yAxisPosition&&(u+=i+e.axisY.width),n.plotArea.x(u),n.axisX.x(u).y(n.plotArea.height()),f=r(this,"interactive")?n.plotBackground.y()+n.plotBackground.height()+t:n.viewport.y()+n.viewportClipRect.height()+t,n.footer&&n.footer.x(t).y(f),n.viewport.front(),r(this,"article")&&n.chart.height(n.chart.bbox().height+2*t),s.plotAreaOffset=n.plotArea.node.getBoundingClientRect(),this}},{key:"drawHeader",value:function(){var n=this.data,u=this.dom,e=this.state,f,o,h,s;return!e.headerShown||!n.title&&!n.subtitle?(u.header=null,this):(u.header=(new v).appendTo(u.chart).addClass(t.header),f=void 0,n.title&&(o=void 0,o=r(this,w)?k(n.title.toUpperCase(),e.textWrap,a,.1):k(n.title,e.textWrap,'18px "aktiv-grotesk", "aktiv-grotesk-std", Arial, Helvetica, sans-serif'),f=new d(o,1.3).appendTo(u.header).addClass(t.title).y("-"+(1.3-1)/2+"em")),n.subtitle&&(h=new d(k(n.subtitle,e.textWrap,a),1.3).appendTo(u.header).addClass(t.subtitle),f&&h.y(f.bbox().y+f.bbox().height+i)),s=u.header.bbox(),u.header.attr({width:s.width,height:s.height}),this)}},{key:"drawLegend",value:function(){var s=this.data,r=this.dom,o=this.options,f=this.state,n,u,e;return o.showLegend?(r.legend=(new v).appendTo(r.chart).addClass(t.legend),n=0,u=0,s.lines.forEach(function(e,s){var h=(new g).appendTo(r.legend).addClass(t.legend_item).x(n).y(u),c,l;new tu([{x:0,y:5},{x:14,y:5}]).appendTo(h).addClass(t.line).attr({fill:"none",stroke:e.color,"data-line-id":e.id,"stroke-dasharray":e.strokeDashArray||""});c=void 0;"title"in e&&(c=new d(e.title).appendTo(h).x(14+i/2));l=h.bbox().width;(n>0&&n+l>f.textWrap||o.forceMultilineLegend&&s>0)&&(n=0,u=h.bbox().bottom+i/2,h.x(n).y(u));0===n&&n+l>f.textWrap&&c&&c.text(k(e.title,f.textWrap-c.x(),a));n+=l+i}),e=r.legend.bbox(),r.legend.attr({width:e.width,height:e.height}),this):(r.legend=null,this)}},{key:"drawFooter",value:function(){var u=this.data,l=this.options,n=this.dom,h=this.state,e,f,o,c,s;return!1===l.showFooter||!u.footnote&&!u.source?(n.footer=null,this):(n.footer=(new v).appendTo(n.chart).addClass(t.footer),e=0,f=void 0,(u.footnote&&(f=new d(k(u.footnote,h.textWrap,a),1.3).appendTo(n.footer).addClass(t.footnote)),u.source)&&(o=k(u.source.toUpperCase(),h.textWrap,a,.1),r(this,w)&&o.indexOf("\n")<0&&(e=11),c=new d(o).appendTo(n.footer).addClass(t.source),f&&!r(this,w)&&c.y(f.bbox().y+f.bbox().height+i)),s=n.footer.bbox(),n.footer.attr({width:s.width,height:s.height+e}),this)}},{key:"drawPlotArea",value:function(){var u=this.metadata,f=this.state,n=this.dom,o="hidden"!==this.options.yAxisPosition?Math.max(f.innerWidth-i-u.axisY.width,0):f.innerWidth,c=Math.max(o*f.zoomLevel-2*u.axisX.plotOffset,0),e=void 0,s,h,l;return e=r(this,"article")?175:Math.max(f.innerHeight-(n.header?n.header.height()+i:0)-(n.legend?n.legend.height()+i:0)-u.axisX.height-(n.footer?f.chartPadding+n.footer.height():0),0),s=r(this,"interactive")?f.innerWidth:o,h=e+(r(this,"interactive")?u.axisX.height:0),n.plotBackground=(new v).appendTo(n.chart).addClass(t.plot_bg).size(s,h),new et(0,0).appendTo(n.plotBackground).addClass(t.placeholder).size(s,h),n.viewportClip=new uf,n.chart.addDef(n.viewportClip),n.viewportClipRect=new et(0,0).appendTo(n.viewportClip).attr("fill","transparent").size(o,e+u.axisX.height),r(this,"interactive")&&1===f.zoomLevel&&(n.viewportClipRect2=new et(0,0).appendTo(n.viewportClip).attr("fill","transparent").size(s,u.axisX.height).y(e)),n.chart.defs.appendRawSVG('\n      <linearGradient id="'+this.zoomFadeId+'">\n        <stop offset="0" stop-color="#F0F8F0" stop-opacity="0"/>\n        <stop offset="0.1" stop-color="#F0F8F0" stop-opacity="0"/>\n        <stop offset="0.9" stop-color="#F0F8F0" stop-opacity="0"/>\n        <stop offset="1" stop-color="#F0F8F0" stop-opacity="0"/>\n      <\/linearGradient>\n    '),n.zoomFade=this.el.getElementById(this.zoomFadeId),n.viewport=(new v).appendTo(n.chart).addClass(t.viewport).clip(n.viewportClip),n.plotArea=(new v).appendTo(n.viewport).addClass(t.plot_area).size(c,e),new et(c,e).appendTo(n.plotArea).addClass(t.placeholder),l="url(#"+this.zoomFadeId+")",n.zoomOverlay=new et(o,e+u.axisX.height).appendTo(n.viewport).attr("fill",l),this.updateZoomFade(),this}},{key:"drawLines",value:function(){var u=this,o=this.data,s=this.metadata,e=this.options,c=this.dom,l=(new g).appendTo(c.plotArea).addClass(t.lines_group),f,n;return(o.lines.forEach(function(n){if(!(n.points.length<2)){for(var i,f=n.points,e=[],r=0;r<f.length;r++)isNaN(f[r].y)?i=null:(i||e.push(i=[]),i.push(f[r]));e.forEach(function(i){var r=i.map(function(n){return{x:h(u,n.x),y:yt(u,n.y)}});new tu(r).appendTo(l).addClass(t.line).attr({fill:"none",stroke:n.color,"data-line-id":n.id,"stroke-dasharray":n.strokeDashArray||""})})}}),e.showPointLabels&&e.pointLabels)&&(f=(new g).appendTo(c.viewport),n=e.pointLabels,Object.keys(n).forEach(function(e){var v,p,ct,ft,ot;if(n[e]instanceof Array&&n[e].length){var y=n[e][0],at=!!n[e][1],nt=!!n[e][2]&&!r(u,w),vt=nt?n[e][2]:"{y}";if(!r(u,w)||at){var pt=e.split(",").map(function(n){return Number(n)}),st=wt(pt,2),bt=st[0],kt=st[1],tt=o.lines[bt];if(tt&&(v=tt.points.find(function(n){return n.x===kt}),v)){var it=void 0,rt=void 0,ut=void 0,ht={above:[-20,0,"middle"],below:[10,0,"middle"],left:[-5,-10,"end"],right:[-5,10,"start"]};ht[y]?(p=wt(ht[y],3),it=p[0],rt=p[1],ut=p[2]):(ct=y.split(" ").map(function(n){return Number(n)}),ft=wt(ct,2),it=ft[0],rt=ft[1],ut="middle");var c={x:Math.round(h(u,v.x))+s.axisX.plotOffset,y:Math.round(yt(u,v.y))},b={x:c.x+rt,y:c.y+it},dt=k(vt.replace("{y}",gt(v.y,s.axisY.decimalPlaces)),150,a),lt=new d(dt,1.3).appendTo(f).addClass(t[nt?"annotation":"point_label"]).x(b.x).y(b.y).attr({"text-anchor":ut,"data-key":e,"data-position":y}),g=lt.bbox(),l={x:Math.round(g.x),y:Math.round(g.y),width:Math.round(g.width),height:Math.round(g.height)};lu(c.x,c.y,l.x,l.y,l.width,l.height)>10&&(ot=function(n,t,i,r,u,f){var e=i+u,o=r+f,h=void 0,s;return h=i<=n&&n<=e?Math.round(i+u/2):Math.abs(i-n)<Math.abs(e-n)?i:e,s=void 0,s=r<=t&&t<=o?Math.round(r+f/2):Math.abs(r-t)<Math.abs(o-t)?r:o,{x:Math.round(h),y:Math.round(s)}}(c.x,c.y,b.x,b.y,l.width,l.height),new nr(c.x,c.y,ot.x,ot.y).appendTo(f).addClass(t.point_label_line));nt&&(new et(l.width+2*i,l.height+i).appendTo(f).addClass(t.annotation_bg).x(l.x-i).y(l.y-i/2),new nu(5).appendTo(f).addClass(t.point).cx(c.x).cy(c.y).attr("fill",tt.color),lt.front())}}}})),this}},{key:"drawXAxis",value:function(){var s=this,n=this.dom,a=this.options,f=this.metadata.axisX,u,o;if(n.axisX=(new v).appendTo(n.viewport).addClass(t.x_axis),!f.ticks)return this;if(u="",r(this,"interactive")){var y=(new g).appendTo(n.plotArea).addClass(t.x_axis_grid_lines),c=0,l=void 0,e=!1;f.ticks.forEach(function(r){var f=h(s,r.x),o=0,v="",p;(a.wrapAxisLabels&&(c>f-10&&0===l&&at&&!e&&(o=15),c=f+dt(r.text||""),l=o),at)?(p=function(n){if(/\./.test(n))return[n];var t=n.match(/^(\S+)\s(.+)$/);return t?[t[1],t[2]]:[n]}(r.text),p.length>1?(e=!0,p.forEach(function(n,t){v+='<text x="'+i/2+'" y="'+i*(t+1)*1.5+'">'+n+"<\/text>"})):(e=!1,v='<text x="'+i/2+'" y="'+1.5*i+'">'+(r.text||"")+"<\/text>"),u+='\n            <g class="'+t.tick+'" transform="translate('+f+", "+o+')">\n              '+v+"\n            <\/g>"):u+='\n            <g class="'+t.tick+'" transform="translate('+f+", "+o+')">\n              <text x="'+i/2+'" y="'+1.5*i+'">'+(r.text||"")+"<\/text>\n            <\/g>";new nr(f,0,f,n.plotBackground.height()).appendTo(y).addClass(t.grid_line)})}else u=f.ticks.map(function(n){return'\n        <g class="'+t.tick+'" transform="translate('+h(s,n.x)+', 0)">\n          <line y2="10"/>\n          <text y="'+(10+1.5*i)+'">'+(n.text||"")+"<\/text>\n        <\/g>\n      "}).join("");return n.axisX.appendRawSVG(u),o=n.axisX.bbox(),n.axisX.attr({width:o.width,height:o.height}),this}},{key:"drawYAxis",value:function(){var f=this,u=this.metadata,n=this.dom,e;return(n.axisY=(new v).appendTo(n.chart).addClass(t.y_axis),!u.axisY.ticks)?this:(e=(new g).appendTo(n.plotBackground).addClass(t.y_axis_grid_lines),u.axisY.ticks.forEach(function(o,s){var c=yt(f,o.y),l=(new g).appendTo(n.axisY).addClass(t.tick).x(u.axisY.width).y(c),h;o.hideLabel||(h=new d(o.text).appendTo(l),r(f,"interactive")?0===s?h.y(-1.5*i):h.y(i/2):h.y("-0.5em"));new nr(0,c,n.plotBackground.x()+n.plotBackground.width(),c).appendTo(e).addClass(0===o.y?t.axis_line:t.grid_line);0===o.y&&0===s&&n.axisX.addClass(t.axis_at_zero)}),this)}},{key:"drawTooltips",value:function(){var f=this,n=this.dom,e=this.data,r=this.metadata,i,u;return n.groupTooltip=document.createElement("div"),i=n.groupTooltip,i.className=t.tooltip+" "+t.group_tooltip,ct(i,this.el.id),n.groupTooltipLabel=document.createElement("p"),u=n.groupTooltipLabel,u.className=t.tooltip_label,u.innerHTML="&nbsp;",i.appendChild(u),n.groupTooltipLines=[],n.tooltips=[],r.tooltips=[],n.tooltipPoints=(new g).appendTo(n.viewport).x(n.plotArea.x()),e.lines.forEach(function(u){var e=document.createElement("div"),o;e.className=t.tooltip;e.innerHTML='\n        <span class="'+t.tooltip_label+'">&nbsp;<\/span>\n        <span class="'+t.tooltip_value+'">&nbsp;<\/span>\n      ';ct(e,f.el.id);n.tooltips.push(e);r.tooltipHeight||(r.tooltipHeight=e.clientHeight);e.style.marginTop="-"+(r.tooltipHeight+10)+"px";o=document.createElement("p");o.innerHTML='\n        <span class="'+t.tooltip_value+'">&nbsp;<\/span>\n        <span class="'+t.tooltip_line_label+'">&nbsp;<\/span>\n      ';i.appendChild(o);n.groupTooltipLines.push(o);new nu(5).appendTo(n.tooltipPoints).addClass(t.point+" "+t.tooltip_point).attr({fill:u.color,style:"visibility: hidden;"})}),i.style.marginTop="-"+(i.clientHeight+10)+"px",this}},{key:"getTooltipMetadata",value:function(n){var r=this.options,t=this.metadata,tt=this.data,it=this.state,y=void 0,c,k,f,ht,l,nt;r.strictModeTooltips&&(y=fu(this,n),t.lastTooltipXValue=y);for(var rt=!1,e=1/0,o=-1/0,ut=0,p=1/0,w=void 0,i=0;i<tt.lines.length;i++){var s=tt.lines[i],u=y||fu(this,n,i),ft=t.axisX.valuesByLine[i].indexOf(u);if(-1===ft)t.tooltips[i]=!1;else{if(u<e&&(e=u),u>o&&(o=u),!t.tooltips[i]||t.tooltips[i].x!==u){rt=!0;c=s.points[ft].y;t.tooltips[i]={x:u,y:c};k=r.unitFormat?r.unitFormat.replace("{y}",gt(c,t.axisY.decimalPlaces)):gt(c,t.axisY.decimalPlaces);f=tr(this,u);r.tooltipLabel&&(f=r.tooltipLabel(s,u,f));var ct=r.tooltipLineLabel?r.tooltipLineLabel(s,u,f):s.title,d=dt(f.toUpperCase(),a)+8+6.5*k.length+20,et=h(this,u),ot=yt(this,c),v=Math.round(it.plotAreaOffset.left+et),st=Math.round(window.pageYOffset+it.plotAreaOffset.top+ot),g="top";v-d/2<0?g="right":v+d/2>window.innerWidth&&(g="left");ht={top:st,left:v,bottom:st+t.tooltipHeight+15,right:v+d};b(t.tooltips[i],{label:f,lineLabel:ct,value:k,plottedX:et,plottedY:ot,rect:ht,position:g,color:s.color})}t.tooltips[i]&&t.tooltips[i].rect.top<p&&(p=t.tooltips[i].rect.top,ut=t.tooltips[i].rect.left)}}return l=tr(this,e),e<o?(nt=tr(this,o),w=r.groupTooltipLabel?r.groupTooltipLabel(l,nt):l+"&ndash;"+nt):w=r.groupTooltipLabel?r.groupTooltipLabel(l):l,{updateNeeded:rt,minX:e,maxX:o,gtLeft:ut,gtTop:p,gtLabel:w}}},{key:"updateTooltips",value:function(n){var s=this.state,f=this.metadata,r=this.dom,u,h,e,c,o,l,a;if(!r.tooltips||!r.tooltips.length)return this;if(u=this.getTooltipMetadata(n-s.plotAreaOffset.left),!u.updateNeeded)return s.viewportHover&&document.documentElement.classList.add(t.chart_viewport_hover),this;for(h=!1,e=0;e<f.tooltips.length;e++)for(c=f.tooltips[e],o=e+1;o<f.tooltips.length;o++)l=f.tooltips[o],c&&l&&au(c.rect,l.rect,i)&&(h=!0);return a={top:{cls:"",translate:"translateX(-50%)"},left:{cls:t.tooltip_left,translate:"translateX(calc(-100% + 10px))"},right:{cls:t.tooltip_right,translate:"translateX(-10px)"}},u.gtTop!==1/0?(ff(function(){var e,l,i,o;if(h){for(e=0;e<r.groupTooltipLines.length;e++)l=r.tooltipPoints.child(e),i=f.tooltips[e],i&&i.plottedY&&(r.groupTooltipLines[e].innerHTML='\n              <span class="'+t.tooltip_value+'" style="color: '+i.color+'">'+i.value+'<\/span>\n              <span class="'+t.tooltip_line_label+'">'+i.lineLabel+"<\/span>\n            "),r.tooltips[e].style.visibility="hidden",i.plottedY&&(l.setAttribute("cx",i.plottedX),l.setAttribute("cy",i.plottedY),l.style.visibility="visible");var y=a[f.tooltips[0].position],k=y.cls,p=y.translate;r.groupTooltipLabel.innerHTML=u.gtLabel;r.groupTooltip.className=t.tooltip+" "+t.group_tooltip+" "+k;r.groupTooltip.style.transform=ru?"translate3d("+u.gtLeft+"px, "+u.gtTop+"px, 0) "+p:"translate("+u.gtLeft+"px, "+u.gtTop+"px) "+p;r.groupTooltip.style.visibility="visible"}else{for(o=0;o<r.tooltips.length;o++){var c=r.tooltips[o],v=r.tooltipPoints.child(o),n=f.tooltips[o];if(n){var w=a[n.position],d=w.cls,b=w.translate;c.className=t.tooltip+" "+d;c.innerHTML='\n              <span class="'+t.tooltip_label+'">'+n.label+'<\/span>\n              <span class="'+t.tooltip_value+'" style="color: '+n.color+'">'+n.value+"<\/span>\n            ";c.style.transform=ru?"translate3d("+n.rect.left+"px, "+n.rect.top+"px, 0) "+b:"translate("+n.rect.left+"px, "+n.rect.top+"px "+b;c.style.visibility="visible";v.setAttribute("cx",n.plottedX);v.setAttribute("cy",n.plottedY);v.style.visibility="visible"}else!1===n&&(c.style.visibility="hidden",v.style.visibility="hidden")}r.groupTooltip.style.visibility="hidden"}s.viewportHover&&document.documentElement.classList.add(t.chart_viewport_hover)}),this.emit("tooltipsupdated"),this):void 0}},{key:"changeData",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.options.enableValidation&&!yr(n).valid&&this.options.strictValidation?this:(this.data=pr(t?n:b({},this.data,n)),this.redraw(!0).emit("datachanged"),this)}},{key:"addLine",value:function(n){return this.data.lines.length<this.state.maxLines&&this.changeData({lines:[].concat(bt(this.data.lines),[n])}),this}},{key:"removeLine",value:function(n){return this.changeData({lines:this.data.lines.filter(function(t,i){return i!==n})}),this}},{key:"changeOptions",value:function(n){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.options=b({},t?iu:this.options,n),this.destroy().init().emit("optionschanged"),this}},{key:"redraw",value:function(){return!0===(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&this.createMetadata(),wr(this.el.id),this.clearSvg().draw().emit("redraw"),this}},{key:"scrollTo",value:function(n){var i=this.dom,t=-n;return i.plotArea.x(t),i.tooltipPoints.x(t),i.axisX.x(t),this.state.viewportOffset=t,this.updateZoomFade(),this}},{key:"scrollToPoint",value:function(n){return this.scrollTo(h(this,n)-this.metadata.axisX.plotOffset),this}},{key:"zoom",value:function(n){return r(this,"interactive","custom")&&this.changeOptions({zoomLevel:n}),this}},{key:"zoomToRange",value:function(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.data.labels.length,t=this.data.labels,r=this.metadata.axisX,u=n>=0?Math.min(n,t.length-1):Math.max(t.length+n,0),f=i>=0?Math.min(i,t.length-1):Math.max(t.length+i,0),s=Math.max(f-u,1),e=t[u].x,c=t[f].x,o;return this.zoom(r.range/s),o=h(this,c)-h(this,e)+2*r.plotOffset,this.zoom(this.dom.viewport.bbox().width/o),this.scrollToPoint(e),this}},{key:"zoomTimePeriod",value:function(n){if("date"===this.data.labelType||"date_range"===this.data.labelType){var t=new Date;t.setDate(t.getDate()+n);this.zoom(this.metadata.axisX.range/(t-new Date))}return this}},{key:"updateZoomFade",value:function(){var n=this.dom,t=n.plotArea.x()<0,i=n.plotArea.x()>n.viewportClipRect.width()-n.plotArea.width();return n.zoomFade.setAttribute("class",(t?"fade-start ":"")+(i?"fade-end":"")),n.zoomOverlay.front(),this}},{key:"getPointPosition",value:function(n){return{left:h(this,n.x),top:yt(this,n.y)}}},{key:"embedStyles",value:function(){var n=this.dom;return n.stylesheet=document.createElement("style"),n.stylesheet.innerHTML=ki.replace(new RegExp("."+t.chart,"g"),"#"+this.el.id),n.chart.appendChild(n.stylesheet),this}},{key:"clearSvg",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],n=this.dom;return n.chart.removeAllChildren(),t&&n.stylesheet&&n.chart.appendChild(n.stylesheet),this}},{key:"destroy",value:function(){return this.emit("destroy"),this.clearSvg(!1),this.dom.chart.remove(),wr(this.el.id),this.dom={chart:this.dom.chart},this.metadata={},this.state={},nt.splice(nt.indexOf(this),1),this}},{key:"resize",value:function(){var i=arguments.length>0&&void 0!==arguments[0]&&arguments[0],r=this.metadata,u=this.options,n=this.state,f=this.dom,t=this.el.getBoundingClientRect();t.width===n.svgRect.width&&!0!==i||(n.svgRect=t,n.innerWidth=t.width-2*n.chartPadding,n.innerHeight=t.height-2*n.chartPadding,n.tooltipCachedCursorX=null,u.ticks||(r.axisX.ticks=ou(this)),this.redraw().emit("resize"));n.plotAreaOffset=f.plotArea.node.getBoundingClientRect()}},{key:"scroll",value:function(){var t=this.dom,n=this.state;n.svgRect=this.el.getBoundingClientRect();n.plotAreaOffset=t.plotArea.node.getBoundingClientRect()}},{key:"scrollViewport",value:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state.dragLastEvent,t=this.state,i=this.dom;i.plotArea.x(n);i.tooltipPoints.x(n);i.axisX.x(n);this.updateZoomFade();t.tooltipsEnabled&&r?(t.plotAreaOffset=i.plotArea.node.getBoundingClientRect(),this.updateTooltips(r.clientX)):t.tooltipsEnabled&&t.viewportFocused&&(t.plotAreaOffset=i.plotArea.node.getBoundingClientRect())}},{key:"autoScroll",value:function(){var r=this,n=this.state,i,t;(n.autoScrolling=!0,n.lastAutoScrollID=n.autoScrollID,n.dragAmplitude)?(i=Date.now()-n.dragLastTime,t=-n.dragAmplitude*Math.exp(-i/325),t>1||t<-1?(this.scrollViewport(n.dragAutoTarget+t),n.autoScrollID="autoScroll"+Math.random(),p(function(){ht(n.lastAutoScrollID);r.autoScroll()},this.state.autoScrollID)):(this.scrollViewport(n.dragAutoTarget),n.autoScrolling=!1)):n.autoScrolling=!1}},{key:"resetVelocityTracker",value:function(){var t=this.dom,n=this.state;n.autoScrolling=!1;ht(n.autoScrollID);ht(n.lastAutoScrollID);this.stopVelocityTracker();n.autoScrolling=!1;n.dragVelocity=0;n.dragAmplitude=0;n.dragLastX=t.plotArea.x();n.dragLastTime=Date.now()}},{key:"startVelocityTracker",value:function(){var n=this;this.resetVelocityTracker();uu=setInterval(function(){return n.trackVelocity()},100)}},{key:"stopVelocityTracker",value:function(){this.state.dragVelocity=0;clearInterval(uu)}},{key:"startAutoScroll",value:function(){var t=this.dom,n=this.state;Math.abs(n.dragVelocity)>10&&!n.autoScrolling&&(ht("panning_update"),n.dragAmplitude=.8*n.dragVelocity,this.stopVelocityTracker(),n.dragAutoTarget=this.clampViewportX(t.plotArea.x()+n.dragAmplitude),n.autoScrollID="autoScroll"+Math.random(),p(this.autoScroll.bind(this),n.autoScrollID))}},{key:"clampViewportX",value:function(n){var t=this.metadata,i=this.dom;return Math.max(Math.min(n,t.axisX.plotOffset),i.viewportClipRect.width()-i.plotArea.width()-t.axisX.plotOffset)}},{key:"trackVelocity",value:function(){var i=this.dom,n=this.state;if(n.panning){var t=i.plotArea.x(),r=Date.now()-(n.dragLastTime||Date.now()),u=1e3*(t-(n.dragLastX||0))/(1+r);n.dragVelocity=.8*u+.2*n.dragVelocity;n.dragLastTime=Date.now();n.dragLastX=t}}},{key:"mouseEnter",value:function(){var n=this.state,t=this.dom;n.svgRect=this.el.getBoundingClientRect();n.plotAreaOffset=t.plotArea.node.getBoundingClientRect()}},{key:"mouseMove",value:function(n){var o=this,i=this.state,u=this.dom,s,h,c,l,a,v,f,e;vt=!1;f={x:n.clientX-i.svgRect.left,y:n.clientY-i.svgRect.top};e=(s=f.x,h=f.y,c=u.viewport.x(),l=u.viewport.y(),a=u.viewport.x()+u.viewportClipRect.width(),v=u.viewport.y()+u.viewportClipRect.height(),s>=c&&s<=a&&h>=l&&h<=v);i.viewportHover=e;(e||r(this,"interactive","custom"))&&(i.tooltipsEnabled&&!i.leftMouseDown?(this.state.dragLastEvent=n,bi(function(){o.updateTooltips(n.clientX)},"tooltip_update")):1!==i.zoomLevel&&(i.panning=!0,u.chart.addClass(t.chart_panning),i.dragLastEvent=n,p(function(){var t=o.clampViewportX(f.x-i.viewportOffset);o.scrollViewport(t,n)},"panning_update")));e||(ht("tooltip_update"),document.documentElement.classList.remove(t.chart_viewport_hover))}},{key:"touchMove",value:function(n){this.mouseMove({clientX:n.touches[0].clientX,clientY:n.touches[0].clientY})}},{key:"mouseLeave",value:function(n){r(this,"interactive","custom")&&1!==this.state.zoomLevel&&this.state.leftMouseDown&&(this.state.dragLastEvent=n,this.startAutoScroll())}},{key:"mouseDown",value:function(n){var t=this.state,i=this.dom;0===n.button&&(t.leftMouseDown=!0,r(this,"interactive","custom")&&1!==t.zoomLevel&&this.startVelocityTracker());t.viewportOffset=function(n){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.target).getBoundingClientRect();return{x:n.clientX-t.left,y:n.clientY-t.top}}(n,this.el).x-i.plotArea.x()}},{key:"touchStart",value:function(n){this.state.leftMouseDown=!0;this.mouseDown({clientX:n.touches[0].clientX,clientY:n.touches[0].clientY})}},{key:"mouseUp",value:function(n){var i=this.state,u=this.dom;0===n.button&&(i.leftMouseDown=!1);i.panning=!1;r(this,"interactive","custom")&&1!==i.zoomLevel&&(i.dragLastEvent=n,this.startAutoScroll());u.chart.removeClass(t.chart_panning)}},{key:"touchEnd",value:function(){this.mouseUp({button:0})}},{key:"focusStart",value:function(){var i=this,n=this.state,t;(n.viewportFocused=!0,!n.viewportHover&&n.tooltipsEnabled)&&(n.viewportHover=!0,n.focusIndex=0,at&&(vt=!0),this.scrollViewport(this.metadata.axisX.plotOffset),t=eu(this,0),bi(function(){i.updateTooltips(t)},"tooltip_update"))}},{key:"focusEnd",value:function(){var n=this.state;n.viewportFocused=!1;n.viewportHover=!1}},{key:"keyDown",value:function(n){var e=this,t=this.state,u=this.metadata.axisX,r,i,f;t.viewportFocused&&(r=void 0,"ArrowLeft"===n.key?r=t.focusIndex-1:"ArrowRight"===n.key&&(r=t.focusIndex+1),t.focusIndex=(r%u.values.length+u.values.length)%u.values.length,at&&(vt=!0),i=h(this,t.focusIndex),at&&(i=h(this,this.metadata.axisX.values[t.focusIndex])),0===t.focusIndex?this.scrollViewport(this.metadata.axisX.plotOffset):-(i-this.metadata.axisX.plotOffset)>this.dom.plotArea.x()?this.scrollViewport(-(i-this.metadata.axisX.plotOffset)):i+this.dom.plotArea.x()>this.dom.viewportClipRect.width()-this.metadata.axisX.plotOffset&&this.scrollViewport(-i+this.dom.viewportClipRect.width()-this.metadata.axisX.plotOffset),f=eu(this,t.focusIndex),bi(function(){e.updateTooltips(f)},"tooltip_update"))}}]),n}();b(ir,{MODE_ARTICLE:"article",MODE_TILE:w,MODE_INTERACTIVE:"interactive",MODE_CUSTOM:"custom"});window.addEventListener("resize",function(){p(function(){nt.forEach(function(n){return n.resize()})},"resize_update")});window.addEventListener("scroll",function(){p(function(){nt.forEach(function(n){return n.scroll()})},"scroll_update")});window.addEventListener("blur",function(){document.documentElement.classList.remove(t.chart_viewport_hover)});document.addEventListener("mouseup",function(n){nt.forEach(function(t){0===n.button&&(t.state.leftMouseDown=!1)})});document.addEventListener("DOMContentLoaded",function(){document.body.addEventListener("typekitLoaded",function(){kt={};nt.forEach(function(n){return n.redraw(!0)})})});rr=["above","below","left","right"];tt=[];hu=function(){function n(t){u(this,n);this.chart=t;this.selectedPoint={};this.init()}return o(n,[{key:"init",value:function(){var n=this,i=this.chart,r,u;this.build();i.data.lines.forEach(function(t,i){var r=document.createElement("option");r.value=i;r.textContent=t.title;n.lineSelect.appendChild(r)});r=function(){var t=i.data.lines[n.lineSelect.value];if(t){for(;n.pointSelect.firstChild;)n.pointSelect.removeChild(n.pointSelect.firstChild);t.points.forEach(function(t){var u=i.data.labels.find(function(n){return n.x===t.x}),r;u&&(r=document.createElement("option"),r.value=t.x,r.textContent=u.text,n.pointSelect.appendChild(r),"x"in n.selectedPoint&&n.selectedPoint.x===t.x&&(r.selected=!0))})}};u=function(){n.annotationChars.textContent=n.annotation.value.length};r();this.lineSelect.addEventListener("change",r);this.lineSelect.addEventListener("change",this.updateControls.bind(this));this.pointSelect.addEventListener("change",this.updateControls.bind(this));this.showLabel.addEventListener("change",this.updateChart.bind(this));this.labelPosition.addEventListener("change",function(){"manual"===n.labelPosition.value&&(n.labelTop=-20,n.labelLeft=0);n.updateChart()});this.showOnTile.addEventListener("change",this.updateChart.bind(this));this.annotation.addEventListener("keyup",u);this.annotation.addEventListener("change",function(){u();n.updateChart()});this.closeButton.addEventListener("click",this.close.bind(this));this.labelHandle.addEventListener("mousedown",function(i){n.draggingLabel=!0;var r=n.labelHandle.getBoundingClientRect();n.labelHandleOffset={x:Math.round(i.clientX-r.left),y:Math.round(i.clientY-r.top),width:r.width};document.body.classList.add(t.no_select)});i.on("dv.draw",this.reposition.bind(this)).on("dv.datachanged",this.close.bind(this)).on("dv.destroy",this.destroy.bind(this));tt.push(this);this.updateControls()}},{key:"build",value:function(){br('.dv-label-editor{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;width:250px;-webkit-box-sizing:border-box;box-sizing:border-box;padding:4px 8px;margin-left:-250px;font-family:aktiv-grotesk,aktiv-grotesk-std,Arial,Helvetica,sans-serif;font-size:13px;color:#e0e0e0;letter-spacing:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;background-color:#404040;-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;-webkit-animation:a .3s;animation:a .3s}.dv-label-editor.dv-editor-closing{-webkit-animation:b .3s;animation:b .3s}.dv-label-editor p{margin:0;line-height:1.65}.dv-label-editor label,.dv-label-editor select{font-size:12px}.dv-label-editor select,.dv-label-editor textarea{color:#e0e0e0;background-color:#404040;border:0}.dv-label-editor select:focus,.dv-label-editor textarea:focus{outline:none}.dv-label-editor textarea{padding:4px 0;line-height:1.4;-webkit-box-shadow:0 2px 0 #bbb;box-shadow:0 2px 0 #bbb}.dv-label-editor textarea:focus{-webkit-box-shadow:0 2px 0 #009d4e;box-shadow:0 2px 0 #009d4e}.dv-label-editor select{max-width:210px;height:20px;margin:0 -4px;border-bottom:2px solid transparent;-webkit-box-shadow:0 6px 0 -4px #bbb;box-shadow:0 6px 0 -4px #bbb}.dv-label-editor select:focus{outline:none;-webkit-box-shadow:0 0 0 1px #009d4e;box-shadow:0 0 0 1px #009d4e}.dv-label-editor .dv-editor-label-position{height:17px;margin-top:1px;margin-left:1px}.dv-editor-row{-ms-flex-wrap:wrap;flex-wrap:wrap}.dv-editor-column,.dv-editor-row{display:-webkit-box;display:-ms-flexbox;display:flex}.dv-editor-column{margin:8px 12px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dv-smallcaps{font-size:11px;color:#e0e0e0;text-transform:uppercase;letter-spacing:.1em}.dv-editor-line{width:100%}.dv-editor-point-value{color:#009d4e}.dv-editor-point-options label,.dv-editor-point-options select{float:left}.dv-editor-point-options label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dv-editor-point-options input[type=checkbox]{margin:0 6px 0 0}.dv-editor-annotation-row,.dv-editor-annotation-row .dv-editor-column,.dv-editor-annotation-row textarea{-webkit-box-flex:1;-ms-flex:1;flex:1}.dv-editor-annotation-row .dv-editor-column{display:-webkit-box;display:-ms-flexbox;display:flex}.dv-annotation-chars{margin-top:3px;font-size:11px}.dv-selected-point{width:7px;height:7px;border:3px solid #f0f8f0;border-radius:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.dv-label-handle,.dv-selected-point{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box}.dv-label-handle{display:none;padding:4px;margin:-4px;cursor:move;border-radius:3px}.dv-label-handle:hover{background-color:rgba(0,0,0,.1)}.dv-editor-close{position:absolute;top:8px;right:8px;width:18px;height:18px;padding:0;background-color:transparent;border:0}.dv-editor-close:after,.dv-editor-close:before{position:absolute;display:block;width:18px;height:2px;content:"";background-color:#009d4e}.dv-editor-close:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.dv-editor-close:after{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.dv-no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@-webkit-keyframes a{0%{opacity:0;-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg)}to{opacity:1;-webkit-transform:perspective(1000px) rotateY(0deg);transform:perspective(1000px) rotateY(0deg)}}@keyframes a{0%{opacity:0;-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg)}to{opacity:1;-webkit-transform:perspective(1000px) rotateY(0deg);transform:perspective(1000px) rotateY(0deg)}}@-webkit-keyframes b{0%{opacity:1;-webkit-transform:perspective(1000px) rotateY(0deg);transform:perspective(1000px) rotateY(0deg)}to{opacity:0;-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg)}}@keyframes b{0%{opacity:1;-webkit-transform:perspective(1000px) rotateY(0deg);transform:perspective(1000px) rotateY(0deg)}to{opacity:0;-webkit-transform:perspective(1000px) rotateY(-90deg);transform:perspective(1000px) rotateY(-90deg)}}');this.container=document.createElement("div");var n=this.container;n.className=t.label_editor;n.innerHTML='\n      <div class="dv-editor-row">\n        <label class="dv-editor-column">\n          <p class="dv-smallcaps">Line<\/p>\n          <p><select class="dv-editor-line"><\/select><\/p>\n        <\/label>\n      <\/div>\n\n      <div class="dv-editor-row">\n        <label class="dv-editor-column">\n          <p class="dv-smallcaps">Point<\/p>\n          <p><select class="dv-editor-point"><\/select><\/p>\n        <\/label>\n\n        <div class="dv-editor-column">\n          <p class="dv-smallcaps">Value<\/p>\n          <p class="dv-editor-point-value"><\/p>\n        <\/div>\n      <\/div>\n\n      <div class="dv-editor-row">\n        <div class="dv-editor-column dv-editor-point-options">\n          <p class="dv-smallcaps">Options<\/p>\n          <p>\n            <label>\n              <input type="checkbox" class="dv-editor-show-label">\n              Show label\n            <\/label>\n\n            <select class="dv-editor-label-position">\n              <option value="above">above<\/option>\n              <option value="below">below<\/option>\n              <option value="left">on left<\/option>\n              <option value="right">on right<\/option>\n              <option value="manual">(manual)<\/option>\n            <\/select>\n          <\/p>\n          <p>\n            <label>\n              <input type="checkbox" class="dv-editor-show-on-tile">\n              Show on tile\n            <\/label>\n          <\/p>\n        <\/div>\n      <\/div>\n\n      <div class="dv-editor-row dv-editor-annotation-row">\n        <label class="dv-editor-column">\n          <p class="dv-smallcaps">Annotation<\/p>\n          <textarea class="dv-editor-annotation" maxlength="50"><\/textarea>\n          <p class="dv-annotation-chars"><span class="dv-annotation-chars-current">0<\/span> / 50<\/p>\n        <\/label>\n      <\/div>\n\n      <button type="button" class="dv-editor-close"><\/button>\n    ';ct(n);this.lineSelect=n.querySelector(".dv-editor-line");this.pointSelect=n.querySelector(".dv-editor-point");this.pointValue=n.querySelector(".dv-editor-point-value");this.showLabel=n.querySelector(".dv-editor-show-label");this.labelPosition=n.querySelector(".dv-editor-label-position");this.showOnTile=n.querySelector(".dv-editor-show-on-tile");this.annotation=n.querySelector(".dv-editor-annotation");this.annotationChars=n.querySelector(".dv-annotation-chars-current");this.closeButton=n.querySelector(".dv-editor-close");this.selectedPointIndicator=document.createElement("div");this.selectedPointIndicator.className=t.selected_point;ct(this.selectedPointIndicator);this.labelHandle=document.createElement("div");this.labelHandle.className=t.label_handle;ct(this.labelHandle)}},{key:"updateControls",value:function(){var o=this,f=this.chart,r=this.selectedPoint,n=f.options.pointLabels,e=Number(this.lineSelect.value),u=f.data.lines[e],t,i;u&&(t=u.points.find(function(n){return n.x===Number(o.pointSelect.value)}),t&&(this.pointValue.textContent=t.y,this.selectedPointIndicator.style.backgroundColor=u.color,r.x=t.x,r.y=t.y,r.key=e+","+t.x,i=r.key,n&&su(n[i])?(this.showLabel.checked=!0,this.labelPosition.value=rr.indexOf(n[i][0])>-1?n[i][0]:"manual",this.showOnTile.checked=!!n[i][1],this.annotation.value=n[i][2]||""):(this.showLabel.checked=!1,this.showOnTile.checked=!1,this.labelPosition.value="above",this.annotation.value=""),this.annotationChars.textContent=this.annotation.value.length,this.reposition()))}},{key:"reposition",value:function(){var t=this.chart,n=this.selectedPoint,i=t.el.getBoundingClientRect(),r,u;this.container.style.top=window.pageYOffset+i.top+"px";this.container.style.left=i.left+"px";this.container.style.height=i.height+"px";r=t.dom.plotArea.node.getBoundingClientRect();u=t.getPointPosition({x:n.x,y:n.y});n.screenX=r.left+u.left;n.screenY=window.pageYOffset+r.top+u.top;this.selectedPointIndicator.style.top=n.screenY+"px";this.selectedPointIndicator.style.left=n.screenX+"px";this.updateLabelHandle()}},{key:"updateChart",value:function(){var i=this.chart,t=this.selectedPoint.key,n=i.options.pointLabels||{},r="manual"===this.labelPosition.value?this.labelTop+" "+this.labelLeft:this.labelPosition.value;this.showLabel.checked?(n[t]=n[t]||[],n[t][0]=r,n[t][1]=this.showOnTile.checked?1:0,n[t][2]=this.annotation.value):delete n[t];i.options.pointLabels=n;i.redraw();this.updateLabelHandle();i.emit("pointlabelschanged")}},{key:"updateLabelHandle",value:function(){var r=this.chart,u=r.options.pointLabels||{},i=this.selectedPoint.key,t=r.el.querySelector('[data-key="'+i+'"]'),n;if(t){if(n=t.getBoundingClientRect(),this.labelHandle.style.top=window.pageYOffset+n.top+"px",this.labelHandle.style.left=n.left+"px",this.labelHandle.style.width=n.width+"px",this.labelHandle.style.height=n.height+"px",t.getAttribute("data-position")){var e=t.getAttribute("data-position").split(" "),f=wt(e,2),o=f[0],s=f[1];this.labelLeft=s;this.labelTop=o}this.labelHandle.style.display=su(u[i])&&-1===rr.indexOf(u[i][0])?"block":"none"}}},{key:"close",value:function(){var n=this;this.container.classList.add(t.label_editor_closing);setTimeout(function(){return n.destroy()},300)}},{key:"destroy",value:function(){ui(this.container);ui(this.selectedPointIndicator);ui(this.labelHandle);this.chart.editor=null;this.chart.emit("editorclose");tt.splice(tt.indexOf(this),1)}}]),n}();document.addEventListener("mouseup",function(){tt.forEach(function(n){n.draggingLabel=!1});document.body.classList.remove(t.no_select)});document.addEventListener("mousemove",function(n){p(function(){tt.forEach(function(t){if(t.draggingLabel){var i=n.clientX-t.labelHandleOffset.x,r=window.pageYOffset+n.clientY-t.labelHandleOffset.y;t.labelLeft=i-(t.selectedPoint.screenX+t.labelHandleOffset.width/2);t.labelTop=r-t.selectedPoint.screenY;t.labelHandle.style.left=i+"px";t.labelHandle.style.top=r+"px";clearTimeout(t.labelHandleUpdate);t.labelHandleUpdate=setTimeout(function(){return t.updateChart()},50)}})},"editor_drag_label")});window.addEventListener("resize",function(){p(function(){tt.forEach(function(n){return n.reposition()})},"editor_reposition")});n.LineChart=ir;n.PointLabelEditor=hu;Object.defineProperty(n,"__esModule",{value:!0})});this.wwwV8=this.wwwV8||{};this.wwwV8.pjac=function(){"use strict";function pt(n){var t=n,r,i;(t.method||(t.method="GET"),t.params||(t.params={}),t.method=t.method.toUpperCase(),"GET"===t.method)&&(r=Object.keys(t.params).map(function(n){return n+"="+t.params[n]}).join("&"),t.url+="?"+r);i=new XMLHttpRequest;i.open(t.method,t.url,!0);t.success&&"function"==typeof t.success&&i.addEventListener("load",function(){i.status>=200&&i.status<400?t.success(i.responseText):t.error&&"function"==typeof t.error&&t.error()});t.error&&"function"==typeof t.error&&i.addEventListener("error",t.error);t.contentType&&i.setRequestHeader("Content-Type",t.contentType);"POST"===t.method?(t.contentType||i.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8"),i.send(t.params)):i.send()}function it(n,t){return void 0===t&&(t=2),Array(t-n.toString().length+1).join("0")+n}function ni(n){return Math.ceil((n.getMonth()+1)/3)}function ti(n){return void 0===n&&(n=new Date),{yyyy:n.getUTCFullYear(),yy:n.getUTCFullYear().toString().substr(2),mmmm:wt[n.getUTCMonth()],mmm:ir[n.getUTCMonth()],mm:it(n.getUTCMonth()+1),m:n.getUTCMonth()+1,dddd:bt[n.getUTCDay()],ddd:rr[n.getUTCDay()],dd:it(n.getUTCDate()),d:n.getUTCDate(),qq:it(ni(n)),q:ni(n)}}function o(n,t){var i=ti(n);return t.replace(ii,function(n){return i[n]})}function h(n,t,i){if("years"===i)return Math.abs(n.getFullYear()-t.getFullYear());if("months"===i)return Math.abs(n.getMonth()-t.getMonth())+12*h(n,t,"years");if("days"===i){var r=Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()),u=Date.UTC(t.getFullYear(),t.getMonth(),t.getDate());return Math.floor(Math.abs(r-u)/ur)}return"hours"===i?Math.floor(Math.abs(n-t)/gt):"minutes"===i?Math.floor(Math.abs(n-t)/dt):"seconds"===i?Math.floor(Math.abs(n-t)/kt):h(n,t,"days")}function ri(n){var t=document.createElement("div");return t.innerHTML=n,t.firstElementChild}function rt(n,t){var i=document.createEvent("Event");i.initEvent(t,!0,!0);n.dispatchEvent(i)}function bi(n,t){var i,u,r;return(void 0===t&&(t=!1),i=e.find(function(t){return t.name===n.PresidentName}),i)?i:(u=function(n){var t=n.PresidentName.split(" "),i=t.length?t[t.length-1]:n.PresidentName;return n.PreferredLastName?n.PreferredLastName:i}(n),r={expandedDemos:t,name:n.PresidentName,lastName:u,startDate:new Date(n.Start||n.StartDate),endDate:n.End||n.EndDate?new Date(n.End||n.EndDate):null,party:n.Party.toLowerCase().indexOf("dem")>-1?"democratic":"republican",datesInOffice:n.DatesinOffice||"-",daysInOffice:n.DaysInOffice||"-",overallAvg:n.OverallAverage||"-",firstTermAvg:n.FirstTermAverage||"-",secondTermAvg:n.SecondTermAverage||"-",approvalHigh:n.JobApprovalHigh||"-",approvalLow:n.JobApprovalLow||"-",lines:function(n){void 0===n&&(n=!1);var t=tt[n?"expanded":"historical"],r=n?"D":"Disapprove",i=[];return Object.keys(t).forEach(function(n){Object.keys(t[n]).forEach(function(u){var e="Overall"===n&&u===r?"disapproval":"approval",o=t[n][u],f={cut:n,metric:e,demographic:o,key:n+"-"+u,titleTemplate:"##PRESIDENT## job "+e+" - "+o,points:[]};f.color=f.demographic.indexOf("Democrat")>-1?"democratic":f.demographic.indexOf("Republican")>-1?"republican":f.demographic.indexOf("Independent")>-1?"independent":f.metric.indexOf("disapproval")>-1?"disapproval":"polcategorical";i.push(f)})}),i}(t)},e.push(r),r)}function k(){var t,u,r;if(f)return ot;if(!n)return[];t=n.metadata.axisX.axisMax;u=1;Math.floor(t/n.options.zoomLevel)>90?(u=7,st="Weeks"):st="Days";t/=u;var o,c=(n?n.dom.plotArea.width():p)/100,s=Math.max(t/c,1),l=Math.floor(Math.log(Math.abs(s))/Math.LN10),i=Math.pow(10,l),e=s/i,h=[];for(o=e>5?8*i:e>2.5?4*i:e>1.5?2*i:i,r=0;r<=t;r+=o)h.push({x:r*u,text:r.toString()});return h}function y(n,t){n.dropdown?n.dropdown.setValue(t):(n.value=t,rt(n,"change"))}function ki(t){if(void 0===t&&(t=!1),r.length&&"all"===r[0].president.value){var u,i,f=!0===t?n.metadata.axisX.max:n.metadata.lastTooltipXValue;return n.data.lines.forEach(function(n){var t=n.points.find(function(n){return n.x===f});t&&(u=n,i=t)}),void(u&&i&&(r[0].currentX.textContent=a[i.x],r[0].currentY.textContent=i.y+"%",r[0].currentY.style.color="#009D4F"))}n.data.lines.forEach(function(i){var u=r[i.id];if(u&&u.president.value){var f=i.points[i.points.length-1],e=!0===t?f.x:n.metadata.tooltips[i.id].x,o=!0===t?f.y:n.metadata.tooltips[i.id].y;e&&o&&(u.currentX.textContent=e,u.currentY.textContent=o+"%",u.currentY.style.color=i.color)}});sr()}function ar(){u=[];b=[];r.forEach(function(n){var r=e.find(function(t){return t.name===n.president.value}),o,i,t,f;r?(o=n.metric.value,i=n.demographic.value,"own_party"===i?i="democratic"===r.party?"Democrat":"Republican":"opp_party"===i&&(i="democratic"===r.party?"Republican":"Democrat"),t=r.lines.find(function(n){return n.metric===o&&n.demographic===i}),t.title||(t.title=t.titleTemplate.replace("##PRESIDENT##",r.lastName)),u.push(t),b.push(t.labelSet),n.currentY.style.color=t.color):"all"===n.president.value?(f=new Date(1900,0,1),ot=[],a={},e.forEach(function(n){var t=n.lines.find(function(n){return"Overall"===n.cut&&"approval"===n.metric}),i,r;t&&(i=s[t.labelSet],ot.push({x:h(f,i[t.points[0].x].date,"days"),text:n.lastName}),r=[],t.points.forEach(function(n){var t=h(f,i[n.x].date,"days");a[t]=n.x;r.push({x:t,y:n.y})}),u.push({points:r,allPres:!0,title:n.lastName,color:"#009D4F"}))})):(u.push(null),b.push(null))}),function(){var i,n,t,r,f;w.forEach(function(n,t){u[t]&&(n.includes(u[t].title)||u.forEach(function(i,r){i&&n.includes(i.title)&&u.splice(t,0,u.splice(r,1)[0])}))});i=document.querySelector("#srTableContainer");i&&i.remove();n=document.createElement("div");n.id="srTableContainer";n.classList.add("sr-only");document.querySelector(".c-pjac").appendChild(n);t=document.createElement("table");t.id="srTable";n.appendChild(t);r=document.createElement("caption");f=document.createTextNode("Presidential Job Approval data table");r.appendChild(f);t.appendChild(r);u.forEach(function(n){var r,u,i;if(n){r=document.createElement("th");r.setAttribute("scope","row");u=document.createTextNode(n.title);r.appendChild(u);i=document.createElement("tr");t.appendChild(i);i.appendChild(r);var o=e[e.findIndex(function(t){return n.title.includes(t.lastName)})],f=document.createElement("td"),s=document.createTextNode("Overall average approval: "+o.overallAvg+"%");f.appendChild(s);i.appendChild(f);n.points.forEach(function(n){var r=a[n.x]?a[n.x]:n.x,t=document.createElement("td"),u=document.createTextNode(n.y+"% on day "+r+" in office");t.appendChild(u);i.appendChild(t)})}})}()}function di(){var n=t.querySelector(".c-pjac__chart-units");f||!u.filter(function(n){return!!n}).length?n.style.display="none":(n.style.display="",n.textContent=st+" in office")}function d(){var o,s,h,r,e;ar();o=f;((f=u.filter(function(n){return!!n&&!!n.allPres}).length>0)||1===n.options.zoomLevel||n.zoom(1),n.changeData({lines:u},!0).changeOptions({ticks:k()}),o!==f&&n.changeOptions({x_axis_min:f?null:0,showLegend:!f,strictModeTooltips:f,wrapAxisLabels:f}),f||"all"===i.value)||(s=parseFloat(i.value),n.zoom(n.metadata.axisX.range/s),h=k(),n.changeOptions({ticks:h}));f?(t.classList.add("c-pjac--mode-all"),t.classList.remove("c-pjac--mode-compare"),r=t.querySelector("svg.dv-plot-area"),r&&(e=parseFloat(r.getAttribute("width")),e>0&&r.setAttribute("width",e+15))):ht||(t.classList.add("c-pjac--mode-compare"),t.classList.remove("c-pjac--mode-all"));window.innerWidth<cr&&f?("all"===i.value&&(i.value=i.querySelector("option:nth-last-child(2)").value,rt(i,"change")),c.querySelector('[data-value="all"]').disabled=!0,i.querySelector('[value="all"]').disabled=!0):(c.querySelector('[data-value="all"]').disabled=!1,i.querySelector('[value="all"]').disabled=!1);ki(!0);di()}function lt(n){r=r.filter(function(t){return t!==n});ht=!0,function(n,t){var r,i;void 0===t&&(t=null);r=n.offsetHeight;ct.innerHTML="\n    @keyframes chart-line-exit {\n      50% {\n        opacity: 0;\n        height: "+r+"px;\n      }\n      100% {\n        opacity: 0;\n        height: 0;\n      }\n    }\n  ";n.style.animation="chart-line-exit 0.5s "+oi+" forwards";i=function(){n.style.animation="";t&&t();n.removeEventListener("animationend",i);n.removeEventListener("webkitAnimationEnd",i)};n.addEventListener("animationend",i);n.addEventListener("webkitAnimationEnd",i)}(n.controls,function(){ut.removeChild(n.controls);r.length||(vt(),wi&&at());n.controls.classList.contains("c-pjac-line--all-presidents")&&(t.classList.remove("c-pjac--mode-all"),t.classList.add("c-pjac--mode-compare"));ht=!1});d();ft.disabled=r.length>=4}function gi(n){var i=e.find(function(t){return t.name===n.president.value}),f,u;(n.toggleStats.setAttribute("aria-label",n.president.value+" Approval Snapshot"),n.keyStatsTable.setAttribute("aria-label",n.president.value+" Approval Snapshot Table"),n.controls.querySelector(".c-pjac-line__remove-btn").setAttribute("aria-label","Remove "+n.president.value),i)?(n.image.style.backgroundImage="url("+pi[n.president.value]+")",n.controls.classList.remove("c-pjac-line--all-presidents"),f=i.datesInOffice.replace("Present","").replace("-","&ndash;"),n.keyStats.querySelector(".dates-in-office").innerHTML=f,n.keyStats.querySelector(".days-in-office").textContent=i.daysInOffice,n.keyStats.querySelector(".overall-avg").textContent="-"!==i.overallAvg?Math.round(i.overallAvg)+"%":"-",n.keyStats.querySelector(".first-term-avg").textContent="-"!==i.firstTermAvg?Math.round(i.firstTermAvg)+"%":"-",n.keyStats.querySelector(".second-term-avg").textContent="-"!==i.secondTermAvg?Math.round(i.secondTermAvg)+"%":"-",n.keyStats.querySelector(".approval-high").textContent="-"!==i.approvalHigh?Math.round(i.approvalHigh)+"%":"-",n.keyStats.querySelector(".approval-low").textContent="-"!==i.approvalLow?Math.round(i.approvalLow)+"%":"-",u=n.demographic.value,(n.demographic.innerHTML="approval"===n.metric.value?i.expandedDemos?or:ui:fi,"Donald J. Trump (Term 1)"===n.president.value?(n.keyStats.querySelector(".approval-high-label").textContent=si,n.keyStats.querySelector(".approval-high").setAttribute("data-th",si),n.keyStats.querySelector(".approval-low-label").textContent=hi,n.keyStats.querySelector(".approval-low").setAttribute("data-th",hi)):"Donald J. Trump (Term 2)"===n.president.value?(n.keyStats.querySelector(".approval-high-label").textContent=ci,n.keyStats.querySelector(".approval-high").setAttribute("data-th",ci),n.keyStats.querySelector(".approval-low-label").textContent=li,n.keyStats.querySelector(".approval-low").setAttribute("data-th",li)):(n.keyStats.querySelector(".approval-high-label").textContent=ai,n.keyStats.querySelector(".approval-high").setAttribute("data-th",ai),n.keyStats.querySelector(".approval-low-label").textContent=vi,n.keyStats.querySelector(".approval-low").setAttribute("data-th",vi)),"approval"===n.metric.value)&&(n.demographic.dropdown&&(i.expandedDemos?n.demographic.dropdown.dropdown.classList.add("multi-column"):n.demographic.dropdown.dropdown.classList.remove("multi-column"),n.demographic.dropdown.update()),n.demographic.querySelectorAll("option").forEach(function(t){if("own_party"!==t.value&&"opp_party"!==t.value){var r=i.lines.find(function(i){return i.metric===n.metric.value&&i.demographic===t.value}),u=r&&r.points&&r.points.filter(function(n){return null!=n.y&&Number.isFinite(n.y)}).length>=2;t.disabled=!u}})),n.demographic.dropdown&&(n.demographic.dropdown.update(),n.demographic.dropdown.menu.querySelectorAll("a").forEach(function(t){var r=t.getAttribute("data-value"),i=n.demographic.querySelector('option[value="'+r+'"]');i&&i.disabled?(t.classList.add("disabled"),t.setAttribute("disabled","")):(t.classList.remove("disabled"),t.removeAttribute("disabled"))})),n.demographic.querySelector('[value="'+u+'"]')&&y(n.demographic,u)):"all"===n.president.value&&(n.controls.classList.add("c-pjac-line--all-presidents"),n.controls.id="c-pjac--demographic-groups",function(n){r.filter(function(t){return t!==n}).forEach(function(n){return lt(n)});n.image.style.backgroundImage="url("+hr+")";t.classList.add("c-pjac--mode-all");t.classList.remove("c-pjac--mode-compare");"approval"!==n.metric.value&&y(n.metric,"approval");n.metric.querySelector('[value="disapproval"]').disabled=!0;n.metric.dropdown&&(n.metric.dropdown.update(),n.metric.dropdown.menu.querySelector('[data-value="disapproval"]').parentNode.style.display="none");n.demographic.innerHTML=fi;n.demographic.dropdown&&(n.demographic.dropdown.update(),n.demographic.dropdown.dropdown.classList.remove("multi-column"))}(n));"all"!==n.president.value&&n.metric.querySelector('[value="disapproval"]').disabled&&(n.metric.querySelector('[value="disapproval"]').disabled=!1,n.metric.dropdown&&(n.metric.dropdown.update(),n.metric.dropdown.menu.querySelector('[data-value="disapproval"]').parentNode.style.display=""))}function vt(){var t,n={};return(n.controls=ri(er),ut.appendChild(n.controls),function(n,t){var r,i;void 0===t&&(t=null);n.style.height="auto";r=n.offsetHeight;n.style.height="";n.offsetHeight;ct.innerHTML="\n    @keyframes chart-line-enter {\n      0% {\n        opacity: 0;\n        height: 0;\n      }\n      50% {\n        opacity: 0;\n        height: "+r+"px;\n      }\n      100% {\n        opacity: 1;\n      }\n    }\n  ";n.style.animation="chart-line-enter 0.5s "+oi+" forwards";i=function(){n.style.animation="";t&&t();n.removeEventListener("animationend",i);n.removeEventListener("webkitAnimationEnd",i)};n.addEventListener("animationend",i);n.addEventListener("webkitAnimationEnd",i)}(n.controls),n.image=n.controls.querySelector(".c-pjac-line__pres-image"),n.president=n.controls.querySelector(".c-pjac-line__president .c-pjac__select"),n.metric=n.controls.querySelector(".c-pjac-line__metric .c-pjac__select"),n.demographic=n.controls.querySelector(".c-pjac-line__demographic .c-pjac__select"),n.currentValues=n.controls.querySelector(".c-pjac-line__values"),n.currentY=n.controls.querySelector(".c-pjac-line__value-y"),n.currentX=n.controls.querySelector(".c-pjac-line__value-x"),n.toggleStats=n.controls.querySelector(".c-pjac-keystats__toggle"),n.keyStats=n.controls.querySelector(".c-pjac-keystats"),n.keyStatsTable=n.controls.querySelector(".c-pjac-keystats__table"),w.length&&((t=n.president).innerHTML="\n    <option disabled hidden selected><\/option>\n    "+w.map(function(n){return'<option value="'+n+'">'+n+"<\/option>"}).join("")+'\n    <option disabled class="divider">---<\/option>\n    <option value="all">All Presidents<\/option>\n  ',t.dropdown&&t.dropdown.update()),n.demographic.innerHTML=ui,lr)&&Array.prototype.slice.call(n.controls.querySelectorAll("[data-dropdown-select]")).forEach(function(n){n.dropdown=new DropdownSelect(n);n.dropdown.toggle.href="#"}),n.president.addEventListener("change",function(){var r=e.find(function(t){return t.name===n.president.value}),t,i;r?(t=n.demographic.value,"own_party"!==t&&"opp_party"!==t&&(i=r.lines.find(function(i){return i.metric===n.metric.value&&i.demographic===t}),i&&i.points&&i.points.filter(function(n){return null!=n.y&&Number.isFinite(n.y)}).length>=2||y(n.demographic,"All Adults"))):y(n.demographic,"All Adults");gi(n);n.controls.classList.remove("c-pjac-line--empty");d()}),n.metric.addEventListener("change",function(){gi(n);d()}),n.demographic.addEventListener("change",d),n.toggleStats.addEventListener("click",function(){!function(n){var t=n.keyStats,i=n.toggleStats,r;t.classList.contains("is-collapsed")?(i.ariaExpanded="true",t.style.height="auto",r=getComputedStyle(t).height,t.style.height="",t.offsetHeight,t.style.height=r+"px"):(i.ariaExpanded="false",t.style.height="");t.classList.toggle("is-collapsed")}(n)}),n.controls.querySelector(".c-pjac-line__remove-btn").addEventListener("click",function(){lt(n)}),r.push(n),ft.disabled=r.length>=4,n}function nr(n,t,i){return f?n?n.title:i:s[b[n.id]][t].text}function vr(n,t){return t?"Day "+n+"&ndash;"+t:"Day "+n}function g(){y(vt().president,"all");t.classList.remove("c-pjac--loading")}function tr(n,t){return n.getUTCFullYear()!==t.getUTCFullYear()?o(n,"mmm d, yyyy")+"&ndash;"+o(t,"mmm d, yyyy"):n.getUTCMonth()!==t.getUTCMonth()?o(n,"mmm d")+"&ndash;"+o(t,"mmm d, yyyy"):n.getUTCDate()!==t.getUTCDate()?o(n,"mmm d")+"&ndash;"+o(t,"d, yyyy"):o(t,"mmm d, yyyy")}function yt(n,t){void 0===t&&(t=null);l+=1;pt({url:"/wwwv7interactives/json/"+n+"/codename.aspx",success:function(i){var f=JSON.parse(i),u=f.ExpandedDemographics||f.CurrentPresident,r=bi(u.PresidentData,!0),o=u.data.date,e;s[n]={};e=s[n];o.forEach(function(t){var f=new Date(t.startDate),i=new Date(t.endDate),u=h(i,r.startDate,"days");e[u]={date:i,text:tr(f,i)};Object.keys(t).forEach(function(i){"object"==typeof t[i]&&Object.keys(t[i]).forEach(function(f){var e=r.lines.find(function(n){return n.key===i+"-"+f});e&&"-"!==t[i][f]&&(e.labelSet=n,e.points.push({x:u,y:Number(t[i][f])}))})});r.lines.forEach(function(n){return n.points.sort(function(n,t){return n.x-t.x})})});v+=1;t&&t(u,r)}})}var tt,ii,at,nt;!function(n,t){var u,r,i;void 0===t&&(t={});u=t.insertAt;n&&"undefined"!=typeof document&&(r=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style"),i.type="text/css","top"===u&&r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i),i.styleSheet?i.styleSheet.cssText=n:i.appendChild(document.createTextNode(n)))}(".c-pjac{font-size:14px;color:#666}.c-pjac--loading{position:relative}.c-pjac--loading:after,.c-pjac--loading:before{position:absolute;top:50%;left:50%;width:50px;height:50px;margin-top:-25px;margin-left:-25px;content:\"\";border:4px solid transparent;border-top-color:#009d4e;border-radius:50%;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-animation:a 1.1s infinite;animation:a 1.1s infinite}.c-pjac--loading:before{-webkit-animation-timing-function:cubic-bezier(.455,.065,.425,1);animation-timing-function:cubic-bezier(.455,.065,.425,1)}.c-pjac--loading:after{-webkit-animation-timing-function:linear;animation-timing-function:linear}.c-pjac__chart-footer{display:flex;padding:10px;justify-content:space-between;background-color:#f0f8f0}.c-pjac__chart-footer-logo{width:60px;height:20px;background-repeat:no-repeat;background-image:url(https://asset.gallup.com/p/WWWV7INTERACTIVES/7453f2fd-8d09-40bf-929b-96398253799a.svg)}.c-pjac__chart-units{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:400;line-height:1.5;color:#666}.c-pjac__select-label{margin:0;font:inherit;color:inherit;text-transform:none;letter-spacing:0}.c-pjac__select{height:30px;margin:0 10px;color:#2b2b2b;background-color:transparent;border:0;border-radius:0;box-shadow:inset 0 -1px 0 #929292}.c-pjac__btn-container{margin:20px 0;color:#000;text-align:center}.c-pjac__btn{display:none}.c-pjac--mode-all .c-pjac__btn--compare,.c-pjac--mode-compare .c-pjac__btn--add,.c-pjac .dropdown{display:inline-block}.c-pjac .dropdown{padding-bottom:10px;margin-top:10px;border:1px solid transparent}.c-pjac .dropdown,.c-pjac .dropdown .dropdown-toggle{background-color:#fff;border-radius:4px 4px 0 0}.c-pjac .open{border-color:#bbb}.c-pjac .open .dropdown-toggle{z-index:2;background-color:#fff}.c-pjac .open .dropdown-toggle:after{position:absolute;right:0;bottom:-10px;left:0;z-index:2;height:1px;content:\"\";background-color:#fff}.c-pjac .dropdown-toggle{position:relative;display:block;padding:6px 10px;line-height:normal;color:#2b2b2b;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.c-pjac .dropdown-toggle:focus{outline:1px dotted #009d4e}.c-pjac .dropdown-toggle:before{position:absolute;top:100%;right:10px;left:10px;height:1px;content:\"\";background-color:#929292}.c-pjac .dropdown-toggle .caret{border-top-color:#929292}.c-pjac .dropdown-menu{z-index:1;padding:10px 20px 0 10px;margin-top:-1px;margin-left:-1px;font-size:inherit;border-color:#bbb;border-radius:0}.c-pjac .dropdown-menu ul{padding:0 0 0 20px}.c-pjac .dropdown-menu li{padding:4px 0;line-height:1.15;list-style-type:none}.c-pjac .dropdown-menu li ul{padding-bottom:8px}.c-pjac .dropdown-menu li a{display:inline-block;color:#2b2b2b;white-space:nowrap}.c-pjac .dropdown-menu li .selected{position:relative}.c-pjac .dropdown-menu li .selected:before{position:absolute;right:100%;width:16px;height:16px;margin-right:5px;content:\"\";background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cpath d='M34.5 83.2c-1.7 0-3.3-.6-4.6-1.8L1.8 56c-1.6-1.5-1.8-4-.3-5.6 1.5-1.6 4-1.8 5.6-.3l27.3 24.7 57.5-55.7c1.6-1.5 4.1-1.5 5.7.1 1.5 1.6 1.5 4.1-.1 5.7L39.3 81.2c-1.3 1.3-3.1 2-4.8 2z' stroke='%23009D4E' stroke-width='5' fill='%23009D4E'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:16px 16px}.c-pjac .dropdown-menu li.divider{padding:0;margin:4px 0;background-color:#bbb}.c-pjac .dropdown-menu li .disabled{color:#e0e0e0;pointer-events:none}.c-pjac .dropdown-menu .group-title{margin:0 0 5px 5px;color:#404040;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:400;line-height:1.5}@media (max-width:959px){.c-pjac .dropdown{padding-bottom:0;margin-top:0}}@media (min-width:640px){.c-pjac .multi-column{position:static}.c-pjac .multi-column .dropdown-toggle:after{bottom:-6px}.c-pjac .multi-column .dropdown-menu{top:58px;left:50%;max-width:calc(100% - 20px);margin-left:0;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:30px;-moz-column-gap:30px;column-gap:30px}.c-pjac .multi-column .dropdown-menu>li{-webkit-column-break-inside:avoid;-moz-column-break-inside:avoid;break-inside:avoid;overflow:hidden}}@media (min-width:960px){.c-pjac .dropdown.multi-column .dropdown-menu{-webkit-column-count:4;-moz-column-count:4;column-count:4}}.c-pjac-timeframe{padding:15px 10px;margin:0;background-color:#fff}.c-pjac-timeframe__btn-container{display:flex;flex-wrap:wrap}.c-pjac-timeframe__btn{padding:0 5px;margin:0 5px}.c-pjac-timeframe__btn.is-active{font-weight:700;color:#000}.c-pjac-line:before{display:block;width:100%;height:10px;content:\"\"}.c-pjac-line__container{position:relative;display:flex;align-items:center;flex-wrap:wrap;padding:10px;background-color:#fff}.c-pjac-line__pres-image{width:48px;height:48px;margin-right:10px;background-color:#bbb;background-size:100%;border-radius:50%}.c-pjac-line__demographic,.c-pjac-line__metric,.c-pjac-line__values{width:100%;padding-left:58px;margin-top:10px}.c-pjac-line__demographic-text{margin-left:10px}.c-pjac-line__president .c-pjac__select,.c-pjac-line__president .dropdown-toggle{font-size:16px}.c-pjac-line--empty .c-pjac-line__values{display:none}.c-pjac-line__value-x,.c-pjac-line__value-y{vertical-align:middle}.c-pjac-line__value-y{margin:0 10px;font-size:31px;font-weight:300;line-height:1.5}.c-pjac-line__value-x{font-weight:700;color:#404040}.c-pjac-line__label-y{display:block;margin-left:10px}.c-pjac-line__remove-btn{position:absolute;top:10px;right:10px;width:32px;height:32px;padding:0;-webkit-appearance:none;background-color:transparent;border:0;border-radius:50%;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.c-pjac-line__remove-btn:hover{background-color:#e0e0e0}.c-pjac-line__remove-btn:focus{outline:0;box-shadow:0 0 0 2px #009d4e}.c-pjac-line__remove-btn:disabled{background-color:transparent}.c-pjac-line__remove-btn:disabled:after,.c-pjac-line__remove-btn:disabled:before{background-color:#bbb}.c-pjac-line__remove-btn:after,.c-pjac-line__remove-btn:before{position:absolute;top:50%;left:50%;display:block;content:\"\";background-color:#666;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.c-pjac-line__remove-btn:before{width:66.6667%;height:2px}.c-pjac-line__remove-btn:after{width:2px;height:66.6667%}@media (min-width:650px){.c-pjac-line__demographic,.c-pjac-line__metric,.c-pjac-line__values{padding-left:0;margin-top:0}.c-pjac-line__demographic,.c-pjac-line__metric{width:auto}.c-pjac-line__demographic-text{margin-left:5px}.c-pjac-line__values{text-align:center}.c-pjac-line:not(.c-pjac-line--empty) .c-pjac-line__values{display:block}.c-pjac-line__label-x{display:inline;margin-left:0}}@media (min-width:960px){.c-pjac-line__values{width:auto;margin-right:52px;margin-left:auto}.c-pjac-line__remove-btn{top:20px}}.c-pjac-keystats{overflow-y:hidden;background-color:#f0f8f0;transition:height .25s cubic-bezier(.22,.61,.36,1)}.c-pjac-keystats.is-collapsed{height:40px}.c-pjac-line--all-presidents .c-pjac-keystats,.c-pjac-line--empty .c-pjac-keystats{display:none}.c-pjac-keystats__toggle{width:100%;height:40px;padding:0 20px;text-align:left}.c-pjac-keystats__toggle .caret{border-top:0;border-bottom:4px dashed}.c-pjac-keystats.is-collapsed .c-pjac-keystats__toggle .caret{border-top:4px dashed;border-bottom:0}.c-pjac-keystats__container{padding:10px 20px 20px}.c-pjac-keystats__table{width:100%;border:0}.c-pjac-keystats__table.c-pjac-keystats__table{background-color:transparent}.c-pjac-keystats__table th{border:0}.c-pjac-keystats__table td{padding:5px 0;color:#2b2b2b;border-bottom:2px solid #fff}.c-pjac-keystats__table td:last-child{border-bottom:0}.c-pjac-keystats__table td[data-th]:before{width:120px;content:attr(data-th)}.c-pjac-keystats__table td[data-th]:before,.c-pjac-keystats__table th{color:#666;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:400;line-height:1.5}@media (min-width:960px){.c-pjac-keystats__table td,.c-pjac-keystats__table th{padding:0 10px 0 0}.c-pjac-keystats__table td{border-bottom:0;font-size:31px;font-weight:300;line-height:1.5}}.c-pjac-keystats__toggle,.c-pjac-timeframe__btn{color:#666;background-color:transparent;border:0;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:400;line-height:1.5}.c-pjac-keystats__toggle:hover,.c-pjac-timeframe__btn:hover{color:#1a1a1a}.c-pjac-keystats__toggle:disabled,.c-pjac-timeframe__btn:disabled{color:#bbb}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}");tt={expanded:{Overall:{A:"All Adults",D:"All Adults"},Gender:{M:"Male",F:"Female"},Age:{A:"18 to 29",B:"30 to 49",C:"50 to 64",D:"65+"},Region:{E:"East",M:"Midwest",S:"South",W:"West"},Race:{W:"White",N:"Nonwhite",B:"Black",H:"Hispanic"},Education:{HS:"High School or Less",SC:"Some College",CG:"College Graduate",PG:"Postgraduate",aCG:"All College Graduates",aCNG:"All College Non-Graduates"},Income:{A:"Under $2,000",B:"$2,000 to $4,999",C:"$5,000 to $7,499",D:"$7,500 or more"},Party:{D:"Democrat",I:"Independent",R:"Republican"},Ideology:{L:"Liberal",M:"Moderate",C:"Conservative"},PartyIdeology:{LD:"Liberal Democrat",MD:"Moderate Democrat",CD:"Conservative Democrat",PM:"Pure Independent",LR:"Lib./Mod. Republican",CR:"Conservative Republican"},Church:{W:"Weekly",M:"Nearly Weekly/Monthly",N:"Seldom/Never"},Married:{Y:"Married",N:"Not Married"}},historical:{Overall:{Approve:"All Adults",Disapprove:"All Adults"},Party:{Dem:"Democrat",Rep:"Republican",Ind:"Independent"}},demographicCategory:{Approve:"Overall",Disapprove:"Overall",Dem:"Party",Rep:"Party",Ind:"Party"}};var wt=["January","February","March","April","May","June","July","August","September","October","November","December"],ir=wt.map(function(n){return n.substr(0,3)}),bt=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],rr=bt.map(function(n){return n.substr(0,3)}),kt=1e3,dt=60*kt,gt=60*dt,ur=24*gt;ii=new RegExp(Object.keys(ti()).join("|"),"g");var t,c,i,n,ut,p,ft,a,fr='<div class="c-pjac"> <div class="c-pjac-timeframe"> <div class="visible-xs"> <label class="c-pjac__select-label"> Timeframe: <select class="c-pjac__select c-pjac-timeframe__select" data-dropdown-select> <option value="30">1 Month<\/option> <option value="90">3 Months<\/option> <option value="180">6 Months<\/option> <option value="365">1 Year<\/option> <option value="730">2 Years<\/option> <option value="1460">1 Term<\/option> <option value="all" selected="selected">All<\/option> <\/select> <\/label> <\/div> <div class="c-pjac-timeframe__btn-container hidden-xs"> <span>Timeframe:<\/span> <button class="c-pjac-timeframe__btn" data-value="30">1 Month<\/button> / <button class="c-pjac-timeframe__btn" data-value="90">3 Months<\/button> / <button class="c-pjac-timeframe__btn" data-value="180">6 Months<\/button> / <button class="c-pjac-timeframe__btn" data-value="365">1 Year<\/button> / <button class="c-pjac-timeframe__btn" data-value="730">2 Years<\/button> / <button class="c-pjac-timeframe__btn" data-value="1460">1 Term<\/button> / <button class="c-pjac-timeframe__btn is-active" data-value="all">All<\/button> <\/div> <\/div> <div class="c-pjac__chart"><\/div> <div class="c-pjac__chart-footer"> <div class="c-pjac__chart-footer-logo"><\/div> <span class="c-pjac__chart-units"><\/span> <\/div> <div class="c-pjac__chart-lines"><\/div> <div class="c-pjac__btn-container"> <button type="button" class="btn btn-primary c-pjac__btn c-pjac__btn--add">Add Comparison<\/button> <button type="button" class="btn btn-primary c-pjac__btn c-pjac__btn--compare">Compare Presidents<\/button> <\/div> <\/div> ',er='<div class="c-pjac-line c-pjac-line--empty"> <div class="c-pjac-line__container"> <div class="c-pjac-line__pres-image"><\/div> <label class="c-pjac__select-label c-pjac-line__president"> <span class="sr-only">President<\/span> <select class="c-pjac__select" data-dropdown-select data-placeholder="Pick a president"><\/select> <\/label> <label class="c-pjac__select-label c-pjac-line__metric"> <span class="sr-only">Metric<\/span> <select class="c-pjac__select" data-dropdown-select> <option value="approval" selected="selected">Job Approval<\/option> <option value="disapproval">Job Disapproval<\/option> <\/select> <\/label> <label class="c-pjac__select-label c-pjac-line__demographic"> <span class="c-pjac-line__demographic-text">among<\/span> <span class="sr-only">Demographic<\/span> <select class="c-pjac__select" data-dropdown-select><\/select> <\/label> <div class="c-pjac-line__values"> <span aria-live="polite" class="c-pjac-line__value-y"><\/span> <span class="c-pjac-line__label-x">on day <span class="c-pjac-line__value-x"><\/span> in office<\/span> <\/div> <button class="c-pjac-line__remove-btn"><span class="sr-only">Remove<\/span><\/button> <\/div> <div class="c-pjac-keystats is-collapsed"> <button class="c-pjac-keystats__toggle" aria-expanded="false">Approval Snapshot <span class="caret"><\/span><\/button> <div class="c-pjac-keystats__container" tabindex="-1"> <table class="c-pjac-keystats__table responsive-table"> <thead> <tr> <th>Dates in Office<\/th> <th>Days in Office<\/th> <th>Overall Avg<\/th> <th>First-Term Avg<\/th> <th>2nd-Term Avg<\/th> <th class="approval-high-label">Approval High<\/th> <th class="approval-low-label">Approval Low<\/th> <\/tr> <\/thead> <tbody> <tr> <td data-th="Dates in Office" class="dates-in-office"><\/td> <td data-th="Days in Office" class="days-in-office"><\/td> <td data-th="Overall Avg" class="overall-avg"><\/td> <td data-th="First-Term Avg" class="first-term-avg"><\/td> <td data-th="2nd-Term Avg" class="second-term-avg"><\/td> <td data-th="Approval High" class="approval-high"><\/td> <td data-th="Approval Low" class="approval-low"><\/td> <\/tr> <\/tbody> <\/table> <\/div> <\/div> <\/div> ',ui='<optgroup label="General"> <option value="All Adults" selected="selected">All Adults<\/option> <\/optgroup> <optgroup label="Politics"> <option value="Democrat" label="Democrats">Democrat<\/option> <option value="Republican" label="Republicans">Republican<\/option> <option value="Independent" label="Independents">Independent<\/option> <option value="own_party">Own Party<\/option> <option value="opp_party">Opposing Party<\/option> <\/optgroup> ',or='<optgroup label="General"> <option value="All Adults" selected="selected">All Adults<\/option> <\/optgroup> <optgroup label="Gender"> <option value="Male" label="Males">Males<\/option> <option value="Female" label="Females">Females<\/option> <\/optgroup> <optgroup label="Age"> <option value="18 to 29">18-29<\/option> <option value="30 to 49">30-49<\/option> <option value="50 to 64">50-64<\/option> <option value="65+">65+<\/option> <\/optgroup> <optgroup label="Region"> <option value="East">East<\/option> <option value="Midwest">Midwest<\/option> <option value="South">South<\/option> <option value="West">West<\/option> <\/optgroup> <optgroup label="Race"> <option value="White" label="Whites">White<\/option> <option value="Nonwhite" label="Nonwhites">Nonwhite<\/option> <option value="Black" label="Blacks">Black<\/option> <option value="Hispanic" label="Hispanics">Hispanic<\/option> <\/optgroup> <optgroup label="Education"> <option value="High School or Less">High School or Less<\/option> <option value="Some College">Some College<\/option> <option value="College Graduate">College Graduate<\/option> <option value="Postgraduate">Postgraduate<\/option> <option value="All College Graduates">All College Graduates<\/option> <option value="All College Non-Graduates">All College Non-Graduates<\/option> <\/optgroup> <optgroup label="Monthly Income"> <option value="Under $2,000">Under $2,000<\/option> <option value="$2,000 to $4,999">$2,000-$4,999<\/option> <option value="$5,000 to $7,499">$5,000-$7,499<\/option> <option value="$7,500 or more">$7,500+<\/option> <\/optgroup> <optgroup label="Marital Status"> <option value="Married">Married<\/option> <option value="Not Married">Not Married<\/option> <\/optgroup> <optgroup label="Church Attendance"> <option value="Weekly">Weekly<\/option> <option value="Nearly Weekly/Monthly">Nearly Weekly/Monthly<\/option> <option value="Seldom/Never">Seldom/Never<\/option> <\/optgroup> <optgroup label="Politics"> <option value="Democrat" label="Democrats">Democrats<\/option> <option value="Republican" label="Republicans">Republicans<\/option> <option value="Independent" label="Independents">Independents<\/option> <option value="own_party">Own Party<\/option> <option value="opp_party">Opposing Party<\/option> <option value="Liberal" label="Liberals">Liberals<\/option> <option value="Moderate" label="Moderates">Moderates<\/option> <option value="Conservative" label="Conservatives">Conservatives<\/option> <option value="Liberal Democrat" label="Liberal Democrats">Liberal Democrats<\/option> <option value="Moderate Democrat" label="Moderate Democrats">Moderate Democrats<\/option> <option value="Conservative Democrat" label="Conservative Democrats">Conservative Democrats<\/option> <option value="Pure Independent" label="Pure Independents">Pure Independents<\/option> <option value="Lib./Mod. Republican" label="Lib./Mod. Republicans">Lib./Mod. Republicans<\/option> <option value="Conservative Republican" label="Conservative Republicans">Conservative Republicans<\/option> <\/optgroup> ',fi='<optgroup label="General"> <option value="All Adults" selected="selected">All Adults<\/option> <\/optgroup> ',sr=function(){var n=document.querySelectorAll(".dv-lines-group .dv-line"),t=document.querySelectorAll(".dv-legend .dv-line");n.forEach(function(n){var t=n.getAttribute("data-line-id");ei(n,t)});t.forEach(function(n){var t=n.getAttribute("data-line-id");ei(n,t)})},ei=function(n,t){1==t?n.setAttribute("stroke-dasharray","5 5"):2==t?n.setAttribute("stroke-dasharray","2 2"):0!=t&&3!=t||n.setAttribute("stroke-dasharray","")},hr="//content.gallup.com/origin/gallupinc/GallupSpaces/Production/Cms/WWWV7INTERACTIVES/t_zbzetnw0k_jtj88ipxqw.png",et=640,cr=960,oi="cubic-bezier(0.22, 0.61, 0.36, 1)",lr=window.innerWidth>=et,si="Term 1 High",hi="Term 1 Low",ci="Term 2 High",li="Term 2 Low",ai="Approval High",vi="Approval Low",yi=window.gel.dataviz.LineChart,s={},e=[],pi={},w=[],r=[],u=[],b=[],f=!1,ot=[],l=0,v=0,st="Days",ht=!1,wi=!1,ct=document.createElement("style");return document.head.appendChild(ct),at=function(){var n=document.querySelectorAll(".c-pjac-line--empty"),t=document.querySelector(".c-pjac__btn--add"),i=document.querySelector(".c-pjac__btn--compare");(void 0!==n||n.length>0)&&(n[0].scrollIntoView({behavior:"smooth",block:"nearest"}),n[0].focus(),t.blur(),i.blur())},nt=document.querySelector("[data-pjac]"),nt||(nt=document.querySelector("article")),function(e){if(e){(t=ri(fr)).classList.add("c-pjac--loading");e.appendChild(t);p=t.clientWidth;c=t.querySelector(".c-pjac-timeframe");(i=c.querySelector(".c-pjac-timeframe__select")).addEventListener("change",function(){var r,t;u.filter(function(n){return!!n}).length&&(isNaN(i.value)?"all"===i.value&&n.zoom(1):n.zoom(n.metadata.axisX.range/i.value),r=k(),n.changeOptions({ticks:r}),di(),t=Array.from(c.querySelectorAll("button[data-value]")),t.forEach(function(n){return n.classList.remove("is-active")}),t.find(function(n){return n.getAttribute("data-value")===i.value}).classList.add("is-active"))});c.addEventListener("click",function(n){null!==n.target.getAttribute("data-value")&&(i.value=n.target.getAttribute("data-value"),rt(i,"change"))});var o=t.querySelector(".c-pjac__chart");n=new yi(o,{},{mode:yi.MODE_INTERACTIVE,width:"100%",height:350,dateFormat:"year",unitFormat:"{y}%",y_axis_min:0,y_axis_max:100,showLegend:!f,showFooter:!1,forceMultilineLegend:window.innerWidth<et,tooltipLabel:nr,groupTooltipLabel:vr,tooltipLineLabel:nr}).on("dv.tooltipsupdated",ki);ut=t.querySelector(".c-pjac__chart-lines");(ft=t.querySelector(".c-pjac__btn--add")).addEventListener("click",function(){vt();at()});t.querySelector(".c-pjac__btn--compare").addEventListener("click",function(){wi=!0;var n=r.find(function(n){return n.controls.classList.contains("c-pjac-line--all-presidents")});n&&lt(n)});yt("CURRENTPRESWEEKLY",function(n){yt("CURRENTPRESMONTHLY",function(){v>=l&&g()});[n.PresidentData].concat(n.data.presidents).forEach(function(n){w.push(n.Name||n.PresidentName);pi[n.Name||n.PresidentName]=n.ImageURL;n.CodeName&&"ALLPRESIDENTS"!==n.CodeName&&yt(n.CodeName,function(){v>=l&&g()})});v>=l&&g()});l+=1;pt({url:"/wwwv7interactives/json/ALLPRESIDENTS/codename.aspx",success:function(n){JSON.parse(n).AllPresidents.HistoricalPresident.forEach(function(n,t){var i=bi(n.PresidentData),f=n.data.Row,r="ALLPRESIDENTS"+t,u;s[r]={};u=s[r];f.forEach(function(n){var e=new Date(n.StartDate),t=new Date(n.EndDate),f=h(t,i.startDate,"days");u[f]={date:t,text:tr(e,t)};Object.keys(n).forEach(function(t){var e=tt.demographicCategory[t],u;e&&(u=i.lines.find(function(n){return n.key===e+"-"+t}),u&&"-"!==n[t]&&(u.labelSet=r,u.points.push({x:f,y:Number(n[t])})))})});i.lines.forEach(function(n){return n.points.sort(function(n,t){return n.x-t.x})})});(v+=1)>=l&&g()}})}}(nt),window.addEventListener("resize",function(n,t,i){var r,u=this;return function(){var f=u,e=[n,t,i],o=i&&!r;clearTimeout(r);r=setTimeout(function(){r=null;i||n.apply(f,e)},t);o&&n.apply(f,e)}}(function(){t.clientWidth!==p&&(p=t.clientWidth,n.changeOptions({ticks:k(),forceMultilineLegend:window.innerWidth<et}))},50)),{labelSets:s,dataSets:e,chart:n}}()