-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsolarnetwork-d3.min.js
More file actions
1 lines (1 loc) · 79.8 KB
/
solarnetwork-d3.min.js
File metadata and controls
1 lines (1 loc) · 79.8 KB
1
((t,e)=>{"function"==typeof define&&define.amd?define(["colorbrewer","d3","queue-async","crypto-js","uri-js"],e):"object"==typeof module&&module.exports?module.exports=e(require("colorbrewer"),require("d3"),require("queue-async"),require("crypto-js"),require("uri-js")):t.sn=e(t.colorbrewer,t.d3,t.queue,t.CryptoJS,t.URI)})(this,function(h,it,l,b,C){var o,i,s,ut={version:"0.16.1",api:{}},T=it.time.format.utc("%Y-%m-%d %H:%M:%S.%LZ"),d=(ut.api.control={},ut.api.user={},ut.api.node={},"undefined"!=typeof self?self:void 0!==d?d:new Function("return this")()),t={debug:!1,host:"data.solarnetwork.net",tls:!0,path:"/solarquery",solarUserPath:"/solaruser",secureQuery:!1};function e(t,e){var n,r;for(n in void 0===e&&(e={}),t)t.hasOwnProperty(n)&&((r=Object.getOwnPropertyDescriptor(t,n))?Object.defineProperty(e,n,r):e[n]=t[n]);return e}function x(t,e){var n,r,a,o,i=Object.getOwnPropertyNames(t);for(void 0===e&&(e={}),n=0,r=i.length;n<r;n+=1)a=i[n],(o=Object.getOwnPropertyDescriptor(t,a))?Object.defineProperty(e,a,o):e[a]=t[a];return e}function n(t,e){"function"==typeof e&&(void 0===o&&(o=[]),t=t.replace(/[^0-9a-zA-Z_]/,""),o.push({name:t,func:e}))}function u(t){return t.hostURL()+(ut.config&&ut.config.solarUserPath?ut.config.solarUserPath:"/solaruser")+"/api/v1/sec"}function r(t){var e,n,r,a,o,i={};if(void 0!==t&&0<t.length)for(n=0,r=(e=(t=t.match(/^\?/)?t.substring(1):t).split("&")).length;n<r;n++)2===(o=e[n].split("=",2)).length&&(a=decodeURIComponent(o[0]),o=decodeURIComponent(o[1]),i[a]?(Array.isArray(i[a])||(i[a]=[i[a]]),i[a].push(o)):i[a]=o);return i}ut.config=t,ut.util={arraysAreEqual:function(t,e){var n,r;if(!Array.isArray(t)||!Array.isArray(e))return!1;if(t.length!==e.length)return!1;for(n=0,r=t.length;n<r;n+=1){if(Array.isArray(t[n])&&Array.isArray(e[n])&&!0!==arraysAreEqual(t[n],e[n]))return!1;if(t[n]!==e[n])return!1}return!0},copy:e,copyAll:x,merge:function(t,e){var n,r;void 0===e&&(e={});for(n in t)t.hasOwnProperty(n)&&void 0===e[n]&&((r=Object.getOwnPropertyDescriptor(t,n))?Object.defineProperty(e,n,r):e[n]=t[n]);return e},superMethod:function(t){var e=this,n=e[t];return function(){return n.apply(e,arguments)}}},ut.api.node.registerUrlHelperFunction=n,ut.api.node.nodeUrlHelper=function(t,e){var n={version:"1.1.0"},i=t,r=ut.util.copy(e,{host:"data.solarnetwork.net",tls:!0,path:"/solarquery",secureQuery:!1});function a(){return"http"+(!0===r.tls?"s":"")+"://"+r.host}function u(){return a()+r.path+"/api/v1/"+(!0===r.secureQuery?"sec":"pub")}return Object.defineProperties(n,{secureQuery:{get:function(){return!0===r.secureQuery},enumerable:!0},keyDescription:{value:function(){return"node "+i}},nodeId:{get:function(){return i},enumerable:!0},nodeID:{value:function(t){return arguments.length?(i=t,n):i}},hostURL:{value:a},baseURL:{value:u},reportableIntervalURL:{value:function(t){var e=u()+"/range/interval?nodeId="+i;return(t=Array.isArray(t)?t[0]:t)&&(e+="&sourceId="+encodeURIComponent(t)),e}},availableSourcesURL:{value:function(t,e){var n=u()+"/range/sources?nodeId="+i;return void 0!==t&&(n+="&start="+encodeURIComponent(ut.format.dateFormat(t))),void 0!==e&&(n+="&end="+encodeURIComponent(ut.format.dateFormat(e))),n}},dateTimeListURL:{value:function(t,e,n,r,a){var o=u()+"/datum/list?nodeId="+i;return t&&(o+="&startDate="+encodeURIComponent(ut.format.dateTimeFormatURL(t))),e&&(o+="&endDate="+encodeURIComponent(ut.format.dateTimeFormatURL(e))),n&&(o+="&aggregate="+encodeURIComponent(n)),Array.isArray(r)&&0<r.length&&(o+="&sourceIds="+r.map(function(t){return encodeURIComponent(t)}).join(",")),void 0!==a&&(0<a.max&&(o+="&max="+encodeURIComponent(a.max)),0<a.offset)&&(o+="&offset="+encodeURIComponent(a.offset)),o}},mostRecentURL:{value:function(t){var e=u()+"/datum/mostRecent?nodeId="+i;return Array.isArray(t)&&(e+="&sourceIds="+t.map(function(t){return encodeURIComponent(t)}).join(",")),e}}}),Array.isArray(o)&&o.forEach(function(t){!1===n.hasOwnProperty(t.name)&&Object.defineProperty(n,t.name,{value:function(){return t.func.apply(n,arguments)}})}),n},ut.api.user.registerUrlHelperFunction=function(t,e){"function"==typeof e&&(void 0===i&&(i=[]),t=t.replace(/[^0-9a-zA-Z_]/,""),i.push({name:t,func:e}))},ut.api.user.userUrlHelper=function(t){var e={version:"1.0.0"},n=ut.util.copy(t,{host:"data.solarnetwork.net",tls:!0,path:"/solaruser",secureQuery:!0});function r(){return"http"+(!0===n.tls?"s":"")+"://"+n.host}function a(){return r()+n.path+"/api/v1/"+(!0===n.secureQuery?"sec":"pub")}return Object.defineProperties(e,{keyDescription:{value:function(){return"user"}},hostURL:{value:r},baseURL:{value:a},viewNodesURL:{value:function(){return a()+"/nodes"}}}),Array.isArray(i)&&i.forEach(function(t){!1===e.hasOwnProperty(t.name)&&Object.defineProperty(e,t.name,{value:function(){return t.func.apply(e,arguments)}})}),e},n("viewInstruction",function(t){return u(this)+"/instr/view?id="+encodeURIComponent(t)}),n("viewActiveInstructionsURL",function(){return u(this)+"/instr/viewActive?nodeId="+this.nodeId}),n("viewPendingInstructionsURL",function(){return u(this)+"/instr/viewPending?nodeId="+this.nodeId}),n("updateInstructionStateURL",function(t,e){return u(this)+"/instr/updateState?id="+encodeURIComponent(t)+"&state="+encodeURIComponent(e)}),n("queueInstructionURL",function(t,e){var n,r,a=u(this)+"/instr/add?nodeId="+this.nodeId+"&topic="+encodeURIComponent(t);if(Array.isArray(e))for(n=0,r=e.length;n<r;n++)a+="&"+encodeURIComponent("parameters["+n+"].name")+"="+encodeURIComponent(e[n].name)+"&"+encodeURIComponent("parameters["+n+"].value")+"="+encodeURIComponent(e[n].value);return a}),n("viewNodeMetadataURL",function(){return u(this)+"/nodes/meta/"+this.nodeId}),ut.api.control.toggler=function(t){var c,d,f,p,e,o={version:"1.3.0"},n=2e4,r=5e3,m="/power/switch/1",g=t,v=ut.net.sec;function h(t){if(void 0!==e)try{e.call(o,t)}catch(t){ut.log("Error in callback: {0}",t)}}function i(){return void 0===f?void 0:f.state}function u(){return void 0===f?void 0:Number(f.parameters[0].value)}function y(){return["Queued","Received","Executing"].indexOf(i())<0?n:r}function x(t){var e,n,r,a;return arguments.length?(e=l(),n=void 0===d?void 0:d.val,r=i(),a=u(),"Queued"===r&&a!==t&&(ut.log("Canceling {2} pending control {0} switch to {1}",m,a,g.keyDescription()),e.defer(v.json,g.updateInstructionStateURL(f.id,"Declined"),"POST"),a=f=void 0),n!==t&&a!==t&&(ut.log("Request {2} to change control {0} to {1}",m,t,g.keyDescription()),e.defer(v.json,g.queueInstructionURL("SetControlParameter",[{name:m,value:String(t)}]),"POST")),e.awaitAll(function(t,e){t?(ut.log("Error updating {2} control toggler {0}: {1}",m,t.status,g.keyDescription()),h(t)):e.length<1||(null==(t=e[0]).data&&!0===t.success&&(f=void 0),null!=(t=e[e.length-1].data)&&(f=t),h(),c&&(o.stop(),o.start(y())))}),o):void 0===d?void 0:d.val}function b(){var t=l();return t.defer((g.secureQuery?v:it).json,g.mostRecentURL([m])),!0===v.hasTokenCredentials()&&(t.defer(v.json,g.viewPendingInstructionsURL(),"GET"),f)&&["Completed","Declined"].indexOf(i())<0&&t.defer(v.json,g.viewInstruction(f.id)),t.await(function(t,e,n,r){if(t)ut.log("Error querying control toggler {0} for {2} status: {1}",m,t.status,g.keyDescription()),h(t);else{var a,o,i=void 0;if(e.data&&Array.isArray(e.data.results))for(a=0,o=e.data.results.length;a<o&&void 0===i;a++)e.data.results[a].sourceId===m&&(i=e.data.results[a]);t=r?r.data:void 0,r=n?(t=>{if(Array.isArray(t)&&0!==t.length)return void 0!==(t=t.reduce(function(t,e){return"SetControlParameter"===e.topic&&Array.isArray(e.parameters)&&0<e.parameters.length&&e.parameters[0].name===m&&(void 0===t||t.created<e.created)?e:t},void 0))&&ut.log("Active instruction for {3} found in state {0} (set control {1} to {2})",t.state,m,t.parameters[0].value,g.keyDescription()),t})(n.data):void 0,s=(n=i,(u=t||r||f)&&"Declined"!==u.status?n&&(s=T.parse(n.created),l=T.parse(u.created),s.getTime()>l.getTime())?n.val:Number(u.parameters[0].value):n?n.val:void 0);s===x()&&p===v.hasTokenCredentials()||(ut.log("Control {0} for {1} value is currently {2}",m,g.keyDescription(),void 0!==s?s:"N/A"),(d=i)&&!r&&(d.val=s),f=t||r,p=v.hasTokenCredentials(),h())}var u,s,l;void 0!==c&&(c=setTimeout(b,y()))}),o}return o.start=function(t){return void 0===c&&(c=setTimeout(b,t||20)),o},o.stop=function(){return void 0!==c&&(clearTimeout(c),c=void 0),o},o.controlID=function(t){return arguments.length?(m=t,o):m},o.refreshMs=function(t){return arguments.length?("number"==typeof t&&(n=t),o):n},o.pendingRefreshMs=function(t){return arguments.length?("number"==typeof t&&(r=t),o):r},o.nodeUrlHelper=function(t){return arguments.length?(g=t,o):g},o.callback=function(t){return arguments.length?("function"==typeof t&&(e=t),o):e},Object.defineProperties(o,{pendingInstructionState:{value:i},pendingInstructionValue:{value:u},lastKnownInstructionState:{value:i},lastKnownInstructionValue:{value:u},value:{value:x}}),o},ut.api.datum={},ut.api.datum.aggregateNestedDataLayers=function(t,e,n,r,a){var o,i,u,s,l,c,d,f,p=t.length,m=n.length,g=r.length;if(0<(o=t[0].values.length)){for(f=[],i=0;i<o;i+=1){if(l=t[0].values[i],d={},void 0!==a)for(c in a)a.hasOwnProperty(c)&&(d[c]=a[c]);for(s=0;s<m;s+=1)d[n[s]]=l[n[s]];for(s=0;s<g;s+=1)d[r[s]]=0;for(u=0;u<p;u+=1)for(s=0;s<g;s+=1)void 0!==(c=t[u].values[i][r[s]])&&(d[r[s]]+=c);f.push(d)}t=[{key:e,values:f}]}return t},ut.format={},ut.format.dateTimeFormat=it.time.format.utc("%Y-%m-%d %H:%M"),ut.format.timestampFormat=it.time.format.utc("%Y-%m-%d %H:%M:%S.%LZ"),ut.format.timestampSecsFormat=it.time.format.utc("%Y-%m-%d %H:%M:%SZ"),ut.format.dateTimeFormatLocal=it.time.format("%Y-%m-%d %H:%M"),ut.format.dateTimeFormatURL=it.time.format.utc("%Y-%m-%dT%H:%M"),ut.format.dateFormat=it.time.format.utc("%Y-%m-%d"),ut.format.parseTimestamp=function(t){var e=ut.format.timestampFormat.parse(t);e=e||ut.format.timestampSecsFormat.parse(t);return e},ut.api.datum.datumDate=function(t){if(t){if(t.date)return t.date;if(t.localDate)return ut.format.dateTimeFormat.parse(t.localDate+(t.localTime?" "+t.localTime:" 00:00"));if(t.created)return ut.format.parseTimestamp(t.created)}return null},ut.log=function(){!0===ut.config.debug&&void 0!==console&&console.log(ut.format.fmt.apply(this,arguments))},ut.net={},ut.api.datum.loader=function(i,u,s,l,c){var e,d,f,n=r,p=it.json;function r(t){return"function"==typeof t&&(e=t),function r(t){var e,a,o,n={};t&&(n.offset=t);e=u.dateTimeListURL(s,l,c,i,n);d&&(()=>{var t=g(d);t.length&&(e+="&"+t)})();a=function(t){if(!0===t.success&&void 0!==t.data&&!0===Array.isArray(t.data.results))return t.data.results};o=function(t){return t.data.returnedResultCount+t.data.startingOffset<t.data.totalResults?t.data.returnedResultCount+t.data.startingOffset:0};p(e,function(t,e){var n;t?(ut.log("Error requesting data for {0}: {2}",u.keyDescription(),t),m(t)):void 0===(n=a(e))?(ut.log("No data available for {0}",u.keyDescription()),m(t)):(f=void 0===f?n:f.concat(n),0<(n=o(e))?r(n):m(t))})}(),r}function m(t){e&&e.call(n,t,f)}return Object.defineProperties(n,{version:{value:"1.1.0"}}),n.callback=function(t){return arguments.length?("function"==typeof t&&(e=t),n):e},n.urlParameters=function(t){return arguments.length?("object"==typeof t&&(d=t),n):d},n.jsonClient=function(t){return arguments.length?("function"==typeof t&&(p=t),n):p},n.load=r,n},ut.api.datum.loaderQueryRange=function(t,e,n,r){var a,o,i,u;function s(t,e){var n=t.utc.ceil(e);return n=n.getTime()===e.getTime()?t.offset(n,1):n}function l(t){t=isNaN(Number(e))?void 0!==e[t]?Number(e[t]):1:e;return t="number"!=typeof t?1:t}u=0<=t.search(/Minute$/)?(i=l("numHours"),o="hour",a=s(it.time.minute,n),u=(t=>{var e=10;return 0===t.search(/^Five/)?e=5:0===t.search(/^Fifteen/)&&(e=15),e})(t),a.setUTCMinutes(a.getUTCMinutes()+u-a.getUTCMinutes()%u,0,0),it.time.hour.utc.offset(a,-i)):"Month"===t?(i=l("numYears"),o="year",a=s(it.time.month,n),it.time.year.utc.offset(it.time.month.utc.floor(n),-i)):"Day"===t?(i=l("numMonths"),o="month",a=s(it.time.day,n),it.time.month.utc.offset(it.time.day.utc.floor(n),-i)):(i=l("numDays"),o="day",a=s(it.time.hour,n),it.time.day.utc.offset(it.time.hour.utc.floor(a),-i));r&&u<r&&(u=r);return{start:u,end:a,timeUnit:o,timeCount:i}},ut.api.datum.multiLoader=function(e){var n=t;n.version="1.0.0";var r,a=l();function t(t){return"function"==typeof t&&(r=t),e.forEach(function(t){a.defer(t.load)}),a.awaitAll(function(t,e){r&&r.call(n,t,e)}),n}return n.callback=function(t){return arguments.length?("function"==typeof t&&(r=t),n):r},n.load=t,n},ut.api.datum.nestedStackDataNormalizeByDate=function(t,e,n){var r,a,o,i,u,s=0,l=t.length-1;if(0<l)for(;s<it.max(t.map(function(t){return t.values.length}));){for(o=void 0,r=0;r<=l;r++)if(!(t[r].values.length<=s)&&(t[a=r<l?r+1:0].values.length<=s||t[r].values[s].date.getTime()<t[a].values[s].date.getTime())){if(o={date:t[r].values[s].date,sourceId:t[a].key},e)for(i in e)e.hasOwnProperty(i)&&(o[i]=e[i]);n&&(u=t[a].values.length>s?s:0<s?s-1:null,n(o,t[a].key,null!==u?t[a].values[u]:void 0)),t[a].values.splice(s,0,o)}void 0===o&&s++}},ut.api.datum.sumCounter=function(t){var e,n,r={version:"1.1.0"},a=["Main"],o="wattHours",i=6e4,u=0;function s(r){ut.api.datum.loader(a,t,null,null,"RunningTotal").callback(function(t,e){var n,t=t?0:(n=0,e.forEach(function(t){t=Number(t[o]);isNaN(t)&&(t=0),n+=t}),n);u=t,r()}).load()}function l(){s(function(){e&&e.call(r,u),void 0!==n&&(n=setTimeout(l,i))})}return r.callback=function(t){return arguments.length?("function"==typeof t&&(e=t),r):e},r.sourceIds=function(t){return arguments.length?(Array.isArray(t)?a=t:"string"==typeof t&&(a=t.split(/\s*,\s*/)),r):a},Object.defineProperties(r,{start:{value:function(){if(void 0===n)return n=setTimeout(l,20),r}},stop:{value:function(){if(void 0!==n)return clearTimeout(n),n=void 0,r}}}),r},ut.api.node.availableDataRange=function(t,e,n){var r,a,o,i,u=l(),s=[];void 0===n&&(n=e,e=it.json);for(r=0;r<t.length;r+=1)if((i=t[r].nodeUrlHelper||t[r].locationUrlHelper||t[r].urlHelper)&&i.reportableIntervalURL)for(a=0;a<t[r].sourceIds.length;a++)s.push([i,t[r].sourceIds[a]]),o=i.reportableIntervalURL(t[r].sourceIds[a]),u.defer(e,o);u.awaitAll(function(t,e){t?ut.log("Error requesting available data range: "+t):(void 0!==(t=(t=>{for(var e,n,r=0,r=0;r<t.length;r+=1)void 0===(n=t[r]).data||void 0===n.data.endDate?ut.log("No data available for {0} sources {1}",s[r][0].keyDescription(),s[r][1]):(n=n.data,void 0===e?e=n:(n.endDateMillis>e.endDateMillis&&(e.endDateMillis=n.endDateMillis,e.endDate=n.endDate),n.startDateMillis<e.startDateMillis&&(e.startDateMillis=n.startDateMillis,e.startDate=n.startDate)));return e})(e)).startDateMillis&&(t.sDate=new Date(t.startDateMillis)),void 0!==t.endDateMillis&&(t.eDate=new Date(t.endDateMillis)),"function"==typeof n&&n(t))})},ut.api.node.availableSources=function(t,e,n){void 0===n&&(n=e,e=it.json);var r;t&&t.availableSourcesURL&&n&&(r=t.availableSourcesURL(),e(r,function(t,e){t?n(t):e?!0!==e.success?n(e.message||"Query not successful."):((t=Array.isArray(e.data)?e.data.sort():[]).sort(),n(null,t)):n("No data returned from "+r)}))},ut.api.loc={},ut.api.loc.registerUrlHelperFunction=function(t,e){"function"==typeof e&&(void 0===s&&(s=[]),t=t.replace(/[^0-9a-zA-Z_]/,""),s.push({name:t,func:e}))},ut.api.loc.locationUrlHelper=function(t,e){var n={version:"1.0.0"},i=t,r=ut.util.copy(e,{host:"data.solarnetwork.net",tls:!0,path:"/solarquery",secureQuery:!1});function a(){return"http"+(!0===r.tls?"s":"")+"://"+r.host}function u(){return a()+r.path+"/api/v1/"+(!0===r.secureQuery?"sec":"pub")}return Object.defineProperties(n,{keyDescription:{value:function(){return"node "+nodeId}},locationId:{get:function(){return i},enumerable:!0},locationID:{value:function(t){return arguments.length?(i=t,n):i}},hostURL:{value:a},baseURL:{value:u},reportableIntervalURL:{value:function(t){var e=u()+"/location/datum/interval?locationId="+i;return(t=Array.isArray(t)?t[0]:t)&&(e+="&sourceId="+encodeURIComponent(t)),e}},availableSourcesURL:{value:function(t,e){var n=u()+"/location/datum/sources?locationId="+i;return void 0!==t&&(n+="&start="+encodeURIComponent(ut.format.dateFormat(t))),void 0!==e&&(n+="&end="+encodeURIComponent(ut.format.dateFormat(e))),n}},dateTimeListURL:{value:function(t,e,n,r,a){var o=u()+"/location/datum/list?locationId="+i;return t&&(o+="&startDate="+encodeURIComponent(ut.format.dateTimeFormatURL(t))),e&&(o+="&endDate="+encodeURIComponent(ut.format.dateTimeFormatURL(e))),n&&(o+="&aggregate="+encodeURIComponent(n)),Array.isArray(r)&&(o+="&sourceIds="+r.map(function(t){return encodeURIComponent(t)}).join(",")),void 0!==a&&(0<a.max&&(o+="&max="+encodeURIComponent(a.max)),0<a.offset)&&(o+="&offset="+encodeURIComponent(a.offset)),o}},mostRecentURL:{value:function(t){var e=u()+"/location/datum/mostRecent?locationId="+i;return Array.isArray(t)&&(e+="&sourceIds="+t.map(function(t){return encodeURIComponent(t)}).join(",")),e}}}),Array.isArray(s)&&s.forEach(function(t){!1===n.hasOwnProperty(t.name)&&Object.defineProperty(n,t.name,{value:function(){return t.func.apply(n,arguments)}})}),n},ut.chart={},ut.Configuration=function(t){if(this.map={},void 0!==t){var e,n=this;for(e in t)t.hasOwnProperty(e)&&!n.hasOwnProperty(e)&&Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:(t=>function(){return n.map[t]})(e),set:(e=>function(t){n.map[e]=t})(e)}),n.map[e]=t[e]}},ut.Configuration.prototype={enabled:function(t){return void 0!==t&&void 0!==this.map[t]},toggle:function(t,e){var n=e;return void 0===t?this:(void 0===e&&(n=void 0===this.map[t]),this.value(t,!0===n||null))},value:function(e,t){var n=this;return 1===arguments.length?this.map[e]:(null===t?(delete this.map[e],this.hasOwnProperty(e)&&delete this[e]):(this.map[e]=t,this.hasOwnProperty(e)||Object.defineProperty(this,e,{enumerable:!0,configurable:!0,get:function(){return n.map[e]},set:function(t){n.map[e]=t}})),this)}},ut.ui={},ut.ui.pixelWidth=function(t){if(void 0===t)return;t=it.select(t).style("width");if(!t)return null;t=t.match(/([0-9.]+)px/);if(null===t)return null;t=Math.floor(t[1]);if(isNaN(t))return null;return t},ut.chart.baseTimeChart=function(n,t){var r,a,o,i,u,s,l,c,d,f,p,m,L,F,e,H,g,v={version:"1.0.0"},h=v,j=["FiveMinute","TenMinute","FifteenMinute","Hour","HourOfDay","SeasonalHourOfDay","Day","DayOfWeek","SeasonalDayOfWeek","Month"],y=t||new ut.Configuration,x=void 0,b=void 0,C=void 0,T=void 0,D=void 0,k=void 0,I=void 0,A=void 0,M=(g={},Object.keys(ut.tapEventNames).forEach(function(t){g[ut.tapEventNames[t]]=0}),g),w={time:0},P=1,B=it.format(",d"),U=12,R=5,K=function(){rt(),ot()},z=function(){T&&T.call(h,e,ut.tapCoordinates(this))},G=function(){D&&D.call(h,e,ut.tapCoordinates(this))},O=function(){k&&k.call(h,e,ut.tapCoordinates(this))},N=function(){clickCallback&&clickCallback.call(h,e,ut.tapCoordinates(this))},X=function(){A&&A.call(h,e,ut.tapCoordinates(this))};function q(t,e,n){t=ut.tapEventNames[t];t&&(e.on(t)||e.on(t,n),M[t]+=1)}function _(t,e){t=ut.tapEventNames[t];t&&(--M[t],M[t]<1)&&e.on(t,null)}function W(){var e=it.event,t=(new Date).getTime(),n=t-w.time,r=this;w.time=t,"dblclick"===e.type||ut.hasTouchSupport&&n<500?(w.timer&&(clearTimeout(w.timer),delete w.timer),X.call(r)):ut.hasTouchSupport?(w.timer=setTimeout(function(){var t=it.event;try{it.event=e,N.call(r)}finally{it.event=t}},500),e.preventDefault()):N.call(r)}function S(){var t,e;t=ut.ui.pixelWidth(n),r=y.padding||[10,0,20,30],t=(y.width||t||812)-r[1]-r[3],e=(y.height||300)-r[0]-r[2],i=i||it.time.scale.utc(),a!=t&&(a=t,i.range([0,a])),u=u||it.scale.linear(),o!=e&&(o=e,u.range([o,0])),v.aggregate(y.aggregate),v.plotProperties(y.value("plotProperties")),c=y.value("transitionMs")||600,d=y.value("ruleOpacity")||.1,f=y.value("vertRuleOpacity")||.05}function Y(){var t=it.max(u.domain(),function(t){return Math.abs(t)});P=1,x?P=x.call(h,t):1e9<=t?P=1e9:1e6<=t?P=1e6:1e3<=t&&(P=1e3),t=1===P?",d":",g",B=it.format(t)}function Q(t){return B(t/P)}function V(){Y()}function Z(t){return"translate(0,"+(Math.round(u(t)+.5)-.5)+")"}function J(t){return 0===t?"origin":"m"}function $(t){return 0===t?"origin":null}function tt(t){return 0<=s.indexOf("Minute")&&0===t.getUTCHours()||"Hour"===s&&0===t.getUTCHours()||"Day"===s&&1===t.getUTCDate()||"Month"===s&&0===t.getUTCMonth()}function et(){return i.ticks(U)}function nt(){var n=i.tickFormat(U);return function(t,e){return C?C.call(h,t,e,i,n):n(t,e)}}function rt(){it.event&&it.event.transform&&it.event.transform(i);var t=et(),e=nt(),t=m.selectAll("text").data(t).classed({major:tt});t.transition().duration(c).attr("x",i).text(e),t.enter().append("text").attr("dy","-0.5em").style("opacity",1e-6).attr("x",i).classed({major:tt}).transition().duration(c).style("opacity",1).text(e).each("end",function(){it.select(this).style("opacity",null)}),t.exit().transition().duration(c).style("opacity",1e-6).remove()}function at(){return u.ticks(R)}function ot(){var t=at(),t=p.select("g.rule").selectAll("g").data(t,Object),e=t.transition().duration(c),e=(e.attr("transform",Z).select("text").attr("x",r[3]-10).text(Q).attr("class",$),e.select("line").attr("x2",a+r[3]).attr("x1",r[3]).attr("class",J),t.exit().transition().duration(c).style("opacity",1e-6).remove(),t.enter().append("g").style("opacity",1e-6).attr("transform",Z));e.append("line").attr("x2",a+r[3]).attr("x1",r[3]).attr("class",J),e.append("text").attr("x",r[3]-10).text(Q).attr("class",$),e.transition().duration(c).style("opacity",1).each("end",function(){it.select(this).style("opacity",null)})}function E(){return e||(e=p.append("g").attr("class","hover-root").attr("transform","translate("+r[3]+","+r[0]+")"),H=p.append("rect").attr("width",a).attr("height",o).attr("fill","none").attr("pointer-events","all").attr("class","pointer-capture").attr("transform","translate("+r[3]+","+r[0]+")")),H}return v.scaleDate=function(t){return i(t)},v.scaleValue=function(t){return u(t)},v.xDomain=function(){return i.domain()},v.yDomain=function(){return u.domain()},v.yScale=function(){return x?x():P},v.aggregate=function(t){var e;return arguments.length?(e=j.indexOf(t),s=e<0?"Hour":t,h):s},v.aggregateNormalizedDuration=function(){return"FiveMinute"===s?3e5:"TenMinute"===s?6e5:"FifteenMinute"===s?9e5:"Hour"===s||"HourOfDay"===s||"SeasonalHourOfDay"===s?36e5:"Day"===s||"DayOfWeek"===s||"SeasonalDayOfWeek"===s?864e5:"Month"===s?2592e6:6e4},v.isNormalizedDuration=function(t,e){var n,r=v.aggregateNormalizedDuration();return!(!t||!e||Math.abs(e.getTime()-t.getTime())!==r&&(e.getTime()<t.getTime()&&(n=t,t=e,e=n),"Month"===s?it.time.month.utc.offset(t,1).getTime()!==e.getTime():"SeasonalHourOfDay"===s?(23<(n=t.getUTCHours()+1)&&(n=0),e.getUTCHours()!==n||t.getTime()===e.getTime()):"SeasonalDayOfWeek"!==s||(6<(n=t.getUTCDay()+1)&&(n=0),e.getUTCDay()!==n)||t.getTime()===e.getTime()))},v.addNormalizedDuration=function(t){if(t)return"Month"===s?it.time.month.utc.offset(t,1):new Date(t.getTime()+v.aggregateNormalizedDuration())},v.reset=function(){return e&&O(),h},v.regenerate=function(){return S(),v.setup(),v.draw(),b&&b.call(h,F),h},v.transitionMs=function(t){return arguments.length?(c=+t,h):c},v.plotProperties=function(e){var n;return arguments.length?(n={},j.forEach(function(t){n[t]=void 0!==e&&void 0!==e[t]?e[t]:"watts"}),l=n,h):l},v.displayFactorCallback=function(t){return arguments.length?(x="function"==typeof t?t:void 0,h):x},v.drawAnnotationsCallback=function(t){return arguments.length?(b="function"==typeof t?t:void 0,h):b},v.hoverEnterCallback=function(t){var e;return arguments.length?(e=E(),"function"==typeof t?(T=t,e.on("mouseover",z)):(T=void 0,e.on("mouseover",null)),h):T},v.hoverMoveCallback=function(t){var e;return arguments.length?(e=E(),"function"==typeof t?(E(),D=t,e.on("mousemove",G)):(D=void 0,e.on("mousemove",null)),h):D},v.hoverLeaveCallback=function(t){var e;return arguments.length?(e=E(),"function"==typeof t?(k=t,e.on("mouseout",O)):(k=void 0,e.on("mouseout",null)),h):k},v.doubleClickCallback=function(t){var e;return arguments.length?(e=E(),"function"==typeof t?(A=t,q("dblclick",e,W)):(A=void 0,_("dblclick",e)),h):A},v.rangeSelectionCallback=function(t){var e;return arguments.length?(e=E(),"function"==typeof t?(I=t,q("click",e,W)):(I=void 0,_("click",e)),h):I},v.xAxisTickCallback=function(t){return arguments.length?("function"==typeof t&&(C=t),h):C},v.ruleOpacity=function(t){return arguments.length?(d=t,h):d},v.vertRuleOpacity=function(t){return arguments.length?(f=t,h):f},S(),(p=it.select(n)).node()&&"svg"!==p.node().tagName.toLowerCase()&&(p=(p=p.select("svg")).empty()?it.select(n).append("svg:svg"):p).attr("class","chart").attr("width",a+r[1]+r[3]).attr("height",o+r[0]+r[2]).selectAll("*").remove(),t=p.append("g").attr("class","data-root").attr("transform","translate("+r[3]+","+r[0]+")"),m=p.append("g").attr("class","ticks").attr("transform","translate("+r[3]+","+(o+r[0]+r[2])+")"),p.append("g").attr("class","crisp rule").attr("transform","translate(0,"+r[0]+")"),L=p.append("g").attr("class","rule").attr("transform","translate("+r[3]+","+r[0]+")"),F=p.append("g").attr("class","annot-root").attr("transform","translate("+r[3]+","+r[0]+")"),Object.defineProperties(v,{me:{get:function(){return h},set:function(t){h=t}},x:{get:function(){return i},set:function(t){i=t}},y:{get:function(){return u},set:function(t){u=t}},xAxisTickCount:{get:function(){return U},set:function(t){U=t}},xAxisTicks:{get:function(){return et},set:function(t){et=t}},xAxisTickFormatter:{get:function(){return nt},set:function(t){nt=t}},yAxisTicks:{get:function(){return at},set:function(t){at=t}},yAxisTickCount:{get:function(){return R},set:function(t){R=t}},config:{value:y},internalPropName:{value:"__internal__"},plotPropertyName:{get:function(){return l[s]}},plotReversePropertyName:{get:function(){return l[s]+"Reverse"}},padding:{value:r},width:{value:a,enumerable:!0},height:{value:o,enumerable:!0},svgRoot:{value:p},svgDataRoot:{value:t},svgRuleRoot:{value:L},svgTickGroupX:{value:m},svgHoverRoot:{get:function(){return e}},handleHoverEnter:{get:function(){return z},set:function(t){z=t}},handleHoverMove:{get:function(){return G},set:function(t){G=t}},handleHoverLeave:{get:function(){return O},set:function(t){O=t}},handleClick:{get:function(){return N},set:function(t){N=t}},handleDoubleClick:{get:function(){return X},set:function(t){X=t}},computeUnitsY:{value:Y},drawAxisX:{get:function(){return rt},set:function(t){rt=t}},drawAxisY:{get:function(){return ot},set:function(t){ot=t}},parseConfiguration:{get:function(){return S},set:function(t){S=t}},draw:{get:function(){return K},set:function(t){K=t}},setup:{get:function(){return V},set:function(t){V=t}}}),v},ut.chart.baseGroupedTimeChart=function(t,e){var t=ut.chart.baseTimeChart(t,e),n=t.reset,u=x(t),r=(u.me=u,{}),a={},o=void 0,i=void 0,s=void 0,l=void 0,c=[],d={};return u.reset=function(){return n(),r={},c=[],d={},u.me},u.load=function(t,e){return void 0===r[e]?(c.push(e),r[e]=t):r[e]=r[e].concat(t),u.me},u.data=function(t){return r[t]},u.stash=function(t,e,n){return void 0===d[e]||!0===n?d[e]=t:d[e]=d[e].concat(t),u.me},u.stashedData=function(t){return d[t]},u.scaleFactor=function(t,e){var n;if(!arguments.length)return a;if(1===arguments.length){if("string"==typeof t)return void 0===(n=a[t])?1:n;a=t}else 2==arguments.length&&(a[t]=e);return u.me},u.dataCallback=function(t){return arguments.length?(o="function"==typeof t?t:void 0,u.me):o},u.colorCallback=function(t){return arguments.length?(i="function"==typeof t?t:void 0,u.me):i},u.sourceExcludeCallback=function(t){return arguments.length?(s="function"==typeof t?t:void 0,u.me):s},u.layerPostProcessCallback=function(t){return arguments.length?(l="function"==typeof t?t:void 0,u.me):l},Object.defineProperties(u,{fillColor:{value:function(t,e,n){return void 0===i?"black":i(t,e.sourceId,n)}},insertNormalizedDurationIntoLayerData:{value:function(t){for(var e,n,r,a=u.plotPropertyName,o=u.plotReversePropertyName,i=0;i<t.length;i+=1)for(n=t[i].values,e=0;e<n.length-1;e+=1)!0!==u.isNormalizedDuration(n[e].date,n[e+1].date)&&((r=ut.util.copy(n[e])).date=u.addNormalizedDuration(r.date),r[a]=null,r[o]=null,n.splice(e+1,0,r))}},groupIds:{get:function(){return c}}}),u},ut.color={},ut.color.colors={steelblue:["#356287","#4682b4","#6B9BC3","#89AFCF","#A1BFD9","#B5CDE1","#DAE6F0"],triplets:["#3182bd","#6baed6","#9ecae1","#e6550d","#fd8d3c","#fdae6b","#31a354","#74c476","#a1d99b","#756bb1","#9e9ac8","#bcbddc","#843c39","#ad494a","#d6616b","#8c6d31","#bd9e39","#e7ba52","#7b4173","#a55194","#ce6dbd"],seasonColors:["#5c8726","#e9a712","#762123","#80a3b7"]},ut.format.seasonForDate=function(t){return t.getUTCMonth()<2||11===t.getUTCMonth()?3:t.getUTCMonth()<5?0:t.getUTCMonth()<8?1:2},ut.chart.baseGroupedSeasonalLineChart=function(t,e){var n,i,d=ut.chart.baseGroupedTimeChart(t,e),r=ut.util.superMethod.call(d,"draw"),t=x(d,{version:"1.0.0"}),a=(t.me=t,["Midnight","1am","2am","3am","4am","5am","6am","7am","8am","9am","10am","11am","Noon","1pm","2pm","3pm","4pm","5pm","6pm","7pm","8pm","9pm","10pm","11pm"]),f=(t.x=it.scale.ordinal().rangePoints([0,d.width],.2),t.xAxisTicks=function(){return d.x.domain()},t.xAxisTickFormatter=function(){return function(e,t){return d.xAxisTickCallback()?xAxisTickCallback().call(d.me,e,t,d.x):a[d.x.domain().findIndex(function(t){return t.getTime()===e.getTime()})]}},{Consumption:!0}),o=it.svg.line().interpolate("monotone").x(function(t){return Math.round(d.x(t.date)+.5)-.5}).y(function(t){return Math.round(d.y(t.y)+.5)-.5});function u(t,e){return(d.config.seasonColors||ut.color.colors.seasonColors)[(e+(n?0:2))%4]}function p(t){return new Date(Date.UTC(2001,0,1)+t)}function s(t){return t.getTime()}function l(){return it.time.day.utc}function c(t){for(var e,n,r,a,o,i=null,u=null,s=null,l=t.length,c=0;c<l;c+=1)r=(e=t[c])[d.internalPropName].groupId,d.sourceExcludeCallback()&&d.sourceExcludeCallback().call(d.me,r,e.sourceId)||(void 0!==(n=e[d.plotPropertyName])&&(!0===f[r]?s+=n:u+=n),e.date&&((void 0===a||e.date.getTime()<a.getTime())&&(a=e.date),void 0===o||e.date.getTime()>o.getTime())&&(o=e.date));return null===u&&null===s||(i=u-s),{date:p(t[0].timeKey),y:i,plus:u,minus:s,season:t[0].season,timeKey:t[0].timeKey,groupId:t[0][d.internalPropName].groupId}}function m(t){return Math.round(d.x(t)+.5)-.5}return t.northernHemisphere=function(t){return arguments.length?(t!==n&&(n=!0===t,d.svgDataRoot.selectAll("g.season").transition().duration(d.transitionMs()).style("stroke",u)),d.me):n},t.negativeGroupIds=function(t){if(arguments.length)return f={},t.forEach(function(t){f[t]=!0}),d.me;var e,n=[];for(e in f)f.hasOwnProperty(e)&&n.pus(e);return n},t.timeKeyLabels=function(t){return arguments.length?(Array.isArray(t)&&(a=t),d.me):a},Object.defineProperties(t,{dateForTimeKey:{get:function(){return p},set:function(t){p=t}},timeKeyForDate:{get:function(){return s},set:function(t){s=t}},timeKeyInterval:{get:function(){return l},set:function(t){l=t}}}),t.setup=function(){var t=d.groupIds,r=[null,null],a=[0,0],e=l(),o=it.format("02g");i={},t.forEach(function(e){var t,n=d.data(e);!n||1<!n.length||(n=it.nest().key(function(t){return t.hasOwnProperty(d.internalPropName)||(t[d.internalPropName]={groupId:e},d.dataCallback()?d.dataCallback().call(d.me,e,t):void 0===t.date&&(t.date=ut.format.parseTimestamp(t.created)),t.season=ut.format.seasonForDate(t.date),t.timeKey=s(t.date)),t.season}).key(function(t){return o(t.timeKey)}).sortKeys(it.ascending).rollup(c).entries(n)).length<1||(d.layerPostProcessCallback()&&(n=d.layerPostProcessCallback().call(d.me,e,n)),n=(i[e]=n).reduce(function(t,e){return t.concat(e.values.map(function(t){return t.values}))},[]),(t=it.extent(n,function(t){return t.y}))[0]<a[0]&&(a[0]=t[0]),a[1]<t[1]&&(a[1]=t[1]),t=it.extent(n,function(t){return t.date.getTime()}),(null===r[0]||t[0]<r[0].getTime())&&(r[0]=new Date(t[0])),(null===r[1]||t[1]>r[1].getTime())&&(r[1]=new Date(t[1])))}),d.x.domain(e.range(r[0],e.offset(r[1],1))),d.y.domain(a).nice(),d.computeUnitsY()},t.draw=function(){var n,t,e=d.transitionMs();n=[[],[],[],[]],d.groupIds.forEach(function(t){t=i[t];t&&t.forEach(function(t){var e=Number(t.key);n[e].push(t.values.map(function(t){return t.values}))})}),t={groupedData:n},(t=d.svgDataRoot.selectAll("g.season").data(t.groupedData)).enter().append("g").attr("class","season").style("stroke",u),(t=t.selectAll("path.line").data(Object,function(t){return t[0].groupId})).transition().duration(e).attr("d",o),t.enter().append("path").classed("line",!0).attr("d",o),t.exit().transition().duration(e).style("opacity",1e-6).remove(),r(),t=d.transitionMs(),(e=d.svgRuleRoot.selectAll("line.vert").data(d.x.domain())).transition().duration(t).attr("x1",m).attr("x2",m),e.enter().append("line").style("opacity",1e-6).classed("vert",!0).attr("x1",m).attr("x2",m).attr("y1",0).attr("y2",d.height).transition().duration(t).style("opacity",d.vertRuleOpacity()).each("end",function(){it.select(this).style("opacity",null)}),e.exit().transition().duration(t).style("opacity",1e-6).remove()},t},ut.chart.baseGroupedStackTimeChart=function(t,e){var f=ut.chart.baseGroupedTimeChart(t,e),n=f.reset,r=f.parseConfiguration,a=f.yAxisTicks,p=x(f),m=(p.me=p,"__discard__"),g=void 0,v=!0,h={},y=!1;function o(){r(),g=!0===p.config.value("wiggle")?"wiggle":"zero",v=!0===p.config.value("reverseValueSupport")}return p.reset=function(){return n(),h={},p.me},p.stackOffset=function(t){return arguments.length?(g=t,p.me):g},p.wiggle=function(t){return arguments.length?p.stackOffset(!0===t?"wiggle":"zero"):"wiggle"===g},p.normalizeDataTimeGaps=function(t){return arguments.length?(y=!0===t,p.me):y},p.enumerateDataOverTime=function(t){if("function"==typeof t){var n,e=p.groupIds,a={},r=p.xDomain()[0];if(e&&!(e.length<1))for(;;)if(n={date:r,data:{}},e.forEach(function(e){var t=h[e];void 0===a[e]&&(a[e]={index:0}),!t||t.length<1||t[0].values.length<=a[e].index||(void 0===a[e].date&&(a[e].date=t[0].values[0].date),t[0].values[a[e].index].date.getTime()===r.getTime()&&(t.forEach(function(t){n.data[t.key]=t.values[a[e].index]}),a[e].index+=1,a[e].date=a[e].index<t[0].values.length?t[0].values[a[e].index].date:null))}),t.call(p.me,n.data,r),!(r=a[e.reduce(function(t,e){var n=a[t].date,r=a[e].date;return n&&(!r||n<r)?t:e})].date))break}return p.me},Object.defineProperties(p,{negativeOffsetFromReversePlotProperty:{get:function(){return v},set:function(t){v=t}},groupOpacityFn:{value:function(t,e){return 1-e*(p.config.value("opacityReduction")||.1)}},discardId:{value:m},groupLayers:{get:function(){return h}}}),o(),p.parseConfiguration=o,p.setup=function(){var a,o,i,u,s=p.plotPropertyName,l=p.plotReversePropertyName,d=it.layout.stack().values(function(t){return t.values}).x(function(t){return t.date}).y(function(t){var e=t[s],n=0,r=f.scaleFactor(t[f.internalPropName].groupId);return null==e||"zero"!==g&&e<0?e=0:v&&"zero"===g&&void 0!==t[l]&&(n=t[l]),(e+n)*r});h={},p.groupIds.forEach(function(e){var l,c,t,n,r=p.data(e);!r||1<!r.length||(n=(n=it.nest().key(function(t){return t.hasOwnProperty(p.internalPropName)||(t[p.internalPropName]={groupId:e},p.dataCallback()?p.dataCallback().call(p.me,e,t):void 0===t.date&&(t.date=ut.api.datum.datumDate(t))),p.sourceExcludeCallback()&&p.sourceExcludeCallback().call(p.me,e,t.sourceId)?m:t.sourceId}).sortKeys(it.ascending).entries(r)).filter(function(t){return t.key!==m})).length<1||((t={})[s]=null,t[p.internalPropName]={groupId:e},ut.api.datum.nestedStackDataNormalizeByDate(n,t),!0===y&&f.insertNormalizedDurationIntoLayerData(n),p.layerPostProcessCallback()&&(n=p.layerPostProcessCallback().call(p.me,e,n)),t=[r[0].date,r[r.length-1].date],(void 0===a||t[0].getTime()<a.getTime())&&(a=t[0]),(void 0===o||t[1].getTime()>o.getTime())&&(o=t[1]),d.offset((l=n,c=p.plotReversePropertyName,"zero"!==g?it.layout.stack().offset(g).offset():function(t){for(var e,n,r,a,o=t[0].length,i=t.length,u=[],s=0;s<o;s+=1){for(e=n=0;e<i;e+=1)r=t[e][s][1],a=v?l[e].values[s][c]:0,r<0?(n+=r,t[e][s][1]=-r):a&&(n-=a);u[s]=n}return u})),r=d(n),h[e]=r,t=[it.min(r[0].values,function(t){return t.y0}),it.max(r[r.length-1].values,function(t){return t.y0+t.y})],(void 0===i||t[0]<i)&&(i=t[0]),(void 0===u||u<t[1])&&(u=t[1]))}),void 0!==a&&void 0!==o&&p.x.domain([a,o]),void 0!==i&&void 0!==u&&p.y.domain([i,u]).nice(),p.computeUnitsY()},p.yAxisTicks=function(){return!0===p.wiggle()?[]:a()},p},ut.chart.baseGroupedStackTimeBarChart=function(t,e){var o=ut.chart.baseGroupedStackTimeChart(t,e),t=x(o),i=(t.me=t,it.scale.ordinal()),n=o.svgRoot.insert("g",".annot-root").attr("class","vertrule").attr("transform","translate("+o.padding[3]+","+o.padding[0]+")");function r(t){return t.date}function a(t){return i(t.date)}function u(t){return Math.floor(a(t)-p()/2)+.5}function s(t){return o.y(t.y0+t.y)}function l(t){return o.y(t.y0)-o.y(t.y0+t.y)}function c(t){return i(t)+i.rangeBand()/2}function d(t){var e=o.aggregate();return"Day"===e&&1===t.getUTCDate()||"Hour"===e&&0===t.getUTCHours()||"Month"===e&&0===t.getUTCMonth()}function f(){return o.config.value("tickCountX")||(600<o.width?12:5)}function p(){var t=i.domain();return(1<t.length?i(t[1])-i(t[0]):i.rangeBand())-i.rangeBand()}function m(t){for(var e=0,n=t.length,r=o.x.domain()[0];e<n&&!(t[e].date.getTime()>=r.getTime());)e+=1;return 0===e?t:t.slice(e)}return t.scaleDate=function(t){var e=i.range(),n=i.rangeExtent(),t=o.scaleDate(t);return e[Math.round(t/n[1]*(e.length-1))]+i.rangeBand()/2},Object.defineProperties(t,{svgVertRuleGroup:{value:n},xBar:{value:i},xBarPadding:{value:p},trimToXDomain:{value:m},computeDomainX:{value:function(){var t=o.x,e=o.aggregate(),n=t.domain(),r=1,a=n[1];e=(e=("Month"===e?(a=it.time.month.utc.offset(a,1),it.time.months):"Day"===e?(a=it.time.day.utc.offset(a,1),it.time.days):"FiveMinute"===e?(a=it.time.minute.utc.offset(a,r=5),it.time.minutes):"TenMinute"===e?(a=it.time.minute.utc.offset(a,r=10),it.time.minutes):"FifteenMinute"===e?(a=it.time.minute.utc.offset(a,r=15),it.time.minutes):(a=it.time.hour.utc.offset(a,1),it.time.hours)).utc)(n[0],a,r),i.domain(e).rangeRoundBands(t.range(),.2)}},groupFillFn:{value:function(t,e){return o.fillColor.call(this,t[0][o.internalPropName].groupId,t[0],e)}},keyX:{value:r},valueX:{value:a},valueXMidBar:{value:function(t){return c(t.date)}},valueXVertRule:{value:u},valueY:{value:s},heightY:{value:l},drawAxisXRules:{value:function(t){var e=o.transitionMs(),t=m(t);(t=n.selectAll("line").data(t,r)).transition().duration(e).attr("x1",u).attr("x2",u),t.enter().append("line").style("opacity",1e-6).attr("x1",u).attr("x2",u).attr("y1",0).attr("y2",o.height+10).transition().duration(e).style("opacity",o.config.vertRuleOpacity||.05).each("end",function(){it.select(this).style("opacity",null)}),t.exit().transition().duration(e).style("opacity",1e-6).remove()}},drawBarsForSources:{value:function(t){var e=o.y(0),n=o.transitionMs();(t=t.selectAll("rect").data(Object,r)).transition().duration(n).attr("x",a).attr("y",s).attr("height",l).attr("width",i.rangeBand()),t.enter().append("rect").attr("x",a).attr("y",e).attr("height",1e-6).attr("width",i.rangeBand()).transition().duration(n).attr("y",s).attr("height",l),t.exit().transition().duration(n).style("opacity",1e-6).remove()}},drawHoverHighlightBars:{value:function(t){(t=o.svgHoverRoot.selectAll("rect.highlightbar").data(t)).attr("x",a).attr("width",i.rangeBand()),t.enter().append("rect").attr("x",a).attr("y",0).attr("height",o.height).attr("width",i.rangeBand()).classed("highlightbar clickable",!0),t.exit().remove()}},drawSelection:{value:function(t){var e=t&&0<t.length?t.slice(0,1):[],n=t&&0<t.length?a(t[0]):0,t=(t&&0<t.length?a(t[t.length-1]):0)-n+i.rangeBand();(e=o.svgHoverRoot.selectAll("rect.selectionbar").data(e)).attr("x",n).attr("width",t),e.enter().append("rect").attr("x",n).attr("y",0).attr("height",o.height).attr("width",t).classed("selectionbar clickable",!0),e.exit().remove()}}}),o.drawAxisX=function(){function t(t,e){return r?r.call(o.me,t,e,o.x,n):n(t,e)}var n,r,e=(e=i.domain()).length<7?e:o.x.ticks(f()),a=o.transitionMs(),e=(n=o.x.tickFormat(f()),r=o.xAxisTickCallback(),e.filter(function(t){return void 0!==i(t)}));(e=o.svgTickGroupX.selectAll("text").data(e,Object).classed({major:d})).transition().duration(a).attr("x",c).text(t),e.enter().append("text").attr("dy","-0.5em").style("opacity",1e-6).attr("x",c).classed({major:d}).transition().duration(a).style("opacity",1).text(t).each("end",function(){it.select(this).style("opacity",null)}),e.exit().transition().duration(a).style("opacity",1e-6).remove()},t},ut.chart.basicLineChart=function(t,e){var o,i,u=ut.chart.baseTimeChart(t,e),n=ut.util.superMethod.call(u,"draw"),s=x(u),l=(s.me=s,{}),c=[],d={},f=[],r=it.svg.line().interpolate("monotone").x(function(t){return Math.round(u.x(t.date)+.5)-.5}).y(function(t){var e=this.getAttribute("class"),t=t[d[e]||u.plotPropertyName];return Math.round(u.y(void 0===t?null:t)+.5)-.5}),p=it.scale.ordinal().range(h.Set3[12]);function a(t,e){return c[e]}function m(t,e){return p(e)}function g(t,e){return!!o&&o.call(this,c[e])?1e-6:1}function v(t){t.style("opacity",g).attr("stroke",m).attr("d",r)}return s.load=function(t,e,n){return void 0===l[e]?(c.push(e),l[e]=t):l[e]=l[e].concat(t),n?d[e]=n:d[e]&&delete d[e],s.me},s.sourceExcludeCallback=function(t){return arguments.length?(o="function"==typeof t?t:void 0,s.me):o},s.colors=function(t){return arguments.length?(i=t,p.range(t),s.me):p.range()},s.colorScale=function(){return p},s.data=function(t){return l[t]},s.reset=function(){return u.reset(),l={},c.length=0,d={},f.length=0,s.me},s.enumerateDataOverTime=function(n){var e,r,a;return"function"!=typeof n||!c||c.length<1||(e=[],r=ut.api.datum.datumDate,a={date:null,data:{}},c.forEach(function(t){e.push(l[t])}),(e=it.merge(e).sort(function(t,e){var n=r(t),t=(t.date||(t.date=n),r(e));return e.date||(e.date=rD),n<t?-1:t<n?1:0})).forEach(function(t){var e=r(t);a.date&&a.date<e?(n.call(s.me,a.data,a.date),a.date=e,a.data={}):a.date||(a.date=e),a.data[t.sourceId]=t})),s.me},u.setup=function(){var n=u.plotPropertyName,r=[null,null],a=[null,null];f=[],c.forEach(function(e){var t=s.data(e);t&&t.forEach(function(t){void 0===t.date&&(t.date=ut.api.datum.datumDate(t)),o&&o.call(this,e)||((null===r[0]||t.date<r[0])&&(r[0]=t.date),(null===r[1]||t.date>r[1])&&(r[1]=t.date),void 0!==(t=t[d[e]||n])&&((null===a[0]||t<a[0])&&(a[0]=t),null===a[1]||a[1]<t)&&(a[1]=t))}),f.push(t)}),p.domain(c.length),i&&0<i.length||p.range(h.Set3[c.length<3?3:11<c.length?12:c.length]),u.x.domain(r),u.y.domain(a).nice(),u.computeUnitsY()},u.draw=function(){var t=u.transitionMs(),e=u.svgDataRoot.selectAll("path").data(f,function(t,e){return c[e]});e.attr("class",a).transition().duration(t).call(v),e.enter().append("path").attr("class",a).call(v),e.exit().transition().duration(t).style("opacity",1e-6).remove(),n()},s},ut.chart.energyBarOverlapChart=function(t,e){var a=ut.chart.baseGroupedStackTimeBarChart(t,e),e=(t=ut.util.copy(a),Object.defineProperty(t,"version",{value:"1.0.0",enumerable:!0,configurable:!0}),t),n=a.me=e,o=a.svgDataRoot.append("g").attr("class","data");function i(t,e){return a.groupOpacityFn(null,e)}return Object.defineProperty(e,"me",{enumerable:!1,get:function(){return n},set:function(t){n=t,a.me=t}}),a.draw=function(){var t,e=[],n=a.groupIds,r=a.transitionMs();a.computeDomainX(),n.forEach(function(t){t=a.groupLayers[t];e.push(void 0===t?[]:t.map(function(t){return t.values}))}),(t=o.selectAll("g.dataType").data(e,function(t,e){return n[e]})).enter().append("g").attr("class","dataType").style("opacity",i),(t=t.selectAll("g.source").data(Object,function(t){return t[0].sourceId}).style("fill",a.groupFillFn)).enter().append("g").attr("class","source").style("fill",a.groupFillFn),t.exit().transition().duration(r).style("opacity",1e-6).remove(),a.drawBarsForSources(t),a.drawAxisY(),a.drawAxisX()},e},ut.chart.energyIOBarChart=function(t,e){e&&e.padding||e.value("padding",[20,0,30,30]);var k=ut.chart.baseGroupedStackTimeBarChart(t,e),e=(t=ut.util.copy(k),Object.defineProperty(t,"version",{value:"1.0.0",enumerable:!0,configurable:!0}),t),n=(k.me=e,void 0),I={Consumption:!0},A=k.svgDataRoot.append("g").attr("class","agg-band").attr("transform","translate(0,"+(k.height+k.padding[2]-25)+".5)"),M=k.svgDataRoot.append("g").attr("class","agg-band-ticks").attr("transform","translate(0,"+(k.height+k.padding[2]-21)+")"),w=k.svgDataRoot.append("g").attr("class","data"),P=k.svgDataRoot.append("g").attr("class","agg-sum"),U=k.svgDataRoot.append("g").attr("class","agg-gen").attr("transform","translate(0,"+(10-k.padding[0])+")"),R=void 0,r=void 0,a=[],d=it.bisector(function(t){return t.date}).left;function O(t){var e=k.config.seasonColors||["#5c8726","#e9a712","#762123","#80a3b7"],t=t.date.getUTCMonth();return t<2||11==t?n?e[3]:e[1]:t<5?n?e[0]:e[2]:t<8?n?e[1]:e[3]:n?e[2]:e[0]}function N(t){return"Month"===k.aggregate()?O(t):null}function S(){var t=1===k.yScale()?",d":",.1f";return it.format(t)}function E(t){for(var e,n,r,a=null,o=null,i=null,u=t.length,s=0;s<u;s+=1)void 0!==(e=(n=t[s])[k.plotPropertyName])&&(n=n[k.internalPropName].groupId,r=k.scaleFactor(n),!0===I[n]?i+=e*r:o+=e*r);return{date:t[0].date,y:a=null===o&&null===i?a:o-i,plus:o,minus:i}}function o(t){var e,i,u,s,l,c;if(R)return e=k.xBar.range(),e=it.bisectLeft(e,t[0]),i=e<1?0:e-1,u=k.xBar.domain()[i],s=[],c={data:l=[],yRange:[k.y(0),k.y(0)],allData:s,groups:{}},R.groupedData.forEach(function(t,e){var n,r,a={groupId:k.groupIds[e],data:[],negate:!0===I[k.groupIds[e]]},o=k.scaleFactor(a.groupId),i=0;0<t.length&&0<t[0].length&&((r=d(t[0],u))>=t[0].length&&--r,a.index=r,t.forEach(function(t){t[r].date.getTime()===u.getTime()?(n=t[r][k.plotPropertyName]*o,void 0===c.dateUTC&&t[r].created&&(c.dateUTC=t[r].created,c.utcDate=ut.format.parseTimestamp(c.dateUTC))):n=null,i+=n,a.data.push(n),s.push(n)}),a.total=i,a.y=k.y(i),a.y<c.yRange[0]&&(c.yRange[0]=a.y),a.y>c.yRange[1])&&(c.yRange[1]=a.y),l.push(a),c.groups[a.groupId]=a}),c.date=u,c.x=k.valueXMidBar({date:u}),c.index=i,void 0===c.utcDate&&R.groupedData.some(function(t){return t.some(function(t){var e,n=0<t.length?t[0]:void 0,r=-1,t=it.time.month,a=1,o=k.aggregate();return!!(n&&n.date&&n.created&&(k.xBar.domain().some(function(t,e){return t.getTime()===n.date.getTime()&&(r=e,!0)}),0<=r))&&(e=ut.format.timestampFormat.parse(n.created),"Day"===o?t=it.time.day:"Hour"===o?t=it.time.hour:"FiveMinute"===o?(t=it.time.minute,a=5):"TenMinute"===o?(t=it.time.minute,a=10):"FifteenMinute"===o&&(t=it.time.minute,a=15),c.utcDate=t.offset(e,a*(i-r)),!0)})}),c}return e.showSumLine=function(t){var e;return arguments.length?(e=k.transitionMs(),P.style("opacity",t?1e-6:1).classed("off",!1).transition().duration(e).style("opacity",t?1:1e-6).each("end",function(){it.select(this).style("opacity",null).classed("off",!t)}),k.me):!P.classed("off")},e.northernHemisphere=function(t){var e;return arguments.length?(t!==n&&(e=k.transitionMs(),n=!0===t,A.selectAll("line").transition().duration(e).style("stroke",O),U.selectAll("text").transition().duration(e).style("fill",N)),k.me):n},e.negativeGroupIds=function(t){if(arguments.length)return I={},t.forEach(function(t){I[t]=!0}),k.me;var e,n=[];for(e in I)I.hasOwnProperty(e)&&n.pus(e);return n},k.draw=function(){var n,e,t,r,a,o,i,u,s,l,c,d,f,p,m,g=k.groupIds,v=k.transitionMs(),h=k.y.domain();function y(t,e){return!0===I[g[e]]?"scale(1, -1) translate(0,"+-2*n+")":null}function x(t){return null!==t.y}function b(t){t.attr("x1",function(t){t=t.date;return t.getTime()<s[0].getTime()&&(t=s[0]),l(t)-d}).attr("x2",function(t,e){return e+1<u.length?l(u[e+1].date)-d:0<u.length?l(s[1])+c+d:l(t.date)+d}).style("stroke",O)}function C(t){return k.valueXMidBar(t)}function T(t){return f((t.plus-t.minus)/k.yScale())}function D(t){return m(t.plus/k.yScale())}k.computeDomainX(),e=[],t=k.groupIds,a=r=0,o=k.aggregate(),t.forEach(function(n){var t=k.groupLayers[n];e.push(void 0===t?[]:t.map(function(t){var e=it.max(t.values,function(t){return t.y+t.y0});return!0===I[n]?a<e&&(a=e):r<e&&(r=e),t.values}))}),t=it.merge(it.merge(e)).concat(k.xBar.domain().map(function(t){return{date:t}})),p=it.nest().key(function(t){return t.date.getTime()}).sortKeys(it.ascending).rollup(E).entries(t).map(function(t){return t.values}),i=it.nest().key(function(t){t="Day"===o?it.time.month.utc.floor(t.date):"Month"===o?it.time.month.utc.offset(t.date,-(t.date.getUTCMonth()+1)%3):it.time.day.utc.floor(t.date);return t.getTime()}).sortKeys(it.ascending).rollup(E).entries(t).map(function(t){return t.values.date=new Date(Number(t.key)),t.values}),R=t={allData:t,groupedData:e,sumLineData:p,timeAggregateData:i,maxPositiveY:r,maxNegativeY:a},h[0]=-t.maxNegativeY,h[1]=t.maxPositiveY,k.y.domain(h).nice(),n=k.y(0),(p=w.selectAll("g.dataType").data(t.groupedData,function(t,e){return g[e]})).transition().duration(v).attr("transform",y),p.enter().append("g").attr("class","dataType").attr("transform",y),(i=p.selectAll("g.source").data(Object,function(t){return t[0].sourceId}).style("fill",k.groupFillFn)).enter().append("g").attr("class","source").style("fill",k.groupFillFn),i.exit().transition().duration(v).style("opacity",1e-6).remove(),k.drawBarsForSources(i),h=t.sumLineData,p=k.transitionMs(),v=it.svg.line().x(k.valueXMidBar).y(function(t){return k.y(t.y)-.5}).interpolate("monotone").defined(x),(h=P.selectAll("path").data([h])).transition().duration(p).attr("d",v),h.enter().append("path").attr("d",it.svg.line().x(k.valueXMidBar).y(function(){return k.y(0)-.5}).interpolate("monotone").defined(x)).transition().duration(p).attr("d",v),h.exit().transition().duration(p).style("opacity",1e-6).remove(),i=t.timeAggregateData,v=k.transitionMs(),s=k.x.domain(),l=k.xBar,h=i.length,u="Month"===k.aggregate()&&0<h?i:[],c=l.rangeBand(),d=k.xBarPadding()/2,(h=A.selectAll("line").data(u,k.keyX)).transition().duration(v).call(b),h.enter().append("line").style("opacity",1e-6).call(b).transition().duration(v).style("opacity",1).each("end",function(){it.select(this).style("opacity",null)}),h.exit().transition().duration(v).style("opacity",1e-6).remove(),f=S(),(i=M.selectAll("text").data(k.trimToXDomain(u),k.keyX)).transition().duration(v).attr("x",C).text(T),i.enter().append("text").style("opacity",1e-6).attr("x",C).transition().duration(v).style("opacity",1).text(T).each("end",function(){it.select(this).style("opacity",null)}),i.exit().transition().duration(v).style("opacity",1e-6).remove(),p=t.timeAggregateData,h=k.transitionMs(),m=S(),p=k.trimToXDomain(p),(p=U.selectAll("text").data(p,k.keyX)).transition().duration(h).attr("x",k.valueXMidBar).text(D).style("fill",N),p.enter().append("text").attr("x",k.valueXMidBar).style("opacity",1e-6).style("fill",N).transition().duration(h).text(D).style("opacity",1).each("end",function(){it.select(this).style("opacity",null)}),p.exit().transition().duration(h).style("opacity",1e-6).remove(),k.drawAxisY(),k.drawAxisX(),k.drawAxisXRules(t.timeAggregateData)},k.handleHoverEnter=function(){var t,e,n=k.hoverEnterCallback();n&&((e=o(t=ut.tapCoordinates(this)))?(k.drawHoverHighlightBars(e&&e.dateUTC?[e]:[]),r=e,n.call(k.me,this,t,e)):r=void 0)},k.handleHoverMove=function(){var t,e,n=k.hoverMoveCallback();n&&((e=o(t=ut.tapCoordinates(this)))?(k.drawHoverHighlightBars(e&&e.dateUTC?[e]:[]),r=e,0<a.length&&(e.date>a[0].date?k.drawSelection(a.concat(e)):k.drawSelection([e,a[0]])),n.call(k.me,this,t,e)):r=void 0)},k.handleHoverLeave=function(){var t,e=k.hoverLeaveCallback();e&&(t=[],this&&(t.push(this),t.push(ut.tapCoordinates(this))),k.drawHoverHighlightBars([]),r=void 0,e.apply(k.me,t))},k.handleClick=function(){var t,e,n=k.rangeSelectionCallback();n&&(t=ut.tapCoordinates(this),e=(e=r)||o(t))&&((ut.hasTouchSupport||it.event.shiftKey)&&0<a.length?e.date>a[0].date?a.push(e):a.splice(0,0,e):0<a.length?a.length=0:a.push(e),1<(e=a).length&&(e=a.slice(0,a.length),a.length=0),k.drawSelection(a),it.event.preventDefault(),n.call(k.me,this,t,e))},k.handleDoubleClick=function(){var t,e,n=k.doubleClickCallback();n&&(t=ut.tapCoordinates(this),e=(e=r)||o(t),0<a.length&&(a.length=0,k.drawSelection(a)),it.event.preventDefault(),n.call(k.me,this,t,e))},e},ut.math={deg2rad:function(t){return t*Math.PI/180},rad2deg:function(t){return 180*t/Math.PI}},ut.chart.energyIOPieChart=function(t,L){function F(){var t,e,n;y&&(t=it.select(this),e=it.mouse(this),n=P(t),t.transition().duration(d).attr("transform",q),y.call(o,this,e,n))}function H(){var t,e;x&&(e=it.select(this),t=it.mouse(this),e=P(e),x.call(o,this,t,e))}function j(){var t,e,n;b&&(t=it.select(this),e=it.mouse(this),n=P(t),t.transition().duration(d).attr("transform","identity").each("end",function(){it.select(this).style("transform",null)}),b.call(o,this,e,n))}function B(){var t,e;C&&(e=it.select(this),t=it.mouse(this),e=P(e),C.call(o,this,t,e))}var r,K,a={version:"1.0.0"},o=a,i=L||new ut.Configuration,L=ut.ui.pixelWidth(t),u=i.padding||[24,24,24,24],s=(i.width||L||300)-u[1]-u[3],l=(i.height||300)-u[0]-u[2],c=it.min([s,l])/2,d=void 0,f="wattHours",z=void 0,G=void 0,p={},n=void 0,m=void 0,g=void 0,v=void 0,h=function(t,e){return t.key.localeCompare(e.key)},y=void 0,x=void 0,b=void 0,C=void 0,X=it.format(".0%"),T={},D=[],k=[],I=void 0,A=0,M=0,w=it.svg.arc();function q(t){return"scale(1.05) "+E(t,4)}function e(){K=K||r.append("g").attr("class","hover-root").attr("transform","translate("+u[3]+","+u[0]+")")}function P(t){var t=t.data()[0],e=S(t),n=J(t);return{groupId:t.data.groupId,sourceId:t.data.sourceId,allData:I.map(function(t){return t.data}),value:t.value,valueDisplay:tt(t),percent:t.value/A,percentDisplay:et(t),totalValue:A,totalValueDisplay:R(A/U),angle:e,angleStart:t.startAngle,angleEnd:t.endAngle,degrees:ut.math.rad2deg(e),radius:c,innerRadius:M,center:[(s+u[1]+u[3])/2,(l+u[0]+u[2])/2],centerContainer:r.node(),labelTranslate:[Math.cos(n)*(c+15),Math.sin(n)*(c+15)]}}function _(){d=i.value("transitionMs")||600,M=i.value("innerRadius")||0,w.innerRadius(M).outerRadius(c)}_(),(r=it.select(t)).node()&&"svg"!==r.node().tagName.toLowerCase()&&((r=r.select("svg")).empty()?r=it.select(t).append("svg:svg").attr("class","chart").attr("width",s+u[1]+u[3]).attr("height",l+u[0]+u[2]):r.selectAll("*").remove());var z=r.append("g").attr("class","data").attr("transform","translate("+(s+u[1]+u[3])/2+","+(l+u[0]+u[2])/2+")"),G=r.append("g").attr("class","label").attr("transform","translate("+(s+u[1]+u[3])/2+","+(l+u[0]+u[2])/2+")"),U=1,R=it.format(",d");function W(t){return t.value}function Y(){var e=[],t=(k.forEach(function(n){var t=it.nest().key(function(t,e){return v?v.call(a,n,t,e):(n+"-"+t.sourceId).replace(/\W/,"-")}).rollup(function(t){var e={sum:0,groupId:n};return t.length&&(e.sourceId=t[0].sourceId,e.sum=it.sum(t,function(t){var e=t[f];return e=e&&e<0||m&&m.call(a,n,t.sourceId)?0:e})*a.scaleFactor(n)),e}).entries(T[n]);m&&(t=t.filter(function(t){return!m.call(a,n,t.key)})),e=e.concat(t.map(function(t){return t.values.key=t.key,t.values}))}),it.layout.pie().sort(h).value(function(t){return t.sum}));I=t(D=e),t=it.max(I,W),U=1,g?U=g.call(a,t):1e9<=t?U=1e9:1e6<=t?U=1e6:1e3<=t&&(U=1e3),t=1e6<=U?",.2f":1e3===U?",.1f":1===U?",d":",g",R=it.format(t),A=it.sum(I,W)}function Q(t,e){return n?n.call(a,t.data.groupId,t.data.sourceId,e):(t=it.scale.category10().range())[e%t.length]}function O(){it.select(this).style("opacity",null)}function V(t){var e=it.interpolate(this._data_start.startAngle,t.startAngle),n=it.interpolate(this._data_start.endAngle,t.endAngle);return this._data_start=t,function(t){t={startAngle:e(t),endAngle:n(t)};return w(t)}}function N(t){return t.data.key}function Z(){var e,n,r,t=z.selectAll("path").data(I,N);t.transition().duration(d).attr("d",w).style("fill",Q).attrTween("d",V),t.enter().append("path").attr("class",function(t){return"area "+t.data.key}).style("fill",Q).style("opacity",1e-6).attr("d",w).attr("pointer-events","all").on("mouseover",F).on("mousemove",H).on("mouseout",j).on(ut.tapEventNames.click,B).each(function(t){this._data_start=t}).transition().duration(d).style("opacity",1).each("end",O),t.exit().transition().duration(d).style("opacity",1e-6).remove(),e=(()=>{var t=Number(i.value("valueLabelMinimumPercent"));return(isNaN(t)?5:t)/100*A})(),t=i.enabled("hideValues")?[]:I.filter(function(t){return t.value>e}),(t=G.selectAll("text.outer").data(t,N)).transition().duration(d).text(tt).attr("text-anchor",nt).attr("dy",rt).attr("transform",function(t){return E(t,c+15)}).attrTween("transform",function(t){return $.call(this,t,c+15)}),t.enter().append("text").classed("outer",!0).attr("transform",function(t){return E(t,c+15)}).attr("text-anchor",nt).attr("dy",rt).style("opacity",1e-6).text(tt).each(function(t){this._data_start=t}).transition().duration(d).style("opacity",1).each("end",O),t.exit().transition().duration(d).style("opacity",1e-6).remove(),n=(()=>{var t=Number(i.value("percentageLabelMinimumPercent"));return(isNaN(t)?5:t)/100*A})(),t=i.enabled("hidePercentages")?[]:I.filter(function(t){return t.value>n}),t=G.selectAll("text.inner").data(t,N),r=(c-M)/2+M,t.transition().duration(d).text(et).attr("transform",function(t){return E(t,r)}).attrTween("transform",function(t){return $.call(this,t,r)}),t.enter().append("text").classed("inner",!0).attr("transform",function(t){return E(t,r)}).attr("text-anchor","middle").style("opacity",1e-6).text(et).each(function(t){this._data_start=t}).transition().duration(d).style("opacity",1).each("end",O),t.exit().transition().duration(d).style("opacity",1e-6).remove()}function S(t){return t.startAngle+(t.endAngle-t.startAngle)/2}function J(t){return S(t)-Math.PI/2}function $(t,e){var n=it.interpolate(S(this._data_start),S(t));return this._data_start=t,function(t){t=n(t)-Math.PI/2;return"translate("+Math.cos(t)*e+","+Math.sin(t)*e+")"}}function E(t,e){t=J(t);return"translate("+Math.cos(t)*e+","+Math.sin(t)*e+")"}function tt(t){return R(t.value/U)}function et(t){return X(t.value/A)}function nt(t){t=S(t);return t<2*Math.PI*(1/8)||t>2*Math.PI*(7/8)?"middle":t<2*Math.PI*(3/8)?"start":t<2*Math.PI*(5/8)?"middle":"end"}function rt(t){t=S(t);return t>=2*Math.PI*(3/8)&&t<2*Math.PI*(5/8)?"0.5em":0}return a.sources=[],a.scale=function(){return g?g():U},a.totalValue=function(){return A},a.reset=function(){return T={},k=[],D=[],I=void 0,o},a.load=function(t,e){return void 0===T[e]?(k.push(e),T[e]=t):T[e].concat(t),o},a.regenerate=function(){return void 0===T?a:(_(),Y(),Z(),o)},a.transitionMs=function(t){return arguments.length?(d=+t,o):d},a.plotProperty=function(t){return arguments.length?(f=t,o):f},a.scaleFactor=function(t,e){var n;if(!arguments.length)return p;if(1===arguments.length){if("string"==typeof t)return void 0===(n=p[t])?1:n;p=t}else 2==arguments.length&&(p[t]=e);return o},a.colorCallback=function(t){return arguments.length?(n="function"==typeof t?t:void 0,o):n},a.displayFactorCallback=function(t){return arguments.length?(g="function"==typeof t?t:void 0,o):g},a.sourceExcludeCallback=function(t){return arguments.length?(m="function"==typeof t?t:void 0,o):m},a.layerKeyCallback=function(t){return arguments.length?("function"==typeof t&&(v=t),o):v},a.layerKeySort=function(t){return arguments.length?("function"==typeof t&&(h=t),o):h},a.hoverEnterCallback=function(t){return arguments.length?(e(),y="function"==typeof t?t:void 0,o):y},a.hoverMoveCallback=function(t){return arguments.length?(e(),x="function"==typeof t?(e(),t):void 0,o):x},a.hoverLeaveCallback=function(t){return arguments.length?(e(),b="function"==typeof t?t:void 0,o):b},a.clickCallback=function(t){return arguments.length?(C="function"==typeof t?t:void 0,o):C},a.exportChartData=function(e){return"function"==typeof e&&Array.isArray(D)&&D.forEach(function(t){e.call(o,t)}),o},a.enumerateDataOverTime=function(n){var e,r,a;return"function"!=typeof n||!k||k.length<1||(e=[],r=ut.api.datum.datumDate,a={date:null,data:{}},k.forEach(function(t){e.push(T[t])}),(e=it.merge(e).sort(function(t,e){var n=r(t),t=(t.date||(t.date=n),r(e));return e.date||(e.date=rD),n<t?-1:t<n?1:0})).forEach(function(t){var e=r(t);a.date&&a.date<e?(n.call(o,a.data,a.date),a.date=e,a.data={}):a.date||(a.date=e),a.data[t.sourceId]=t})),o},a},ut.chart.gauge=function(a,t){var e={version:"1.0.0"},o={size:200,clipWidth:200,clipHeight:110,ringInset:20,ringWidth:20,pointerWidth:10,pointerTailLength:5,pointerHeadLengthPercent:.9,minValue:0,maxValue:10,minAngle:-90,maxAngle:90,transitionMs:750,majorTicks:5,labelFormat:it.format(",g"),labelInset:10,arcColorFn:it.interpolateHsl(it.rgb("#e8e2ca"),it.rgb("#3e6c0a"))},n=void 0,i=void 0,u=void 0,s=void 0,l=void 0,r=void 0,c=void 0,d=void 0,f=void 0;function p(t){t=r(t);return o.minAngle+t*n}function m(t){var e=void 0;for(e in t)o[e]=t[e];n=o.maxAngle-o.minAngle,i=o.size/2,u=Math.round(i*o.pointerHeadLengthPercent),r=it.scale.linear().range([0,1]).domain([o.minValue,o.maxValue]),c=r.ticks(o.majorTicks),d=it.range(o.majorTicks).map(function(){return 1/o.majorTicks}),l=it.svg.arc().innerRadius(i-o.ringWidth-o.ringInset).outerRadius(i-o.ringInset).startAngle(function(t,e){return ut.math.deg2rad(o.minAngle+t*e*n)}).endAngle(function(t,e){return ut.math.deg2rad(o.minAngle+t*(e+1)*n)})}function g(t,e){void 0!==e&&m(e);e=p(t);f.transition().duration(o.transitionMs).ease("elastic").attr("transform","rotate("+e+")")}return e.configure=m,e.isRendered=function(){return void 0!==s},e.render=function(t){s=it.select(a).append("svg:svg").attr("class","gauge").attr("width",o.clipWidth).attr("height",o.clipHeight);var e="translate("+i+","+i+")",n=(s.append("g").attr("class","arc").attr("transform",e).selectAll("path").data(d).enter().append("path").attr("fill",function(t,e){return o.arcColorFn(t*e)}).attr("d",l),s.append("g").attr("class","label").attr("transform",e).selectAll("text").data(c).enter().append("text").attr("transform",function(t){return"rotate("+p(t)+") translate(0,"+(o.labelInset-i)+")"}).text(o.labelFormat),[[o.pointerWidth/2,0],[0,-u],[-o.pointerWidth/2,0],[0,o.pointerTailLength],[o.pointerWidth/2,0]]),r=it.svg.line().interpolate("monotone"),n=s.append("g").data([n]).attr("class","pointer").attr("transform",e);f=n.append("path").attr("d",r).attr("transform","rotate("+o.minAngle+")"),g(void 0===t?0:t)},e.update=g,m(t),e},ut.chart.powerAreaChart=function(t,e){var i=ut.chart.baseGroupedStackTimeChart(t,e),n=ut.util.superMethod.call(i,"draw"),u=ut.util.copy(i),r=(i.me=u,it.svg.area().interpolate("monotone").x(function(t){return i.x(t.date)}).y0(function(t){return i.y(t.y0)}).y1(function(t){return i.y(t.y0+t.y)}));function a(t,e){return i.fillColor.call(this,t[0][i.internalPropName].groupId,t[0],e)}return i.setup=function(){var n,r,t,o=[],a=i.plotPropertyName,e=it.layout.stack().offset(u.stackOffset()).values(function(t){return t.values}).x(function(t){return t.date}).y(function(t){var e=t[a];return(e=void 0===e||e<0||null===e?0:e)*i.scaleFactor(t[i.internalPropName].groupId)});i.groupIds.forEach(function(t){var e,n,r,a=u.data(t);if(a&&!(1<!a.length))for(e=0,n=a.length;e<n;e+=1)(r=a[e]).hasOwnProperty(i.internalPropName)||(r[i.internalPropName]={},r[i.internalPropName].groupId=t,u.dataCallback()?u.dataCallback().call(i.me,t,r):void 0===r.date&&(r.date=ut.api.datum.datumDate(r))),u.sourceExcludeCallback()&&u.sourceExcludeCallback().call(i.me,t,r.sourceId)||o.push(r)}),(n=it.nest().key(function(t){return t[i.internalPropName].groupId+"|"+t.sourceId}).sortKeys(it.ascending).entries(o)).length<1||((t={})[a]=null,ut.api.datum.nestedStackDataNormalizeByDate(n,t,function(t,e){var n=e.indexOf("|");t[i.internalPropName]={groupId:e.slice(0,n)},t.sourceId=e.slice(n+1)}),i.insertNormalizedDurationIntoLayerData(n),i.me.layerPostProcessCallback()&&(r=[],i.groupIds.forEach(function(e){var t=n.filter(function(t){return 0===t.key.indexOf(e+"|")});0<t.length&&(r=r.concat(i.me.layerPostProcessCallback().call(i.me,e,t)))}),n=r),t=0<o.length?[o[0].date,o[o.length-1].date]:void 0,e=e(n),i.groupLayers.All=e,e=[0,it.max(e[e.length-1].values,function(t){return t.y0+t.y})],void 0!==t&&i.x.domain(t),i.y.domain(e).nice(),i.computeUnitsY())},i.draw=function(){var t=i.transitionMs(),e=(e=i.groupLayers.All)?e.map(function(t){return t.values}):[];(e=i.svgDataRoot.selectAll("path.area").data(e,function(t){return t.length?t[0][i.internalPropName].groupId+"-"+t[0].sourceId:null})).transition().duration(t).attr("d",r).style("fill",a),e.enter().append("path").attr("class","area").style("fill",a).attr("d",r).style("opacity",1e-6).transition().duration(t).style("opacity",1),e.exit().transition().duration(t).style("opacity",1e-6).remove(),n()},u},ut.chart.powerAreaOverlapChart=function(t,e){var a=ut.chart.baseGroupedStackTimeChart(t,e),o=ut.util.superMethod.call(a,"draw"),t=ut.util.copy(a),i=(a.me=t,it.svg.area().interpolate("monotone").x(function(t){return a.x(t.date)}).y0(function(t){return a.y(t.y0)}).y1(function(t){return a.y(t.y0+t.y)}));function u(t,e){return a.fillColor.call(this,t[0][a.internalPropName].groupId,t[0],e)}function s(t,e,n){return a.groupOpacityFn(null,n)}return a.draw=function(){var n=[],r=[],t=a.groupIds,e=a.transitionMs();t.forEach(function(t){var e=a.groupLayers[t];void 0!==e&&(r.push(t),t=e.map(function(t){return t.values}),n.push(t))}),(t=a.svgDataRoot.selectAll("g.data").data(n,function(t,e){return r[e]})).enter().append("g").attr("class","data"),t.exit().transition().duration(e).style("opacity",1e-6).remove(),(t=t.selectAll("path.area").data(Object,function(t){return t.length?t[0][a.internalPropName].groupId+"."+t[0].sourceId:null})).transition().duration(e).delay(200).attr("d",i).style("fill",u),t.enter().append("path").attr("class","area").style("fill",u).attr("d",i).style("opacity",1e-6).transition().duration(e).style("opacity",s),t.exit().transition().duration(e).style("opacity",1e-6).remove(),o()},a.normalizeDataTimeGaps(!0),t},ut.chart.powerIOAreaChart=function(t,e){var l=ut.chart.baseGroupedStackTimeChart(t,e),s=ut.util.superMethod.call(l,"draw"),e=(t=ut.util.copy(l),Object.defineProperty(t,"version",{value:"1.0.0",enumerable:!0,configurable:!0}),t),c=(l.me=e,l.svgRoot.append("g").attr("class","agg-sum").attr("transform",l.svgDataRoot.attr("transform"))),d=it.svg.area().interpolate("monotone").x(function(t){return l.x(t.date)}).y0(function(t){return l.y(t.y0)}).y1(function(t){return l.y(t.y0+t.y)}),f={Consumption:!0};function p(t,e){return l.fillColor.call(this,t[0][l.internalPropName].groupId,t[0],e)}function m(t){for(var e,n,r,a=null,o=null,i=null,u=t.length,s=0;s<u;s+=1)void 0!==(e=(n=t[s])[l.plotPropertyName])&&(n=n[l.internalPropName].groupId,r=l.scaleFactor(n),!0===f[n]?i+=e*r:o+=e*r);return{date:t[0].date,y:a=null===o&&null===i?a:o-i,plus:o,minus:i}}function g(){var t,e,r=[],n=l.groupIds,a=0,o=0,i=(t=it.scale.ordinal(),u=l.x,e=l.aggregate(),u=u.domain(),s=1,"Month"===e?i=it.time.month.utc:"Day"===e?i=it.time.day.utc:"Hour"===e?i=it.time.hour.utc:s=0===e.search(/^Ten/)?(i=it.time.minute.utc,10):0===e.search(/^Five/)?(i=it.time.minute.utc,5):(i=it.time.minute.utc,15),e=i.range(u[0],i.offset(u[1],s),s),t.domain(e),t),u=(n.forEach(function(n){var t=l.groupLayers[n];r.push(void 0===t?[]:t.map(function(t){var e=it.max(t.values,function(t){return t.y+t.y0});return!0===f[n]?o<e&&(o=e):a<e&&(a=e),t.values}))}),it.merge(it.merge(r)).concat(i.domain().map(function(t){return{date:t}}))),s=it.nest().key(function(t){return t.date.getTime()}).sortKeys(it.ascending).rollup(m).entries(u).map(function(t){return t.values});return{groupedData:r,sumLineData:s,maxPositiveY:a,maxNegativeY:o}}return e.showSumLine=function(t){var e;return arguments.length?(e=l.transitionMs(),c.style("opacity",t?1e-6:1).classed("off",!1).transition().duration(e).style("opacity",t?1:1e-6).each("end",function(){it.select(this).style("opacity",null).classed("off",!t)}),l.me):!c.classed("off")},e.negativeGroupIds=function(t){if(arguments.length)return f={},t.forEach(function(t){f[t]=!0}),l.me;var e,n=[];for(e in f)f.hasOwnProperty(e)&&n.pus(e);return n},l.draw=function(){var n,t,r=l.groupIds,e=l.transitionMs(),a=l.y.domain();function o(t,e){return!0===f[r[e]]?"scale(1, -1) translate(0,"+-2*n+")":null}function i(t){return null!==t.y}function u(t){return l.x(t.date)}t=g(),a[0]=-t.maxNegativeY,a[1]=t.maxPositiveY,l.y.domain(a).nice(),n=l.y(0),(a=l.svgDataRoot.selectAll("g.dataType").data(t.groupedData,function(t,e){return r[e]})).transition().duration(e).attr("transform",o),a.enter().append("g").attr("class","dataType").attr("transform",o),(a=a.selectAll("path.source").data(Object,function(t){return t.length?t[0].sourceId:null})).transition().duration(e).attr("d",d).style("fill",p),a.enter().append("path").attr("class","source").style("fill",p).attr("d",d).style("opacity",1e-6).transition().duration(e).style("opacity",1),a.exit().transition().duration(e).style("opacity",1e-6).remove(),a=t.sumLineData,e=l.transitionMs(),t=it.svg.line().x(u).y(function(t){return l.y(t.y)-.5}).interpolate("monotone").defined(i),(a=c.selectAll("path").data([a])).transition().duration(e).attr("d",t),a.enter().append("path").attr("d",it.svg.line().x(u).y(function(){return l.y(0)-.5}).interpolate("monotone").defined(i)).transition().duration(e).attr("d",t),a.exit().transition().duration(e).style("opacity",1e-6).remove(),s()},l.normalizeDataTimeGaps(!0),e},ut.chart.seasonalDayOfWeekLineChart=function(t,e){var n=ut.chart.baseGroupedSeasonalLineChart(t,e),e=(t=ut.util.copy(n),Object.defineProperty(t,"version",{value:"1.0.0",enumerable:!0,configurable:!0}),t);return n.me=e,n.timeKeyLabels(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]),n.xAxisTicks=function(){return n.x.domain()},n.dateForTimeKey=function(t){return new Date(Date.UTC(2001,0,1+t))},n.timeKeyForDate=function(t){return(t.getUTCDay()+6)%7},n.timeKeyInterval=function(){return it.time.day.utc},e},ut.chart.seasonalHourOfDayLineChart=function(t,e){var n=ut.chart.baseGroupedSeasonalLineChart(t,e),e=(t=ut.util.copy(n),Object.defineProperty(t,"version",{value:"1.0.0",enumerable:!0,configurable:!0}),t);return n.me=e,n.timeKeyLabels(["Midnight","1am","2am","3am","4am","5am","6am","7am","8am","9am","10am","11am","Noon","1pm","2pm","3pm","4pm","5pm","6pm","7pm","8pm","9pm","10pm","11pm"]),n.xAxisTicks=function(){return n.x.domain().filter(function(t,e){return e%2==0})},n.dateForTimeKey=function(t){return new Date(Date.UTC(2001,0,1,t))},n.timeKeyForDate=function(t){return t.getUTCHours()},n.timeKeyInterval=function(){return it.time.hour.utc},e},ut.runtime={},ut.color.map=function(t,e){var n,r,a,o=it.scale.ordinal().range(t),i=e.map(function(t,e){return{source:t,color:o(e)}});for(n=0,r=i.length;n<r;n+=1)""===(a=i[n].source)&&(a="Main"),isNaN(Number(a))&&(i[a]=i[n].color);return i},ut.color.color=function(n){var t=Number(n.source);if(isNaN(t))return ut.runtime.colorData[n.source];return ut.runtime.colorData.reduce(function(t,e){return e.source===n.source?e.color:t},ut.runtime.colorData[0].color)},ut.color.sourceColorMapping=function(t,e){var n,r,a,o,i,u,s=e||{},l={},c=[],d=[],f=[],e={},p={};o="function"==typeof s.displayDataType?s.displayDataType:function(t){return"Power"===t?"Generation":t};i="function"==typeof s.displaySource?s.displaySource:function(t,e){return e};u="function"==typeof s.displayColor?s.displayColor:function(t){return"Consumption"===t?h.Blues:h.Greens};for(n in t)t.hasOwnProperty(n)&&(l[n]={},f.length=0,(n=>{t[n].forEach(function(t){var e=""===t||"Main"===t?o(n):o(n)+" / "+i(n,t);l[n][t]=e,"Main"===t&&(l[n][""]=e),f.push(e),c.push(e),p[e]={dataType:n,source:t,display:e}})})(n),r=u(n),a=void 0===r[f.length]?(()=>{for(var t=f.length;t<30;t+=1)if(void 0!==r[t])return t;return 0})():f.length,a=r[a].slice(-f.length),!1!==s.reverseColors&&a.reverse(),d=d.concat(a));var m,g,v={};for(n in l)if(l.hasOwnProperty(n))for(m in v[n]={},g=l[n])g.hasOwnProperty(m)&&(v[g[m]]=m);return e.sourceList=c,e.displaySourceMap=l,e.reverseDisplaySourceMap=v,e.colorMap=ut.color.map(d,c),e.displaySourceObjects=p,e},ut.net.parseURLQueryTerms=r;var a=e(t,{});function c(t){for(var e in t)t.hasOwnProperty(e)&&(a[e]=t[e])}function g(t){var e,n,r,a,o="";function i(t,e){o.length&&(o+="&"),o+=encodeURIComponent(t)+"="+encodeURIComponent(e)}if(t)for(e in t)if(t.hasOwnProperty(e))if(n=t[e],Array.isArray(n))for(r=0,a=n.length;r<a;r++)i(e,n[r]);else i(e,n);return o}return ut.env=a,ut.setEnv=c,ut.setDefaultEnv=function(t){for(var e in t)t.hasOwnProperty(e)&&void 0===a[e]&&(a[e]=t[e])},void 0!==d&&void 0!==d.location&&void 0!==d.location.search&&c(r(d.location.search)),ut.counter=function(){function t(){return e}var e=0;return t.incrementAndGet=function(){return e+=1},t},ut.hasTouchSupport=(()=>{if(!d||!d.document)return!1;if("createTouch"in d.document)return!0;try{return!!d.document.createEvent("TouchEvent").initTouchEvent}catch(t){return!1}})(),ut.tapEventNames=ut.hasTouchSupport?{start:"touchstart",move:"touchmove",end:"touchend",cancel:"touchcancel",click:"touchstart",dblclick:"touchstart"}:{start:"mousedown",move:"mousemove",end:"mouseup",cancel:"touchcancel",click:"click",dblclick:"dblclick"},ut.tapCoordinates=function(t){var e;return ut.hasTouchSupport?(e=it.touches(t))&&0<e.length?e[0]:void 0:it.mouse(t)},ut.format.displayScaleForValue=function(t){var e=1,n=Number(t);!1===isNaN(n)&&(1e9<=t?e=1e9:1e6<=t?e=1e6:1e3<=t&&(e=1e3));return e},ut.format.displayUnitsForScale=function(t,e){return(1e9===e?"G":1e6===e?"M":1e3===e?"k":"")+t},ut.format.fmt=function(){if(arguments.length){var t,e,n=0,r=arguments[n];for(n=1;n<arguments.length;n+=1)t=new RegExp("\\{"+(n-1)+"\\}","gi"),(e=arguments[n])instanceof Date&&(e=0===e.getUTCHours()&&0===e.getMinutes()?ut.format.dateFormat(e):ut.format.dateTimeFormatURL(e)),r=r.replace(t,e);return r}},ut.net.encodeURLQueryTerms=g,ut.net.securityHelper=function(t,e){var n=a,r="application/x-www-form-urlencoded",p={token:t,secret:e,signingKey:null,signingKeyExpiry:null};function m(t){return t&&t.indexOf(r)<0}function g(t,e,n){n=b.HmacSHA256(n,e);return"SNWS2 Credential="+p.token+",SignedHeaders="+t.join(";")+",Signature="+b.enc.Hex.stringify(n)}function v(t){var e,n,r,a,o={};if(void 0!==t&&0<t.length)for(r=0,a=(e=(t=t.match(/^\?/)?t.substring(1):t).split("&")).length;r<a;r+=1)2===(n=e[r].split("=",2)).length&&(o[decodeURIComponent(n[0])]=decodeURIComponent(n[1]));return o}function h(t){return encodeURIComponent(t).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16)})}function y(t,e){return b.SHA256(t&&(e=e)&&0==e.indexOf(r)?t:"")}function x(t,e){return""+t.getUTCFullYear()+(t.getUTCMonth()<9?"0":"")+(t.getUTCMonth()+1)+(t.getUTCDate()<10?"0":"")+t.getUTCDate()+(e?"T"+(t.getUTCHours()<10?"0":"")+t.getUTCHours()+(t.getUTCMinutes()<10?"0":"")+t.getUTCMinutes()+(t.getUTCSeconds()<10?"0":"")+t.getUTCSeconds()+"Z":"")}function u(t,e,n,r,a){a=a||new Date;var o,i,u,s,t=C.parse(t),l=((t,e,n)=>{var r,a,o,i,u=v(e&&!m(n)?e:t.query),s=[],l=!0;for(r in u)s.push(r);for(s.sort(),a=0,o=s.length;a<o;a+=1)l?(l=!1,i=""):i+="&",i=(i=i+h(r=s[a])+"=")+h(u[r]);return i})(t,n,r),c=(d=r,c=a,f=void 0,s={headerNames:["host","x-sn-date"],headers:{host:(s=t).host+(s.port&&80!==s.port&&443!==s.port?":"+s.port:""),"x-sn-date":c.toUTCString()}},d&&(s.headerNames.push("content-type"),s.headers["content-type"]=d),m(d)&&(s.headerNames.push("digest"),s.headers.digest="sha-256="+b.enc.Base64.stringify(f)),s.headerNames.sort(),s),d=y(n,r),f=(i=(void 0===(o={method:e,uri:t,queryParams:l,headers:c,bodyDigest:d}).method?"GET":o.method.toUpperCase())+"\n"+o.uri.path+"\n"+(o.queryParams||"")+"\n",o.headers.headerNames.forEach(function(t){i+=t+":"+o.headers.headers[t]+"\n"}),i=(i+=o.headers.headerNames.join(";")+"\n")+b.enc.Hex.stringify(o.bodyDigest)),n=(s=f,"SNWS2-HMAC-SHA256\n"+x(a,!0)+"\n"+b.enc.Hex.stringify(b.SHA256(s))),r=(r=a,s=p.signingKey,r=r||new Date,(!s||r.getTime()>p.signingKeyExpiry)&&(u=x(r),s=b.HmacSHA256("snws2_request",b.HmacSHA256(u,"SNWS2"+p.secret)),p.signingKey=s,(u=new Date(r)).setUTCHours(0),u.setUTCMinutes(0),u.setUTCSeconds(0),u.setUTCMilliseconds(0),p.signingKeyExpiry=u.getTime()+6048e5),s);return{header:g(c.headerNames,r,n),date:a,dateHeader:c.headers["x-sn-date"],verb:e,canonicalUri:t.path,canonicalQueryParameters:l,canonicalHeaders:c,bodyContentDigest:d,canonicalRequestMessage:f,signingMessage:n,signingKey:r}}function a(n,r,a,o,t){var e=n,i=(0<arguments.length&&(arguments.length<5&&"function"==typeof arguments[arguments.length-1]&&(t=arguments[arguments.length-1]),"string"!=typeof r&&(r=void 0),"string"!=typeof a&&(a=void 0),"string"!=typeof o)&&(o=void 0),"POST"!==(r=void 0===r?"GET":r.toUpperCase())&&"PUT"!==r||a||-1!==(i=n.indexOf("?"))&&(i+1<n.length-1&&(a=n.substring(i+1)),e=n.substring(0,i),o="application/x-www-form-urlencoded; charset=UTF-8"),it.json(e));return void 0!==o&&i.header("Content-Type",o),i.on("beforesend",function(t){var e=u(n,r,a,o,new Date);t.setRequestHeader("Authorization",e.header),e.bodyContentDigest&&m(o)&&t.setRequestHeader("Digest",e.canonicalHeaders.headers.digest),t.setRequestHeader("X-SN-Date",e.canonicalHeaders.headers["x-sn-date"])}),i.on("load.internal",function(){}),void 0!==t&&i.send(r,a,t),i}return Object.defineProperties(n,{version:{value:"1.4.0"},hasTokenCredentials:{value:function(){return p.token&&0<p.token.length&&p.secret&&0<p.secret.length}},token:{value:function(t){return arguments.length?(p.token=t&&0<t.length?t:void 0,n):p.token}},secret:{value:function(t){arguments.length&&(p.secret=t);return n}},hasSecret:{value:function(){return p.secret&&0<p.secret.length}},clearSecret:{value:function(){return p.secret=void 0,n}},generateAuthorizationHeaderValue:{value:g},parseURLQueryTerms:{value:v},json:{value:a},computeAuthorization:{value:u}}),n},ut.net.sec=ut.net.securityHelper(),ut.ui.adjustDisplayUnits=function(t,e,n,r){e=ut.format.displayUnitsForScale(e,n);t.selectAll(".unit").text(e),void 0!==r&&t.selectAll(".unit-kind").text(r)},ut.ui.colorDataLegendTable=function(t,e,n,r){t=it.select(t).selectAll("table").data([0]),t.enter().append("table").append("tbody"),t=t.select("tbody").selectAll("tr").data(e),e=t.enter().append("tr");t.exit().remove(),n&&e.on("click",n).classed("clickable",!0);void 0===r&&(r=function(t){t.text(Object)});e=t.selectAll("td.swatch").data(function(t){return[t.color]}).style("background-color",Object),e.enter().append("td").attr("class","swatch").style("background-color",Object),e.exit().remove(),n=t.selectAll("td.desc").data(function(t){return[""===t.source?"Main":t.source]}).call(r);n.enter().append("td").attr("class","desc").call(r),n.exit().remove()},ut.ui.flipCounter=function(e,t){var n={version:"1.0.0"},a={flipperWidth:34,transitionMs:200,format:it.format("07,g"),animate:!0},o=void 0,i=["0"];function r(t){var e=void 0;for(e in t)a[e]=t[e]}function u(t,e){return a.flipperWidth*(i.length-1)-a.flipperWidth*e+"px"}function s(t){var r=a.format(t),t=(i=(()=>{for(var t=[],e=0,n=r.length;e<n;e++)t.push(r.charAt(e));return t.reverse()})(),o.selectAll("span.flipper").data(i));t.style("left",u).each(function(t){var e=it.select(this),n=!0===a.animate&&e.classed("flipped"),r=e.select(n||!0!==a.animate?"span.a":"span.b");e.select(n?"span.b":"span.a").text()!==t&&(r.select("span.value").text(t),a.animate)&&e.classed("flipped",!n)}),t.enter().append("span").attr("class","flipper").style("left",u).html(function(t){return(a.animate?'<span class="face b"><span class="value">b</span></span>':"")+'<span class="face a"><span class="value">'+t+"</span></span>"}),t.exit().remove()}return n.configure=r,n.render=function(t){o=it.select(e).classed("flipCounter",!0),s(void 0===t?0:t)},n.update=s,r(t),n},ut.ui.Matrix=function(){var t,e="Float32Array"in window;this.matrix=(e?((t=new Float32Array(6))[0]=1,t[3]=1):t=[1,0,0,1,0,0],t),this.support={use3d:this.supportDefaults.use3d,tProp:this.supportDefaults.tProp,trProp:this.supportDefaults.trProp,trTransform:this.supportDefaults.trTransform,trEndEvent:this.supportDefaults.trEndEvent}},ut.ui.Matrix.prototype={constructor:ut.ui.Matrix,supportDefaults:(()=>{var t=d&&d.document?d.document.createElement("div").style:void 0,e="Transform",n=["Webkit"+e,"O"+e,"ms"+e,"Moz"+e],r=["webkitTransitionEnd","oTransitionEnd","transitionend","transitionend"],a=["WebkitTransition","OTransition","transition","MozTransition"],o=["-webkit-transform","-o-transform","transform","-moz-transform"],i="Transform",u="Transition",s="transform",l="transitionEnd",c=n.length;if(t)for(;c--;)if(n[c]in t){i=n[c],u=a[c],s=o[c],l=r[c];break}return{use3d:!(!d||void 0===d.devicePixelRatio)&&1<window.devicePixelRatio,tProp:i,trProp:u,trTransform:s,trEndEvent:l}})(),toMatrix3D:function(){return"matrix3d("+this.matrix[0]+","+this.matrix[1]+",0,0,"+this.matrix[2]+","+this.matrix[3]+",0,0,0,0,1,0,"+this.matrix[4]+","+this.matrix[5]+",0,1)"},toMatrix2D:function(){return"matrix("+this.matrix[0]+","+this.matrix[1]+","+this.matrix[2]+","+this.matrix[3]+","+this.matrix[4]+","+this.matrix[5]+")"},setRotation:function(t){var e=Math.cos(t),t=Math.sin(t);this.matrix[0]=this.matrix[3]=e,this.matrix[1]=0-t,this.matrix[2]=t},setScale:function(t){this.matrix[0]=t,this.matrix[3]=t},setTranslation:function(t,e){this.matrix[4]=t,this.matrix[5]=e},translate:function(t,e){this.matrix[4]+=t,this.matrix[5]+=e},getTranslation:function(){return{x:this.matrix[4],y:this.matrix[5]}},getDistanceFrom:function(t){return Math.sqrt(Math.pow(t.x-this.matrix[4],2),Math.pow(t.y-this.matrix[5],2))},apply:function(t){var e=!0===this.support.use3d?this.toMatrix3D():this.toMatrix2D();t.style[this.support.tProp]=e},animateListen:function(e,n){var r,a=this;e.addEventListener(a.support.trEndEvent,r=function(t){t.target===e&&(e.removeEventListener(a.support.trEndEvent,r,!1),n.apply(e))},!1)},animate:function(t,e,n,r){var a=this,n=(this.animateListen(t,function(){t.style[a.support.trProp]="",void 0!==r&&r.apply(t)}),this.support.trTransform+" "+(void 0!==n?n:"0.3s")+" "+(void 0!==e?e:"ease-out"));t.style[this.support.trProp]=n,this.apply(t)},easeOut:function(t,e){this.animate(t,"ease-out",void 0,e)},easeIn:function(t,e){this.animate(t,"ease-in",void 0,e)},isUse3d:function(){return!0===this.support.use3d},setUse3d:function(t){this.support.use3d=!0===t}},ut});